diff --git a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/dtlz/DTLZModule.java b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/dtlz/DTLZModule.java index d0eeaa6e..87b6dc36 100644 --- a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/dtlz/DTLZModule.java +++ b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/dtlz/DTLZModule.java @@ -37,8 +37,7 @@ import org.opt4j.core.start.Constant; /** - * Module for the DTLZ benchmarks as proposed in "Scalable multi-objective optimization test problems, Kalyanmoy Deb, - * Lothar Thiele, Marco Laumanns, Eckart Zitzler, Proc. Congress Evolutionary Computation Volume 1 (May 2002)". + * Module for the DTLZ benchmarks as proposed in Deb et al. 2002. * * @author lukasiewycz * diff --git a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/knapsack/KnapsackModule.java b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/knapsack/KnapsackModule.java index 7380114b..d3d4639b 100644 --- a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/knapsack/KnapsackModule.java +++ b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/knapsack/KnapsackModule.java @@ -27,10 +27,8 @@ import org.opt4j.core.start.Constant; /** - * The multiobjective 0/1 ILP knapsack problem as proposed in "E. Zitzler and L. Thiele: Multiobjective evolutionary - * algorithms: A comparative case study and the strength Pareto approach. IEEE Transactions on Evolutionary Computation, - * vol. 3, no. 4, pp. 257-271, Nov. 1999.". Either one of the nine benchmark problems from Zitzler and Thiele 1999 can - * be selected or the number of knapsacks and items can be set manually. + * The multiobjective 0/1 ILP knapsack problem as proposed in Zitzler and Thiele 1999. Either one of the nine benchmark + * problems from Zitzler and Thiele 1999 can be selected or the number of knapsacks and items can be set manually. * * @see http://www.tik.ee.ethz.ch/sop/download/supplementary/testProblemSuite/ @@ -38,7 +36,7 @@ * @author reimann, lukasiewycz * */ -@Citation(authors = "E. Zitzler and L. Thiele", title = "Multiobjective evolutionary algorithms: A comparative case study and the strength Pareto approach", journal = "IEEE Transactions on Evolutionary Computation", volume = 3, number = 4, pageFirst = 257, pageLast = 271, month = NOVEMBER, year = 1999) +@Citation(authors = "Eckart Zitzler and Lothar Thiele", title = "Multiobjective evolutionary algorithms: A comparative case study and the strength Pareto approach", journal = "IEEE Transactions on Evolutionary Computation", volume = 3, number = 4, pageFirst = 257, pageLast = 271, month = NOVEMBER, year = 1999) public class KnapsackModule extends ProblemModule { protected int knapsacks = 5; diff --git a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/wfg/WFGModule.java b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/wfg/WFGModule.java index 4db03177..1228c356 100644 --- a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/wfg/WFGModule.java +++ b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/wfg/WFGModule.java @@ -1,18 +1,23 @@ /******************************************************************************* * Copyright (c) 2014 Opt4J * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the - * Software. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. *******************************************************************************/ package org.opt4j.benchmarks.wfg; @@ -36,14 +41,13 @@ import org.opt4j.core.problem.ProblemModule; /** - * Module for the WFG (Walking Fish Group) benchmarks, see "A Scalable Multi-objective Test Problem Toolkit, Simon - * Huband, Luigi Barone, R. Lyndon While, and Philip Hingston (EMO 2005)". + * Module for the WFG (Walking Fish Group) benchmarks, see Huband et al. 2005. * * @author lukasiewycz * */ @Info("WFG Problem Suite. The number of search variables is n=k+l.") -@Citation(title = "A Scalable Multi-objective Test Problem Toolkit", authors = "Simon Huband, Luigi Barone, R. Lyndon While, and Philip Hingston", journal = "Evolutionary Multi-Criterion Optimization", pageFirst = 280, pageLast = 295, year = 2005, month = PublicationMonth.UNKNOWN, doi = "10.1007/978-3-540-31880-4_20") +@Citation(title = "A Scalable Multi-objective Test Problem Toolkit", authors = "Simon Huband, Luigi Barone, Lyndon While, and Philip Hingston", journal = "Evolutionary Multi-Criterion Optimization", pageFirst = 280, pageLast = 295, year = 2005, month = PublicationMonth.UNKNOWN, doi = "10.1007/978-3-540-31880-4_20") public class WFGModule extends ProblemModule { @Order(0) diff --git a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/zdt/ZDTModule.java b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/zdt/ZDTModule.java index 2ac01431..de02bc73 100644 --- a/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/zdt/ZDTModule.java +++ b/opt4j-benchmarks/src/main/java/org/opt4j/benchmarks/zdt/ZDTModule.java @@ -1,18 +1,23 @@ /******************************************************************************* * Copyright (c) 2014 Opt4J * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the - * Software. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. *******************************************************************************/ package org.opt4j.benchmarks.zdt; @@ -35,15 +40,13 @@ import org.opt4j.core.problem.ProblemModule; /** - * The {@link ZDTModule} configures the ZDT benchmarks, see "Comparison of Multiobjective Evolutionary Algorithms: - * Empirical Results, Eckart Zitzler, Kalyanmoy Deb, Lothar Thiele, Evolutionary Computation Volume 8 , Issue 2 (June - * 2000)". + * The {@link ZDTModule} configures the ZDT benchmarks, see Zitzler et al. 2000. * * @author lukasiewycz * */ @Info("ZDT Problem Suite.") -@Citation(title = "Comparison of Multiobjective Evolutionary Algorithms: Empirical Results", authors = "Eckart Zitzler, Kalyanmoy Deb, Lothar Thiele", journal = "Evolutionary Computation Volume", volume = 8, number = 2, month = PublicationMonth.JUNE, year = 2000) +@Citation(title = "Comparison of Multiobjective Evolutionary Algorithms: Empirical Results", authors = "Eckart Zitzler, Kalyanmoy Deb, and Lothar Thiele", journal = "Evolutionary Computation Volume", volume = 8, number = 2, month = PublicationMonth.JUNE, year = 2000) public class ZDTModule extends ProblemModule { @Order(0) diff --git a/opt4j-core/src/main/java/org/opt4j/core/common/archive/ArchiveModule.java b/opt4j-core/src/main/java/org/opt4j/core/common/archive/ArchiveModule.java index 526d1cef..ff95d1fa 100644 --- a/opt4j-core/src/main/java/org/opt4j/core/common/archive/ArchiveModule.java +++ b/opt4j-core/src/main/java/org/opt4j/core/common/archive/ArchiveModule.java @@ -53,7 +53,7 @@ public class ArchiveModule extends Opt4JModule { protected int capacity = 100; @Info("Divisions for the adaptive grid archive. A convergence is guaranteed if 'capacity>1+div^m+(div-1)^m+2*m' with m being the number of objectives holds") - @Citation(title = "Properties of an Adaptive Archiving Algorithm for Storing Nondominated Vectors", authors = "J. Knowles, D. Corne", journal = "Transactions of Evolutionary Computation", volume = 7, number = 2, month = APRIL, year = 2003) + @Citation(title = "Properties of an Adaptive Archiving Algorithm for Storing Nondominated Vectors", authors = "Joshua Knowles and David Corne", journal = "Transactions of Evolutionary Computation", volume = 7, number = 2, month = APRIL, year = 2003) @Required(property = "type", elements = { "ADAPTIVE_GRID" }) @Constant(value = "div", namespace = AdaptiveGridArchive.class) protected int divisions = 7; @@ -82,7 +82,7 @@ public enum Type { * @see AdaptiveGridArchive */ @Info("Adaptive grid archive") - @Citation(title = "Properties of an Adaptive Archiving Algorithm for Storing Nondominated Vectors", authors = "J. Knowles, D. Corne", journal = "Transactions of Evolutionary Computation", volume = 7, number = 2, month = APRIL, year = 2003) + @Citation(title = "Properties of an Adaptive Archiving Algorithm for Storing Nondominated Vectors", authors = "Joshua Knowles and David Corne", journal = "Transactions of Evolutionary Computation", volume = 7, number = 2, month = APRIL, year = 2003) ADAPTIVE_GRID, /** @@ -91,7 +91,7 @@ public enum Type { * @see CrowdingArchive */ @Info("Bounded archive based on the crowding distance (NSGA2)") - @Citation(title = "A fast and elitist multiobjective genetic algorithm : NSGA-II", authors = "K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan", journal = "IEEETransactions on Evolutionary Computation", pageFirst = 182, pageLast = 197, month = AUGUST, year = 2002) + @Citation(title = "A fast and elitist multiobjective genetic algorithm : NSGA-II", authors = "Kalyanmoy Deb, Amrit Pratap, Samir Agarwal, and Tanaka Meyarivan", journal = "IEEETransactions on Evolutionary Computation", pageFirst = 182, pageLast = 197, month = AUGUST, year = 2002) CROWDING; } diff --git a/opt4j-core/src/main/java/org/opt4j/core/config/annotations/Citation.java b/opt4j-core/src/main/java/org/opt4j/core/config/annotations/Citation.java index 1ad2f7f1..752a196d 100644 --- a/opt4j-core/src/main/java/org/opt4j/core/config/annotations/Citation.java +++ b/opt4j-core/src/main/java/org/opt4j/core/config/annotations/Citation.java @@ -14,21 +14,22 @@ import org.opt4j.core.start.Opt4JModule; /** - * The {@link Citation} can be used in {@link Opt4JModule}s to add citations to scientific works. + * The {@link Citation} can be used in {@link Opt4JModule}s to add citations to + * scientific works. * * Example: * *
  * @Citation(title     = "Opt4J: A Modular Framework for Meta-heuristic Optimization",
- *               authors   = "Martin Lukasiewycz, Michael Glass, Felix Reimann, and Jürgen Teich",
- *               journal   = "Proceedings of the 13th Annual Conference on Genetic and Evolutionary Computation",
- *               pageFirst = 1723
- *               pageLast  = 1730
- *               volume    = 13
- *               number    = 1
- *               month     = PublicationMonth.JULY,
- *               year      = 2011,
- *               doi       = "10.1145/2001576.2001808")
+ *           authors   = "Martin Lukasiewycz, Michael Glaß, Felix Reimann, and Jürgen Teich",
+ *           journal   = "Proceedings of the 13th Annual Conference on Genetic and Evolutionary Computation",
+ *           pageFirst = 1723
+ *           pageLast  = 1730
+ *           volume    = 13
+ *           number    = 1
+ *           month     = PublicationMonth.JULY,
+ *           year      = 2011,
+ *           doi       = "10.1145/2001576.2001808")
  * 
* * @author Felix Reimann diff --git a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/Nsga2Module.java b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/Nsga2Module.java index 450dc5c0..4e80f4da 100644 --- a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/Nsga2Module.java +++ b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/Nsga2Module.java @@ -34,7 +34,7 @@ * */ @Info("A Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization") -@Citation(title = "A Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization: NSGA-II", authors = "K. Deb, Samir Agrawal, Amrit Pratap, and T. Meyarivan", journal = "Parallel MockProblem Solving from Nature", pageFirst = 849, pageLast = 858, year = 2000, doi = "10.1007/3-540-45356-3_83", month = UNKNOWN) +@Citation(title = "A Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization: NSGA-II", authors = "Kalyanmoy Deb, Samir Agrawal, Amrit Pratap, and Tanaka Meyarivan", journal = "Parallel MockProblem Solving from Nature", pageFirst = 849, pageLast = 858, year = 2000, doi = "10.1007/3-540-45356-3_83", month = UNKNOWN) public class Nsga2Module extends SelectorModule { @Info("The tournament value") diff --git a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/SMSModule.java b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/SMSModule.java index 78af9c38..07cf677f 100644 --- a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/SMSModule.java +++ b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/ea/SMSModule.java @@ -25,8 +25,8 @@ import org.opt4j.core.start.Constant; /** - * Module for the S-Metric Selection ({@link Selector}) based on the {@link Hypervolume} contribution, see "M. Emmerich, - * N. Beume, and B. Naujoks. An EMO Algorithm Using the Hypervolume Measure as Selection Criterion. EMO 2005.". + * Module for the S-Metric Selection ({@link Selector}) based on the {@link Hypervolume} contribution, see Emmerich et + * al. 2005. * * @see Hypervolume * @author lukasiewycz @@ -34,7 +34,7 @@ * */ @Info("SMS-EMOA: Multiobjective selection based on dominated hypervolume") -@Citation(authors = "M. Emmerich, N. Beume, and B. Naujoks", title = "An EMO Algorithm Using the Hypervolume Measure as Selection Criterion", journal = "Evolutionary Multi-Criterion Optimization (EMO)", pageFirst = 62, pageLast = 76, year = 2005, month = UNKNOWN) +@Citation(authors = "Michael Emmerich, Nicola Beume, and Boris Naujoks", title = "An EMO Algorithm Using the Hypervolume Measure as Selection Criterion", journal = "Evolutionary Multi-Criterion Optimization (EMO)", pageFirst = 62, pageLast = 76, year = 2005, month = UNKNOWN) public class SMSModule extends SelectorModule { @Info("The offset value") diff --git a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/mopso/MOPSOModule.java b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/mopso/MOPSOModule.java index a0dfdc50..946acc6e 100644 --- a/opt4j-optimizers/src/main/java/org/opt4j/optimizers/mopso/MOPSOModule.java +++ b/opt4j-optimizers/src/main/java/org/opt4j/optimizers/mopso/MOPSOModule.java @@ -34,7 +34,7 @@ * @author lukasiewycz */ @Info("Multi-objective particle swarm optimizer. Mostly based on the OMOPSO. Works only with real-valued problems.") -@Citation(title = "Improving PSO-based Multi-Objective Optimization using Crowding, Mutation and ∈-Dominance", authors = "M. Reyes Sierra and C. A. Coello Coello", journal = "Proceedings of Evolutionary Multi-Criterion Optimization", pageFirst = 505, pageLast = 519, month = UNKNOWN, year = 2005, doi = "10.1007/978-3-540-31880-4_35") +@Citation(title = "Improving PSO-based Multi-Objective Optimization using Crowding, Mutation and ϵ-Dominance", authors = "Margarita Reyes Sierra and Carlos A. Coello Coello", journal = "Proceedings of Evolutionary Multi-Criterion Optimization", pageFirst = 505, pageLast = 519, month = UNKNOWN, year = 2005, doi = "10.1007/978-3-540-31880-4_35") public class MOPSOModule extends OptimizerModule { @Info("The number of particles.")