private void iniciarEvolucion(object sender, EventArgs e)
        {
            List <Imagen> imagenesFinales = new List <Imagen>();

            if (!validateInput())
            {
                MessageBox.Show("Por favor inserte parámetros correctos.", "Error en las configuraciones",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            button1.Text = "Detener";
            SingletonCache singleton = SingletonCache.Instance;

            singleton.DistGChecked         = DistanciaGCheck.Checked;
            singleton.DistManChecked       = DistanciaManCheck.Checked;
            singleton.histColorChecked     = histColorCheck.Checked;
            singleton.histFormaChecked     = histFormaCheck.Checked;
            singleton.tamPoblacion         = Int32.Parse(entryPoblacion.Text);
            singleton.porcCruses           = float.Parse(entryCruces.Text, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
            singleton.porcMenosApt         = float.Parse(entryMenosApt.Text, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
            singleton.porcMutacion         = float.Parse(entryMutacion.Text, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
            singleton.cantidadItereaciones = Int32.Parse(entryIteraciones.Text);
            SingletonCache.crearEstadisticas();
            AlgoritmoGenetico.primeraGeneracion(pixel);
            imagenGenerada.Image       = singleton.poblacion[0].image;
            singleton.indMenosAptoHist = singleton.poblacion[singleton.tamPoblacion - 1];
            singleton.indMasAptoHist   = singleton.poblacion[0];
            updateStatistics();
            singleton.objetivo.calcularDiferencia(singleton.objetivo);
            Console.WriteLine(singleton.objetivo.diferencia);
            bool trampa = conTrampaCheck.Checked;

            if (trampa)
            {
                for (int i = 1; i < SingletonCache.Instance.cantidadItereaciones; i++)
                {
                    if (continuar)
                    {
                        trampa = false;
                        if (i % 10 == 0)
                        {
                            trampa = true;
                        }
                        AlgoritmoGenetico.siguienteGeneracion(trampa);
                        SingletonCache.Instance.numGeneracion++;
                        updateStatistics();
                        if ((i - 1) % (SingletonCache.Instance.cantidadItereaciones / 10) == 0)
                        {
                            imagenesFinales.Add(SingletonCache.Instance.indMasAptoGen);
                            SingletonCache.agregarGeneracion();
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else
            {
                int boosts = (SingletonCache.Instance.cantidadItereaciones / 5);

                for (int i = 1; i < SingletonCache.Instance.cantidadItereaciones; i++)
                {
                    if (continuar)
                    {
                        trampa = false;
                        if (i % boosts == 0)
                        {
                            trampa = true;
                        }
                        AlgoritmoGenetico.siguienteGeneracion(trampa);
                        SingletonCache.Instance.numGeneracion++;
                        updateStatistics();
                        if ((i - 1) % (SingletonCache.Instance.cantidadItereaciones / 10) == 0)
                        {
                            imagenesFinales.Add(SingletonCache.Instance.indMasAptoGen);
                            SingletonCache.agregarGeneracion();
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            if (continuar)
            {
                Form2 muestraResultados = new Form2(this);
                singleton.imagenesFinales            = imagenesFinales;
                muestraResultados.pictureBox1.Image  = (imagenesFinales[0].image);
                muestraResultados.pictureBox2.Image  = (imagenesFinales[1].image);
                muestraResultados.pictureBox3.Image  = (imagenesFinales[2].image);
                muestraResultados.pictureBox4.Image  = (imagenesFinales[3].image);
                muestraResultados.pictureBox5.Image  = (imagenesFinales[4].image);
                muestraResultados.pictureBox6.Image  = (imagenesFinales[5].image);
                muestraResultados.pictureBox7.Image  = (imagenesFinales[6].image);
                muestraResultados.pictureBox8.Image  = (imagenesFinales[7].image);
                muestraResultados.pictureBox9.Image  = (imagenesFinales[8].image);
                muestraResultados.pictureBox10.Image = (imagenesFinales[9].image);
                muestraResultados.Visible            = true;
                Visible = false;
            }
            else
            {
                MessageBox.Show("Se ha detenido el programa", "Detención manual", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Restablecer();
            }
        }