Skip to content

Commit

Permalink
Merge pull request #14 from felixreimann/feature/#8-citation-annotation
Browse files Browse the repository at this point in the history
Feature/#8 citation annotation
  • Loading branch information
michaelhglass committed Mar 21, 2018
2 parents a261ba5 + b00474d commit e472c45
Show file tree
Hide file tree
Showing 17 changed files with 565 additions and 284 deletions.
Original file line number Diff line number Diff line change
@@ -1,35 +1,32 @@
/*******************************************************************************
* 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.dtlz;

import static org.opt4j.core.config.annotations.Citation.PublicationMonth.MAY;

import org.opt4j.benchmarks.BinaryCreator;
import org.opt4j.benchmarks.BinaryToDoubleDecoder;
import org.opt4j.benchmarks.Bits;
import org.opt4j.benchmarks.DoubleCopyDecoder;
import org.opt4j.benchmarks.DoubleCreator;
import org.opt4j.benchmarks.M;
import org.opt4j.benchmarks.N;
import org.opt4j.core.config.annotations.Citation;
import org.opt4j.core.config.annotations.Info;
import org.opt4j.core.config.annotations.Order;
import org.opt4j.core.config.annotations.Required;
Expand All @@ -40,14 +37,13 @@
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
*
*/
@Info("DTLZ Problem Suite. (n = m + k - 1)")
@Citation(title = "Scalable multi-objective optimization test problems", authors = "Kalyanmoy Deb, Lothar Thiele, Marco Laumanns, and Eckart Zitzler", journal = "Proceedings of the 2002 Congress on Evolutionary Computation", volume = 1, month = MAY, year = 2002, doi = "10.1109/CEC.2002.1007032")
public class DTLZModule extends ProblemModule {

@Order(0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,47 +1,42 @@
/*******************************************************************************
* 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.knapsack;

import static org.opt4j.core.config.annotations.Citation.PublicationMonth.NOVEMBER;

import org.opt4j.core.config.annotations.Citation;
import org.opt4j.core.config.annotations.File;
import org.opt4j.core.config.annotations.Info;
import org.opt4j.core.config.annotations.Required;
import org.opt4j.core.problem.ProblemModule;
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 <a
* href="http://www.tik.ee.ethz.ch/sop/download/supplementary/testProblemSuite/">http://www.tik.ee.ethz.ch/sop/download/supplementary/testProblemSuite/</a>
* @see <a href=
* "http://www.tik.ee.ethz.ch/sop/download/supplementary/testProblemSuite/">http://www.tik.ee.ethz.ch/sop/download/supplementary/testProblemSuite/</a>
*
* @author reimann, lukasiewycz
*
*/
@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;
Expand Down Expand Up @@ -140,7 +135,8 @@ protected void config() {
KnapsackProfitEvaluator.class);
break;
case SAT:
bindProblem(KnapsackSATCreatorDecoder.class, KnapsackSATCreatorDecoder.class, KnapsackProfitEvaluator.class);
bindProblem(KnapsackSATCreatorDecoder.class, KnapsackSATCreatorDecoder.class,
KnapsackProfitEvaluator.class);
break;
}
addEvaluator(KnapsackOverloadEvaluator.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
* 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,
Expand All @@ -19,7 +19,6 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*******************************************************************************/


package org.opt4j.benchmarks.wfg;

Expand All @@ -31,6 +30,8 @@
import org.opt4j.benchmarks.K;
import org.opt4j.benchmarks.M;
import org.opt4j.benchmarks.N;
import org.opt4j.core.config.annotations.Citation;
import org.opt4j.core.config.annotations.Citation.PublicationMonth;
import org.opt4j.core.config.annotations.Info;
import org.opt4j.core.config.annotations.Order;
import org.opt4j.core.config.annotations.Required;
Expand All @@ -40,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, 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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
* 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,
Expand All @@ -19,7 +19,6 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*******************************************************************************/


package org.opt4j.benchmarks.zdt;

Expand All @@ -30,6 +29,8 @@
import org.opt4j.benchmarks.DoubleCopyDecoder;
import org.opt4j.benchmarks.DoubleCreator;
import org.opt4j.benchmarks.N;
import org.opt4j.core.config.annotations.Citation;
import org.opt4j.core.config.annotations.Citation.PublicationMonth;
import org.opt4j.core.config.annotations.Info;
import org.opt4j.core.config.annotations.Order;
import org.opt4j.core.config.annotations.Required;
Expand All @@ -39,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, and Lothar Thiele", journal = "Evolutionary Computation Volume", volume = 8, number = 2, month = PublicationMonth.JUNE, year = 2000)
public class ZDTModule extends ProblemModule {

@Order(0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
/*******************************************************************************
* 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.core.common.archive;
Expand All @@ -38,10 +33,9 @@
import com.google.inject.Inject;

/**
* The {@link AdaptiveGridArchive} uses an adaptive grid in order to bound the
* size of the {@link Archive}, see "Properties of an Adaptive Archiving
* Algorithm for Storing Nondominated Vectors, J. Knowles, D. Corne,
* Transactions of Evolutionary Computation, Vol. 7, No. 2, April 2003".
* The {@link AdaptiveGridArchive} uses an adaptive grid in order to bound the size of the {@link Archive}, see
* "Properties of an Adaptive Archiving Algorithm for Storing Nondominated Vectors, J. Knowles, D. Corne, Transactions
* of Evolutionary Computation, Vol. 7, No. 2, April 2003".
*
* @author lukasiewycz, helwig
*
Expand Down Expand Up @@ -119,9 +113,7 @@ public AdaptiveGridArchive(@Constant(value = "capacity", namespace = BoundedArch
/*
* (non-Javadoc)
*
* @see
* org.opt4j.common.archive.AbstractArchive#updateWithNondominated(java.
* util.Collection)
* @see org.opt4j.common.archive.AbstractArchive#updateWithNondominated(java. util.Collection)
*/
@Override
protected boolean updateWithNondominated(Collection<Individual> candidates) {
Expand Down Expand Up @@ -277,8 +269,7 @@ public boolean remove(Object o) {
}

/**
* Adds all {@link Individual}s to theirs {@link Cell}s and the {@link Cell}
* s to the {@link Archive}.
* Adds all {@link Individual}s to theirs {@link Cell}s and the {@link Cell} s to the {@link Archive}.
*
* @param individuals
* the individuals to be added
Expand All @@ -292,9 +283,8 @@ protected void addToCell(Iterable<Individual> individuals) {
}

/**
* Removes this {@link Individual} from its {@link Cell} and removes the
* {@link Cell} from the {@link org.opt4j.core.optimizer.Archive} if it is
* empty.
* Removes this {@link Individual} from its {@link Cell} and removes the {@link Cell} from the
* {@link org.opt4j.core.optimizer.Archive} if it is empty.
*
* @param individual
* the individual to be removed
Expand All @@ -308,8 +298,7 @@ protected void removeFromCell(Individual individual) {
}

/**
* Determines the new bounds for the individuals and returns {@code true} if
* the bounds have changed.
* Determines the new bounds for the individuals and returns {@code true} if the bounds have changed.
*
* @param individuals
* the individuals
Expand Down

0 comments on commit e472c45

Please sign in to comment.