public KnapsackGA(CBinaryKnapsackEvaluation evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize, EffectType effType, int?seed) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { this.seed = seed; effectType = effType; }
public GAStallDetection(IEvaluation<Element> evaluation, AStopCondition stopCondition, AGenerator<Element> generator, ASelection selection, ACrossover crossover, IMutation<Element> mutation, int populationSize, int maxNoChangeDetections) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { MaxNCD = maxNoChangeDetections; }
public GeneticAlgorithm(IEvaluation <Element, Tuple <double, double> > evaluation, IStopCondition stopCondition, AGenerator <Element> generator, ASelection <Tuple <double, double> > selection, ACrossover crossover, IMutation <Element> mutation, int populationSize, int?seed = null) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize, new OptimizationState <Element>(evaluation.tMaxValue, evaluation.lOptimalParetoFront), seed) { }
public ResettingGA(IEvaluation <Element> evaluation, AStopCondition stopCondition, AGenerator <Element> generator, ASelection selection, ACrossover crossover, IMutation <Element> mutation, int populationSize, int patience, int?seed = null) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { this.patience = patience; rng = seed.HasValue ? new Random(seed.Value) : new Random(); }
public DSMGA(IEvaluation <bool> evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { Combinations = GetKCombs(Enumerable.Range(0, evaluation.iSize), 2) .Select(x => x.ToList()).ToList(); ResetContingencyMatrixTable(); }
public ClusteringGeneticAlgorithm(IEvaluation <Element, Tuple <double, double> > evaluation, IStopCondition stopCondition, AGenerator <Element> generator, ASelection <Tuple <double, double> > selection, ACrossover crossover, IMutation <Element> mutation, int populationSize, int clusters, int?seed = null) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize, seed) { no_clusters = clusters; rng = seed.HasValue ? new Random(seed.Value) : new Random(); }
public KnapsackGeneticAlgorithm(CBinaryKnapsackEvaluation evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { var emptySolution = Enumerable.Repeat(false, evaluation.iSize).ToList(); CheckNewBest(emptySolution, 0.0, true); }
public GeneticAlgorithm(IEvaluation <Element, EvaluationResult> evaluation, IStopCondition stopCondition, AGenerator <Element> generator, ASelection <EvaluationResult> selection, ACrossover crossover, IMutation <Element> mutation, int populationSize, AOptimizationState <Element, EvaluationResult, OptimizationResult> state, int?seed = null) : base(evaluation, stopCondition, generator, selection, mutation, populationSize, state) { this.crossover = crossover; indices = Utils.CreateIndexList(populationSize); shuffler = new Shuffler(seed); }
public MutatedIslandGA(IEvaluation <bool> evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { var moreMutation = new BinaryBitFlipMutation(1, evaluation); int mutatedPop = populationSize / 10 % 2 == 1 ? populationSize / 10 - 1 : populationSize / 10; mutatedPop = mutatedPop == 0 ? 2 : mutatedPop; mutantIsland = new GeneticAlgorithm <bool>(evaluation, stopCondition, generator, selection, crossover, moreMutation, mutatedPop); mutantIsland.Initialize(); }
public APopulationOptimizer(IEvaluation <Element> evaluation, AStopCondition stopCondition, AGenerator <Element> generator, ASelection selection, IMutation <Element> mutation, int populationSize) : base(evaluation, stopCondition) { this.generator = generator; this.selection = selection; this.mutation = mutation; this.populationSize = populationSize; population = new List <Individual <Element> >(); }
private static void Lab4BinaryMutatedGA(IEvaluation <bool> evaluation, ASelection selection, ACrossover crossover, int?seed) { IterationsStopCondition stopCondition = new IterationsStopCondition(evaluation.dMaxValue, 100); BinaryRandomGenerator generator = new BinaryRandomGenerator(evaluation.pcConstraint, seed); BinaryBitFlipMutation mutation = new BinaryBitFlipMutation(0, evaluation, seed); MutatedIslandGA miga = new MutatedIslandGA(evaluation, stopCondition, generator, selection, crossover, mutation, 20); miga.Run(); ReportOptimizationResult(miga.Result); }
public EncodedGA(IEvaluation <Element> evaluation, AStopCondition stopCondition, AGenerator <Element> generator, ASelection selection, ACrossover crossover, IMutation <Element> mutation, int populationSize, int?seed) : base(evaluation, stopCondition) { this.generator = generator; this.selection = selection; this.mutation = mutation; this.populationSize = populationSize; population = new List <EncodedIndividual <Element> >(); this.seed = seed; this.crossover = crossover; }
private static void Lab4BinaryGA(IEvaluation <bool> evaluation, ASelection selection, ACrossover crossover, int?seed) { IterationsStopCondition stopCondition = new IterationsStopCondition(evaluation.dMaxValue, 100); BinaryRandomGenerator generator = new BinaryRandomGenerator(evaluation.pcConstraint, seed); BinaryBitFlipMutation mutation = new BinaryBitFlipMutation(1.0 / evaluation.iSize, evaluation, seed); GeneticAlgorithm <bool> ga = new GeneticAlgorithm <bool>(evaluation, stopCondition, generator, selection, crossover, mutation, 50); ga.Run(); ReportOptimizationResult(ga.Result); }
private String Lab4BinaryGA(IEvaluation <bool> evaluation, ASelection selection, ACrossover crossover, double pMut, int popSize, int?seed) { IterationsStopCondition stopCondition = new IterationsStopCondition(evaluation.dMaxValue, 100); BinaryRandomGenerator generator = new BinaryRandomGenerator(evaluation.pcConstraint, seed); BinaryBitFlipMutation mutation = new BinaryBitFlipMutation(pMut, evaluation, seed); GeneticAlgorithm <bool> ga = new GeneticAlgorithm <bool>(evaluation, stopCondition, generator, selection, crossover, mutation, 20); ga.Run(); return(FormatSave(ga)); //ReportOptimizationResult(ga.Result); }
public IslandModel(IEvaluation <bool> evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int globalPopulationSize, int islandCount, int maxNoChangeDetections, APopulationCrossover <bool> populationCrossover) : base(evaluation, stopCondition, generator, selection, crossover, mutation, 0) { this.islandCount = islandCount; this.globalPopulationSize = globalPopulationSize; maxNoChangeDetections = maxNoChangeDetections; this.populationCrossover = populationCrossover; if (globalPopulationSize % islandCount != 0) { throw new Exception("liczba wysp jest nie podzielna przez wielkosc calej populacji"); } }
public GAwithDSM(IEvaluation <bool> evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize, int interval = 10) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { this.interval = interval; dsms = new List <List <List <double> > >(); if (crossover is DSMCrossover) { List <List <double> > tempDSM = new List <List <double> >(); for (int i = 0; i < evaluation.iSize; i++) { tempDSM.Add(Enumerable.Repeat(0.0, evaluation.iSize).ToList()); } ((DSMCrossover)crossover).dsm = tempDSM; } }
private String Lab6BinaryGA(IEvaluation <bool> evaluation, ASelection selection, ACrossover crossover, double pMut, int popSize, Dictionary <String, int> problemStallCounter, int?seed) { IterationsStopCondition stopCondition = new IterationsStopCondition(evaluation.dMaxValue, 100); BinaryRandomGenerator generator = new BinaryRandomGenerator(evaluation.pcConstraint, seed); BinaryBitFlipMutation mutation = new BinaryBitFlipMutation(pMut, evaluation, seed); GAStallDetection <bool> ga = new GAStallDetection <bool>(evaluation, stopCondition, generator, selection, crossover, mutation, popSize, 20); ga.Run(); //Console.WriteLine(evaluation.GetType().Name + " : " + ga.countStalling); DictionaryCounterUpdate(problemStallCounter, evaluation.GetType().Name, ga.countStalling); //ReportOptimizationResult(ga.Result); return(FormatSave(ga)); }
private String Lab6BinaryIslandModel(IEvaluation <bool> evaluation, ASelection selection, ACrossover crossover, double pMut, int popSize, int islandCount, PopulationChoosingMethod method, int maxNCD, int?seed) { IterationsStopCondition stopCondition = new IterationsStopCondition(evaluation.dMaxValue, 100); BinaryRandomGenerator generator = new BinaryRandomGenerator(evaluation.pcConstraint, seed); BinaryBitFlipMutation mutation = new BinaryBitFlipMutation(pMut, evaluation, seed); APopulationCrossover <bool> populationCrossover = new ParametrizedPopulationCrossover <bool>(crossover, .5, method); IslandModel im = new IslandModel(evaluation, stopCondition, generator, selection, crossover, mutation, popSize, islandCount, maxNCD, populationCrossover); GAStallDetection <bool> ga = new GAStallDetection <bool>(evaluation, stopCondition, generator, selection, crossover, mutation, 20, 5); ga.Run(); ReportOptimizationResult(ga.Result); return(FormatSave(ga)); }
public GeneticAlgorithm(IEvaluation <Element> evaluation, AStopCondition stopCondition, AGenerator <Element> generator, ASelection selection, ACrossover crossover, IMutation <Element> mutation, int populationSize) : base(evaluation, stopCondition, generator, selection, mutation, populationSize) { this.crossover = crossover; }
public BaldwinGeneticAlgorithm(CBinaryKnapsackEvaluation evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, ACrossover crossover, IMutation <bool> mutation, int populationSize) : base(evaluation, stopCondition, generator, selection, crossover, mutation, populationSize) { }
public GAWithDSM(IEvaluation <bool> evaluation, AStopCondition stopCondition, AGenerator <bool> generator, ASelection selection, IMutation <bool> mutation, int populationSize, double crossProb, double threshold) : base(evaluation, stopCondition, generator, selection, new DSMCrossover(crossProb, threshold, null), mutation, populationSize) { }