本文整理匯總了Java中org.uma.jmetal.problem.impl.AbstractDoubleProblem類的典型用法代碼示例。如果您正苦於以下問題:Java AbstractDoubleProblem類的具體用法?Java AbstractDoubleProblem怎麽用?Java AbstractDoubleProblem使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
AbstractDoubleProblem類屬於org.uma.jmetal.problem.impl包,在下文中一共展示了AbstractDoubleProblem類的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.problem.impl.AbstractDoubleProblem; //導入依賴的package包/類
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
double crossoverProbability = 0.1;
int alpha = 20;
RepairDoubleSolutionAtBounds solutionRepair = new RepairDoubleSolutionAtBounds();
@SuppressWarnings("serial")
DoubleProblem problem = new AbstractDoubleProblem() {
@Override
public void evaluate(DoubleSolution solution) {
// Do nothing
}
};
List<DoubleSolution> solutions = new LinkedList<>();
solutions.add(problem.createSolution());
solutions.add(problem.createSolution());
// Check configuration leads to use default generator by default
final int[] defaultUses = { 0 };
JMetalRandom defaultGenerator = JMetalRandom.getInstance();
AuditableRandomGenerator auditor = new AuditableRandomGenerator(defaultGenerator.getRandomGenerator());
defaultGenerator.setRandomGenerator(auditor);
auditor.addListener((a) -> defaultUses[0]++);
new SBXCrossover(crossoverProbability, alpha, solutionRepair).execute(solutions);
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] customUses = { 0 };
new SBXCrossover(crossoverProbability, alpha, solutionRepair, () -> {
customUses[0]++;
return new Random().nextDouble();
}).execute(solutions);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例2: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.problem.impl.AbstractDoubleProblem; //導入依賴的package包/類
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
double crossoverProbability = 0.1;
int alpha = 20;
RepairDoubleSolutionAtBounds solutionRepair = new RepairDoubleSolutionAtBounds();
@SuppressWarnings("serial")
DoubleProblem problem = new AbstractDoubleProblem() {
@Override
public void evaluate(DoubleSolution solution) {
// Do nothing
}
};
List<DoubleSolution> solutions = new LinkedList<>();
solutions.add(problem.createSolution());
solutions.add(problem.createSolution());
// Check configuration leads to use default generator by default
final int[] defaultUses = { 0 };
JMetalRandom defaultGenerator = JMetalRandom.getInstance();
AuditableRandomGenerator auditor = new AuditableRandomGenerator(defaultGenerator.getRandomGenerator());
defaultGenerator.setRandomGenerator(auditor);
auditor.addListener((a) -> defaultUses[0]++);
new BLXAlphaCrossover(crossoverProbability, alpha, solutionRepair).execute(solutions);
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] customUses = { 0 };
new BLXAlphaCrossover(crossoverProbability, alpha, solutionRepair, () -> {
customUses[0]++;
return new Random().nextDouble();
}).execute(solutions);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}