Está en la página 1de 66

Algoritmos Genticos

Introduccin
La inteligencia artificial (abreviado IA, en ingls AI) es definida como la inteligencia exhibida por una entidad artificial. A pesar que la IA tiene una fuerte connotacin en la ciencia ficcin, forma una rama vital en las ciencias de la computacin, la cual lidia con el comportamiento inteligente, el aprendizaje y la adaptacin en las mquinas.

John Holland desde pequeo, se preguntaba cmo logra la naturaleza, crear seres cada vez ms perfectos (aunque, como se ha visto, esto no es totalmente cierto, o en todo caso depende de qu entienda uno por perfecto). No saba la respuesta, pero tena una cierta idea de como hallarla: tratando de hacer pequeos modelos de la naturaleza, que tuvieran alguna de sus caractersticas, y ver cmo funcionaban, para luego extrapolar sus conclusiones a la totalidad. En los aos 50 entr en contacto con los primeros ordenadores, donde pudo llevar a cabo algunas de sus ideas, aunque no se encontr con un ambiente intelectual frtil para propagarlas.

Fue a principios de los 60, en la Universidad de Michigan en Ann Arbor, donde, dentro del grupo Logic of Computers, sus ideas comenzaron a desarrollarse y a dar frutos. Y fue, adems, leyendo un libro escrito por un bilogo evolucionista, R. A. Fisher, titulado La teora gentica de la seleccin natural, como comenz a descubrir los medios de llevar a cabo sus propsitos de comprensin de la naturaleza. Holland imparta un curso titulado Teora de sistemas adaptativos. Dentro de este curso, y con una participacin activa por parte de sus estudiantes, fue donde se crearon las ideas que ms tarde se convertiran en los algoritmos genticos.

Por tanto, cuando Holland se enfrent a los algoritmos genticos, los objetivos de su investigacin fueron dos: imitar los procesos adaptativos de los sistemas naturales disear sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales.

Unos 15 aos ms adelante, David Goldberg, conoci a Holland, y se convirti en su estudiante. Golberg era un ingeniero industrial trabajando en diseo de pipelines, y fue uno de los primeros que trat de aplicar los algoritmos genticos a problemas industriales. Goldberg consigui lo que quera, escribiendo un algoritmo gentico en un ordenador personal Apple II. Estas y otras aplicaciones creadas por estudiantes de Holland convirtieron a los algoritmos genticos en un campo con base suficiente aceptado para celebrar la primera conferencia en 1985, ICGA85. Tal conferencia se sigue celebrando bianualmente.

Algoritmos Genticos

Algoritmo?
Es un mtodo repetitivo para resolver problemas. Secuencia codificada de manipulacin de smbolos. instrucciones para

Un algoritmo genera un "proceso algortmico", diseado intencionalmente o no (motivo este ltimo por el cual se hace la hiptesis que la seleccin natural o la actividad intelectual son procesos algortmicos). El proceso consiste en la obediencia a una estructura nica, ramificada, recursiva o iterativa, que se va desarrollando en serie-paralelo, con rutinas y subrutinas que se llaman al ser necesarias. Se discute si realmente el proceso intelectual de comprensin de la realidad es un proceso algortmico o lo supera. A veces se contraponen los algoritmos a las redes neuronales artificiales, pese a que el aprendizaje de estas ltimas se realiza con algoritmos.

Algoritmos Genticos
Son llamados as porque se inspiran en la evolucin biolgica y su base genticomolecular. Los algoritmos genticos forman parte de una familia denominada algoritmos evolutivos, que incluye las Estrategias de evolucin, la Programacin evolutiva y la Programacin gentica. Un algoritmo gentico es un mtodo de bsqueda dirigida basada en probabilidad. Bajo una condicin muy dbil (que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la poblacin sin hacerle ningn cambio) se puede demostrar que el algoritmo converge en probabilidad al ptimo. En otras palabras, al aumentar el nmero de iteraciones, la probabilidad de tener el ptimo en la poblacin tiende a 1.

Qu son los algoritmos genticos?


