当前位置: 首页>>代码示例>>Java>>正文


Java JMetalRandom.setRandomGenerator方法代码示例

本文整理汇总了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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:27,代码来源:AdaptiveRandomNeighborhoodTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:26,代码来源:AdaptiveGridTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:28,代码来源:RepairDoubleSolutionAtRandomTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:34,代码来源:DifferentialEvolutionSelectionTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:40,代码来源:SBXCrossoverTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:41,代码来源:HUXCrossoverTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:37,代码来源:IntegerSBXCrossoverTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:40,代码来源:BLXAlphaCrossoverTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:32,代码来源:SolutionListUtilsTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:35,代码来源:AdaptiveGridTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:55,代码来源:PMXCrossoverTest.java

示例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);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:55,代码来源:SinglePointCrossoverTest.java


注:本文中的org.uma.jmetal.util.pseudorandom.JMetalRandom.setRandomGenerator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。