Example #1
0
        public static void TestGennetics2()
        {
            GenString2 target = new GenString2(
                "Twas brillig, and the slithy toves did gyer and gimble in the wabe.");
            GenString2 best = new GenString2("Hello");

            Console.WriteLine("Target: " + target);

            Fitness <GenString2> fit = delegate(GenString2 gs)
            {
                double dist = gs.Distance(target);
                //return 1.0 / (dist + 1.0);
                return(-dist);
            };

            EvolMonogen <GenString2> evol = new EvolMonogen <GenString2>(100, 0.1, fit);

            evol.Initialise(best);

            for (int i = 0; i < MAX_GEN; i++)
            {
                evol.Evolve();
                evol.GetTopSpec(best);

                double fitness = evol.TopFitness;

                Console.WriteLine();
                Console.WriteLine("Generation " + i + ": " + fitness);
                Console.WriteLine(best);

                //Thread.Sleep(500);
            }
        }
Example #2
0
        public static void RunEvolution()
        {
            var      bmp = new System.Drawing.Bitmap(FILE_IN);
            ImageSys img = new ImageSys(bmp);
            Texture  txt = new Interpolent(img, Intpol.Nearest);

            var fitness = BuildFitness(txt);
            EvolMonogen <CPPN> evolver = new EvolMonogen <CPPN>(50, 0.1, fitness);
            CPPN best = new CPPN();

            evolver.Initialise(best);

            Renderor ren    = new Renderor();
            ImageSys output = new ImageSys(256, 256);

            //img.BMP.Save(FILE_OUT + "test.png");

            Console.WriteLine("Aproximating Image: " + FILE_IN);

            for (int i = 0; i < MAX_GEN; i++)
            {
                evolver.Evolve();
                evolver.GetTopSpec(best);

                ren.Render(best, output);
                string index = i.ToString("0000");
                output.BMP.Save(FILE_OUT + index + ".png");

                int    nodes = best.NumNurons;
                int    axons = best.NumAxons;
                double fit   = evolver.TopFitness;


                Console.WriteLine();
                Console.WriteLine("Generation " + i + ": " + nodes + " " + axons + " " + fit);
            }
        }