Un algoritmo gentico (o AG para abreviar) es una tcnica de programacin que imita a la evolucin biolgica como estrategia para resolver problemas. Dado un problema especfico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una mtrica llamada funcin de aptitud que permite evaluar cuantitativamente a cada candidata. Estas candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero se suelen generar aleatoriamente.

Anatoma de un algoritmo gentico simple


Los algoritmos genticos son mtodos sistemticos para la resolucin de problemas de bsqueda y optimizacin que aplican a estos los mismos mtodos de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y mutacin. Los algoritmos genticos son mtodos de optimizacin, que tratan de resolver el mismo conjunto de problemas que se ha contemplado anteriormente, es decir, hallar (xi,...,xn) tales que F(xi,...,xn) sea mximo. En un algoritmo gentico, tras parametrizar el problema en una serie de variables, (xi,...,xn) se codifican en un cromosoma. Todas los operadores utilizados por un algoritmo gentico se aplicarn sobre estos cromosomas, o sobre poblaciones de ellos.

En el algoritmo gentico va implcito el mtodo para resolver el problema; son solo parmetros de tal mtodo los que estn codificados, a diferencia de otros algoritmos evolutivos como la programacin gentica. Hay que tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo hace un algoritmo robusto, por ser til para cualquier problema, pero a la vez dbil, pues no est especializado en ninguno. Las soluciones codificadas en un cromosoma compiten para ver cul constituye la mejor solucin (aunque no necesariamente la mejor de todas las soluciones posibles). El ambiente, constituido por las otras camaradas soluciones, ejercer una presin selectiva sobre la poblacin, de forma que slo los mejor adaptados (aquellos que resuelvan mejor el problema) sobrevivan o leguen su material gentico a las siguientes generaciones, igual que en la evolucin de las especies.

La diversidad gentica se introduce mediante mutaciones y reproduccin sexual. En la Naturaleza lo nico que hay que optimizar es la supervivencia, y eso significa a su vez maximizar diversos factores y minimizar otros. Un algoritmo gentico, sin embargo, se usar habitualmente para optimizar slo una funcin, no diversas funciones relacionadas entre s simultneamente. La optimizacin que busca diferentes objetivos simultneamente, denominada multimodal o multiobjetivo, tambin se suele abordar con un algoritmo gentico especializado. Por lo tanto, un algoritmo gentico consiste en lo siguiente: hallar de qu parmetros depende el problema, codificarlos en un cromosoma, y se aplican los mtodos de la evolucin: seleccin y reproduccin sexual con intercambio de informacin y alteraciones que generan diversidad.

Codificacin de las variables


Los algoritmos genticos requieren que el conjunto se codifique en un cromosoma. Cada cromosoma tiene varios genes, que corresponden a sendos parmetros del problema. Para poder trabajar con estos genes en el ordenador, es necesario codificarlos en una cadena, es decir, una ristra de smbolos (nmeros o letras) que generalmente va a estar compuesta de 0s y 1s.

La mayora de las veces, una codificacin correcta es la clave de una buena resolucin del problema. Generalmente, la regla heurstica que se utiliza es la llamada regla de los bloques de construccin, es decir, parmetros relacionados entre s deben de estar cercanos en el cromosoma. Por ejemplo, si queremos codificar los pesos de una red neuronal, una buena eleccin ser poner juntos todos los pesos que salgan de la misma neurona de la capa oculta (tambin llamada codificacin fregona), como se indica en la figura. En esta, todos los pesos sealados con trazo doble se codifican mediante grupos de bits o bytes sucesivos en el cromosoma. En todo caso, se puede ser bastante creativo con la codificacin del problema, teniendo siempre en cuenta la regla anterior. Esto puede llevar a usar cromosomas bidimensionales, o tridimensionales, o con relaciones entre genes que no sean puramente lineales de vecindad. En algunos casos, cuando no se conoce de antemano el nmero de variables del problema, caben dos opciones: codificar tambin el nmero de variables, fijando un nmero mximo, o bien, lo cual es mucho ms natural, crear un cromosoma que pueda variar de longitud. Para ello, claro est, se necesitan operadores genticos que alteren la longitud.

