protected override string FormatOptimizerParameters(AOptimizer <bool> optimizer)
        {
            String parametry = "";

            // C# 7 switch z sprawdzeniem klas
            switch (optimizer)
            {
            case BinaryRandomSearch brs:
                parametry += "None";
                break;

            case BinaryGreedyOptimizer bgo:
                if (bgo.StopCondition.GetType() == typeof(IterationsStopCondition))
                {
                    parametry += ((IterationsStopCondition)bgo.StopCondition).maxIterationNumber;
                }
                break;

            case BinaryGreedyRSOptimizer bgrso:
                if (bgrso.greedyOptimizer.StopCondition.GetType() == typeof(IterationsStopCondition))
                {
                    parametry += ((IterationsStopCondition)bgrso.greedyOptimizer.StopCondition).maxIterationNumber;
                }
                else if (bgrso.greedyOptimizer.StopCondition.GetType() == typeof(SignificantImprovementsStopCondition))
                {
                    parametry += ((SignificantImprovementsStopCondition)bgrso.greedyOptimizer.StopCondition).maxIterationNumber + ", ";
                    parametry += ((SignificantImprovementsStopCondition)bgrso.greedyOptimizer.StopCondition).improvementEpsilon;
                }
                break;

            default:
                throw new NotImplementedException();
            }
            return(parametry);
        }
        protected override string FormatOptimizerParameters(AOptimizer <double> optimizer)
        {
            String parametry = "";

            if (optimizer.GetType() == typeof(CMAES))
            {
                parametry += "None";
            }
            else if (optimizer.GetType() == typeof(RealES11Scouting))
            {
                parametry += "Scouting" + ", " +
                             ((RealES11Scouting)optimizer).nScouts.ToString() + ", " +
                             ((RealES11Scouting)optimizer).scoutingMultiplier.ToString();
            }
            else if (optimizer.GetType() == typeof(RealEvolutionStrategy11))
            {
                if (((RealEvolutionStrategy11)optimizer).mutationAdaptation.GetType() == typeof(RealOneFifthRuleMutationES11Adaptation))
                {
                    parametry += "OneFifthRule" + ", " +
                                 ((RealOneFifthRuleMutationES11Adaptation)((RealEvolutionStrategy11)optimizer).mutationAdaptation).archiveSize.ToString() + ", " +
                                 ((RealOneFifthRuleMutationES11Adaptation)((RealEvolutionStrategy11)optimizer).mutationAdaptation).modifier.ToString();
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
            else
            {
                throw new NotImplementedException();
            }
            return(parametry);
        }
        protected String FormatSave(AOptimizer <E> optimizer)
        {
            if (!optimizer.divergenceException)
            {
                String optimizerName       = optimizer.GetType().Name;
                String optimizerParameters = FormatOptimizerParameters(optimizer);
                String optimizerResult     = FormatOptimizationResult(optimizer.Result);
                String problemParameters   = FormatProblemParameters(optimizer.Evaluation);

                return(optimizerName + ", " +
                       optimizerParameters + ", " +
                       problemParameters + ", " +
                       optimizerResult);
            }
            else
            {
                String optimizerName       = optimizer.GetType().Name;
                String optimizerParameters = FormatOptimizerParameters(optimizer);
                String problemParameters   = FormatProblemParameters(optimizer.Evaluation);

                return(optimizerName + ", " +
                       optimizerParameters + ", " +
                       problemParameters + ", " +
                       "diverged");
            }
        }
Exemplo n.º 4
0
        protected override string FormatOptimizerParameters(AOptimizer <bool> optimizer)
        {
            string parameters = "";

            switch (optimizer)
            {
            case GeneticAlgorithm <bool> ga:
                parameters += ga.crossover.Probability.ToString() +
                              ga.mutation.Probability.ToString() +
                              ga.populationSize.ToString();
                break;

            default:
                throw new NotImplementedException();
            }
            return(parameters);
        }
Exemplo n.º 5
0
 public Experiment(AOptimizer <Element, EvaluationResult, OptimizationResult> optimizer, Dictionary <string, string> info = null, Action finishListener = null)
 {
     this.optimizer = optimizer;
     if (info == null)
     {
         this.info = new Dictionary <string, string>();
     }
     else
     {
         this.info = info;
     }
     if (finishListener == null)
     {
         this.finishListener = () => { };
     }
     else
     {
         this.finishListener = finishListener;
     }
 }
        protected override string FormatOptimizerParameters(AOptimizer <bool> optimizer)
        {
            String parameters = "";

            switch (optimizer)
            {
            case GeneticAlgorithm <bool> ga:
                parameters += ga.crossover.GetType().Name;
                break;

            case EncodedGA <bool> ega:
                parameters += ega.crossover.GetType().Name;
                break;

            default:
                throw new NotImplementedException();
            }

            return(parameters);
        }
Exemplo n.º 7
0
        protected override string FormatOptimizerParameters(AOptimizer <double> optimizer)
        {
            if (optimizer.GetType() == typeof(RealEvolutionStrategy11))
            {
                var    ma        = ((RealEvolutionStrategy11)optimizer).mutationAdaptation;
                String MaName    = ma.GetType().Name;
                String parametry = "";

                // C# 7 switch z sprawdzeniem klas
                switch (ma)
                {
                case RealIgnitingSimAnnMutationAdaptation irsa:
                    parametry += irsa.ignitingCoefficient.ToString() + ", ";
                    parametry += irsa.temperatureDropCoef.ToString() + ", ";
                    parametry += irsa.startingTemperature.ToString();
                    break;

                case RealSimulatedAnnealingMutationAdaptation rsa:
                    parametry += rsa.temperatureDropCoef.ToString() + ", ";
                    parametry += rsa.startingTemperature.ToString();
                    break;

                case RealNullRealMutationES11Adaptation rn:
                    parametry += "None";
                    break;

                default:
                    throw new NotImplementedException();
                }
                return(MaName + ", " + parametry);
            }
            else
            {
                throw new NotImplementedException();
            }
        }
        protected override string FormatOptimizerParameters(AOptimizer <bool> optimizer)
        {
            string parameters = "";

            switch (optimizer)
            {
            case IslandModel im:
                parameters += im.islandCount + ", " +
                              ((ParametrizedPopulationCrossover <bool>)im.populationCrossover).Method + ", " +
                              im.maxNoChangeDetections;

                break;

            case GAStallDetection <bool> gasd:
                parameters += gasd.populationSize + ", " +
                              gasd.mutation.Probability + ", " +
                              gasd.MaxNCD;
                break;

            default:
                throw new NotImplementedException();
            }
            return(parameters);
        }
Exemplo n.º 9
0
        protected override string FormatOptimizerParameters(AOptimizer <bool> optimizer)
        {
            string parameters = "";

            return(parameters);
        }
 protected abstract String FormatOptimizerParameters(AOptimizer <E> optimizer);