Example #1
0
        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);
        }
Example #2
0
        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");
        }