Algoritmo gentico propiamente dicho


Para comenzar la competicin, se generan aleatoriamente una serie de cromosomas. El algoritmo gentico procede de la forma siguiente: Evaluar la puntuacin (fitness) de cada uno de los genes. Permitir a cada uno de los individuos reproducirse, de acuerdo con su puntuacin. Emparejar los individuos de la nueva poblacin, haciendo que intercambien material gentico, y que alguno de los bits de un gen se vea alterado debido a una mutacin espontnea. Cada uno de los pasos consiste en una actuacin sobre las cadenas de bits, es decir, la aplicacin de un operador a una cadena binaria. Se les denominan, por razones obvias, operadores genticos, y hay tres principales: seleccin, crossover o recombinacin y mutacin; aparte de otros operadores genticos no tan comunes, todos ellos se vern a continuacin.

Un algoritmo gentico tiene tambin una serie de parmetros que se tienen que fijar para cada ejecucin, como los siguientes:
Tamao de la poblacin: debe de ser suficiente para garantizar la diversidad de las soluciones, y, adems, tiene que crecer ms o menos con el nmero de bits del cromosoma, aunque nadie ha aclarado cmo tiene que hacerlo. Por supuesto, depende tambin del ordenador en el que se est ejecutando. Condicin de terminacin: lo ms habitual es que la condicin de terminacin sea la convergencia del algoritmo gentico o un nmero prefijado de generaciones.

Evaluacin y seleccin
Durante la evaluacin, se decodifica el gen, convirtindose en una serie de parmetros de un problema, se halla la solucin del problema a partir de esos parmetros, y se le da una puntuacin a esa solucin en funcin de lo cerca que est de la mejor solucin. A esta puntuacin se le llama fitness.

Fitness
Determina siempre los cromosomas que se van a reproducir, y aquellos que se van a eliminar, pero hay varias formas de considerarlo para seleccionar la poblacin de la siguiente generacin:
Usar el orden, o rango, y hacer depender la probabilidad de permanencia o evaluacin de la posicin en el orden. Aplicar una operacin al fitness para escalarlo En algunos casos, el fitness no es una sola cantidad, sino diversos nmeros, que tienen diferente consideracin. Basta con que tal fitness forme un orden parcial, es decir, que se puedan comparar dos individuos y decir cul de ellos es mejor. Esto suele suceder cuando se necesitan optimizar varios objetivos

Una vez evaluado el fitness, se tiene que crear la nueva poblacin teniendo en cuenta que los buenos rasgos de los mejores se transmitan a esta. Para ello, hay que seleccionar a una serie de individuos encargados de tan ardua tarea. Esta seleccin, y la consiguiente reproduccin, se puede hacer de las siguientes formas:
Basado en el rango Rueda de ruleta Seleccin de torneo

Crossover
Consiste en el intercambio de material gentico entre dos cromosomas. El crossover es el principal operador gentico, hasta el punto que se puede decir que no es un algoritmo gentico si no tiene crossover, y, sin embargo, puede serlo perfectamente sin mutacin, segn descubri Holland. El teorema de los esquemas confa en l para hallar la mejor solucin a un problema, combinando soluciones parciales.

El teorema de los esquemas, se basa en la nocin de bloques de construccin. Una buena solucin a un problema est constituida por unos buenos bloques, igual que una buena mquina est hecha por buenas piezas. El crossover es el encargado de mezclar bloques buenos que se encuentren en los diversos progenitores, y que sern los que den a los mismos una buena puntuacin. La presin selectiva se encarga de que slo los buenos bloques se perpeten, y poco a poco vayan formando una buena solucin. El teorema de los esquemas viene a decir que la cantidad de buenos bloques se va incrementando con el tiempo de ejecucin de un algoritmo gentico, y es el resultado terico ms importante en algoritmos genticos.

El intercambio gentico se puede llevar a cabo de muchas formas, pero hay dos grupos principales:
Crossover n-puntos Crossover uniforme Crossover especializados

