public static void RandomMutaitons() { var bmp = new System.Drawing.Bitmap(FILE_IN); ImageSys img = new ImageSys(bmp); Texture txt = new Interpolent(img, Intpol.Nearest); var fitness = BuildFitness(txt); CPPN network = new CPPN(); VRandom rng = new RandMT(); network.Randomize(rng); Renderor ren = new Renderor(); ImageSys output = new ImageSys(256, 256); //img.BMP.Save(FILE_OUT + "test.png"); Console.WriteLine("Building Network..."); for (int i = 0; i < 200; i++) { network.Mutate(rng, 1.0); } Console.WriteLine("Aproximating Image: " + FILE_IN); //NOTE: Make it so we don't accept mutations that //result in NaN fitness! for (int i = 0; i < MAX_GEN; i++) { //network.Mutate(rng, 1.0); //0.1 network.Randomize(rng); ren.Render(network, output); string file = i.ToString("0000") + ".png"; output.BMP.Save(FILE_OUT + file); int nodes = network.NumNurons; int axons = network.NumAxons; double fit = fitness(network); //Console.WriteLine(); Console.WriteLine("Generation " + i + ": " + nodes + " " + axons + " " + fit); } }