MatlabProblem provides terminators.

This commit is contained in:
Marcel Kronfeld 2010-11-11 13:27:11 +00:00
parent 68c25a6c53
commit 023bea7ee2

View File

@ -17,6 +17,11 @@ import eva2.server.go.individuals.InterfaceDataTypeInteger;
import eva2.server.go.operators.postprocess.InterfacePostProcessParams;
import eva2.server.go.operators.postprocess.PostProcess;
import eva2.server.go.operators.postprocess.PostProcessParams;
import eva2.server.go.operators.terminators.FitnessConvergenceTerminator;
import eva2.server.go.operators.terminators.PhenotypeConvergenceTerminator;
import eva2.server.go.operators.terminators.PopulationMeasureTerminator.ChangeTypeEnum;
import eva2.server.go.operators.terminators.PopulationMeasureTerminator.DirectionTypeEnum;
import eva2.server.go.operators.terminators.PopulationMeasureTerminator.StagnationTypeEnum;
import eva2.server.go.populations.Population;
import eva2.server.go.strategies.InterfaceOptimizer;
import eva2.server.stat.InterfaceTextListener;
@ -123,6 +128,16 @@ public class MatlabProblem extends AbstractOptimizationProblem implements Interf
init(this.problemDimension, range, initialRange, defTestOut);
}
public static FitnessConvergenceTerminator makeFitConvTerm(double thresh, int stagnPeriod) {
FitnessConvergenceTerminator fct = new FitnessConvergenceTerminator(thresh, stagnPeriod, StagnationTypeEnum.fitnessCallBased, ChangeTypeEnum.absoluteValue, DirectionTypeEnum.decrease);
return fct;
}
public static PhenotypeConvergenceTerminator makePhenConvTerm(double thresh, int stagnPeriod) {
PhenotypeConvergenceTerminator pct = new PhenotypeConvergenceTerminator(thresh, stagnPeriod, StagnationTypeEnum.fitnessCallBased, ChangeTypeEnum.absoluteValue, DirectionTypeEnum.decrease);
return pct;
}
/**
* Make deep clones for the ranges, or there may be deadlocks in communicating with Matlab!
*