SelProb -> SelectionProbability
This commit is contained in:
parent
d0a3d2e434
commit
5e4018d73d
@ -2,8 +2,8 @@ package eva2.optimization.operator.selection;
|
||||
|
||||
import eva2.optimization.individuals.AbstractEAIndividual;
|
||||
import eva2.optimization.operator.selection.probability.InterfaceSelectionProbability;
|
||||
import eva2.optimization.operator.selection.probability.SelProbStandard;
|
||||
import eva2.optimization.operator.selection.probability.SelProbStandardScaling;
|
||||
import eva2.optimization.operator.selection.probability.SelectionProbabilityStandard;
|
||||
import eva2.optimization.operator.selection.probability.SelectionProbabilityStandardScaling;
|
||||
import eva2.optimization.population.Population;
|
||||
import eva2.tools.math.RNG;
|
||||
import eva2.util.annotation.Description;
|
||||
@ -23,14 +23,14 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ
|
||||
* Comment for {@code serialVersionUID}
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
private InterfaceSelectionProbability selProbCalculator = new SelProbStandard();
|
||||
private InterfaceSelectionProbability selProbCalculator = new SelectionProbabilityStandard();
|
||||
private boolean selectFixedSteps = false;
|
||||
|
||||
public SelectParticleWheel() {
|
||||
}
|
||||
|
||||
public SelectParticleWheel(double scalingProb) {
|
||||
selProbCalculator = new SelProbStandardScaling(scalingProb);
|
||||
selProbCalculator = new SelectionProbabilityStandardScaling(scalingProb);
|
||||
}
|
||||
|
||||
public SelectParticleWheel(InterfaceSelectionProbability selProb) {
|
||||
|
@ -2,7 +2,7 @@ package eva2.optimization.operator.selection;
|
||||
|
||||
import eva2.optimization.individuals.AbstractEAIndividual;
|
||||
import eva2.optimization.operator.selection.probability.InterfaceSelectionProbability;
|
||||
import eva2.optimization.operator.selection.probability.SelProbStandard;
|
||||
import eva2.optimization.operator.selection.probability.SelectionProbabilityStandard;
|
||||
import eva2.optimization.population.Population;
|
||||
import eva2.tools.math.RNG;
|
||||
import eva2.util.annotation.Description;
|
||||
@ -17,7 +17,7 @@ import eva2.util.annotation.Description;
|
||||
public class SelectXProbRouletteWheel implements InterfaceSelection, java.io.Serializable {
|
||||
|
||||
private transient TreeElement[] treeRoot = null;
|
||||
private InterfaceSelectionProbability selectionProbability = new SelProbStandard();
|
||||
private InterfaceSelectionProbability selectionProbability = new SelectionProbabilityStandard();
|
||||
private boolean obeyDebsConstViolationPrinciple = true;
|
||||
|
||||
public SelectXProbRouletteWheel() {
|
||||
|
@ -11,7 +11,7 @@ import java.util.ArrayList;
|
||||
* This abstract implementation gives some general
|
||||
* methods for retrieving and cleaning fitness values.
|
||||
*/
|
||||
public abstract class AbstractSelProb implements InterfaceSelectionProbability, java.io.Serializable {
|
||||
public abstract class AbstractSelectionProbability implements InterfaceSelectionProbability, java.io.Serializable {
|
||||
|
||||
/**
|
||||
* This method allows you to make a deep clone of
|
@ -9,24 +9,24 @@ import eva2.util.annotation.Description;
|
||||
* invariant to any linear transition function.
|
||||
*/
|
||||
@Description("This is the Boltzman Normation.")
|
||||
public class SelProbBoltzman extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityBoltzman extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
private double q = 1.0;
|
||||
|
||||
public SelProbBoltzman() {
|
||||
public SelectionProbabilityBoltzman() {
|
||||
}
|
||||
|
||||
public SelProbBoltzman(double q) {
|
||||
public SelectionProbabilityBoltzman(double q) {
|
||||
this.q = q;
|
||||
}
|
||||
|
||||
public SelProbBoltzman(SelProbBoltzman a) {
|
||||
public SelectionProbabilityBoltzman(SelectionProbabilityBoltzman a) {
|
||||
this.q = a.q;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbBoltzman(this);
|
||||
return new SelectionProbabilityBoltzman(this);
|
||||
}
|
||||
|
||||
/**
|
@ -10,16 +10,16 @@ import eva2.util.annotation.Description;
|
||||
* Here we have the infamous fitness sharing method.
|
||||
*/
|
||||
@Description("This is a fitness sharing based normation method.")
|
||||
public class SelProbFitnessSharing extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityFitnessSharing extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
private InterfaceSelectionProbability basicNormationMethod = new SelProbStandard();
|
||||
private InterfaceSelectionProbability basicNormationMethod = new SelectionProbabilityStandard();
|
||||
private InterfaceDistanceMetric distanceMetric = new PhenotypeMetric();
|
||||
private double sharingDistance = 0.1;
|
||||
|
||||
public SelProbFitnessSharing() {
|
||||
public SelectionProbabilityFitnessSharing() {
|
||||
}
|
||||
|
||||
public SelProbFitnessSharing(SelProbFitnessSharing a) {
|
||||
public SelectionProbabilityFitnessSharing(SelectionProbabilityFitnessSharing a) {
|
||||
if (a.basicNormationMethod != null) {
|
||||
this.basicNormationMethod = (InterfaceSelectionProbability) a.basicNormationMethod.clone();
|
||||
}
|
||||
@ -31,7 +31,7 @@ public class SelProbFitnessSharing extends AbstractSelProb implements java.io.Se
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbFitnessSharing(this);
|
||||
return new SelectionProbabilityFitnessSharing(this);
|
||||
}
|
||||
|
||||
/**
|
@ -10,24 +10,24 @@ import eva2.util.annotation.Description;
|
||||
*
|
||||
*/
|
||||
@Description("This is a standard normation method inverted by maximum fitness.")
|
||||
public class SelProbInvertByMax extends AbstractSelProb {
|
||||
public class SelectionProbabilityInvertByMax extends AbstractSelectionProbability {
|
||||
|
||||
private double maxFit = 1.;
|
||||
|
||||
public SelProbInvertByMax() {
|
||||
public SelectionProbabilityInvertByMax() {
|
||||
}
|
||||
|
||||
public SelProbInvertByMax(double mF) {
|
||||
public SelectionProbabilityInvertByMax(double mF) {
|
||||
maxFit = mF;
|
||||
}
|
||||
|
||||
public SelProbInvertByMax(SelProbInvertByMax a) {
|
||||
public SelectionProbabilityInvertByMax(SelectionProbabilityInvertByMax a) {
|
||||
this.maxFit = a.maxFit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbInvertByMax(this);
|
||||
return new SelectionProbabilityInvertByMax(this);
|
||||
}
|
||||
|
||||
/**
|
@ -7,22 +7,22 @@ import eva2.util.annotation.Description;
|
||||
* A linear ranking method with offsets.
|
||||
*/
|
||||
@Description("This is linear ranking normation.")
|
||||
public class SelProbLinearRanking extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityLinearRanking extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
private double nappaPlus = 1.1;
|
||||
private double nappaMinus = 0.9;
|
||||
|
||||
public SelProbLinearRanking() {
|
||||
public SelectionProbabilityLinearRanking() {
|
||||
}
|
||||
|
||||
public SelProbLinearRanking(SelProbLinearRanking a) {
|
||||
public SelectionProbabilityLinearRanking(SelectionProbabilityLinearRanking a) {
|
||||
this.nappaPlus = a.nappaPlus;
|
||||
this.nappaMinus = a.nappaMinus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbLinearRanking(this);
|
||||
return new SelectionProbabilityLinearRanking(this);
|
||||
}
|
||||
|
||||
/**
|
@ -8,24 +8,24 @@ import eva2.util.annotation.Description;
|
||||
* the given optimization problem i guess.
|
||||
*/
|
||||
@Description("This is non-linear ranking normation.")
|
||||
public class SelProbNonLinearRanking extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityNonLinearRanking extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
private double c = 0.04;
|
||||
|
||||
public SelProbNonLinearRanking() {
|
||||
public SelectionProbabilityNonLinearRanking() {
|
||||
}
|
||||
|
||||
public SelProbNonLinearRanking(double theC) {
|
||||
public SelectionProbabilityNonLinearRanking(double theC) {
|
||||
this.c = theC;
|
||||
}
|
||||
|
||||
public SelProbNonLinearRanking(SelProbNonLinearRanking a) {
|
||||
public SelectionProbabilityNonLinearRanking(SelectionProbabilityNonLinearRanking a) {
|
||||
this.c = a.c;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbNonLinearRanking(this);
|
||||
return new SelectionProbabilityNonLinearRanking(this);
|
||||
}
|
||||
|
||||
/**
|
@ -8,17 +8,17 @@ import eva2.util.annotation.Description;
|
||||
* This truly scaling invariant.
|
||||
*/
|
||||
@Description("This is ranking normation.")
|
||||
public class SelProbRanking extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityRanking extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
public SelProbRanking() {
|
||||
public SelectionProbabilityRanking() {
|
||||
}
|
||||
|
||||
public SelProbRanking(SelProbRanking a) {
|
||||
public SelectionProbabilityRanking(SelectionProbabilityRanking a) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbRanking(this);
|
||||
return new SelectionProbabilityRanking(this);
|
||||
}
|
||||
|
||||
/**
|
@ -9,17 +9,17 @@ import eva2.util.annotation.Description;
|
||||
* p(i is selected) = exp(-fitness(i))/sum_j(exp(-fitness(j)))
|
||||
*/
|
||||
@Description("This is a standard normation method using the exp function.")
|
||||
public class SelProbStandard extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityStandard extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
public SelProbStandard() {
|
||||
public SelectionProbabilityStandard() {
|
||||
}
|
||||
|
||||
public SelProbStandard(SelProbStandard a) {
|
||||
public SelectionProbabilityStandard(SelectionProbabilityStandard a) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbStandard(this);
|
||||
return new SelectionProbabilityStandard(this);
|
||||
}
|
||||
|
||||
/**
|
@ -7,24 +7,24 @@ import eva2.util.annotation.Description;
|
||||
* A simple sum with a scaling factor.
|
||||
*/
|
||||
@Description("This is a standard normation method with scaling.")
|
||||
public class SelProbStandardScaling extends AbstractSelProb implements java.io.Serializable {
|
||||
public class SelectionProbabilityStandardScaling extends AbstractSelectionProbability implements java.io.Serializable {
|
||||
|
||||
private double Q = 0;
|
||||
|
||||
public SelProbStandardScaling() {
|
||||
public SelectionProbabilityStandardScaling() {
|
||||
}
|
||||
|
||||
public SelProbStandardScaling(double q) {
|
||||
public SelectionProbabilityStandardScaling(double q) {
|
||||
Q = q;
|
||||
}
|
||||
|
||||
public SelProbStandardScaling(SelProbStandardScaling a) {
|
||||
public SelectionProbabilityStandardScaling(SelectionProbabilityStandardScaling a) {
|
||||
this.Q = a.Q;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new SelProbStandardScaling(this);
|
||||
return new SelectionProbabilityStandardScaling(this);
|
||||
}
|
||||
|
||||
/**
|
@ -7,7 +7,7 @@ import eva2.optimization.operator.distancemetric.EuclideanMetric;
|
||||
import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric;
|
||||
import eva2.optimization.operator.distancemetric.PhenotypeMetric;
|
||||
import eva2.optimization.operator.postprocess.PostProcess;
|
||||
import eva2.optimization.operator.selection.probability.AbstractSelProb;
|
||||
import eva2.optimization.operator.selection.probability.AbstractSelectionProbability;
|
||||
import eva2.tools.EVAERROR;
|
||||
import eva2.tools.Pair;
|
||||
import eva2.tools.Serializer;
|
||||
@ -2143,7 +2143,7 @@ public class Population extends ArrayList<AbstractEAIndividual> implements Popul
|
||||
* @param criterion
|
||||
* @return
|
||||
*/
|
||||
public double[] getCenterWeighted(AbstractSelProb selProb, int criterion, boolean obeyConst) {
|
||||
public double[] getCenterWeighted(AbstractSelectionProbability selProb, int criterion, boolean obeyConst) {
|
||||
selProb.computeSelectionProbability(this, "Fitness", obeyConst);
|
||||
double[] mean = AbstractEAIndividual.getDoublePosition(getEAIndividual(0));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user