Esempio n. 1
0
 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;
 }
Esempio n. 3
0
 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)
 {
 }
Esempio n. 4
0
 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();
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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> >();
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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;
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
 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");
     }
 }
Esempio n. 16
0
 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));
        }
Esempio n. 19
0
 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)
 {
 }