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); } }
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); } }