public void EvolutionDone(object sender, EventArgs e) { updateUiTimer.Dispose(); Program p = m_Engine.GetStrongestProgram(); GP1.Compiler.Compiler compiler = new GP1.Compiler.Compiler(); compiler.Compile(p, "Prog.dll"); UpdateUiWhenEvolving(null); }
private void BackgroundRandomSearch() { double bestFitnessSoFar = 1000f; int maxTrials = 1000; int trials = 0; m_Engine = new Engine(new FitnessFunction3CardPoker()); while (trials++ < maxTrials && bestFitnessSoFar > 0f) { Program program = m_Engine.CreateRandomProgram(); double fitness = m_Engine.FitnessFunction.Evaluate(program); if (fitness < bestFitnessSoFar) { m_Program1 = program; bestFitnessSoFar = fitness; } if (trials % 10000 == 0) { Dispatcher.Invoke(() => { //labelGeneration.Content = trials.ToString(); //labelFitness.Content = m_Engine.FitnessFunction.Evaluate(m_Program1).ToString(); DrawProgram("Best Program", m_Program1, imageProgram1); }); } } Dispatcher.Invoke(() => { DrawProgram("Best Program", m_Program1, imageProgram1); //labelFitness.Content = m_Engine.FitnessFunction.Evaluate(m_Program1).ToString(); }); GP1.Compiler.Compiler compiler = new GP1.Compiler.Compiler(); compiler.Compile(m_Program1, "Prog.dll"); }