Beispiel #1
0
        public void TestZigguratExponentialGenerator_Unseeded_InitializesCorrectly()
        {
            var    rng = new ZigguratExponentialGenerator();
            double num = rng.Generate();

            Assert.NotNull(rng);
        }
Beispiel #2
0
        public void TestZigguratExponentialGenerator_WithSeed_InitializesCorrectly()
        {
            var rng1 = new ZigguratExponentialGenerator(seed: 457860009);
            var rng2 = new ZigguratExponentialGenerator(seed: 457860009);

            double num1 = rng1.Generate();
            double num2 = rng2.Generate();

            Assert.AreEqual(num1, num2);
        }
Beispiel #3
0
        public void TestZigguratExponentialGenerator_Unseeded_NeverOverflows()
        {
            var rng = new ZigguratExponentialGenerator();

            for (int i = 0; i < 100; i++)
            {
                double num = rng.Generate();
            }

            Assert.NotNull(rng);
        }
Beispiel #4
0
        private static void RunWaveTest()
        {
            var prevNeuralBots = new List <NeuroEvolveBot>();
            var rand           = new ZigguratExponentialGenerator();
            var gens           = GetBots(GenTypes.ReLU, rand);

            var leagueRunner = new LeagueRunner();

            foreach (var bot in gens)
            {
                var data = LeagueRunner.RunLeague(new WaveBot(), bot);
                Console.WriteLine(data);
            }
        }
Beispiel #5
0
        public static void RunGene()
        {
            var rand  = new ZigguratExponentialGenerator();
            var chrom = new DoubleArrayChromosome(rand, rand, rand, 9);
            var pop   = new Population(1000, chrom, new fitFunc(), new EliteSelection());

            Console.WriteLine(pop.FitnessMax);
            for (int i = 0; i < 199; i++)
            {
                pop.RunEpoch();
                Console.WriteLine(pop.FitnessMax);
            }
            var x = new fitFunc().Evaluate(pop.BestChromosome);

            Console.WriteLine(pop.FitnessMax);
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            NetworkType chromType = GenTypes.ReLU;

            var prevNeuralBots = new List <NeuroEvolveBot>();
            var genValues      = FileHandler.GetGenerations(GenTypes.ReLU);
            var rand           = new ZigguratExponentialGenerator();
            var Bots           = GetBots(chromType, rand);

            prevNeuralBots.AddRange(Bots);



            /*
             *              ;
             *
             *              for (int i = 0; i < largestGen + 1; i++)
             *              {
             *                  prevNeuralBots.Add(getBotGen(i, rand, chromType));
             *              }*/


            var bots = new List <IBot> {
                new DrawBot()
            };

            bots.AddRange(prevNeuralBots);

            var bestChromeValues = FileHandler.GetGenerations(chromType);
            DoubleArrayChromosome doubleChromosome = new DoubleArrayChromosome(rand, rand, rand, bestChromeValues[bestChromeValues.Count - 1]);

            //DoubleArrayChromosome doubleChromosome = (DoubleArrayChromosome)GetChromosomeGen(largestGen, rand, chromType);

            for (int i = 0; i < 10; i++)
            {
                var pop = new Population(200, doubleChromosome, new fitFuncForAdaptable(bots), new RouletteWheelSelection());
                Console.WriteLine(pop.FitnessMax);
                for (int j = 0; j < 10; j++)
                {
                    pop.RunEpoch();
                    Console.WriteLine(pop.FitnessMax);
                    Console.WriteLine(pop.FitnessAvg);
                }

                var x = new fitFuncForAdaptable(bots).Evaluate(pop.BestChromosome);
                doubleChromosome = (DoubleArrayChromosome)pop.BestChromosome;

                var newNet = GetNetHelper.GetNet(doubleChromosome, new[] { 5, 4, 3 });
                var newBot = new NeuroEvolveBot(newNet, 934 + i, "newBot" + i.ToString());

                var      gameRunner = new GameRunnerWithData();
                GameData data;
                foreach (var bot in bots)
                {
                    data = gameRunner.RunGame(newBot, bot);
                    Console.WriteLine(data);
                }
                data = gameRunner.RunGame(newBot, new WaveBot());
                Console.WriteLine(data);
                bots.Add(newBot);
            }

            double[] values = doubleChromosome.Value;

            FileHandler.WriteToLargestGen(chromType, values);
            RunWaveTest();
        }