List of usage examples for org.apache.commons.math3.genetics TournamentSelection TournamentSelection
public TournamentSelection(final int arity)
From source file:it.units.malelab.sse.Main.java
public static void main(String[] args) throws IOException { Random random = new Random(1); VirtualMachine vm = new VirtualMachine(4, 4, 400); List<Map<Boolean, List<String>>> datasets = new ArrayList<>(); datasets.add(Util.loadStrings("/home/eric/Documenti/esperimenti/datasets/Bills-Date.txt", random)); datasets.add(Util.loadStrings("/home/eric/Documenti/esperimenti/datasets/Log-IP.txt", random)); datasets.add(Util.loadStrings("/home/eric/Documenti/esperimenti/datasets/Twitter-URL.txt", random)); Evaluator evaluator = new Evaluator(vm, datasets, 1, 10); MyGeneticAlgorithm ga = new MyGeneticAlgorithm(new OnePointCrossover<Integer>(), 0.2, new BinaryMutation(), 0.6, new TournamentSelection(10), evaluator); MyGeneticAlgorithm.setRandomGenerator(new JDKRandomGenerator(1)); List<Chromosome> chromosomes = new ArrayList<>(); for (int i = 0; i < 2000; i++) { chromosomes.add(new OperationsChromosome(evaluator)); }/* ww w . j a va 2s . co m*/ Population population = new ElitisticListPopulation(chromosomes, chromosomes.size(), 0.99); Population finalPopulation = ga.evolve(population, new FixedGenerationCount(10000)); List<Operation> operations = ((OperationsChromosome) finalPopulation.getFittestChromosome()) .getOperations(); for (int i = 0; i < operations.size(); i++) { System.out.printf("%4d: %s\n", i, operations.get(i)); } }
From source file:com.dlej.Main.java
public static void main(String[] args) { long startTime = System.currentTimeMillis(); // initialize a new genetic algorithm GeneticAlgorithm ga = new GeneticAlgorithm(new OnePointCrossover<Character>(), CROSSOVER_RATE, new RandomCharacterMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); // initial population Population initial = getInitialPopulation(); // stopping condition StoppingCondition stoppingCondition = new StoppingCondition() { int generation = 0; @Override//from w w w . j av a 2 s. co m public boolean isSatisfied(Population population) { Chromosome fittestChromosome = population.getFittestChromosome(); if (generation == 1 || generation % 10 == 0) { System.out.println("Generation " + generation + ": " + fittestChromosome.toString()); } generation++; double fitness = fittestChromosome.fitness(); if (Precision.equals(fitness, 0.0, 1e-6)) { return true; } else { return false; } } }; System.out.println("Starting evolution ..."); // run the algorithm Population finalPopulation = ga.evolve(initial, stoppingCondition); // Get the end time for the simulation. long endTime = System.currentTimeMillis(); // best chromosome from the final population Chromosome best = finalPopulation.getFittestChromosome(); System.out.println("Generation " + ga.getGenerationsEvolved() + ": " + best.toString()); System.out.println("Total execution time: " + (endTime - startTime) + "ms"); }
From source file:ga.GeneticAlgorithmTestBinary.java
@Test public void test() { // to test a stochastic algorithm is hard, so this will rather be an usage example // initialize a new genetic algorithm GeneticAlgorithm ga = new StatisticGeneticAlgorithm(new OnePointCrossover<Integer>(), CROSSOVER_RATE, // all selected chromosomes will be recombined (=crosssover) new BinaryMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); Assert.assertEquals(0, ga.getGenerationsEvolved()); // initial population Population initial = randomPopulation(); // stopping conditions StoppingCondition stopCond = new FixedGenerationCount(NUM_GENERATIONS); // best initial chromosome Chromosome bestInitial = initial.getFittestChromosome(); // run the algorithm Population finalPopulation = ga.evolve(initial, stopCond); // best chromosome from the final population Chromosome bestFinal = finalPopulation.getFittestChromosome(); // the only thing we can test is whether the final solution is not worse than the initial // one/*www. java 2s .com*/ // however, for some implementations of GA, this need not be true :) Assert.assertTrue(bestFinal.compareTo(bestInitial) > 0); Assert.assertEquals(NUM_GENERATIONS, ga.getGenerationsEvolved()); System.out.println(bestFinal); }
From source file:p.lodz.playground.ApacheGeneticsTest.java
@Test public void test() { // to test a stochastic algorithm is hard, so this will rather be an // usage example // initialize a new genetic algorithm GeneticAlgorithm ga = new GeneticAlgorithm(new OnePointCrossover<Integer>(), CROSSOVER_RATE, // all // selected // chromosomes // will be // recombined // (=crosssover) new BinaryMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); Assert.assertEquals(0, ga.getGenerationsEvolved()); // initial population Population initial = randomPopulation(); // stopping conditions StoppingCondition stopCond = new FixedGenerationCount(NUM_GENERATIONS); // best initial chromosome Chromosome bestInitial = initial.getFittestChromosome(); // run the algorithm Population finalPopulation = ga.evolve(initial, stopCond); // best chromosome from the final population Chromosome bestFinal = finalPopulation.getFittestChromosome(); // the only thing we can test is whether the final solution is not worse // than the initial one // however, for some implementations of GA, this need not be true :) Assert.assertTrue(bestFinal.compareTo(bestInitial) > 0); Assert.assertEquals(NUM_GENERATIONS, ga.getGenerationsEvolved()); System.out.println(bestFinal); }
From source file:tmp.GACombGraphMoore.java
public static void main(String... args) { // to test a stochastic algorithm is hard, so this will rather be an usage example // initialize a new genetic algorithm GeneticAlgorithm ga = new GeneticAlgorithm(new OnePointCrossover<Integer>(), CROSSOVER_RATE, new RandomKeyMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); // initial population Population initial = randomPopulation(args); System.out.println("Initial population:"); System.out.println(initial.getFittestChromosome()); long lastime = System.currentTimeMillis(); // stopping conditions StoppingCondition stopCond = new FixedGenerationCount(NUM_GENERATIONS); // best initial chromosome Chromosome bestInitial = initial.getFittestChromosome(); // run the algorithm // Population finalPopulation = ga.evolve(initial, stopCond); double bestfit = initial.getFittestChromosome().fitness(); Population current = initial;//ww w. j a v a2 s . c om int generationsEvolved = 0; // while (!stopCond.isSatisfied(current)) { while (bestfit != 0.0) { current = ga.nextGeneration(current); generationsEvolved++; Chromosome bestFinal = current.getFittestChromosome(); // System.out.print(bestFinal); double atualfit = bestFinal.getFitness(); if (atualfit > bestfit || System.currentTimeMillis() - lastime > HOUR) { bestfit = atualfit; // String strbest = generationsEvolved + "-f=" + atualfit + "-" + ((MinPermutations) bestFinal).decode(sequence).toString().replaceAll(" ", "") + "\n"; String strbest = generationsEvolved + "-f=" + atualfit; // UtilTmp.dumpString(strbest); System.out.println(strbest); // strbest = bestFinal.toString(); // UtilTmp.dumpString(strbest); System.out.println(strbest); // System.out.println(); lastime = System.currentTimeMillis(); } } // best chromosome from the final population Chromosome bestFinal = current.getFittestChromosome(); System.out.println("Best initial:"); System.out.println(bestInitial); System.out.println(((MinPermutations) bestInitial).decode(sequence)); System.out.println("Best result:"); System.out.println(bestFinal); System.out.println(((MinPermutations) bestFinal).decode(sequence)); // the only thing we can test is whether the final solution is not worse than the initial one // however, for some implementations of GA, this need not be true :) // Assert.assertTrue(bestFinal.compareTo(bestInitial) > 0); //System.out.println(bestInitial); //System.out.println(bestFinal); }
From source file:tmp.GACombPermutation.java
public static void main(String... args) { // to test a stochastic algorithm is hard, so this will rather be an usage example // initialize a new genetic algorithm GeneticAlgorithm ga = new GeneticAlgorithm(new OnePointCrossover<Integer>(), CROSSOVER_RATE, new RandomKeyMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); // initial population Population initial = randomPopulation(args); System.out.print("Graph e-"); System.out.print(graph.getEdgeCount()); System.out.print(" Subgraph e-"); System.out.println(subgraph.getEdgeCount()); System.out.println("Initial population:"); System.out.println(initial.getFittestChromosome()); long lastime = System.currentTimeMillis(); // stopping conditions StoppingCondition stopCond = new FixedGenerationCount(NUM_GENERATIONS); // best initial chromosome Chromosome bestInitial = initial.getFittestChromosome(); // run the algorithm // Population finalPopulation = ga.evolve(initial, stopCond); double bestfit = initial.getFittestChromosome().fitness(); Population current = initial;//from ww w . ja v a 2 s . c o m int generationsEvolved = 0; // while (!stopCond.isSatisfied(current)) { while (bestfit != 0.0) { current = ga.nextGeneration(current); generationsEvolved++; Chromosome bestFinal = current.getFittestChromosome(); // System.out.print(bestFinal); double atualfit = bestFinal.getFitness(); if (atualfit > bestfit || System.currentTimeMillis() - lastime > UtilTmp.ALERT_HOUR) { lastime = System.currentTimeMillis(); System.out.print(generationsEvolved); System.out.print("-"); bestfit = atualfit; String strbest = bestFinal.toString() + "\n"; UtilTmp.dumpString(strbest); System.out.print(strbest); System.out.println(); } } // best chromosome from the final population Chromosome bestFinal = current.getFittestChromosome(); System.out.println("Best result:"); System.out.println(bestFinal); // the only thing we can test is whether the final solution is not worse than the initial one // however, for some implementations of GA, this need not be true :) // Assert.assertTrue(bestFinal.compareTo(bestInitial) > 0); //System.out.println(bestInitial); //System.out.println(bestFinal); }
From source file:tmp.GeneticAlgorithmTestPermutations.java
@Test public void test() { // to test a stochastic algorithm is hard, so this will rather be an usage example // initialize a new genetic algorithm GeneticAlgorithm ga = new GeneticAlgorithm(new OnePointCrossover<Integer>(), CROSSOVER_RATE, new RandomKeyMutation(), MUTATION_RATE, new TournamentSelection(TOURNAMENT_ARITY)); // initial population Population initial = randomPopulation(); System.out.print("Initial population"); System.out.println(initial.getFittestChromosome()); // stopping conditions StoppingCondition stopCond = new FixedGenerationCount(NUM_GENERATIONS); // best initial chromosome Chromosome bestInitial = initial.getFittestChromosome(); // run the algorithm Population finalPopulation = ga.evolve(initial, stopCond); // best chromosome from the final population Chromosome bestFinal = finalPopulation.getFittestChromosome(); System.out.print("Best result: "); System.out.println(bestFinal); // the only thing we can test is whether the final solution is not worse than the initial one // however, for some implementations of GA, this need not be true :) Assert.assertTrue(bestFinal.compareTo(bestInitial) > 0); //System.out.println(bestInitial); //System.out.println(bestFinal); }