Beispiel #1
0
        private void listaGX_SelectedIndexChanged(object sender, EventArgs e)
        {
            Robot robot = (Robot)listaGX.SelectedItem;

            RG1.Text = robot.adn[0].ToString();
            RG2.Text = robot.adn[1].ToString();
            RG3.Text = robot.adn[2].ToString();
            RG4.Text = robot.adn[3].ToString();
            RG5.Text = robot.adn[4].ToString();
            RG6.Text = robot.adn[5].ToString();
            RG7.Text = robot.adn[6].ToString();
            Partida nueva = new Partida(robot, esc);

            textpuntos.Text = nueva.puntos.ToString();


            SimularRobotEscenario(robot);
        }
Beispiel #2
0
        private void MetodoRecursivo(List <Robot> generacion2)
        {
            numerodegeneraciones++;
            List <Robot>            aux = generacion2;
            List <Robot>            seleccionados;
            Dictionary <Robot, int> dict = new Dictionary <Robot, int>();


            foreach (Robot v in aux)
            {
                Partida partida = new Partida(v, esc);
                dict.Add(v, partida.puntos);
            }

            var mejores = dict.OrderByDescending(pair => pair.Value).Take(250);

            if (mejores.First().Value < evaluacion)

            {
                seleccionados = new List <Robot>();

                foreach (var n in mejores)
                {
                    seleccionados = mejores.Select(kvp => kvp.Key).ToList();
                }

                List <Robot> generacionsiguiente = CruzarPoblacion(seleccionados);
                MetodoRecursivo(generacionsiguiente);
            }

            var top = dict.OrderByDescending(pair => pair.Value);

            int index = 0;

            foreach (var r in top)
            {
                listaGX.Items.Add(r.Key);
                generacionX.Items.Add("Sujeto" + index + ": " + r.Key.ToString() + "-----> " + r.Value.ToString());
                index++;
            }
            numberGenerations.Text = numerodegeneraciones.ToString();
            txtMutaciones.Text     = numerodemutaciones.ToString();
        }
Beispiel #3
0
        private void botonEmpezar_Click(object sender, EventArgs e)
        {
            poblacion.Clear();
            generacion1.Items.Clear();
            diccionario.Clear();
            diccionario1.Items.Clear();
            listageneracion2.Items.Clear();
            listaGX.Items.Clear();
            generacionX.Items.Clear();
            numerodemutaciones   = 0;
            numerodegeneraciones = 0;



            this.numeropoblacion = Int32.Parse(txtPI.Text);
            this.evaluacion      = Int32.Parse(txtEvaluacion.Text);

            CrearPoblacion(numeropoblacion);

            foreach (Robot v in poblacion)
            {
                generacion1.Items.Add(v);
            }

            //GenerarRecorrido();

            foreach (Robot v in poblacion)
            {
                Partida partida = new Partida(v, esc);
                diccionario.Add(v, partida.puntos);
            }

            var top = diccionario.OrderByDescending(pair => pair.Value);

            int index = 0;

            foreach (var r in top)
            {
                diccionario1.Items.Add("Sujeto" + index + ": " + r.Key.ToString() + "-----> " + r.Value.ToString());
                index++;
            }


            var mejores = diccionario.OrderByDescending(pair => pair.Value).Take(250);

            List <Robot> seleccionados = new List <Robot>();

            foreach (var n in mejores)
            {
                seleccionados = mejores.Select(kvp => kvp.Key).ToList();
            }

            List <Robot> generacion2 = CruzarPoblacion(seleccionados);

            foreach (Robot r in generacion2)
            {
                listageneracion2.Items.Add(r.ToString());
            }



            MetodoRecursivo(generacion2);
        }