Ok, vamos a ver ahora un breve ejemplo acerca de como funcionan los algoritmos genéticos, es una noción importante cuando hablamos de adaptación y MBA Acá tenemos el AG que viene con la biblioteca de modelos de NetLogo y en este caso particular, vamos a hablar de la interfaz en primer lugar La idea es que estamos tratando de desarrollar una solución muy simple, estamos tratando de desarrollar una solución donde todos los números, los genes se encuentran prendidos en este sistema y lo que sucede cuando lo corremos es que vemos algunos que están en color negro y otros en blanco y a lo largo del tiempo todos se vuelven blancos y esto nos está diciendo cuan buena es la solución poblacional; en un AG esencialmente lo que hacemos es crear un conjunto aleatorio de soluciones y evaluamos cuan buenas son para resolver el problema, y entonces seleccionamos algunas soluciones para que se transfieran a la generación siguiente, puede que haya alguna pequeña mutación puede que haya algún "crossing over" en algunas de las soluciones y lo hacemos viendo cual de las soluciones se adaptan mejor tenemos entonces un nuevo conjunto de población y repetimos el proceso una y otra vez estos patrones que se ven aquí, nos muestran como se adaptan los individuos a lo largo del tiempo y cuan diferentes son las soluciones entre sí a lo largo del tiempo inicialmente las diferentes bajan, la diversidad decrece, debido a que las soluciones se vuelven más similares entre sí, que es lo que queremos aquí podemos controlar cuan grande es nuestra población de soluciones aquí controlamos cuan a menudo tomamos dos soluciones, las partimos al medio y las recombinamos para crear dos soluciones diferentes, esto se llama la función cross muchas veces cruzamos un gran porcentaje de la población, como un 70% en AG podemos aplicar mutaciones y lo que hace es operar y cambiar algunos bits en una y otra solución, para poder introducir alguna novedad en el sistema si miramos el código, la rutina "setup" crea las soluciones para cada tortuga y la rutina "go" es muy simple, dice que si el ajuste, en este caso es igual a al ancho del mundo, en otras palabras todos los estados están ahora prendidos y frenados, de otra forma crean una nueva generación y actualizan la pantalla, la actualización de la pantalla sólo hace coincidir los 0 y 1 con los colores blanco y negro pero qué hace la creación de la nueva generación? esta es la parte dura del código, lo que hace es encuentre los individuos para el cross over lo hace para cada uno de estos individuos selecciona al azar los padres y al hacerlo al seleccionar 3 de ellos, escoge al azar de toda la población y escoge aquel con el máximo ajuste, esto se llama la selección del torneo, tenemos un código para hacer el cross over, los cruzamos y así creamos dos hijos con patrones similares pero cruzados con los padres copiamos estos clones, con la copia del resto de la población y hacemos que la vieja generación muera y luego hacemos los cálculos y luego hacemos las mutaciones esta es una descripción simple de lo que sucede en un AG y ustedes pueden ver como podemos resolver problemas muy simples los viejos problemas, pero podría ser que querramos maximizar mi riqueza, dados todas estas acciones en las que quiero invertir o podría ser que quiera escoger cual información quiero dispersar en Twitter para maximizar el alcance que quiero todos estos son problemas que uno puede construir potencialmente en un AG o podría ser que como en el ejemplo del que hablamos la semana pasada, que querramos hacer coincidir los valores de entrada, coincidir los parámetros del modelo base para minimizar las diferencias entre las salidas y los verdaderos valores del mundo real todos son ejemplos donde se usaron AG en el pasado