Class PMXCrossover
java.lang.Object
org.uma.jmetal.operator.crossover.impl.PMXCrossover
- All Implemented Interfaces:
java.io.Serializable,CrossoverOperator<PermutationSolution<java.lang.Integer>>,Operator<java.util.List<PermutationSolution<java.lang.Integer>>,java.util.List<PermutationSolution<java.lang.Integer>>>
public class PMXCrossover extends java.lang.Object implements CrossoverOperator<PermutationSolution<java.lang.Integer>>
This class allows to apply a PMX crossover operator using two parent solutions.
- Author:
- Antonio J. Nebro
, Juan J. Durillo - See Also:
- Serialized Form
-
Constructor Summary
Constructors Constructor Description PMXCrossover(double crossoverProbability)ConstructorPMXCrossover(double crossoverProbability, RandomGenerator<java.lang.Double> randomGenerator)ConstructorPMXCrossover(double crossoverProbability, RandomGenerator<java.lang.Double> crossoverRandomGenerator, BoundedRandomGenerator<java.lang.Integer> cuttingPointRandomGenerator)Constructor -
Method Summary
Modifier and Type Method Description java.util.List<PermutationSolution<java.lang.Integer>>doCrossover(double probability, java.util.List<PermutationSolution<java.lang.Integer>> parents)Perform the crossover operationjava.util.List<PermutationSolution<java.lang.Integer>>execute(java.util.List<PermutationSolution<java.lang.Integer>> parents)Executes the operationdoublegetCrossoverProbability()intgetNumberOfGeneratedChildren()intgetNumberOfRequiredParents()voidsetCrossoverProbability(double crossoverProbability)
-
Constructor Details
-
PMXCrossover
public PMXCrossover(double crossoverProbability)Constructor -
PMXCrossover
public PMXCrossover(double crossoverProbability, RandomGenerator<java.lang.Double> randomGenerator)Constructor -
PMXCrossover
public PMXCrossover(double crossoverProbability, RandomGenerator<java.lang.Double> crossoverRandomGenerator, BoundedRandomGenerator<java.lang.Integer> cuttingPointRandomGenerator)Constructor
-
-
Method Details
-
getCrossoverProbability
public double getCrossoverProbability()- Specified by:
getCrossoverProbabilityin interfaceCrossoverOperator<PermutationSolution<java.lang.Integer>>
-
setCrossoverProbability
public void setCrossoverProbability(double crossoverProbability) -
execute
public java.util.List<PermutationSolution<java.lang.Integer>> execute(java.util.List<PermutationSolution<java.lang.Integer>> parents)Executes the operation- Specified by:
executein interfaceOperator<java.util.List<PermutationSolution<java.lang.Integer>>,java.util.List<PermutationSolution<java.lang.Integer>>>- Parameters:
parents- An object containing an array of two solutions
-
doCrossover
public java.util.List<PermutationSolution<java.lang.Integer>> doCrossover(double probability, java.util.List<PermutationSolution<java.lang.Integer>> parents)Perform the crossover operation- Parameters:
probability- Crossover probabilityparents- Parents- Returns:
- An array containing the two offspring
-
getNumberOfRequiredParents
public int getNumberOfRequiredParents()- Specified by:
getNumberOfRequiredParentsin interfaceCrossoverOperator<PermutationSolution<java.lang.Integer>>
-
getNumberOfGeneratedChildren
public int getNumberOfGeneratedChildren()- Specified by:
getNumberOfGeneratedChildrenin interfaceCrossoverOperator<PermutationSolution<java.lang.Integer>>
-