Example usage for org.apache.commons.math3.genetics Chromosome toString

List of usage examples for org.apache.commons.math3.genetics Chromosome toString

Introduction

In this page you can find the example usage for org.apache.commons.math3.genetics Chromosome toString.

Prototype

public String toString() 

Source Link

Document

Returns a string representation of the object.

Usage

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  . jav  a  2s.  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: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;/*w  w w .j a v  a2 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);
}