Mutacin
En la Evolucin, una mutacin es un suceso bastante poco comn (sucede aproximadamente una de cada mil replicaciones), como ya se ha visto anteriormente. En la mayora de los casos las mutaciones son letales, pero en promedio, contribuyen a la diversidad gentica de la especie. En un algoritmo gentico tendrn el mismo papel, y la misma frecuencia (es decir, muy baja).

No conviene abusar de la mutacin. Es cierto que es un mecanismo generador de diversidad, y, por tanto, la solucin cuando un algoritmo gentico est estancado, pero tambin es cierto que reduce el algoritmo gentico a una bsqueda aleatoria. Siempre es ms conveniente usar otros mecanismos de generacin de diversidad, como aumentar el tamao de la poblacin, o garantizar la aleatoriedad de la poblacin inicial. Este operador, junto con la anterior y el mtodo de seleccin de ruleta, constituyen un algoritmo gentico simple, sga, introducido por Goldberg en su libro.

Otros operadores
No se usan en todos los problemas, sino slo en algunos, y en principio su variedad es infinita. Generalmente son operadores que exploran el espacio de soluciones de una forma ms ordenada, y que actan ms en las ltimas fases de la bsqueda, en la cual se pasa de soluciones "casi buenas" a "buenas" soluciones.
Cromosomas de longitud variable Operadores de nicho (ecolgico) Operadores especializados Operadores genticos

El zen y los algoritmos genticos


Este es el ttulo de un artculo que public Goldberg en la conferencia sobre algoritmos genticos celebrada en el ao 89 (icga 89), en donde da una serie de consejos para que se apliquen los algoritmos genticos debidamente, y avisa a aquellos que se quieren apartar de la ortodoxia.

Estos consejos son los siguientes:


Deja que la Naturaleza sea tu gua Cuidado con el asalto frontal Respeta la criba de esquemas

Mtodos de representacin
Antes de que un algoritmo gentico pueda ponerse a trabajar en un problema, se necesita un mtodo para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque comn es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dgito de cada posicin representa el valor de algn aspecto de la solucin.

Otro mtodo similar consiste en codificar las soluciones como cadenas de enteros o nmeros decimales, donde cada posicin, de nuevo, representa algn aspecto particular de la solucin. Este mtodo permite una mayor precisin y complejidad que el mtodo comparativamente restringido de utilizar slo nmeros binarios, y a menudo est intuitivamente ms cerca del espacio de problemas.

Un tercer mtodo consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra, de nuevo, representa un aspecto especfico de la solucin.

Tres sencillos rboles de programa del tipo utilizado normalmente en la programacin gentica.

Mtodos de seleccin
Un algoritmo gentico puede utilizar muchas tcnicas diferentes para seleccionar a los individuos que deben copiarse hacia la siguiente generacin, pero abajo se listan algunos de los ms comunes. Algunos de estos mtodos son mutuamente exclusivos, pero otros pueden utilizarse en combinacin, algo que se hace a menudo

Mtodos de seleccin
Seleccin Seleccin Seleccin Seleccin Seleccin Seleccin Seleccin Seleccin Seleccin elitista proporcional a la aptitud por rueda de ruleta escalada por torneo por rango generacional por estado estacionario jerrquica

Mtodos de cambio
Existen dos estrategias bsicas para llevar esto a cabo. La primera y ms sencilla se llama mutacin. Al igual que una mutacin en los seres vivos cambia un gen por otro, una mutacin en un algoritmo gentico tambin causa pequeas alteraciones en puntos concretos del cdigo de un individuo. El segundo mtodo se llama cruzamiento, e implica elegir a dos individuos para que intercambien segmentos de su cdigo, produciendo una descendencia artificial cuyos individuos son combinaciones de sus padres.

Cruzamiento y mutacin. El diagrama de arriba ilustra el efecto de estos dos operadores genticos en los individuos de una poblacin de cadenas de 8 bits. El diagrama superior muestra a dos individuos llevando a cabo un cruzamiento de un punto; el punto de intercambio se establece entre las posiciones quinta y sexta del genoma, produciendo un nuevo individuo que es hbrido de sus progenitores. El segundo diagrama muestra a un individuo sufriendo una mutacin en la posicin 4, cambiando el 0 de esa posicin de su genoma por un 1.

