예제 #1
0
        private static void CreateImageForGen(int i)
        {
            PopulationManager pop = new PopulationManager(new RandomEnvironment());

            if (File.Exists(String.Format(PopulationFile, i)))
            {
                FileStream stream = new FileStream(String.Format(PopulationFile, i), FileMode.Open);
                pop.LoadFromStream(stream);
                Console.WriteLine($"Loaded from file {String.Format(PopulationFile, i)}");
                GeneOutput.CreatePopImage($"neattactoe_{i}.bmp", pop);
            }
            else
            {
                Console.WriteLine($"File {String.Format(PopulationFile, i)} not found.");
            }
        }
예제 #2
0
        private static PopulationManager GeneratePopulation(int inputCount, int outputCount, int depth, int hiddenNeuronsPerLayer)
        {
            PopulationManager pop = new PopulationManager(new RandomEnvironment());

            if (File.Exists(PopulationFileToLoad))
            {
                FileStream stream = new FileStream(PopulationFileToLoad, FileMode.Open);
                pop.LoadFromStream(stream);
                Console.WriteLine($"Loaded from file {PopulationFileToLoad}");
            }
            else
            {
                Console.WriteLine($"File {PopulationFileToLoad} not found, generating population at random");
                pop.GeneratePopulation(30, hiddenNeuronsPerLayer * (inputCount + depth * hiddenNeuronsPerLayer + outputCount));
            }
            return(pop);
        }
예제 #3
0
        public void LoadFromStream_Should_Get_All_Population_DNA_From_Given_Stream()
        {
            int individuals = 5;

            MockRandomEnvironment.Setup(m => m.GetNextDouble(0, It.IsAny <double>())).Returns(0.1f);
            PopulationManager populationManagerTested = GetPopulationManager();
            MemoryStream      stream = new MemoryStream();

            using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8, 1024, true))
            {
                for (int i = 0; i < individuals; i++)
                {
                    sw.WriteLine($"{i}:{i}:-1||1||-{i}||{i}");
                }
            }
            stream.Position = 0;

            populationManagerTested.LoadFromStream(stream);

            populationManagerTested.Population.Should().HaveCount(individuals);
        }