// start with the selected settings public void RunSettings() { if (ReadFromFileField.isOn && !File.Exists(MapFilePathField.text)) { ColorBlock cb = MapFilePathField.colors; cb.normalColor = new Color(1f, 0.7f, 0.7f); MapFilePathField.colors = cb; return; } ReadMapFromFile = ReadFromFileField.isOn; MapFilePath = MapFilePathField.text; MapWidth = int.Parse(MapWidthField.text); MapHeight = int.Parse(MapHeightField.text); NumberOfGuards = int.Parse(NumberOfGuardsField.text); RouteGenotypeLength = int.Parse(GenotypeLengthField.text); CrossoverPerStage = int.Parse(CrossoverNumberField.text); DetectionRadius = int.Parse(DetectionRadiusField.text); DetectionDecayTime = int.Parse(DetectionDecayField.text); FitnessFunction = (FitnessFunctions)(FitnessFunctionField.value); NumberOfSchemes = int.Parse(NumberOfSchemesField.text); SimpleCrossover = SimpleCrossoverField.isOn; UseMinFunction = UseMinFunctionField.isOn; MutationProbability = float.Parse(MutationProbabilityField.text); RouteMutationProbability = float.Parse(RouteMutationProbabilityField.text); NumberOfIterations = int.Parse(NumberOfIterationsField.text); FitnessBinsX = int.Parse(FitnessBinsXField.text); FitnessBinsY = int.Parse(FitnessBinsYField.text); RandomSeed = int.Parse(RandomSeedField.text); TurnTime = float.Parse(TurnTimeField.text); TurnLimit = int.Parse(TurnLimitField.text); EnvironmentalNoiseProbability = float.Parse(EnvNoiseProbabilityField.text); EnvironmentalNoiseDegree = int.Parse(EnvNoiseDegreeField.text); CrawlNoise = float.Parse(CrawlNoiseField.text); WalkNoise = float.Parse(WalkNoiseField.text); RunNoise = float.Parse(RunNoiseField.text); NoiseRandomRange = float.Parse(NoiseRadiusField.text); MinOutputToCheck = float.Parse(MinOutputCheckField.text); MinOutputForAlarm = float.Parse(MinOutputAlarmField.text); RandomNinjaNumber = int.Parse(RandomNinjaNumberField.text); SettingsCanvas.gameObject.SetActive(false); RouteCanvas.gameObject.SetActive(true); if (RandomSeed != -1) { Random.InitState(RandomSeed); } if (!GenerateMap()) { return; } SetGuards(); GameStage = GameStages.RouteGeneration; }
public Population(int size, Chromosomes.IChromosomeFactory chromosomeFactory, FitnessFunctions.IFitnessFunction fitnessFunction, SelectionMethods.ISelectionMethod selectionMethod) { this.SetCrossoverProbabilityToDefault(); this.SetMutationProbabilityToDefault(); this.SetSelectionRateToDefault(); this.size = size; this.individuals = new Chromosomes.IChromosome[size]; for (int i = 0; i < size; ++i) this.individuals[i] = chromosomeFactory.GetNewChromosome(); this.fitnessCalculator = fitnessFunction; this.selector = selectionMethod; this.fitnesses = new double[this.size]; for (int i = 0; i < this.size; ++i) this.fitnesses[i] = this.fitnessCalculator.GetFitness(this.individuals[i]); }
public static void RunWickedCombOptimization() { var solutionSpace = new IntervalBranch(-0.15, 0.15); // Constraints const double difficulty = 5; const double xSquaredCoefficient = 10; const int sampleSize = 200; const double confidenceLevel = 0.99; const int numSteps = 15; var bb = new SIDBranchAndBound <double>(solutionSpace, x => FitnessFunctions.WickedComb(x, difficulty, xSquaredCoefficient), GuidingParameter.OneOverNthQuantile); var result = bb.BranchAndBound(sampleSize, numSteps, confidenceLevel, false, false); Program.logger.WriteLine($"Wicked Comb (x, {difficulty}, {xSquaredCoefficient}) Size {sampleSize} Confidence {confidenceLevel} Optimization Results:"); for (int i = 0; i < result.Length; i++) { Program.logger.WriteLine($"{i}: {result[i].ToString()}"); } }
public static void RunEggholderOptimization() { var solutionSpace = new RectangleBranch(-512, 512, -512, 512); // Constraints const int sampleSize = 200; const double confidenceLevel = 0.99; const int numSteps = 6; var bb = new SIDBranchAndBound <Tuple <double, double> >(solutionSpace, x => FitnessFunctions.EggHolder(x.Item1, x.Item2), GuidingParameter.OneOverNthQuantile); var result = bb.BranchAndBound(sampleSize, numSteps, confidenceLevel, false, false); Program.logger.WriteLine($"Eggholder Size {sampleSize} Confidence {confidenceLevel} Optimization Results:"); for (int i = 0; i < result.Length; i++) { Program.logger.WriteLine($"{i}: {result[i].ToString()}"); } }