本文整理汇总了Java中org.uma.jmetal.util.pseudorandom.JMetalRandom.setRandomGenerator方法的典型用法代码示例。如果您正苦于以下问题:Java JMetalRandom.setRandomGenerator方法的具体用法?Java JMetalRandom.setRandomGenerator怎么用?Java JMetalRandom.setRandomGenerator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.uma.jmetal.util.pseudorandom.JMetalRandom
的用法示例。
在下文中一共展示了JMetalRandom.setRandomGenerator方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
int solutionListSize = 3;
int numberOfRandomNeighbours = 1;
// 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 AdaptiveRandomNeighborhood<>(solutionListSize, numberOfRandomNeighbours);
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 AdaptiveRandomNeighborhood<>(solutionListSize, numberOfRandomNeighbours, (a, b) -> {
customUses[0]++;
return new Random().nextInt(b-a+1)+a;
});
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例2: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvidedInRouletteWheel
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvidedInRouletteWheel() {
// Configuration
AdaptiveGrid<Solution<?>> grid = new AdaptiveGrid<>(5, 2);
// 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]++);
grid.rouletteWheel();
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] customUses = { 0 };
grid.rouletteWheel((a,b) -> {
customUses[0]++;
return new Random().nextDouble()*(b-a)+a;
});
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例3: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
double lowerBound = -1.0;
double upperBound = 1.0;
int value = 4;
// 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 RepairDoubleSolutionAtRandom().repairSolutionVariableValue(value, lowerBound, upperBound);
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 RepairDoubleSolutionAtRandom((a, b) -> {
customUses[0]++;
return new Random().nextDouble()*(b-a)+a;
}).repairSolutionVariableValue(value, lowerBound, upperBound);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例4: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
List<DoubleSolution> solutions = Arrays.asList(mock(DoubleSolution.class), mock(DoubleSolution.class),
mock(DoubleSolution.class), mock(DoubleSolution.class));
// 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]++);
DifferentialEvolutionSelection selection = new DifferentialEvolutionSelection();
selection.setIndex(1);
selection.execute(solutions);
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
solutions = Arrays.asList(mock(DoubleSolution.class), mock(DoubleSolution.class),
mock(DoubleSolution.class), mock(DoubleSolution.class));
defaultUses[0] = 0;
final int[] customUses = { 0 };
selection = new DifferentialEvolutionSelection((a, b) -> {
customUses[0]++;
return new Random().nextInt(b+1-a)+a;
});
selection.setIndex(1);
selection.execute(solutions);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例5: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的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);
}
示例6: testJMetalRandomGeneratorNotUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void testJMetalRandomGeneratorNotUsedWhenCustomRandomGeneratorProvided() {
// Configuration
@SuppressWarnings("serial")
BinaryProblem problem = new AbstractBinaryProblem() {
@Override
public void evaluate(BinarySolution solution) {
// Do nothing
}
@Override
protected int getBitsPerVariable(int index) {
return 5;
}
};
List<BinarySolution> parents = new LinkedList<>();
parents.add(problem.createSolution());
parents.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 HUXCrossover(0.5).execute(parents);
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 HUXCrossover(0.5, () -> {
customUses[0]++;
return new Random().nextDouble();
}).execute(parents);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例7: testJMetalRandomGeneratorNotUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void testJMetalRandomGeneratorNotUsedWhenCustomRandomGeneratorProvided() {
// Configuration
@SuppressWarnings("serial")
IntegerProblem problem = new AbstractIntegerProblem() {
@Override
public void evaluate(IntegerSolution solution) {
// Do nothing
}
};
List<IntegerSolution> parents = new LinkedList<>();
parents.add(problem.createSolution());
parents.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 IntegerSBXCrossover(0.5, 0.5).execute(parents);
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 IntegerSBXCrossover(0.5, 0.5, () -> {
customUses[0]++;
return new Random().nextDouble();
}).execute(parents);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例8: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的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);
}
示例9: AuditableRandomGenerator
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvidedInSelectNRandomDifferentSolutions() {
// Configuration
List<BinarySolution> solutions = new LinkedList<>();
solutions.add(mock(BinarySolution.class));
solutions.add(mock(BinarySolution.class));
solutions.add(mock(BinarySolution.class));
solutions.add(mock(BinarySolution.class));
solutions.add(mock(BinarySolution.class));
solutions.add(mock(BinarySolution.class));
// 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]++);
SolutionListUtils.selectNRandomDifferentSolutions(3, 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 };
SolutionListUtils.selectNRandomDifferentSolutions(3, solutions, (a, b) -> {
customUses[0]++;
return new Random().nextInt(b+1-a)+a;
});
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例10: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvidedInRandomOccupiedHypercube
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvidedInRandomOccupiedHypercube() {
// Configuration
AdaptiveGrid<Solution<?>> grid = new AdaptiveGrid<>(5, 2);
int[] hypercubes = new int[1024];
for (int i : hypercubes) {
hypercubes[i] = 0;
}
hypercubes[0] = 1;
hypercubes[1] = 3;
hypercubes[3] = 5;
ReflectionTestUtils.setField(grid, "hypercubes", hypercubes);
grid.calculateOccupied();
// 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]++);
grid.randomOccupiedHypercube();
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] customUses = { 0 };
grid.randomOccupiedHypercube((a,b) -> {
customUses[0]++;
return new Random().nextInt(b+1-a)+a;
});
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator", customUses[0] > 0);
}
示例11: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
double crossoverProbability = 1.0;
@SuppressWarnings("serial")
PermutationProblem<PermutationSolution<Integer>> problem = new AbstractIntegerPermutationProblem() {
@Override
public void evaluate(PermutationSolution<Integer> solution) {
// Do nothing
}
@Override
public int getNumberOfVariables() {
return 10;
}
@Override
public int getPermutationLength() {
return 10;
}
};
List<PermutationSolution<Integer>> parentSolutions = new LinkedList<>();
parentSolutions.add(problem.createSolution());
parentSolutions.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]++);
PMXCrossover crossover1 = new PMXCrossover(crossoverProbability);
crossover1.execute(parentSolutions);
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] custom1Uses = { 0 };
final int[] custom2Uses = { 0 };
PMXCrossover crossover2 = new PMXCrossover(crossoverProbability, () -> {
custom1Uses[0]++;
return new Random().nextDouble();
}, (a, b) -> {
custom2Uses[0]++;
return new Random().nextInt(b - a + 1) + a;
});
crossover2.execute(parentSolutions);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator 1", custom1Uses[0] > 0);
assertTrue("No use of the custom generator 2", custom2Uses[0] > 0);
}
示例12: shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided
import org.uma.jmetal.util.pseudorandom.JMetalRandom; //导入方法依赖的package包/类
@Test
public void shouldJMetalRandomGeneratorNotBeUsedWhenCustomRandomGeneratorProvided() {
// Configuration
double crossoverProbability = 1.0;
@SuppressWarnings("serial")
BinaryProblem problem = new AbstractBinaryProblem() {
@Override
public void evaluate(BinarySolution solution) {
// Do nothing
}
@Override
protected int getBitsPerVariable(int index) {
return 5;
}
@Override
public int getNumberOfVariables() {
return 5;
}
};
List<BinarySolution> parentSolutions = new LinkedList<>();
parentSolutions.add(problem.createSolution());
parentSolutions.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]++);
SinglePointCrossover crossover1 = new SinglePointCrossover(crossoverProbability);
crossover1.execute(parentSolutions);
assertTrue("No use of the default generator", defaultUses[0] > 0);
// Test same configuration uses custom generator instead
defaultUses[0] = 0;
final int[] custom1Uses = { 0 };
final int[] custom2Uses = { 0 };
SinglePointCrossover crossover2 = new SinglePointCrossover(crossoverProbability, () -> {
custom1Uses[0]++;
return new Random().nextDouble();
}, (a, b) -> {
custom2Uses[0]++;
return new Random().nextInt(b - a + 1) + a;
});
crossover2.execute(parentSolutions);
assertTrue("Default random generator used", defaultUses[0] == 0);
assertTrue("No use of the custom generator 1", custom1Uses[0] > 0);
assertTrue("No use of the custom generator 2", custom2Uses[0] > 0);
}