public void SavePopulation(string name, List <Individual> population) { PopulationToSave i = new PopulationToSave(); i.mutationRate = Parameters.mutationRate; i.crossoverRate = Parameters.crossoverRate; i.populationSize = Parameters.populationSize; i.hiddenNodes = Parameters.hiddenNodes; i.hiddenLayers = Parameters.hiddenLayers; i.Population = population; i.name = name; string fileName = null; for (int j = 1; j < 21; j++) { fileName = "pop" + j + ".bin"; if (!File.Exists(fileName)) { break; } else if (j == 20) { File.Delete(fileName); } } FileStream stream = File.Create(fileName); var formatter = new BinaryFormatter(); formatter.Serialize(stream, i); stream.Close(); }
public GeneticAlgorithm(int populationSize, int geneSize, Random rand) { Generation = 1; Population = new List <Individual>(); this.Rand = rand; sv = new SaveLoad(); if (Parameters.load) { if (Parameters.file.Contains("pop")) { PopulationToSave pop = sv.LoadPopulation(Parameters.file); Population = pop.Population; populationSize = pop.populationSize; geneSize = pop.hiddenLayers * pop.hiddenNodes + Parameters.outputs; } else { IndividualToSave ind = sv.LoadIndividual(Parameters.file); geneSize = ind.individual.genes.Length; Parameters.hiddenNodes = ind.hiddenNodes; Parameters.hiddenLayers = ind.hiddenLayers; Population.Add(ind.individual); } } while (Population.Count < populationSize) { Population.Add(new Individual(geneSize, rand)); } }
public void OnPopClickLoad() { PopulationToSave populationToSave = sl.LoadPopulation("test.bin"); Start(); ga.Population = populationToSave.Population; }
public PopulationToSave LoadPopulation(string name) { var formatter = new BinaryFormatter(); FileStream stream = File.OpenRead(name); PopulationToSave i = (PopulationToSave)formatter.Deserialize(stream); stream.Close(); return(i); }
public void switchState() { if (dropdown.value != 0) { if (dropdown.value == 1) { listOfCars.Clear(); thisDropdown.options.Clear(); thisDropdown.options.Add(new Dropdown.OptionData() { text = "" }); for (int i = 0; i < 21; i++) { if (File.Exists("car" + i + ".bin")) { IndividualToSave ind = sv.LoadIndividual("car" + i + ".bin"); thisDropdown.options.Add(new Dropdown.OptionData() { text = ind.name }); listOfCars.Add(thisDropdown.options.Count - 1, "car" + i + ".bin"); } } } else { listOfPopulations.Clear(); thisDropdown.options.Clear(); thisDropdown.options.Add(new Dropdown.OptionData() { text = "" }); for (int i = 1; i < 21; i++) { if (File.Exists("pop" + i + ".bin")) { PopulationToSave ind = sv.LoadPopulation("pop" + i + ".bin"); thisDropdown.options.Add(new Dropdown.OptionData() { text = ind.name }); listOfPopulations.Add(thisDropdown.options.Count - 1, "pop" + i + ".bin"); } } } } else { thisDropdown.options.Clear(); } }