Otras tcnicas de resolucin de problemas


Con el auge de la informtica de inteligencia artificial y el desarrollo de los mtodos heursticos, han emergido otras tcnicas de resolucin computerizada de problemas que en algunos aspectos son similares a los algoritmos genticos. Esta seccin explica algunas de estas tcnicas, en qu se parecen a los AGs y en qu se diferencian.

Otras tcnicas de resolucin de problemas


Redes neuronales Ascenso a colina (Hill Climbing) Recocido simulado (simulated annealing)

Ventajas de los Algoritmos Genticos


Los algoritmos genticos son intrnsecamente paralelos. Los algoritmos genticos funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande -demasiado vasto para hacer una bsqueda exhaustiva en un tiempo razonable. Los algoritmos genticos es que se desenvuelven bien en problemas con un paisaje adaptativo complejo -aqullos en los que la funcin de aptitud es discontinua, ruidosa, cambia con el tiempo, o tiene muchos ptimos locales. Otra rea en el que destacan los algoritmos genticos es su habilidad para manipular muchos parmetros simultneamente.

Una Cualidad
Una de las cualidades de los algoritmos genticos que, a primera vista, puede parecer un desastre, resulta ser una de sus ventajas: a saber, los AGs no saben nada de los problemas que deben resolver.

Limitaciones?
Aunque los algoritmos genticos han demostrado su eficiencia y potencia como estrategia de resolucin de problemas, no son la panacea. Los AGs tienen ciertas limitaciones; sin embargo, se demostrar que todas ellas pueden superarse y que ninguna de ellas afecta a la validez de la evolucin biolgica.

Algunas Limitaciones
La primera y ms importante consideracin al crear un algoritmo gentico es definir una representacin del problema. El problema de cmo escribir la funcin de aptitud debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente signifique una solucin mejor para el problema dado. Deben elegirse cuidadosamente los otros parmetros de un AG -el tamao de la poblacin, el ritmo de mutacin y cruzamiento, el tipo y fuerza de la seleccin.

Algn Problema?
Un problema con el que los algoritmos genticos tienen dificultades son los problemas con las funciones de aptitud engaosas, en las que la situacin de los puntos mejorados ofrecen informacin engaosa sobre dnde se encuentra probablemente el ptimo global.

Otro Problema?
Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura. Si un individuo que es ms apto que la mayora de sus competidores emerge muy pronto en el curso de la ejecucin, se puede reproducir tan abundantemente que merme la diversidad de la poblacin demasiado pronto, provocando que el algoritmo converja hacia el ptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el ptimo global.

Un Consejo
Finalmente, varios investigadores aconsejan no utilizar algoritmos genticos en problemas resolubles de manera analtica. No es que los algoritmos genticos no puedan encontrar soluciones buenas para estos problemas; simplemente es que los mtodos analticos tradicionales consumen mucho menos tiempo y potencia computacional que los AGs y, a diferencia de los AGs, a menudo est demostrado matemticamente que ofrecen la nica solucin exacta.

Ejemplos
Mientras el poder de la evolucin gana reconocimiento cada vez ms generalizado, los algoritmos genticos se utilizan para abordar una amplia variedad de problemas en un conjunto de campos sumamente diverso, demostrando claramente su capacidad y su potencial. Esta seccin analizar algunos de los usos ms notables en los que han tomado parte.

Acstica

Sato et al. 2002 utilizaron algoritmos genticos para disear una sala de conciertos con propiedades acsticas ptimas, maximizando la calidad del sonido para la audiencia, para el director y para los msicos del escenario. Esta tarea implica la optimizacin simultnea de mltiples variables. Comenzando con una sala con forma de caja de zapatos, el AG de los autores produjo dos soluciones no dominadas, ambas descritas como con forma de hoja. Los autores afirman que estas soluciones tienen proporciones similares al Grosser Musikvereinsaal de Viena, el cual est considerado generalmente como una de las mejores -si no la mejor- salas de conciertos del mundo, en trminos de propiedades acsticas.

