public class org.apache.commons.math.genetics.GeneticAlgorithm extends java.lang.Object
{
private static org.apache.commons.math.random.RandomGenerator randomGenerator;
private final org.apache.commons.math.genetics.CrossoverPolicy crossoverPolicy;
private final double crossoverRate;
private final org.apache.commons.math.genetics.MutationPolicy mutationPolicy;
private final double mutationRate;
private final org.apache.commons.math.genetics.SelectionPolicy selectionPolicy;
private int generationsEvolved;
public void <init>(org.apache.commons.math.genetics.CrossoverPolicy, double, org.apache.commons.math.genetics.MutationPolicy, double, org.apache.commons.math.genetics.SelectionPolicy) throws org.apache.commons.math.exception.OutOfRangeException
{
java.lang.Double v, v;
org.apache.commons.math.genetics.MutationPolicy v;
org.apache.commons.math.genetics.GeneticAlgorithm v;
java.lang.Integer v, v, v, v;
org.apache.commons.math.exception.OutOfRangeException v, v;
byte v, v, v, v;
double v, v;
org.apache.commons.math.exception.util.LocalizedFormats v, v;
org.apache.commons.math.genetics.SelectionPolicy v;
org.apache.commons.math.genetics.CrossoverPolicy v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v := @parameter: org.apache.commons.math.genetics.CrossoverPolicy;
v := @parameter: double;
v := @parameter: org.apache.commons.math.genetics.MutationPolicy;
v := @parameter: double;
v := @parameter: org.apache.commons.math.genetics.SelectionPolicy;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.commons.math.genetics.GeneticAlgorithm: int generationsEvolved> = 0;
v = v cmpg 0.0;
if v < 0 goto label;
v = v cmpl 1.0;
if v <= 0 goto label;
label:
v = new org.apache.commons.math.exception.OutOfRangeException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats CROSSOVER_RATE>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.apache.commons.math.exception.OutOfRangeException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,java.lang.Number)>(v, v, v, v);
throw v;
label:
v = v cmpg 0.0;
if v < 0 goto label;
v = v cmpl 1.0;
if v <= 0 goto label;
label:
v = new org.apache.commons.math.exception.OutOfRangeException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats MUTATION_RATE>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.apache.commons.math.exception.OutOfRangeException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,java.lang.Number)>(v, v, v, v);
throw v;
label:
v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.CrossoverPolicy crossoverPolicy> = v;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: double crossoverRate> = v;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.MutationPolicy mutationPolicy> = v;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: double mutationRate> = v;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.SelectionPolicy selectionPolicy> = v;
return;
}
public static synchronized void setRandomGenerator(org.apache.commons.math.random.RandomGenerator)
{
org.apache.commons.math.random.RandomGenerator v;
v := @parameter: org.apache.commons.math.random.RandomGenerator;
<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.random.RandomGenerator randomGenerator> = v;
return;
}
public static synchronized org.apache.commons.math.random.RandomGenerator getRandomGenerator()
{
org.apache.commons.math.random.RandomGenerator v;
v = <org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.random.RandomGenerator randomGenerator>;
return v;
}
public org.apache.commons.math.genetics.Population evolve(org.apache.commons.math.genetics.Population, org.apache.commons.math.genetics.StoppingCondition)
{
org.apache.commons.math.genetics.StoppingCondition v;
int v, v;
org.apache.commons.math.genetics.GeneticAlgorithm v;
org.apache.commons.math.genetics.Population v, v;
boolean v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v := @parameter: org.apache.commons.math.genetics.Population;
v := @parameter: org.apache.commons.math.genetics.StoppingCondition;
v = v;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: int generationsEvolved> = 0;
label:
v = interfaceinvoke v.<org.apache.commons.math.genetics.StoppingCondition: boolean isSatisfied(org.apache.commons.math.genetics.Population)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.Population nextGeneration(org.apache.commons.math.genetics.Population)>(v);
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: int generationsEvolved>;
v = v + 1;
v.<org.apache.commons.math.genetics.GeneticAlgorithm: int generationsEvolved> = v;
goto label;
label:
return v;
}
public org.apache.commons.math.genetics.Population nextGeneration(org.apache.commons.math.genetics.Population)
{
org.apache.commons.math.genetics.MutationPolicy v, v;
org.apache.commons.math.genetics.GeneticAlgorithm v;
org.apache.commons.math.genetics.ChromosomePair v, v;
org.apache.commons.math.genetics.Chromosome v, v, v, v, v, v, v, v;
byte v, v;
int v, v, v, v;
double v, v, v, v;
org.apache.commons.math.random.RandomGenerator v;
org.apache.commons.math.genetics.SelectionPolicy v;
org.apache.commons.math.genetics.Population v, v;
org.apache.commons.math.genetics.CrossoverPolicy v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v := @parameter: org.apache.commons.math.genetics.Population;
v = interfaceinvoke v.<org.apache.commons.math.genetics.Population: org.apache.commons.math.genetics.Population nextGeneration()>();
v = staticinvoke <org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.random.RandomGenerator getRandomGenerator()>();
label:
v = interfaceinvoke v.<org.apache.commons.math.genetics.Population: int getPopulationSize()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.Population: int getPopulationLimit()>();
if v >= v goto label;
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.SelectionPolicy getSelectionPolicy()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.SelectionPolicy: org.apache.commons.math.genetics.ChromosomePair select(org.apache.commons.math.genetics.Population)>(v);
v = interfaceinvoke v.<org.apache.commons.math.random.RandomGenerator: double nextDouble()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: double getCrossoverRate()>();
v = v cmpg v;
if v >= 0 goto label;
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.CrossoverPolicy getCrossoverPolicy()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getFirst()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getSecond()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.CrossoverPolicy: org.apache.commons.math.genetics.ChromosomePair crossover(org.apache.commons.math.genetics.Chromosome,org.apache.commons.math.genetics.Chromosome)>(v, v);
label:
v = interfaceinvoke v.<org.apache.commons.math.random.RandomGenerator: double nextDouble()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: double getMutationRate()>();
v = v cmpg v;
if v >= 0 goto label;
v = new org.apache.commons.math.genetics.ChromosomePair;
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.MutationPolicy getMutationPolicy()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getFirst()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.MutationPolicy: org.apache.commons.math.genetics.Chromosome mutate(org.apache.commons.math.genetics.Chromosome)>(v);
v = virtualinvoke v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.MutationPolicy getMutationPolicy()>();
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getSecond()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.MutationPolicy: org.apache.commons.math.genetics.Chromosome mutate(org.apache.commons.math.genetics.Chromosome)>(v);
specialinvoke v.<org.apache.commons.math.genetics.ChromosomePair: void <init>(org.apache.commons.math.genetics.Chromosome,org.apache.commons.math.genetics.Chromosome)>(v, v);
v = v;
label:
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getFirst()>();
interfaceinvoke v.<org.apache.commons.math.genetics.Population: void addChromosome(org.apache.commons.math.genetics.Chromosome)>(v);
v = interfaceinvoke v.<org.apache.commons.math.genetics.Population: int getPopulationSize()>();
v = interfaceinvoke v.<org.apache.commons.math.genetics.Population: int getPopulationLimit()>();
if v >= v goto label;
v = virtualinvoke v.<org.apache.commons.math.genetics.ChromosomePair: org.apache.commons.math.genetics.Chromosome getSecond()>();
interfaceinvoke v.<org.apache.commons.math.genetics.Population: void addChromosome(org.apache.commons.math.genetics.Chromosome)>(v);
goto label;
label:
return v;
}
public org.apache.commons.math.genetics.CrossoverPolicy getCrossoverPolicy()
{
org.apache.commons.math.genetics.GeneticAlgorithm v;
org.apache.commons.math.genetics.CrossoverPolicy v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.CrossoverPolicy crossoverPolicy>;
return v;
}
public double getCrossoverRate()
{
org.apache.commons.math.genetics.GeneticAlgorithm v;
double v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: double crossoverRate>;
return v;
}
public org.apache.commons.math.genetics.MutationPolicy getMutationPolicy()
{
org.apache.commons.math.genetics.GeneticAlgorithm v;
org.apache.commons.math.genetics.MutationPolicy v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.MutationPolicy mutationPolicy>;
return v;
}
public double getMutationRate()
{
org.apache.commons.math.genetics.GeneticAlgorithm v;
double v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: double mutationRate>;
return v;
}
public org.apache.commons.math.genetics.SelectionPolicy getSelectionPolicy()
{
org.apache.commons.math.genetics.GeneticAlgorithm v;
org.apache.commons.math.genetics.SelectionPolicy v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.genetics.SelectionPolicy selectionPolicy>;
return v;
}
public int getGenerationsEvolved()
{
int v;
org.apache.commons.math.genetics.GeneticAlgorithm v;
v := @this: org.apache.commons.math.genetics.GeneticAlgorithm;
v = v.<org.apache.commons.math.genetics.GeneticAlgorithm: int generationsEvolved>;
return v;
}
static void <clinit>()
{
org.apache.commons.math.random.JDKRandomGenerator v;
v = new org.apache.commons.math.random.JDKRandomGenerator;
specialinvoke v.<org.apache.commons.math.random.JDKRandomGenerator: void <init>()>();
<org.apache.commons.math.genetics.GeneticAlgorithm: org.apache.commons.math.random.RandomGenerator randomGenerator> = v;
return;
}
}