Ingeniera aeroespacial

Obayashi et al. 2000 utilizaron un algoritmo gentico de mltiples objetivos para disear la forma del ala de un avin supersnico. Hay tres consideraciones principales que determinan la configuracin del ala -minimizar la resistencia aerodinmica a velocidades de vuelo supersnicas, minimizar la resistencia a velocidades subsnicas y minimizar la carga aerodinmica (la fuerza que tiende a doblar el ala). Estos objetivos son mutuamente exclusivos, y optimizarlos todos simultneamente requiere realizar contrapartidas.

Astronoma y astrofsica

Charbonneau 1995 sugiere la utilidad de los AGs para problemas de astrofsica, aplicndolos a tres problemas de ejemplo: obtener la curva de rotacin de una galaxia basndose en las velocidades rotacionales observadas de sus componentes, determinar el periodo de pulsacin de una estrella variable basndose en series de datos temporales, y sacar los valores de los parmetros crticos de un modelo magnetohidrodinmico del viento solar. Son tres difciles problemas no lineales y multidimensionales. El algoritmo gentico de Charbonneau, PIKAIA, utiliza seleccin generacional y proporcional a la aptitud, junto con elitismo, para asegurar que el mejor individuo se copia una vez hacia la siguiente generacin sin ninguna modificacin.

Qumica

Un pulso lser ultracorto de alta energa puede romper molculas complejas en molculas ms sencillas, un proceso con aplicaciones importantes en la qumica orgnica y la microelectrnica. Los productos especficos de una reaccin as pueden controlarse modulando la fase del pulso lser. Sin embargo, para molculas grandes, obtener la forma del pulso deseado de manera analtica es demasiado difcil: los clculos son demasiado complejos y las caractersticas relevantes (las superficies de energa potencial de las molculas) no se conocen con suficiente precisin. Assion et al. 1998 resolvieron este problema utilizando un algoritmo evolutivo para disear la forma del pulso. En lugar de introducir informacin compleja, especfica del problema, sobre las caractersticas cunticas de las molculas iniciales, para disear el pulso conforme a las especificaciones, el AE dispara un pulso, mide las proporciones de las molculas producto resultantes, muta aleatoriamente las caractersticas del rayo con la esperanza de conseguir que estas proporciones se acerquen a la salida deseada, y el proceso se repite.

Ingeniera elctrica

Altshuler y Linden 1997 utilizaron un algoritmo gentico para evolucionar antenas de alambre con propiedades especificadas a priori. Los autores sealan que el diseo de tales antenas es un proceso impreciso, comenzando con las propiedades deseadas y luego determinando la forma de la antena mediante conjeturas... intuicin, experiencia, ecuaciones aproximadas o estudios empricos. Esta tcnica requiere mucho tiempo, a menudo no produce resultados ptimos y tiende a funcionar bien slo con diseos simtricos y relativamente simples. En contraste, con el mtodo del algoritmo gentico, el ingeniero especifica las propiedades electromagnticas de la antena, y el AG sintetiza automticamente una configuracin que sirva.

Matemticas y algoritmia

Aunque algunas de las aplicaciones ms prometedoras y las demostraciones ms convincentes de la potencia de los AGs se encuentran en el campo de la ingeniera de diseo, tambin son relevantes en problemas puramente matemticos. Haupt y Haupt 1998 describen el uso de AGs para resolver ecuaciones de derivadas parciales no lineales de alto orden, normalmente encontrando los valores para los que las ecuaciones se hacen cero, y dan como ejemplo una solucin casi perfecta para los coeficientes de la ecuacin de quinto orden conocida como Super Korteweg-de Vries.

Robtica

El torneo internacional RoboCup es un proyecto para promocionar el avance de la robtica, la inteligencia artificial y los campos relacionados, proporcionando un problema estndar con el que probar las nuevas tecnologas -concretamente, es un campeonato anual de ftbol entre equipos de robots autnomos. (El objetivo fijado es desarrollar un equipo de robots humanoides que puedan vencer al equipo humano de ftbol que sea campen del mundo en 2050; actualmente, la mayora de los equipos de robots participantes funcionan con ruedas). Los programas que controlan a los miembros del equipo robtico deben exhibir un comportamiento complejo, decidiendo cundo bloquear, cundo tirar, cmo moverse, cundo pasar la pelota a un compaero, cmo coordinar la defensa y el ataque, etctera. En la liga simulada de 1997, David Andre y Astro Teller inscribieron a un equipo llamado Darwin United cuyos programas de control haban sido desarrollados automticamente desde cero mediante programacin gentica, un desafo a la creencia convencional de que ``este problema es simplemente demasiado difcil para una tcnica como sa'' (Andre y Teller 1999).

Para resolver este difcil problema, Andre y Teller le proporcionaron al programa gentico un conjunto de funciones de control primitivas como girar, moverse, tirar, etctera. Su funcin de aptitud, escrita para que recompensara el buen juego en general en lugar de marcar goles expresamente, proporcionaba una lista de objetivos cada vez ms importantes: acercarse a la pelota, golpear la pelota, conservar la pelota en el campo contrario, moverse en la direccin correcta, marcar goles y ganar el partido. Debe sealarse que no se suministr ningn cdigo para ensear especficamente al equipo cmo conseguir estos objetivos complejos. Luego los programas evolucionados se evaluaron utilizando un modelo de seleccin jerrquico: en primer lugar, los equipos candidatos se probaron en un campo vaco y, si no marcaban un gol en menos de 30 segundos, se rechazaban. Luego se evaluaron hacindoles jugar contra un equipo estacionario de postes pateadores que golpeaban la pelota hacia el campo contrario. En tercer lugar, el equipo jugaba un partido contra el equipo ganador de la competicin RoboCup de 1997. Finalmente, los equipos que marcaron al menos un gol contra este equipo jugaron unos contra otros para determinar cul era el mejor.

De los 34 equipos de su divisin, Darwin United acab en decimosptima posicin, situndose justo en el medio de la clasificacin y superando a la mitad de los participantes escritos por humanos. Aunque una victoria en el torneo sin duda habra sido ms impresionante, este resultado es competitivo y significante de pleno derecho, y lo parece an ms a la luz de la historia. Hace unos 25 aos, los programas informticos que jugaban al ajedrez estaban en su infancia; por primera vez, una computadora haba sido inscrita recientemente en una competicin regional, aunque no gan (Sagan 1979). Pero una mquina que juega al ajedrez a un nivel medio de la capacidad humana es una mquina muy capaz (ibid.), y podra decirse que lo mismo es cierto para el ftbol robotizado. Si las mquinas de ajedrez actuales compiten al nivel de los grandes maestros, qu tipo de sistemas producir la programacin gentica dentro de 20 o 30 aos?

Ingeniera de sistemas

Benini y Toffolo 2002 aplicaron un algoritmo gentico a la tarea multiobjetivo de disear molinos elicos para generar energa elctrica. Este diseo es un procedimiento complejo caracterizado por varias decisiones sobre contrapartidas...

Conclusiones
Un algoritmo gentico (AG) es uno de los mtodos heursticos utilizados para hallar soluciones aproximadas a problemas NPcompletos inspirado en los principios darwinianos de la evolucin de las especies. Estos algoritmos son un caso particular de algoritmos evolucionarios y emplean tcnicas propias de la Gentica, tales como: herencia, mutacin, seleccin natural y recombinacin (o crossover).

El autor de las ideas fundamentales de los algoritmos genticos es John Holland, quien los present en Adaptation in Natural and Artificial Systems, Univ. of Michigan Press (1975). La principal ventaja y a la vez desventaja de AG es su fortaleza: an si se implementan algunas de sus operaciones incorrectamente, un AG continuar computando y eventualmente hallar una solucin, aunque en general halla un ptimo local y no la solucin global. Esta fortaleza dificulta la correccin (debugging) y refinamiento del programa.

También podría gustarte