SlideShare une entreprise Scribd logo
1  sur  86
Télécharger pour lire hors ligne
UNIVERSIDAD NACIONAL MICAELA BASTIDAS
               DE APURIMAC




           CURSO: ALGORITMICA III




               TEMA Nº5




               Anonimo.



       DOCENTE: ING. RAUL PEÑA MALLMA




                 AÑO: 2012




       Tambiurco-ABANCAY




                ALGORITMICA III
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


                                       Índice

ALGORITMOS GENÉTICOS……………………………………………………….4

Métodos de representación…………………………………………………..….5

Métodos de selección……………………………………………………………..7

Métodos de cambio………………………………………………………………..9

Otras técnicas de resolución de problemas………………………………….10

Redes neuronales………………………………………………………………….11

Ascenso a colina (Hill Climbing)……………………………………………….12

Recocido simulado (simulated annealing)……………………………………13

Una breve historia de los AGs…………………………………………………..13

¿Cuáles son las ventajas de los AGs?....................................................16

¿Cuáles son las limitaciones de los AGs? …………………………………..22

Algunos ejemplos específicos de AG……………………………………….…28

Acústica………………………………………………………………………….….28

Ingeniería aeroespacial……………………………………………………………30

Astronomía y astrofísica……………………………………………………….…33

Ingeniería eléctrica……………………………………………………….…….…37

Mercados financieros…………………………………………………………….39


               ING.INFORMATICA Y SISTEMAS
                  ALGORITMOS GENETICOS
                                                                                             2
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Juegos ………………………………………………………………………………42

Geofísica………………………………………………………………………….…46

Ingeniería de materiales………………………………………………………….48

Matemáticas y algoritmia……………………………………………………..…50

Ejército y cumplimiento de la ley ………………………………………….….52

Biología molecular…………………………………………………………..……54

Reconocimiento de patrones y explotación de datos ……………….……56

Diseño de rutas y horarios………………………………………………………61

Ingeniería de sistemas …………………………………………………….……65

Los AGs no tienen múltiples sistemas de lectura………………………….79

Los AGs tienen objetivos predeterminados………………………………….80

 Los AGs no generan información nueva en realida………………………82




          ING.INFORMATICA Y SISTEMAS
            ALGORITMOS GENETICOS
                                                                3
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


                            ALGORITMO GENÉTICO

Expuesto concisamente, un algoritmo genético (o AG para abreviar) es una
técnica de programación que imita a la evolución biológica como estrategia para
resolver problemas. Dado un problema específico a resolver, la entrada del AG es
un conjunto de soluciones potenciales a ese problema, codificadas de alguna
manera, y una métrica llamada función 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.

Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un
acervo de candidatas generadas aleatoriamente, por supuesto, la mayoría no
funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas
pocas pueden ser prometedoras -pueden mostrar actividad, aunque sólo sea
actividad débil e imperfecta, hacia la solución del problema.

Estas candidatas prometedoras se conservan y se les permite reproducirse. Se
realizan múltiples copias de ellas, pero las copias no son perfectas; se introducen
cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital
prosigue con la siguiente generación, formando un nuevo acervo de soluciones
candidatas, y son sometidas a una ronda de evaluación de aptitud. Las candidatas
que han empeorado o no han mejorado con los cambios en su código son
eliminadas de nuevo; pero, de nuevo, por puro azar, las variaciones aleatorias
introducidas en la población pueden haber mejorado a algunos individuos,
convirtiéndolos en mejores soluciones del problema, más completas o más
eficientes. De nuevo, se selecionan y copian estos individuos vencedores hacia la
siguiente generación con cambios aleatorios, y el proceso se repite. Las
expectativas son que la aptitud media de la población se incrementará en cada
ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden
descubrirse soluciones muy buenas del problema.
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                               4
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Aunque a algunos les puede parecer asombroso y antiintuitivo, los algoritmos
genéticos han demostrado ser una estrategia enormemente poderosa y exitosa
para resolver problemas, demostrando de manera espectacular el poder de los
principios evolutivos. Se han utilizado algoritmos genéticos en una amplia variedad
de campos para desarrollar soluciones a problemas tan difíciles o más difíciles que
los abordados por los diseñadores humanos. Además, las soluciones que
consiguen son a menudo más eficientes, más elegantes o más complejas que
nada que un ingeniero humano produciría. ¡En algunos casos, los algoritmos
genéticos han producido soluciones que dejan perplejos a los programadores que
escribieron los algoritmos en primera instancia!

Métodos de representación

Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se
necesita un método para codificar las soluciones potenciales del problema de
forma que una computadora pueda procesarlas. Un enfoque común es codificar
las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dígito de
cada posición representa el valor de algún aspecto de la solución. Otro método
similar consiste en codificar las soluciones como cadenas de enteros o números
decimales, donde cada posición, de nuevo, representa algún aspecto particular de
la solución. Este método permite una mayor precisión y complejidad que el método
comparativamente restringido de utilizar sólo números binarios, y a menudo ``está
intuitivamente más cerca del espacio de problemas'' .

Esta técnica se utilizó, por ejemplo, en el trabajo de Steffen Schulze-Kremer, que
escribió un algoritmo genético para predecir la estructura tridimensional de una
proteína, basándose en la secuencia de aminoácidos que la componen . El AG de
Schulze-Kremer utilizaba números reales para representar los famosos ``ángulos
de torsión'' entre los enlaces peptídicos que conectan a los aminoácidos. (Una
proteína está formada por una secuencia de bloques básicos llamados
aminoácidos, que se conectan como los eslabones de una cadena. Una vez que

             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                               5
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


todos los aminoácidos están enlazados, la proteína se dobla formando una
compleja estructura tridimensional, basada en cuáles aminoácidos se atraen entre
ellos y cuáles se repelen. La forma de una proteína determina su función). Los
algoritmos genéticos para entrenar a las redes neuronales también utilizan a
menudo este método de codificación.

Un tercer método consiste en representar a los individuos de un AG como
cadenas de letras, donde cada letra, de nuevo, representa un aspecto específico
de la solución. Un ejemplo de esta técnica es el método basado en ``codificación
gramática'' de Hiroaki Kitano, en el que a un AG se le encargó la tarea de
evolucionar un sencillo conjunto de reglas llamadas gramática libre de contexto,
que a su vez se utilizaban para generar redes neuronales para una variedad de
problemas .

La virtud de estos tres métodos es que facilitan la definición de operadores que
causen los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por
un 1 o viceversa, sumar o restar al valor de un número una cantidad elegida al
azar, o cambiar una letra por otra. (Ver la sección sobre los métodos de cambio
para más detalles acerca de los operadores genéticos). Otra estrategia,
desarrollada principalmente por John Koza, de la Universidad de Stanford, y
denominada programación genética, representa a los programas como estructuras
de datos ramificadas llamadas árboles . En este método, los cambios aleatorios
pueden generarse cambiado el operador o alterando el valor de un cierto nodo del
árbol, o sustituyendo un subárbol por otro.




              ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                            6
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC




Figure: Tres sencillos árboles de programa del tipo utilizado normalmente en la
programación genética. Debajo se proporciona la expresión matemática que
representa cada uno.


Es importante señalar que los algoritmos evolutivos no necesitan representar las
soluciones candidatas como cadenas de datos de una longitud fija. Algunos las
representan de esta manera, pero otros no; por ejemplo, la ``codificación
gramatical'' de Kitano, explicada arriba, puede escalarse eficientemente para crear
redes neuronales grandes y complejas, y los árboles de programación genética de
Koza pueden crecer arbitrariamente tanto como sea necesario para resolver
cualquier problema que se les pida.

Métodos de selección

Un algoritmo genético puede utilizar muchas técnicas diferentes para seleccionar a
los individuos que deben copiarse hacia la siguiente generación, pero abajo se
listan algunos de los más comunes. Algunos de estos métodos son mutuamente
exclusivos, pero otros pueden utilizarse en combinación, algo que se hace a
menudo.

      Selección elitista: se garantiza la selección de los miembros más aptos de
      cada generación. (La mayoría de los AGs no utilizan elitismo puro, sino que
      usan una forma modificada por la que el individuo mejor, o algunos de los


             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                               7
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


mejores, son copiados hacia la siguiente generación en caso de que no
surja nada mejor).
Selección proporcional a la aptitud: los individuos más aptos tienen más
probabilidad de ser seleccionados, pero no la certeza.
Selección por rueda de ruleta: una forma de selección proporcional a la
aptitud en la que la probabilidad de que un individuo sea seleccionado es
proporcional a la diferencia entre su aptitud y la de sus competidores.
(Conceptualmente, esto puede representarse como un juego de ruleta -
cada individuo obtiene una sección de la ruleta, pero los más aptos
obtienen secciones mayores que las de los menos aptos. Luego la ruleta se
hace girar, y en cada vez se elige al individuo que ``posea'' la sección en la
que se pare la ruleta).
Selección escalada: al incrementarse la aptitud media de la población, la
fuerza de la presión selectiva también aumenta y la función de aptitud se
hace más discriminadora. Este método puede ser útil para seleccionar más
tarde, cuando todos los individuos tengan una aptitud relativamente alta y
sólo les distingan pequeñas diferencias en la aptitud.
Selección por torneo: se eligen subgrupos de individuos de la población, y
los miembros de cada subgrupo compiten entre ellos. Sólo se elige a un
individuo de cada subgrupo para la reproducción.
Selección por rango: a cada individuo de la población se le asigna un rango
numérico basado en su aptitud, y la selección se basa en este ranking, en
lugar de las diferencias absolutas en aptitud. La ventaja de este método es
que puede evitar que individuos muy aptos ganen dominancia al principio a
expensas de los menos aptos, lo que reduciría la diversidad genética de la
población y podría obstaculizar la búsqueda de una solución aceptable.
Selección generacional: la descendencia de los individuos seleccionados en
cada generación se convierte en toda la siguiente generación. No se
conservan individuos entre las generaciones.


      ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                          8
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


      Selección por estado estacionario: la descendencia de los individuos
      seleccionados en cada generación vuelven al acervo genético preexistente,
      reemplazando a algunos de los miembros menos aptos de la siguiente
      generación. Se conservan algunos individuos entre generaciones.
      Selección jerárquica: los individuos atraviesan múltiples rondas de
      selección en cada generación. Las evaluaciones de los primeros niveles
      son más rápidas y menos discriminatorias, mientras que los que sobreviven
      hasta niveles más altos son evaluados más rigurosamente. La ventaja de
      este método es que reduce el tiempo total de cálculo al utilizar una
      evaluación más rápida y menos selectiva para eliminar a la mayoría de los
      individuos que se muestran poco o nada prometedores, y sometiendo a una
      evaluación de aptitud más rigurosa y computacionalmente más costosa sólo
      a los que sobreviven a esta prueba inicial.



Métodos de cambio

Una vez que la selección ha elegido a los individuos aptos, éstos deben ser
alterados aleatoriamente con la esperanza de mejorar su aptitud para la siguiente
generación. Existen dos estrategias básicas para llevar esto a cabo. La primera y
más sencilla se llama mutación. Al igual que una mutación en los seres vivos
cambia un gen por otro, una mutación en un algoritmo genético también causa
pequeñas alteraciones en puntos concretos del código de un idividuo.

El segundo método se llama cruzamiento, e implica elegir a dos individuos para
que intercambien segmentos de su código, produciendo una ``descendencia''
artificial cuyos individuos son combinaciones de sus padres. Este proceso
pretende simular el proceso análogo de la recombinación que se da en los
cromosomas durante la reproducción sexual. Las formas comunes de cruzamiento
incluyen al cruzamiento de un punto, en el que se establece un punto de
intercambio en un lugar aleatorio del genoma de los dos individuos, y uno de los

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                             9
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


individuos contribuye todo su código anterior a ese punto y el otro individuo
contribuye todo su código a partir de ese punto para producir una descendencia, y
al cruzamiento uniforme, en el que el valor de una posición dada en el genoma de
la descendencia corresponde al valor en esa posición del genoma de uno de los
padres o al valor en esa posición del genoma del otro padre, elegido con un 50%
de probabilidad.




Figure: Cruzamiento y mutación. El diagrama de arriba ilustra el efecto de estos
dos operadores genéticos en los individuos de una población 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
híbrido de sus progenitores. El segundo diagrama muestra a un individuo
sufriendo una mutación en la posición 4, cambiando el 0 de esa posición de su
genoma por un 1.


Otras técnicas de resolución de problemas

Con el auge de la informática de inteligencia artificial y el desarrollo de los
métodos heurísticos, han emergido otras técnicas de resolución computerizada de
problemas que en algunos aspectos son similares a los algoritmos genéticos. Esta
sección explica algunas de estas técnicas, en qué se parecen a los AGs y en qué
se diferencian.



             ING.INFORMATICA Y SISTEMAS
                  ALGORITMOS GENETICOS
                                                                            10
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC



Redes neuronales

Una red neuronal es un método de resolución de problemas basado en un modelo
informático de la manera en que están conectadas las neuronas del cerebro. Una
red neuronal consiste en capas de unidades procesadoras, llamadas nodos,
unidas por conexiones direccionales: una capa de entrada, una capa de salida y
cero o más capas ocultas enmedio. Se le presenta un patrón inicial de entrada a la
capa de entrada, y luego los nodos que se estimulan transmiten una señal a los
nodos de la siguiente capa a la que están conectados. Si la suma de todas las
entradas que entran en una de estas neuronas virtuales es mayor que el famoso
umbral de activación de la neurona, esa neurona se activa, y transmite su propia
señal a las neuronas de la siguiente capa. El patrón de activación, por tanto, se
propaga hacia delante hasta que alcanza a la capa de salida, donde es devuelto
como solución a la entrada presentada. Al igual que en el sistema nervioso de los
organismos biológicos, las redes neuronales aprenden y afinan su rendimiento a lo
largo del tiempo, mediante la repetición de rondas en las que se ajustan sus
umbrales, hasta que la salida real coincide con la salida deseada para cualquier
entrada dada. Este proceso puede ser supervisado por un experimentador
humano, o puede correr automáticamente utilizando un algoritmo de aprendizaje
.Se han utilizado algoritmos genéticos para construir y entrenar a redes
neuronales.




              ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                             11
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Figure: Una sencilla red neuronal anticipativa (feedforward), con una capa
consistente en cuatro neuronas, una capa oculta consistente en tres neuronas y
una capa de salida consistente en cuatro neuronas. El número de cada neurona
representa su umbral de activación: sólo se excitará si recibe al menos esa
cantidad de entradas. El diagrama muestra cómo la red neuronal recibe una
cadena de entrada y cómo la activación se extiende por la red hasta producir una
salida.


Ascenso a colina (Hill Climbing)

Similares a los algoritmos genéticos, aunque más sistemáticos y menos aleatorios.
Un algoritmo de ascenso a colina comienza con una solución al problema a mano,
normalmente elegida al azar. Luego, la cadena se muta, y si la mutación
proporciona una solución con mayor aptitud que la solución anterior, se conserva
la nueva solución; en caso contrario, se conserva la solución actual. Luego el
algoritmo se repite hasta que no se pueda encontrar una mutación que provoque
un incremento en la aptitud de la solución actual, y esta solución se devuelve
como . (Para entender de dónde viene el nombre de esta técnica, imagine que el
espacio de todas las soluciones posibles de un cierto problema se representa
como un paisaje tridimensional. Un conjunto de coordenadas en ese paisaje
representa una solución particular. Las soluciones mejores están a mayor altitud,
formando colinas y picos; las que son peores están a menor altitud, formando
valles. Un ``trepacolinas'' es, por tanto, un algoritmo que comienza en un punto
dado del paisaje y se mueve inexorablemente colina arriba). El algoritmo de
ascenso a colina es lo que se conoce como algoritmo voraz, lo que significa que
siempre hace la mejor elección disponible en cada paso, con la esperanza de que
de esta manera se puede obtener el mejor resultado global. En contraste, los
métodos como los algoritmos genéticos y el recocido simulado, discutido abajo, no
son voraces; a veces, estos métodos hacen elecciones menos óptimas al principio
con la esperanza de que conducirán hacia una solución mejor más adelante.

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                            12
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Recocido simulado (simulated annealing)

Otra técnica de optimización similar a los algoritmos evolutivos se conoce como
recocido simulado. La idea toma prestado su nombre del proceso industrial en el
que un material se calienta por encima de su punto de fusión y luego se enfría
gradualmente para eliminar defectos en su estructura cristalina, produciendo un
entramado de átomos más estable y regular .En el recocido simulado, como en los
algoritmos genéticos, existe una función de aptitud que define un paisaje
adaptativo; sin embargo, en lugar de una población de candidatas como en los
AGs, sólo existe una solución candidata. El recocido simulado también añade el
concepto de ``temperatura'', una cantidad numérica global que disminuye
gradualmente en el tiempo. En cada paso del algoritmo, la solución muta (lo que
es equivalente a moverse hacia un punto adyacente en el paisaje adaptativo).
Luego, la aptitud de la nueva solución se compara con la aptitud de la solución
anterior; si es mayor, se conserva la nueva solución. En caso contrario, el
algoritmo toma la decisión de conservarla o descartarla en base a la temperatura.
Si la temperatura es alta, como lo es al principio, pueden conservarse incluso
cambios que causan decrementos significativos en la aptitud, y utilizarse como
base para la siguiente ronda del algoritmo, pero al ir disminuyendo la temperatura,
el algoritmo se va haciendo más y más propenso a aceptar sólo los cambios que
aumentan la aptitud. Finalmente, la temperatura alzanca el cero y el sistema se
``congela''; cualquiera que sea la configuración que exista en ese punto se
convierte en la solución. El recocido simulado tiene a menudo aplicaciones en la
ingeniería del diseño, como determinar la disposición física de los componentes en
un chip .

Una breve historia de los AGs

Los primeros ejemplos de lo que hoy podríamos llamar algoritmos genéticos
aparecieron a finales de los 50 y principios de los 60, programados en
computadoras por biólogos evolutivos que buscaban explícitamente realizar

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                              13
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió que
esta estrategia podría aplicarse de manera más general a los problemas
artificiales, pero ese reconocimiento no tardaría en llegar: ``La computación
evolutiva estaba definitivamente en el aire en los días formativos de la
computadora electrónica'' . En 1962, investigadores como G.E.P. Box, G.J.
Friedman,    W.W.     Bledsoe    y   H.J.    Bremermann      habían    desarrollado
independientemente algoritmos inspirados en la evolución para optimización de
funciones y aprendizaje automático, pero sus trabajos generaron poca reacción.
En 1965 surgió un desarrollo más exitoso, cuando Ingo Rechenberg, entonces de
la Universidad Técnica de Berlín, introdujo una técnica que llamó estrategia
evolutiva, aunque se parecía más a los trepacolinas que a los algoritmos
genéticos. En esta técnica no había población ni cruzamiento; un padre mutaba
para producir un descendiente, y se conservaba el mejor de los dos,
convirtiéndose en el padre de la siguiente ronda de mutación .Versiones
posteriores introdujeron la idea de población. Las estrategias evolutivas todavía se
emplean hoy en día por ingenieros y científicos, sobre todo en Alemania.

El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel,
A.J. Owens y M.J. Walsh introdujeron en América una técnica que llamaron
programación evolutiva. En este método, las soluciones candidatas para los
problemas se representaban como máquinas de estado finito sencillas; al igual
que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando
aleatoriamente una de estas máquinas simuladas y conservando la mejor de las
dos . También al igual que las estrategias evolutivas, hoy en día existe una
formulación más amplia de la técnica de programación evolutiva que todavía es un
área de investigación en curso. Sin embargo, lo que todavía faltaba en estas dos
metodologías era el reconocimiento de la importancia del cruzamiento.

En una fecha tan temprana como 1962, el trabajo de John Holland sobre sistemas
adaptativos estableció las bases para desarrollos posteriores; y lo que es más
importante, Holland fue también el primero en proponer explícitamente el
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                               14
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


cruzamiento y otros operadores de recombinación. Sin embargo, el trabajo
fundamental en el campo de los algoritmos genéticos apareció en 1975, con la
publicación del libro ``Adaptación en Sistemas Naturales y Artificiales''. Basado en
investigaciones y papers anteriores del propio Holland y de colegas de la
Universidad de Michigan, este libro fue el primero en presentar sistemática y
rigurosamente el concepto de sistemas digitales adaptativos utilizando la
mutación, la selección y el cruzamiento, simulando el proceso de la evolución
biológica como estrategia para resolver problemas. El libro también intentó colocar
los algoritmos genéticos sobre una base teórica firme introduciendo el concepto de
esquema .Ese mismo año, la importante tesis de Kenneth De Jong estableció el
potencial de los AGs demostrando que podían desenvolverse bien en una gran
variedad de funciones de prueba, incluyendo paisajes de búsqueda ruidosos,
discontinuos y multimodales .

Estos trabajos fundacionales establecieron un interés más generalizado en la
computación evolutiva. Entre principios y mediados de los 80, los algoritmos
genéticos se estaban aplicando en una amplia variedad de áreas, desde
problemas matemáticos abstractos como el ``problema de la mochila'' (bin-
packing) y la coloración de grafos hasta asuntos tangibles de ingeniería como el
control de flujo en una línea de ensamble, reconocimiento y clasificación de
patrones y optimización estructural.

Al principio, estas aplicaciones eran principalmente teóricas. Sin embargo, al
seguir proliferando la investigación, los algoritmos genéticos migraron hacia el
sector comercial, al cobrar importancia con el crecimiento exponencial de la
potencia de computación y el desarrollo de Internet. Hoy en día, la computación
evolutiva es un campo floreciente, y los algoritmos genéticos están ``resolviendo
problemas de interés cotidiano''

en áreas de estudio tan diversas como la predicción en la bolsa y la planificación
de la cartera de valores, ingeniería aeroespacial, diseño de microchips, bioquímica

             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                               15
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


y biología molecular, y diseño de horarios en aeropuertos y líneas de montaje. La
potencia de la evolución ha tocado virtualmente cualquier campo que uno pueda
nombrar, modelando invisiblemente el mundo que nos rodea de incontables
maneras, y siguen descubriéndose nuevos usos mientras la investigación sigue su
curso. Y en el corazón de todo esto se halla nada más que la simple y poderosa
idea de Charles Darwin: que el azar en la variación, junto con la ley de la
selección, es una técnica de resolución de problemas de inmenso poder y de
aplicación casi ilimitada.

¿Cuáles son las ventajas de los AGs?

       El primer y más importante punto es que los algoritmos genéticos son
       intrínsecamente paralelos. La mayoría de los otros algoritmos son en serie
       y sólo pueden explorar el espacio de soluciones hacia una solución en una
       dirección al mismo tiempo, y si la solución que descubren resulta
       subóptima, no se puede hacer otra cosa que abandonar todo el trabajo
       hecho y empezar de nuevo. Sin embargo, ya que los AGs tienen
       descendencia múltiple, pueden explorar el espacio de soluciones en
       múltiples direcciones a la vez. Si un camino resulta ser un callejón sin
       salida, pueden eliminarlo fácilmente y continuar el tabajo en avenidas más
       prometedoras, dándoles una mayor probabilidad en cada ejecución de
       encontrar                            la                             solución.


       Sin embargo, la ventaja del paralelismo va más allá de esto. Considere lo
       siguiente: todas las cadenas binarias (cadenas de ceros y unos) de 8
       dígitos forman un espacio de búsqueda, que puede representarse como
       ******** (donde * significa ``o 0 o 1''). La cadena 01101010 es un miembro
       de este espacio. Sin embargo, también es un miembro del espacio 0*******,
       del espacio 01******, del espacio 0******0, del espacio 0*1*1*1*, del espacio
       10*01**0, etcétera. Evaluando la aptitud de esta cadena particular, un
       algoritmo genético estaría sondeando cada uno de los espacios a los que
              ING.INFORMATICA Y SISTEMAS
                 ALGORITMOS GENETICOS
                                                                               16
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


pertenece. Tras muchas evaluaciones, iría obteniendo un valor cada vez
más preciso de la aptitud media de cada uno de estos espacios, cada uno
de los cuales contiene muchos miembros. Por tanto, un AG que evalúe
explícitamente un número pequeño de individuos está evaluando
implícitamente un grupo de individuos mucho más grande -de la misma
manera que un encuestador que le hace preguntas a un cierto miembro de
un grupo étnico, religioso o social espera aprender algo acerca de las
opiniones de todos los miembros de ese grupo, y por tanto puede predecir
con fiabilidad la opinión nacional sondeando sólo un pequeño porcentaje de
la población. De la misma manera, el AG puede dirigirse hacia el espacio
con los individuos más aptos y encontrar el mejor de ese grupo. En el
contexto de los algoritmos evolutivos, esto se conoce como teorema del
esquema, y es la ventaja principal de los AGs sobre otros métodos de
resolución de problemas
Debido al paralelismo que les permite evaluar implícitamente muchos
esquemas a la vez, los algoritmos genéticos funcionan particularmente bien
resolviendo problemas cuyo espacio de soluciones potenciales es
realmente grande -demasiado vasto para hacer una búsqueda exhaustiva
en un tiempo razonable. La mayoría de los problemas que caen en esta
categoría se conocen como ``no lineales''. En un problema lineal, la aptitud
de cada componente es independiente, por lo que cualquier mejora en
alguna parte dará como resultado una mejora en el sistema completo. No
es necesario decir que hay pocos problemas como éste en la vida real. La
no linealidad es la norma, donde cambiar un componente puede tener
efectos en cadena en todo el sistema, y donde cambios múltiples que,
individualmente, son perjudiciales, en combinación pueden conducir hacia
mejoras en la aptitud mucho mayores. La no linealidad produce una
explosión combinatoria: el espacio de cadenas binarias de 1.000 dígitos
puede examinarse exhaustivamente evaluando sólo 2.000 posibilidades si
el problema es lineal, mientras que si no es lineal, una búsqueda exhaustiva

      ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                       17
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


requiere evaluar 21.000 posibilidades -un número que, escrito, ocuparía
más                      de                  300                    dígitos.


Afortunadamente, el paralelismo implícito de los AGs les permite superar
incluso este enorme número de posibilidades, y encontrar con éxito
resultados óptimos o muy buenos en un corto periodo de tiempo, tras
muestrear directamente sólo regiones pequeñas del vasto paisaje
adaptativo Por ejemplo, un algoritmo genético desarrollado en común por
ingenieros de General Electric y el Rensselaer Polytechnic Institute produjo
el diseño de la turbina de un motor a reacción de altas prestaciones que era
tres veces mejor que la configuración diseñada por humanos, y un 50%
mejor que una configuración diseñada por un sistema experto que recorrió
con éxito un espacio de soluciones que contenía más de 10.387
posibilidades. Los métodos convencionales para diseñar estas turbinas son
una parte fundamental de proyectos de ingeniería que pueden durar hasta
cinco años y costar más de 2.000 millones de dólares; el algoritmo genético
descubrió esta solución en dos días, en una estación de trabajo de
escritorio típica en ingeniería
Otra ventaja notable de los algoritmos genéticos es que se desenvuelven
bien en problemas con un paisaje adaptativo complejo -aquéllos en los que
la función de aptitud es discontinua, ruidosa, cambia con el tiempo, o tiene
muchos óptimos locales. La mayoría de los problemas prácticos tienen un
espacio de soluciones enorme, imposible de explorar exhaustivamente; el
reto se convierte entonces en cómo evitar los óptimos locales -soluciones
que son mejores que todas las que son similares a ella, pero que no son
mejores que otras soluciones distintas situadas en algún otro lugar del
espacio de soluciones. Muchos algoritmos de búsqueda pueden quedar
atrapados en los óptimos locales: si llegan a lo alto de una colina del
paisaje adaptativo, descubrirán que no existen soluciones mejores en las
cercanías y concluirán que han alcanzado la mejor de todas, aunque

       ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                       18
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


existan   picos   más    altos   en   algún    otro   lugar   del   mapa.


Los algoritmos evolutivos, por otro lado, han demostrado su efectividad al
escapar de los óptimos locales y descubrir el óptimo global incluso en
paisajes adaptativos muy escabrosos y complejos. (Debe decirse que, en la
realidad, a menudo no hay manera de decir si una cierta solución a un
problema es el óptimo global o sólo un óptimo local muy alto. Sin embargo,
aunque un AG no devuelva siempre una solución perfecta y demostrable a
un problema, casi siempre puede devolver al menos una muy buena
solución). Todos los cuatro componentes principales de los AGs -
paralelismo, selección, mutación y cruzamiento- trabajan juntos para
conseguir esto. Al principio, el AG genera una población inicial diversa,
lanzando una ``red'' sobre el paisaje adaptativo. compara esto con un
ejército de paracaidistas cayendo sobre el paisaje del espacio de búsqueda
de un problema, cada uno de ellos con órdenes de buscar el pico más alto).
Pequeñas mutaciones permiten a cada individuo explorar sus proximidades,
mientras que la selección enfoca el progreso, guiando a la descendencia
del algoritmo cuesta arriba hacia zonas más prometedoras del espacio de
soluciones


Sin embargo, el cruzamiento es el elemento clave que distingue a los
algoritmos genéticos de los otros métodos como los trepacolinas y el
recocido simulado. Sin el cruzamiento, cada solución individual va por su
cuenta, explorando el espacio de búsqueda en sus inmediaciones sin
referencia de lo que el resto de individuos puedan haber descubierto. Sin
embargo, con el cruzamiento en juego, hay una transferencia de
información entre los candidatos prósperos -los individuos pueden
beneficiarse de lo que otros han aprendido, y los esquemas pueden
mezclarse y combinarse, con el potencial de producir una descendencia
que tenga las virtudes de sus dos padres y ninguna de sus debilidades.

      ING.INFORMATICA Y SISTEMAS
          ALGORITMOS GENETICOS
                                                                     19
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


donde los autores analizan el problema de sintetizar un filtro de paso bajo
utilizando programación genética. En una generación se seleccionaron dos
circuitos progenitores para llevar a cabo el cruzamiento; un padre tenía una
buena    topología   (componentes      como   inductores   y   condensadores
colocados en el sitio correcto) pero malos tamaños (valores demasiado
bajos de inductancia y capacidad para los componentes). El otro padre
tenía mala topología pero buenos tamaños. El resultado de aparearlos
mediante cruzamiento fue una descendencia con la buena topología de un
padre y los buenos tamaños del otro, dando como resultado una mejora
sustancial     de     la     aptitud      sobre     sus        dos   padres.


El problema de encontrar el óptimo global en un espacio con muchos
óptimos locales también se conoce como el dilema de la exploración versus
explotación, ``un problema clásico de todos los sistemas que pueden
adaptarse y aprender'' Una vez que un algoritmo (o un diseñador humano)
ha encontrado una estrategia para resolver problemas que parece funcionar
satisfactoriamente, ¿debería centrarse en hacer el mejor uso de esa
estrategia, o buscar otras? Abandonar una estrategia de probada solvencia
para buscar otras nuevas casi garantiza que supondrá una pérdida y
degradación del rendimiento, al menos a corto plazo. Pero si uno se queda
con una estrategia particular excluyendo a todas las demás, corre el riesgo
de no descubrir estrategias mejores que existen pero no se han encontrado.
De nuevo, los algoritmos genéticos han demostrado ser muy buenos en dar
con este equilibrio y descubrir buenas soluciones en un tiempo y esfuerzo
computacional razonables.
Otro área en el que destacan los algoritmos genéticos es su habilidad para
manipular muchos parámetros simultáneamente Muchos problemas de la
vida real no pueden definirse en términos de un único valor que hay que
minimizar o maximizar, sino que deben expresarse en términos de múltiples
objetivos, a menudo involucrando contrapartidas: uno sólo puede mejorar a

        ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                        20
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


expensas de otro. Los AGs son muy buenos resolviendo estos problemas:
en particular, su uso del paralelismo les permite producir múltiples
soluciones, igualmente buenas, al mismo problema, donde posiblemente
una solución candidata optimiza un parámetro y otra candidata optimiza uno
distinto   y luego un supervisor humano puede seleccionar una de esas
candidatas para su utilización. Si una solución particular a un problema con
múltiples objetivos optimiza un parámetro hasta el punto en el que ese
parámetro no puede mejorarse más sin causar una correspondiente pérdida
de calidad en algún otro parámetro, esa solución se llama óptimo paretiano
o no dominada Finalmente, una de las cualidades de los algoritmos
genéticos 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. En lugar de utilizar información específica conocida a priori
para guiar cada paso y realizar cambios con un ojo puesto en el
mejoramiento, como hacen los diseñadores humanos, son ``relojeros
ciegos'' realizan cambios aleatorios en sus soluciones candidatas y luego
utilizan la función de aptitud para determinar si esos cambios producen una
mejora.


La virtud de esta técnica es que permite a los algoritmos genéticos
comenzar con una mente abierta, por así decirlo. Como sus decisiones
están basadas en la aleatoriedad, todos los caminos de búsqueda posibles
están abiertos teóricamente a un AG; en contraste, cualquier estrategia de
resolución de problemas que dependa de un conocimiento previo, debe
inevitablemente comenzar descartando muchos caminos a priori, perdiendo
así cualquier solución novedosa que pueda existir. Los AGs, al carecer de
ideas preconcebidas basadas en creencias establecidas sobre ``cómo
deben hacerse las cosas'' o sobre lo que ``de ninguna manera podría
funcionar'', los AGs no tienen este problema. De manera similar, cualquier
técnica que dependa de conocimiento previo fracasará cuando no esté

       ING.INFORMATICA Y SISTEMAS
           ALGORITMOS GENETICOS
                                                                        21
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


       disponible tal conocimiento, pero, de nuevo, los AGs no se ven afectados
       negativamente por la ignoranci. Mediante sus componentes de paralelismo,
       cruzamiento y mutación, pueden viajar extensamente por el paisaje
       adaptativo, explorando regiones que algoritmos producidos con inteligencia
       podrían no haber tenido en cuenta, y revelando potencialmente soluciones
       de asombrosa e inesperada creatividad que podrían no habérseles ocurrido
       nunca a los diseñadores humanos. Un ejemplo muy gráfico de esto es el
       redescubrimiento, mediante la programación genética, del concepto de
       retroalimentación negativa -un principio crucial para muchos componentes
       electrónicos importantes de hoy en día, pero un concepto que, cuando fue
       descubierto en primera instancia, se le denegó una patente de nueve años
       porque el concepto era demasiado contrario a las creencias establecidas .
       Por supuesto, los algoritmos evolutivos no están enterados ni preocupados
       de si una solución va en contra de las creencias establecidas -sólo de si
       funciona.

¿Cuáles son las limitaciones de los AGs?

Aunque los algoritmos genéticos han demostrado su eficiencia y potencia como
estrategia de resolución 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 evolución biológica.

       La primera y más importante consideración al crear un algoritmo genético
       es definir una representación del problema. El lenguaje utilizado para
       especificar soluciones candidatas debe ser robusto; es decir, debe ser
       capaz de tolerar cambios aleatorios que no produzcan constantemente
       errores        fatales        o         resultados         sin    sentido.


       Hay dos maneras principales para conseguir esto. La primera, utilizada por
       la mayoría de los algoritmos genéticos, es definir a los individuos como

             ING.INFORMATICA Y SISTEMAS
                 ALGORITMOS GENETICOS
                                                                            22
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


listas de números -binarios, enteros o reales- donde cada número
representa algún aspecto de la solución candidata. Si los individuos son
cadenas binarias, un 0 o 1 podría significar la ausencia o presencia de una
cierta característica. Si son listas de números, estos números podrían
representar muchas cosas distintas: los pesos de las conexiones en una
red neuronal, el orden de las ciudades visitadas en un recorrido dado, la
situación espacial de componentes electrónicos, los valores con los que se
alimenta a un controlador, los ángulos de torsión de los enlaces péptidos de
una proteína, etcétera. Así, la mutación implica cambiar estos números,
cambiar bits o sumar o restar valores aleatorios. En este caso, el propio
código del programa no cambia; el código es lo que dirige la simulación y
hace un seguimiento de los individuos, evaluando sus aptitudes y quizá
asegurando que sólo se producen valores realistas y posibles para el
problema                                                                dado.


En otro método, la programación genética, el propio código del programa sí
cambia. Como ya se dijo en la sección ``Métodos de representación'', la PG
representa a los individuos como árboles de código ejecutables que pueden
mutar cambiando o intercambiando subárboles. Ambos méetodos producen
representaciones robustas ante la mutación, y pueden representar muchos
tipos diferentes de problemas y, como se dice en la sección ``Algunos
ejemplos    específicos'',   ambas   han   tenido   un   éxito   considerable.


El problema de representar a las soluciones candidatas de manera robusta
no surge en la naturaleza, porque el método de representación utilizado por
la evolución, a saber, el código genético, es inherentemente robusto: con
muy pocas excepciones, como una cadena de codones de parada, no
existe una secuencia de bases de ADN que no pueda traducirse en una
proteína. Por lo tanto, virtualmente, cualquier cambio en los genes de un
individuo siempre producirá un resultado inteligible, y por tanto las

      ING.INFORMATICA Y SISTEMAS
           ALGORITMOS GENETICOS
                                                                         23
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


mutaciones en la evolución tienen mayor probabilidad de producir una
mejora. Esto entra en contraste con los lenguajes creados por el hombre
como el inglés, donde el número de palabras con significado es pequeño
comparado con el número total de formas en las que se pueden combinar
las letras del alfabeto, y por tanto, es probable que un cambio aleatorio en
una frase en inglés produzca un sinsentido.
El problema de cómo escribir la función de aptitud debe considerarse
cuidadosamente para que se pueda alcanzar una mayor aptitud y
verdaderamente signifique una solución mejor para el problema dado. Si se
elige mal una función de aptitud o se define de manera inexacta, puede que
el algoritmo genético sea incapaz de encontrar una solución al problema, o
puede acabar resolviendo el problema equivocado. (Esta última situación se
describe a veces como la tendencia del AG a ``engañar'', aunque en
realidad lo que está pasando es que el AG está haciendo lo que se le pidió
hacer, no lo que sus creadores pretendían que hiciera). Se puede encontrar
un ejemplo de esto en Graham-Rowe 2002 donde unos investigadores
utilizaron un algoritmo evolutivo en conjunción con una serie de chips
reprogramables, haciendo que la función de aptitud recompensara al
circuito en evolución por dar como salida una señal oscilatoria. Al final del
experimento, se producía efectivamente una señal oscilatoria -pero en lugar
de actuar como un osculador, como pretendían los investigadores,
¡descubrieron que el circuito se había convertido en un receptor de radio
que estaba recibiendo y retransmitiendo una señal oscilatoria de un
componente                        electrónico                       cercano!


Sin embargo, esto no es un problema en la naturaleza. En el laboratorio de
la evolución biológica, sólo hay una función de aptitud que es igual para
todos los seres vivos -la carrera por sobrevivir y reproducirse, sin importar
qué adaptaciones hagan esto posible. Los organismos que se reproducen


      ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                        24
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


con más abundancia que sus competidores están más adaptados; los que
fracasan en reproducirse no están adaptados.
Además de elegir bien la función de aptitud, también deben elegirse
cuidadosamente los otros parámetros de un AG -el tamaño de la población,
el ritmo de mutación y cruzamiento, el tipo y fuerza de la selección. Si el
tamaño de la población es demasiado pequeño, puede que el algoritmo
genético no explore suficientemente el espacio de soluciones para
encontrar buenas soluciones consistentemente. Si el ritmo de cambio
genético es demasiado alto o el sistema de selección se escoge
inadecuadamente, puede alterarse el desarrollo de esquemas beneficiosos
y la población puede entrar en catástrofe de errores, al cambiar demasiado
rápido    para   que   la   selección   llegue   a   producir   convergencia.


Los seres vivos también se enfrentan a dificultades similares, y la evolución
se ha encargado de ellas. Es cierto que si el tamaño de una población cae
hacia un valor muy bajo, los ritmos de mutación son muy altos o la presión
selectiva es demasiado fuerte (una situación así podría ser resultado de un
cambio ambiental drástico), entonces la especie puede extinguirse. La
solución ha sido ``la evolución de la evolutividad'' -las adaptaciones que
alteran la habilidad de una especie para adaptarse. Un ejemplo. La mayoría
de los seres vivos han evolucionado una elaborada maquinaria celular que
comprueba y corrigue errores durante el proceso de replicación del ADN,
manteniendo su ritmo de mutación a unos niveles aceptablemente bajos; a
la inversa, en tiempos de fuerte presión ambiental, algunas especies de
bacterias entran en un estado de hipermutación en el que el ritmo de
errores en la replicación del ADN aumenta bruscamente, aumentando la
probabilidad de que se descubrirá una mutación compensatoria. Por
supuesto, no pueden eludirse todas las catástrofes, pero la enorme
diversidad y las adaptaciones altamente complejas de los seres vivos
actuales muestran que, en general, la evolución es una estrategia exitosa.

         ING.INFORMATICA Y SISTEMAS
          ALGORITMOS GENETICOS
                                                                         25
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Igualmente, las aplicaciones diversas y los impresionantes resultados de los
algoritmos genéticos demuestran que son un campo de estudio poderoso y
que merece la pena.
Un problema con el que los algoritmos genéticos tienen dificultades son los
problemas con las funciones de aptitud ``engañosas''        en las que la
situación de los puntos mejorados ofrecen información engañosa sobre
dónde se encuentra probablemente el óptimo global. Por ejemplo: imagine
un problema en el que el espacio de búsqueda esté compuesto por todas
las cadenas binarias de ocho caracteres, y en el que la aptitud de cada
individuo sea directamente proporcional al número de unos en él -es decir,
00000001 sería menos apto que 00000011, que sería menos apto que
00000111, etcétera -, con dos excepciones: la cadena 11111111 resulta
tener una aptitud muy baja, y la cadena 00000000 resulta tener una aptitud
muy alta. En este problema, un AG (al igual que la mayoría de los
algoritmos) no tendría más probabilidad de encontrar un óptimo global que
una                           búsqueda                            aleatoria.


La solución a este problema es la misma para los algoritmos genéticos y la
evolución biológica: la evolución no es un proceso que deba encontrar
siempre el óptimo global. Puede funcionar casi igual de bien alcanzando la
cima de un óptimo local alto y, para la mayoría de las situaciones, eso será
suficiente, incluso aunque el óptimo global no pueda alcanzarse fácilmente
desde ese punto. La evolución es como un ``satisfactor'' -un algoritmo que
entrega una solución ``suficientemente buena'', aunque no necesariamente
la mejor solución posible, dada una cantidad razonable de tiempo y
esfuerzo invertidos en la búsqueda. La ``FAQ de la evidencia de diseño
improvisado en la naturaleza'' proporciona ejemplos de la naturaleza con
estos resultados. (También hay que tener en cuenta que pocos o ningún
problema real es tan engañoso como el ejemplo algo forzado dado arriba.


      ING.INFORMATICA Y SISTEMAS
         ALGORITMOS GENETICOS
                                                                       26
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Normalmente, la situación de las mejoras locales proporciona alguna
información sobre la situación del óptimo global).
Un problema muy conocido que puede surgir con un AG se conoce como
convergencia prematura. Si un individuo que es más apto que la mayoría de
sus competidores emerge muy pronto en el curso de la ejecución, se puede
reproducir tan abundantemente que merme la diversidad de la población
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 .Esto es un
problema especialmente común en las poblaciones pequeñas, donde
incluso una variación aleatoria en el ritmo de reproducción puede provocar
que    un    genotipo     se    haga     dominante     sobre    los    otros.


Los métodos más comunes implementados por los investigadores en AGs
para solucionar este problema implican controlar la fuerza selectiva, para no
proporcionar tanta ventaja a los individuos excesivamente aptos. La
selección escalada, por rango y por torneo, discutidas anteriormente, son
tres de los métodos principales para conseguir esto; algunos métodos de
selección escalada son el escalado sigma, en el que la reproducción se
basa en una comparación estadística de la aptitud media de la población, y
la selección de Boltzmann, en la que la fuerza selectiva aumenta durante la
ejecución de manera similar a la variable ``temperatura'' en el recocido
simulado
La convergencia prematura ocurre en la naturaleza (los biólogos la llaman
deriva genética). Esto no debe sorprender; como ya se dijo arriba, la
evolución, como estrategia de resolución de problemas, no está obligada a
encontrar la mejor solución, sólo una que sea lo bastante buena. Sin
embargo, en la naturaleza, la convergencia prematura es menos común, ya
que la mayoría de las mutaciones beneficiosas en los seres vivos sólo
producen mejoras en la aptitud pequeñas e incrementales; son raras las

      ING.INFORMATICA Y SISTEMAS
           ALGORITMOS GENETICOS
                                                                        27
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


      mutaciones que producen una ganancia de aptitud tan grande que otorgue
      a sus poseedores una drástica ventaja reproductiva.
      Finalmente, varios investigadores       aconsejan no utilizar algoritmos
      genéticos en problemas resolubles de manera analítica. No es que los
      algoritmos genéticos no puedan encontrar soluciones buenas para estos
      problemas; simplemente es que los métodos analíticos tradicionales
      consumen mucho menos tiempo y potencia computacional que los AGs y, a
      diferencia de los AGs, a menudo está demostrado matemáticamente que
      ofrecen la única solución exacta. Por supuesto, como no existe una
      solución matemática perfecta para ningún problema de adaptación
      biológica, este problema no aparece en la naturaleza.

Algunos ejemplos específicos de AG

Mientras el poder de la evolución gana reconocimiento cada vez más
generalizado, los algoritmos genéticos se utilizan para abordar una amplia
variedad de problemas en un conjunto de campos sumamente diverso,
demostrando claramente su capacidad y su potencial. Esta sección analizará
algunos de los usos más notables en los que han tomado parte.

Acústica

Sato et al. 2002 utilizaron algoritmos genéticos para diseñar una sala de
conciertos con propiedades acústicas óptimas, maximizando la calidad del sonido
para la audiencia, para el director y para los músicos del escenario. Esta tarea
implica la optimización simultánea de múltiples 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'' (p. 526). Los autores
afirman    que   estas soluciones tienen proporciones similares al       Grosser
Musikvereinsaal de Viena, el cual está considerado generalmente como una de las



             ING.INFORMATICA Y SISTEMAS
                 ALGORITMOS GENETICOS
                                                                            28
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


mejores -si no la mejor- salas de conciertos del mundo, en términos de
propiedades acústicas.

Porto, Fogel y Fogel 1995 utilizaron programación evolutiva para adiestrar a redes
neuronales para distinguir entre reflexiones sonoras desde distintos tipos de
objetos: esferas metálicas hechas por el hombre, montañas submarinas, peces y
plantas, y ruido aleatorio de fondo. Tras 500 generaciones, la mejor red neuronal
que evolucionó tenía una probabilidad de clasificación correcta que iba desde el
94% al 98%, y una probabilidad de clasificación errónea entre un 7,4% y un 1,5%,
que son ``probabilidades razonables de detección y falsa alarma'' (p. 21). Esta red
evolucionada igualó las prestaciones de otra red desarrollada mediante recocido
simulado, y superó consistentemente a redes entrenadas mediante propagación
hacia atrás, las cuales ``se atascaban repetidamente en conjuntos de pesos
subóptimos que no producían resultados satisfactorios'' (p. 21). En contraste,
ambos métodos estocásticos demostraron su capacidad para superar estos
óptimos locales y producir redes más pequeñas, efectivas y robustas; pero los
autores sugieren que el algoritmo evolutivo, a diferencia del recocido simulado,
opera sobre una población, y por tanto se beneficia de la información global sobre
el espacio de búsqueda, conduciendo potencialmente hacia un rendimiento mayor
a la larga.

Tang et al. 1996 analizan los usos de los algoritmos genéticos en el campo de la
acústica y el procesamiento de señales. Un área de interés particular incluye el
uso de AGs para diseñar sistemas de Control Activo de Ruido (CAR), que eliminan
el sonido no deseado produciendo ondas sonoras que interfieren destructivamente
con el ruido. Esto es un problema de múltiples objetivos que requiere el control y la
colocación precisa de múltiples altavoces; los AGs se han utilizado en estos
sistemas tanto para diseñar los controladores como para encontrar la colocación
óptima de los altavoces, dando como resultado una ``atenuación efectiva del
ruido'' (p. 33) en pruebas experimentales.


              ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                29
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Ingeniería aeroespacial

Obayashi et al. 2000 utilizaron un algoritmo genético de múltiples objetivos para
diseñar la forma del ala de un avión supersónico. Hay tres consideraciones
principales que determinan la configuración del ala -minimizar la resistencia
aerodinámica a velocidades de vuelo supersónicas, minimizar la resistencia a
velocidades subsónicas y minimizar la carga aerodinámica (la fuerza que tiende a
doblar el ala). Estos objetivos son mutuamente exclusivos, y optimizarlos todos
simultáneamente requiere realizar contrapartidas.

El cromosoma de este problema es una cadena de 66 números reales, cada uno
de los cuales corresponde a un aspecto específico del ala: su forma, su grosor, su
torsión, etcétera. Se simuló una evolución con selección elitista durante 70
generaciones, con un tamaño de población de 64 individuos. Al final de este
proceso había varios individuos paretianos, cada uno representando una solución
no dominada del problema. El artículo comenta que estos individuos ganadores
tenían características ``físicamente razonables'', señalando la validez de la técnica
de optimización (p. 186). Para evaluar mejor la calidad de las soluciones, las seis
mejores fueron comparadas con un diseño de ala supersónica producido por el
Equipo de Diseño SST del Laboratorio Aeroespacial Nacional de Japón. Las seis
fueron competitivas, con valores de resistencia y carga aproximadamente iguales
o menores a los del ala diseñada por humanos; en particular, una de las
soluciones evolucionadas superó al diseño del LAN en los tres objetivos. Los
autores señalan que las soluciones del AG son similares a un diseño llamado ``ala
flecha'', sugerido por primera vez a finales de los años 50, pero que finalmente fue
abandonado en favor del diseño más convencional con forma de delta.

En un artículo posterior (Sasaki et al. 2001), los autores repitieron el experimento
añadiendo un cuarto objetivo, a saber, minimizar el momento de torsión (un
conocido problema en los diseños de alas flecha en el vuelo supersónico).
También se añadieron puntos de control adicionales para el grosor al conjunto de

             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                30
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


variables de diseño. Tras 75 generaciones de evolución, se compararon dos de las
mejores soluciones paretianas con el diseño de ala que el Laboratorio
Aeroespacial Nacional japonés realizó para el avión supersónico experimental
NEXST-1. Se descubrió que ambos diseños (además de un diseño óptimo de la
simulación anterior, explicada arriba) eran físicamente razonables y superiores al
diseño del LAN en los cuatro objetivos.

Williams, Crossley y Lang 2001 aplicaron algoritmos genéticos a la tarea de situar
órbitas de satélites para minimizar los apagones de cobertura. Mientras la
tecnología de telecomunicaciones sigue progresando, los humanos somos cada
vez más dependientes de las funciones vitales que realizan los satélites en órbita
alrededor de la Tierra, y uno de los problemas con los que se enfrentan los
ingenieros es el diseño de las trayectorias orbitales. Los satélites que se
encuentran en una órbita terrestre alta, a unos 35.000 kilómetros de altitud,
pueden ver amplias secciones del planeta al mismo tiempo y estar en contacto con
las estaciones terrestres, pero son mucho más caros de lanzar y más vulnerables
a las radiaciones cósmicas. Es más económico colocar satélites en órbitas bajas,
en algunos casos a sólo unos pocos cientos de kilómetros; pero, a causa de la
curvatura de la Tierra, es inevitable que estos satélites pierdan durante un tiempo
la línea de visión con los receptores terrestres, y por lo tanto se vuelven inútiles.
Incluso las constelaciones de varios satélites tienen apagones ineludibles y
pérdidas de cobertura por esta razón. El reto consiste en colocar las órbitas de los
satélites para minimizar este tiempo muerto. Esto es un problema multi-objetivo
que implica la minimización de el tiempo medio de apagón para todas las
localizaciones y el tiempo máximo de apagón para cada una de las localizaciones;
en la práctica, estos objetivos resultan ser mutuamente exclusivos.

Cuando se utilizó el AG en este problema, los resultados que evolucionaron para
constelaciones de tres, cuatro y cinco satélites eran extraños, configuraciones
orbitales muy asimétricas, con los satélites colocados alternando huecos grandes
y pequeños, en lugar de huecos de igual tamaño como habrían hecho las técnicas
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                31
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


convencionales. Sin embargo, esta solución redujo significativamente los tiempos
medio y máximo de apagón, en algunos casos hasta en 90 minutos. En un artículo
periodístico, el Dr. William Crossley señaló que ``ingenieros con años de
experiencia aeroespacial quedaorn sorprendidos con el rendimiento ofrecido por el
diseño no convencional''.

Keane y Brown 1996 utilizadon un AG para producir un nuevo diseño para un
brazo o jirafa para transportar carga que pudiese montarse en órbita y utilizarse
con    satélites, estaciones espaciales y otros proyectos de            construcción
aeroespacial. El resultado, una estructura retorcida con aspecto orgánico que se
ha comparado con un fémur humano, no utiliza más material que el diseño de
brazo estándar, pero es ligera, fuerte y muy superior a la hora de amortiguar las
vibraciones perjudiciales, como confirmaron las pruebas reales del producto final.
Y sin embargo ``Ninguna inteligencia produjo los diseños. Simplemente
evolucionaron'' (Petit 1998). Los autores del artículo comentan además que su AG
sólo   se   ejecutó   durante   10   generaciones,   debido    a   la     naturaleza
computacionalmente costosa de la simulación, y la población no se había
estancado todavía. Haber proseguido la ejecución durante más generaciones
habría producido indudablemente mayores mejoras de rendimiento.




Figure: Un brazo tridimensional optimizado genéticamente, con una respuesta


             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                                32
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


mejorada          a          la          frecuencia         (adaptado           de
http://www.soton.ac.uk/~ajk/truss/welcome.html).


Finalmente, como informa Gibbs 1996, Lockheed Martin ha utilizado un algoritmo
genético para producir mediante evolución una serie de maniobras para mover
una nave espacial de una orientación a otra, dentro del 2% del tiempo mínimo
teórico para tales maniobras. La solución evolucionada era un 10% más rápida
que una solución producida manualmente por un experto para el mismo problema.

Astronomía y astrofísica

Charbonneau 1995 sugiere la utilidad de los AGs para problemas de astrofísica,
aplicándolos a tres problemas de ejemplo: obtener la curva de rotación de una
galaxia basándose en las velocidades rotacionales observadas de sus
componentes, determinar el periodo de pulsación de una estrella variable
basándose en series de datos temporales, y sacar los valores de los parámetros
críticos de un modelo magnetohidrodinámico del viento solar. Son tres difíciles
problemas no lineales y multidimensionales.

El algoritmo genético de Charbonneau, PIKAIA, utiliza selección generacional y
proporcional a la aptitud, junto con elitismo, para asegurar que el mejor individuo
se copia una vez hacia la siguiente generación sin ninguna modificación. PIKAIA
tiene un ritmo de cruzamiento de 0,65 y un ritmo de mutación variable que se pone
a 0,003 inicialmente y luego aumenta gradualmente, mientras la población se
aproxima a la convergencia, para mantener la variabilidad en el acervo genético.

En el problema de la curva de rotación galáctica, el AG produjo dos curvas, y
ambas estaban bien ajustadas a los datos (un resultado común en este tipo de
problema, en el que hay poco contraste entre cimas cercanas); observaciones
posteriores pueden distinguir cuál es la preferible. En el problema de la serie
temporal, el AG fue impresionantemente exitoso, generando un ajuste de los datos

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                              33
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


de gran calidad, aunque otros problemas más difíciles no se ajustaron tan bien
(aunque, como señala Charbonneau, estos problemas son igualmente difíciles de
resolver con técnicas convencionales). El artículo sugiere que un AG híbrido que
emplee tanto evolución artificial como técnicas analíticas estándar, podría
funcionar mejor. Finalmente, en el problema de obtener los seis parámetros
críticos del viento solar, el AG determinó con éxito el valor de tres con una
precisión de menos del 0,1% y los otros tres con precisiones entre el 1 y el 10%.
(Aunque siempre serían preferibles unos errores experimentales menores para
estos tres parámetros, Charbonneau señala que no existe ningún otro método
eficiente y robusto para resolver experimentalmente un problema no lineal 6-
dimensional de este tipo; un método de gradiente conjugado funciona ``siempre
que se pueda proporcionar un valor inicial muy acertado'' (p. 323). En contraste,
los AGs no requieren un conocimiento del dominio tan bien afinado).

Basándose en los resultados obtenidos hasta ahora, Charbonneau sugiere que los
AGs pueden y deben encontrar uso en otros problemas difíciles de astrofísica, en
particular, problemas inversos como las imágenes por Doppler y las inversiones
heliosísmicas. Para terminar, Charbonneau sostiene que los AGs son un
``contendiente poderoso y prometedor'' (p. 324) en este campo, del que se puede
esperar que complemente (no sustituya) a las técnicas tradicionales de
optimización, y concluye que ``el punto decisivo, si es que tiene que haber alguno,
es que los algoritmos genéticos funcionan, y a menudo colosalmente bien'' (p.
325).

Química

Un pulso láser ultracorto de alta energía puede romper moléculas complejas en
moléculas más sencillas, un proceso con aplicaciones importantes en la química
orgánica y la microelectrónica. Los productos específicos de una reacción así
pueden controlarse modulando la fase del pulso láser. Sin embargo, para
moléculas grandes, obtener la forma del pulso deseado de manera analítica es

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                              34
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


demasiado difícil: los cálculos son demasiado complejos y las características
relevantes (las superficies de energía potencial de las moléculas) no se conocen
con suficiente precisión.

Assion et al. 1998 resolvieron este problema utilizando un algoritmo evolutivo para
diseñar la forma del pulso. En lugar de introducir información compleja, específica
del problema, sobre las características cuánticas de las moléculas iniciales, para
diseñar el pulso conforme a las especificaciones, el AE dispara un pulso, mide las
proporciones de las moléculas producto resultantes, muta aleatoriamente las
características del rayo con la esperanza de conseguir que estas proporciones se
acerquen a la salida deseada, y el proceso se repite. (En lugar de afinar
directamente las características del rayo láser, el AG de los autores representa a
los individuos como un conjunto de 128 números, en el que cada número es un
valor de voltaje que controla el índice de refracción de uno de los pixeles del
modulador láser. De nuevo, no se necesita un conocimiento específico del
problema sobre las propiedades del láser o de los productos de la reacción). Los
autores afirman que su algoritmo, cuando se aplica a dos sustancias de muestra,
``encuentra automáticamente la mejor configuración... no importa lo complicada
que sea la respuesta molecular'' (p. 921), demostrando un ``control coherente
automatizado de los productos que son químicamente diferentes uno del otro y de
la molécula padre'' (p. 921).

A principios y mediados de los 90, la amplia adopción de una novedosa técnica de
diseño de fármacos, llamada química combinatoria, revolucionó la industria
farmacéutica. Con este método, en lugar de la síntesis precisa y meticulosa de un
sólo compuesto de una vez, los bioquímicos mezclan deliberadamente una gran
variedad de reactivos para producir una variedad aún mayor de productos -
cientos, miles o millones de compuestos diferentes en cada remesa- que luego
pueden aislarse rápidamente para su actividad bioquímica. Hay dos formas de
diseñar las bibliotecas de reactivos en esta técnica: diseño basado en los
reactivos, que elige grupos optimizados de reactivos sin considerar qué productos
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                              35
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


saldrán como resultado, y diseño basado en los productos, que selecciona los
reactivos que producirán con mayor probabilidad los productos con las
propiedades deseadas. El diseño basado en los productos es más difícil y
complejo, pero se ha demostrado que genera bibliotecas combinatorias mejores y
más diversas, y tiene más probabilidades de ofrecer un resultado útil.

En un artículo patrocinado por el departamento de investigación y desarrollo de
GlaxoSmithKline, Gillet 2002 describe el uso de un algoritmo genético multiobjetivo
para el diseño basado en los productos de bibliotecas combinatorias. Al elegir los
componentes que van en una biblioteca particular, deben considerarse
características como la diversidad y peso molecular, el coste de los suministros, la
toxicidad, la absorción, la distribución y el metabolismo. Si el objetivo es encontrar
moléculas similares a una molécula existente con una función conocida (un
método común en el diseño de nuevos fármacos), también se puede tener en
cuenta la similaridad estructural. Este artículo presenta un enfoque multiobjetivo,
donde puede desarrollarse un conjunto de resultados paretianos que maximicen o
minimicen cada uno de estos objetivos. El autor concluye diciendo que el AG fue
capaz de satisfacer simultáneamente los criterios de diversidad molecular y
eficiencia sintética máxima, y también fue capaz de encontrar moléculas parecidas
a un fármaco que eran ``muy similares a las moléculas objetivo dadas, tras
explorar una fracción muy pequeña del espacio de búsqueda total'' (p. 378).

En un artículo relacionado, Glen y Payne 1995 describen el uso de algoritmos
genéticos para diseñar automáticamente moléculas nuevas desde cero que se
ajustan a un conjunto de especificaciones dado. Dada una población inicial, bien
generada aleatoriamente o utilizando la sencilla molécula del etano como semilla,
el AG añade, elimina y altera aleatoriamente átomos y fragmentos moleculares
con el objetivo de generar moléculas que se ajusten a los requisitos dados. El AG
puede optimizar simultáneamente un gran número de objetivos, incluyendo el peso
molecular, el volumen molecular, el número de enlaces, el número de centros
quirales, el número de átomos, el número de enlaces rotables, la polarizabilidad, el
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                 36
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


momento dipolar, etcétera, para producer moléculas candidatas con las
propiedades deseadas. Basándose en pruebas experimentales, incluyendo un
difícil problema de optimización que implicaba la generación de moléculas con
propiedades similares a la ribosa (un componente del azúcar imitado a menudo en
los fármacos antivirales), los autores concluyen que el AG es un ``excelente
generador de ideas'' (p. 199) que ofrece ``propiedades de optimización rápidas y
poderosas'' y puede generar ``un conjunto diverso de estructuras posibles'' (p.
182). Continúan afirmando: ``Es de interés especial la poderosa capacidad de
optimización del algoritmo genético, incluso con tamaños de población
relativamente pequeños'' (p. 200). Como prueba de que estos resultados no son
simplemente teóricos, Lemley 2001[45] informa de que la empresa Unilever ha
utilizado algoritmos genéticos para diseñar nuevos componentes antimicrobianos
para su uso en productos de limpieza, algo que ha patentado.

Ingeniería eléctrica

Una matriz de puertas programable en campo (Field Programmable Gate Array, o
FPGA), es un tipo especial de placa de circuito con una matriz de celdas lógicas,
cada una de las cuales puede actuar como cualquier tipo de puerta lógica,
interconectado con conexiones flexibles que pueden conectar celdas. Estas dos
funciones se controlan por software, así que simplemente cargando un programa
especial en la placa, puede alterarse al vuelo para realizar las funciones de
cualquier dispositivo de hardware de la amplia variedad existente.

El Dr. Adrian Thompson ha explotado este dispositivo, en conjunción con los
principios de la evolución, para producir un prototipo de circuito reconocedor de
voz que puede distinguir y responder a órdenes habladas utilizando sólo 37
puertas lógicas -una tarea que se habría considerado imposible para cualquier
ingeniero humano. Generó cadenas aleatorias de bits de ceros y unos y las utilizó
como configuraciones de la FPGA, seleccionando los individuos más aptos de
cada generación, reproduciéndolos y mutándolos aleatoriamente, intercambiando

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                            37
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


secciones de su código y pasándolo hacia la siguiente ronda de selección. Su
objetivo era evolucionar un dispositivo que pudiera en principio discriminar entre
tonos de frecuencias distintas (1 y 10 kilohercios), y luego distinguir entre las
palabras habladas ``go'' (adelante) y ``stop'' (para).

Su objetivo se alcanzó en 3.000 generaciones, pero el éxito fue mayor de lo que
había anticipado. El sistema que evolucionó utilizaba muchas menos celdas que
cualquier cosa que pudiera haber diseñado un ingeniero humano, y ni siquiera
necesita del componente más crítico de los sistemas diseñados por humanos -un
reloj. ¿Cómo funcionaba? Thompson no tiene ni idea, aunque ha rastreado la
señal de entrada a través de un complejo sistema de bucles realimentados del
circuito evolucionado. De hecho, de las 37 puertas lógicas que utiliza el producto
final, cinco de ellas ni siquiera están conectadas al resto del circuito de ninguna
manera -pero si se les retira la alimentación eléctrica, el circuito deja de funcionar.
Parece que la evolución ha explotado algún sutil efecto electromagnético de estas
celdas para alcanzar su solución, pero el funcionamiento exacto de la compleja e
intrincada estructura evolucionada sigue siendo un misterio (Davidson 1997).

Altshuler y Linden 1997 utilizaron un algoritmo genético para evolucionar antenas
de alambre con propiedades especificadas a priori. Los autores señalan que el
diseño de tales antenas es un proceso impreciso, comenzando con las
propiedades deseadas y luego determinando la forma de la antena mediante
``conjeturas...   intuición,   experiencia,   ecuaciones   aproximadas    o   estudios
empíricos'' (p. 50). Esta técnica requiere mucho tiempo, a menudo no produce
resultados óptimos y tiende a funcionar bien sólo con diseños simétricos y
relativamente simples. En contraste, con el método del algoritmo genético, el
ingeniero especifica las propiedades electromagnéticas de la antena, y el AG
sintetiza automáticamente una configuración que sirva.




              ING.INFORMATICA Y SISTEMAS
                  ALGORITMOS GENETICOS
                                                                                  38
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC




Figure: Una antena genética de alambre doblado (de Altshuler y Linden 1997,
figura 1).


Altshuler y Linden utilizaron su AG para diseñar una antena de siete segmentos
polarizada circularmente con una cobertura hemisférica; el resultado se muestra a
la izquierda. Cada individuo del AG consistía en un cromosoma binario que
especificaba las coordenadas tridimensionales de cada extremo final de cada
alambre. La aptitud se evaluaba simulando a cada candidato de acuerdo con un
código de cableado electromagnético, y el individuo mejor de cada ronda se
construía y probaba. Los autores describen la forma de esta antena, que no se
parece a las antenas tradicionales y carece de una simetría obvia, como
``inusualmente extraña'' y ``antiintuitiva'' (p. 52), aunque tenía un patrón de
radiación casi uniforme y con un gran ancho de banda tanto en la simulación como
en la prueba experimental, adecuándose excelentemente a la especificación
inicial. Los autores concluyen que un método basado en algoritmos genéticos para
diseñar antenas se muestra ``excepcionalmente prometedor''. ``... este nuevo
procedimiento de diseño es capaz de encontrar antenas genéticas capaces de
resolver de manera efectiva difíciles problemas de antenas, y será especialmente
útil en situaciones en las que los diseños existentes no sean adecuados'' (p. 52).

Mercados financieros



             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                39
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Mahfoud y Mani 1996 utilizaron un algoritmo genético para predecir el rendimiento
futuro de 1.600 acciones ofertadas públicamente. Concretamente, al AG se le
asignó la tarea de predecir el beneficio relativo de cada acción, definido como el
beneficio de esa acción menos el beneficio medio de las 1.600 acciones a lo largo
del periodo de tiempo en cuestión, 12 semanas (un cuarto del calendario) en el
futuro. Como entrada, al AG se le proporcionaron datos históricos de cada acción
en forma de una lista de 15 atributos, como la relación precio-beneficio y el ritmo
de crecimiento, medidos en varios puntos del tiempo pasado; se le pidió al AG que
evolucionara un conjunto de reglas si/entonces para clasificar cada acción y
proporcionar, como salida, una recomendación sobre qué hacer con respecto a la
acción (comprar, vender o ninguna predicción) y un pronóstico numérico del
beneficio relativo. Los resultados del AG fueron comparados con los de un sistema
establecido, basado en una red neuronal, que los autores habían estado utilizando
para pronosticar los precios de las acciones y administrar las carteras de valores
durante tres años. Por supuesto, el mercado de valores es un sistema
extremadamente ruidoso y no lineal, y ningún mecanismo predictivo puede ser
correcto el 100% del tiempo; el reto consiste en encontrar un predictor que sea
preciso más de la mitad de las veces.

En el experiemnto, el AG y la red neuronal hicieron pronósticos al final de la
semana para cada una de las 1.600 acciones, durante doce semanas
consecutivas. Doce semanas después de cada predicción, se comparó el
rendimiento verdadero con el beneficio relativo predicho. Globalmente, el AG
superó significativamente a la red neuronal: en una ejecución de prueba, el AG
predijo correctamente la dirección de una acción el 47,6% de las veces, no hizo
predicción el 45,8% de las veces y realizó una predicción incorrecta sólo un 6.6%
de las veces, una precisión predictiva total de un 87,8%. Aunque la red neuronal
realizó predicciones precisas más a menudo, también hizo predicciones erróneas
más a menudo (de hecho, los autores especulan que la mayor capacidad del AG
para no realizar predicciones cuando los datos eran dudosos fue un factor de su

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                              40
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


éxito; la red neuronal siempre produce una predicción a menos que sea restringida
explícitamente por el programador). En el experimento de las 1.600 acciones, el
AG produjo un beneficio relativo de un +5,47%, contra el +4,40% de la red
neuronal -una diferencia estadísticamente significativa. De hecho, el AG también
superó significativamente a tres índices bursátiles importantes -el S&P 500, el S&P
400 y el Russell 2000- en este periodo; la casualidad fue excluída como causa de
este resultado con un margen de confianza de un 95%. Los autores atribuyen este
convincente éxito a la capacidad del algoritmo genético de percatarse de
relaciones no lineales difícilmente evidentes para los observadores humanos,
además del hecho de que carece del ``prejuicio contra las reglas antiintuitivas y
contradictorias'' (p. 562) de los expertos humanos.

Andreou, Georgopoulos y Likothanassis 2002 lograron un éxito similar utilizando
algoritmos genéticos híbridos para evolucionar redes neuronales que predijeran
los tipos de cambio de monedas extranjeras hasta un mes en el futuro. Al contrario
que en el ejemplo anterior, donde competían AGs y redes neuronales, aquí los dos
trabajaron conjuntamente: el AG evolucionó la arquitectura (número de unidades
de entrada, número de unidades ocultas y la estructura de enlaces entre ellas) de
la red, que luego era entrenada por un algoritmo de filtro.

Se le proporciaron al algoritmo 1.300 valores brutos diarios de cinco divisas como
información histórica -el dólar estadounidense, el marco alemán, el franco francés,
la libra esterlina y el dracma griego- y se le pidió que predijera sus valores futuros
para los 1, 2, 5 y 20 días posteriores. El rendimiento del AG híbrido mostró, en
general, un ``nivel excepcional de precisión'' (p. 200) en todos los casos probados,
superando a otros varios métodos, incluyendo a las redes neuronales en solitario.
Los autores concluyen que ``se ha logrado un excepcional éxito predictivo tanto
con un horizonte predictivo de un paso como de varios pasos'' (p. 208) -de hecho,
afirman que sus resultados son mejores con diferencia que cualquier estrategia
predictiva relacionada que se haya aplicado en esta serie de datos u otras divisas.


             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                 41
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


La utilización de los AGs en los mercados financieros ha empezado a extenderse
en las empresas de corretaje bursátil del mundo real. Naik 1996[informa de que
LBS Capital Management, una empresa estadounidense cons ede en Florida,
utiliza algoritmos genéticos para escoger las acciones de los fondos de pensiones
que administra. Coale 1997 y Begley y Beals 1995 informan de que First
Quadrant, una empresa de inversiones de Californa que mueve más de 2.200
millones de dólares, utiliza AGs para tomar decisiones de inversión en todos sus
servicios financieros. Su modelo evolucionado gana, de media, 225 dólares por
cada 100 dólares invertidos durante seis años, en contraste con los 205 dólares de
otros tipos de sistemas de modelos.

Juegos

Una de las demostraciones más novedosas y persuasivas de la potencia de los
algoritmos genéticos la presentaron Chellapilla y Fogel 2001, que utilizaron un AG
para evolucionar redes neuronales que pudieran jugar a las damas. Los autores
afirman que una de las mayores dificultades en este tipo de problemas
relacionados con estrategias es el problema de la asignación de crédito -en otras
palabras, ¿cómo escribir una función de aptitud? Se ha creído ampliamente que
los criterios simples de ganar, perder o empatar no proporcionan la suficiente
información para que un algoritmo genético averigüe qué constituye el buen juego.

En este artículo, Chellapila y Fogel echan por tierra esa suposición. Dados sólo las
posiciones espaciales de las piezas en el tablero y el número total de piezas que
posee cada jugador, fueron capaces de evolucionar un programa de damas que
jugaba a un nivel competitivo con expertos humanos, sin ninguna información de
entrada inteligente acerca de lo que constituye el buen juego -es más, ni siquiera
se les dijo a los individuos del algoritmo evolutivo cuál era el criterio para ganar, ni
se les dijo el resultado de ningún juego.




              ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                                   42
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


En la representación de Chellapilla y Fogel, el estado del juego estaba
representado por una lista numérica de 32 elementos, en donde cada posición de
la lista correspondía a una posición disponible en el tablero. El valor de cada
posición era 0 para una casilla desocupada, -1 si esa casilla estaba ocupada por
una pieza enemiga, +1 si la casilla estaba ocupada por una de las piezas del
programa, y -K o +K si la casilla estaba ocupada por una dama enemiga o amiga.
(El valor de K no se especificaba a priori, sino que, de nuevo, era determinado por
la evolución durante el curso del algoritmo). Acompañando a todo esto había una
red neuronal con múltiples capas de procesamiento y una capa de entrada con un
nodo para cada una de las 4x4, 5x5, 6x6, 7x7 y 8x8 posibles casillas del tablero.
La salida de la red neuronal para una colocación de las piezas dada era un valor
entre -1 y +1, que indicaba cómo de buena le parecía esa posición. Para cada
movimiento, se le presentaba a la red neuronal un árbol de juego que contenía
todos los movimientos posibles hasta cuatro turnos en el futuro, y el movimiento se
decidía basándose en qué rama del árbol producía los mejores resultados.

El algoritmo evolutivo comenzó con una población de 15 redes neuronales con
pesos y tendencias, generados aleatoriamente, asignados a cada nodo y
conexión; luego, cada individuo se reprodujo una vez, generando una
descendencia con variaciones en los valores de la red. Luego estos 30 individuos
compitieron por la supervivencia jugando entre ellos; cada individuo compitió en
cada turno con 5 oponentes elegidos aleatoriamente. Se otorgó 1 punto a cada
victoria y se descontaban 2 puntos por cada derrota. Se seleccionaron los 15
mejores jugadores en relación a su puntuación total, y el proceso se repitió. La
evolución continuó durante 840 generaciones más (aproximadamente seis meses
de tiempo de computación).


Clase          Puntuación

Gran Maestro +2.400


             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                              43
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


Maestro        2.200-2.399

Experto        2.000-2.199

Clase A        1.800-1.999

Clase B        1.600-1.799

Clase C        1.400-1.599

Clase J        <200


El mejor individuo que surgió de esta selección fue inscrito como competidor en la
página web de juegos http://www.zone.com. Durante un periodo de dos meses,
jugó contra 165 oponentes humanos que componían una gama de niveles altos,
desde clase C a maestros, de acuerdo con el sistema de clasificaciones de la
Federación de Ajedrez de Estados Unidos (mostrado a la izquierda, con algunos
rangos omitidos en aras de claridad). De estas partidas, la red neuronal ganó 94,
perdió 39 y empató 32; en base a las clasificaciones de los oponentes en estas
partidas, la red neuronal evolucionada era equivalente a un jugador con una
puntuación media de 2.045,85, colocándola en el nivel experto -una clasificación
superior a la del 99,61% de los 80.000 jugadores registrados en la página web.
Una de las victorias más significativas de la red neuronal fue cuando venció a un
jugador clasificado en la posición 98 de todos los jugadores registrados, cuya
puntuación estaba tan sólo 27 puntos por debajo del nivel de maestro.

Las pruebas realizadas con un sencillo programa diferencial en las piezas (que
basa sus movimientos solamente en la diferencia entre el número de piezas que
quedan en cada lado) con una capacidad de anticipación de 8 movimientos
demostró que la red neuronal era significativamente superior, con una puntuación
de más de 400 puntos por encima. ``Un programa que se basa sólo en el número
de piezas y en una búsqueda de ocho capas vencerá a muchas personas, pero no
es un experto. La mejor red neuronal evolucionada sí lo es'' (p. 425). Aunque

             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                             44
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


podía buscar posiciones dos movimientos más lejos que la red neuronal, el
programa diferencial en las piezas perdió contundentemente 8 de 10 partidas.
Esto demuestra concluyentemente que la red neuronal evolucionada no sólo está
contando piezas, sino que de alguna manera procesa las características
espaciales del tablero para decidir sus movimientos. Los autores señalan que los
oponentes de zone.com que los movimientos de la red neuronal eran ``extraños'',
pero su nivel global de juego fue descrito como ``muy duro'' o con términos
elogiosos similares.

Para probar más a la red neuronal evolucionada (a la que los autores nombraron
``Anaconda'' porque a menudo ganaba restringiendo la movilidad de sus
oponentes), jugó contra un programa de damas comercial, el Hoyle Classic
Games, distribuído por Sierra Online (Chellapilla y Fogel 2000). Este programa
viene con un surtido de personajes incorporados, cada uno con un nivel de juego
distinto. Anaconda se puso a prueba con tres personajes (``Beatrice'', ``Natasha'' y
``Leopold'') designados como jugadores expertos, jugando una partida con las
rojas y otra partida con las blancas contra cada uno de ellos con una capacidad de
anticipación de 6 movimientos. Aunque los autores dudaban de que esta
profundidad de anticipación pudiera darla a Anaconda la capacidad de juego
experto que demostró anteriormente, consiguió seis victorias seguidas de las seis
partidas jugadas. Basándose en este resultado, los autores expresaron
escepticismo sobre si el software Hoyle jugaba al nivel que anunciaba, ¡aunque
debe señalarse que llegaron a esta conclusión basándose solamente en la
facilidad con la que Anaconda le venció!

La prueba definitiva de Anaconda se detalla en Chellapilla y Fogel 2002, cuando la
red neuronal evolucionada jugó contra el mejor jugador de damas del mundo:
Chinook, un programa diseñado principalmente por el Dr. Jonathan Schaeffer, de
la Universidad de Alberta. Con una puntuación de 2.814 en 1996 (mientras que
sus competidores humanos más cercanos andan por los 2.600), Chinook
incorpora un libro de movimientos de apertura proporcionado por grandes
             ING.INFORMATICA Y SISTEMAS
                ALGORITMOS GENETICOS
                                                                               45
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


maestros humanos, un conjunto sofisticado de algoritmos de juego para la parte
central de la partida, y una base de datos completa de todos los movimientos
posibles cuando quedan en el tablero 10 piezas o menos, de manera que nunca
comete un error durante un final de partida. Se invirtió una cantidad enorme de
inteligencia y experiencia humana en el diseño de este programa.

Chellapilla y Fogel enfrentaron a Anaconda y Chinook en un torneo de 10 partidas,
con Chinook jugando al nivel de 5 capas de anticipación, aproximándolo más o
menos al nivel de maestro. Chinook ganó esta competición, cuatro victorias a dos,
con cuatro empates. (Curiosamente, como señalan los autores, en dos de las
partidas que acabaron con empate, Anaconda lideraba con cuatro damas mientras
que Chinook tenía tres. Además, una de las victorias de Chinook vino tras una
serie de movimientos con búsqueda de 10 capas sacados de su base de datos de
finales de partida; unos movimientos que Anaconda, con una anticipación de 8
capas, no pudo anticipar. Si Anaconda hubiera tenido acceso a una base de datos
de finales de partida de la misma calidad de la de Chinook, el resultado del torneo
bien podría haber sido el de victoria para Anaconda, cuatro a tres). Estos
resultados ``proporcionan un buen sustento a la puntuación de experto que se
ganó Anaconda en www.zone.com'' (p. 76), con una puntuación global de 2.030-
2.055, comparable a la puntuación de 2.045 que ganó jugando contra humanos.
Aunque Anaconda no es un jugador invulnerable, es capaz de jugar
competitivamente en el nivel experto y comportarse ante una variedad de
jugadores de damas humanos extremadamente hábiles. Cuando uno considera
los criterios de aptitud tan sencillos con los que se obtuvieron estos resultados, el
surgimiento de Anaconda proporciona una espectacular corroboración del poder
de la evolución.

Geofísica

Sambridge y Gallaguer 1993 utilizaron un algoritmo genético para los hipocentros
de los terremotos basándose en datos sismológicos. (El hipocentro es el punto

             ING.INFORMATICA Y SISTEMAS
                   ALGORITMOS GENETICOS
                                                                                46
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC


bajo la superficie terrestre en el que se origina un terremoto. El epicentro es el
punto de la superficie directamente encima del hipocentro). Esto es una tarea
sumamente compleja, ya que las propiedades de las ondas sísmicas dependen de
las propiedades de las capas de roca a través de las que viajan. El método
tradicional para localizar el hipocentro se basa en lo que se conoce como
algoritmo de inversión sísmico, que empieza con la mejor estimación de la
ubicación, calcula las derivadas del tiempo de viaje de la onda con respecto al
punto de origen, y realiza una operación de matriz para proporcionar una
ubicación actualizada. Este proceso se repite hasta que se alcanza una solución
aceptable. (Este Mensaje del Mes, de noviembre de 2003, proporciona más
información). Sin embargo, este método requiere información diferencial y es
propenso a quedar atrapado en óptimos locales.

Un algoritmo de localización que no dependa de información diferencial o modelos
de velocidad puede evitar esta deficiencia calculando sólo el problema directo -la
diferencia entre los tiempos de llegada de la onda observados y predichos para
distintas localizaciones del hipocentro. Sin embargo, un método de búsqueda
exhaustivo basado en este método sería demasiado costoso computacionalmente.
Éste, por supuesto, es precisamente el tipo de problema de optimización en el que
destacan los algoritmos genéticos. Como todos los AGs, el propuesto por el
artículo citado es paralelo en naturaleza -en lugar de mover un solo hipocentro
más y más cerca hacia la solución, comienza con una nube de hipocentros
potenciales que encoge con el tiempo hasta converger en una sola solución. Los
autores afirman que su método ``puede localizar rápidamente soluciones casi
óptimas sin una búsqueda exhaustiva del espacio de parámetros'' (p. 1.467),
muestra ``un comportamiento muy organizado que produce una búsqueda
eficiente'' y es ``un compromiso entre la eficiencia de los métodos basados en
derivadas y la robustez de una búsqueda exhaustiva completamente no lineal'' (p.
1.469). Los autores concluyen que su algoritmo genético es ``eficiente para una



             ING.INFORMATICA Y SISTEMAS
               ALGORITMOS GENETICOS
                                                                             47
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos
Algoritmos geneticos

Contenu connexe

Tendances

Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicosESCOM
 
Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlabUNIV OF PERU
 
Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba yucci2323
 
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosTema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosESCOM
 
Resolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosResolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosMauro Parra-Miranda
 
Algoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin PresentacinAlgoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin Presentacinguest2f5cf8
 

Tendances (6)

Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicos
 
Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlab
 
Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba
 
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosTema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
 
Resolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosResolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticos
 
Algoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin PresentacinAlgoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin Presentacin
 

En vedette

Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipoeliasmolina
 
Biblioteca especial
Biblioteca especialBiblioteca especial
Biblioteca especialCarlos Viso
 
Diversidad
DiversidadDiversidad
DiversidadXajanaj
 
Comparacion nueva carrera[1]
Comparacion nueva carrera[1]Comparacion nueva carrera[1]
Comparacion nueva carrera[1]MajinRuiz63
 
La clase de 3ºD
 La clase de 3ºD La clase de 3ºD
La clase de 3ºDErikbasket
 
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp020 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02Joel Perea
 
último trimestre 2011
último trimestre 2011último trimestre 2011
último trimestre 2011mariu21
 
Habilidades comunicativas - ECCI
Habilidades comunicativas - ECCIHabilidades comunicativas - ECCI
Habilidades comunicativas - ECCIJhonpinilla2205
 
tecnologia_Peninsula
tecnologia_Peninsulatecnologia_Peninsula
tecnologia_Peninsulacatedrabueno
 
Comunicacion Social
Comunicacion Social Comunicacion Social
Comunicacion Social G__94
 
Modelos pedagogicos
Modelos pedagogicosModelos pedagogicos
Modelos pedagogicosleidypaez
 
Estrategias para el Estudio y la Comunicación I y II
Estrategias para el Estudio y la Comunicación I y IIEstrategias para el Estudio y la Comunicación I y II
Estrategias para el Estudio y la Comunicación I y IIFreddyruzmena
 

En vedette (20)

Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 
Quimica 3 a
Quimica 3 aQuimica 3 a
Quimica 3 a
 
Liderazgo
LiderazgoLiderazgo
Liderazgo
 
Costos
CostosCostos
Costos
 
Biblioteca especial
Biblioteca especialBiblioteca especial
Biblioteca especial
 
TP 1 INFORMATICA
TP 1 INFORMATICATP 1 INFORMATICA
TP 1 INFORMATICA
 
Presentac..
Presentac..Presentac..
Presentac..
 
Diversidad
DiversidadDiversidad
Diversidad
 
Comparacion nueva carrera[1]
Comparacion nueva carrera[1]Comparacion nueva carrera[1]
Comparacion nueva carrera[1]
 
Hidrolectrica
HidrolectricaHidrolectrica
Hidrolectrica
 
Modelo a seguir
Modelo a seguirModelo a seguir
Modelo a seguir
 
Corazones
CorazonesCorazones
Corazones
 
La clase de 3ºD
 La clase de 3ºD La clase de 3ºD
La clase de 3ºD
 
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp020 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02
0 proyectodeinvestigacion-secuenciaoperativa2012-120221100008-phpapp02
 
último trimestre 2011
último trimestre 2011último trimestre 2011
último trimestre 2011
 
Habilidades comunicativas - ECCI
Habilidades comunicativas - ECCIHabilidades comunicativas - ECCI
Habilidades comunicativas - ECCI
 
tecnologia_Peninsula
tecnologia_Peninsulatecnologia_Peninsula
tecnologia_Peninsula
 
Comunicacion Social
Comunicacion Social Comunicacion Social
Comunicacion Social
 
Modelos pedagogicos
Modelos pedagogicosModelos pedagogicos
Modelos pedagogicos
 
Estrategias para el Estudio y la Comunicación I y II
Estrategias para el Estudio y la Comunicación I y IIEstrategias para el Estudio y la Comunicación I y II
Estrategias para el Estudio y la Comunicación I y II
 

Similaire à Algoritmos geneticos

Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmoJose Lluberes
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximosAbraham Prado
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosKevin Medina
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5UNEFA
 
Xpin algoritmos genéticos
Xpin   algoritmos genéticosXpin   algoritmos genéticos
Xpin algoritmos genéticosprofesorgavit0
 
Utp i_ay_se_s10_algoritmo genéticos_
 Utp i_ay_se_s10_algoritmo genéticos_ Utp i_ay_se_s10_algoritmo genéticos_
Utp i_ay_se_s10_algoritmo genéticos_jcbenitezp
 
Programación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesProgramación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesJohn Diaz
 
5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdfarturoruizlopez1
 
computacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalcomputacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalRenzo Marrufo Cabanillas
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadamartinp
 

Similaire à Algoritmos geneticos (20)

ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximos
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Ag (2005 verano)
Ag (2005 verano)Ag (2005 verano)
Ag (2005 verano)
 
Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5
 
020 algoritmos2
020 algoritmos2020 algoritmos2
020 algoritmos2
 
Jgap algritmos geneticosss
Jgap  algritmos geneticosssJgap  algritmos geneticosss
Jgap algritmos geneticosss
 
Xpin algoritmos genéticos
Xpin   algoritmos genéticosXpin   algoritmos genéticos
Xpin algoritmos genéticos
 
Utp i_ay_se_s10_algoritmo genéticos_
 Utp i_ay_se_s10_algoritmo genéticos_ Utp i_ay_se_s10_algoritmo genéticos_
Utp i_ay_se_s10_algoritmo genéticos_
 
A G's
A G'sA G's
A G's
 
REDES NEURONALES.pptx
REDES NEURONALES.pptxREDES NEURONALES.pptx
REDES NEURONALES.pptx
 
ALGORITMOS GENÉTICOS.pdf
ALGORITMOS GENÉTICOS.pdfALGORITMOS GENÉTICOS.pdf
ALGORITMOS GENÉTICOS.pdf
 
Programación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesProgramación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos Generales
 
5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf
 
computacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalcomputacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronal
 
A Geneticos
A GeneticosA Geneticos
A Geneticos
 
Estructuras_F_CAT
Estructuras_F_CATEstructuras_F_CAT
Estructuras_F_CAT
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursada
 

Dernier

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 

Dernier (20)

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 

Algoritmos geneticos

  • 1. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC CURSO: ALGORITMICA III TEMA Nº5 Anonimo. DOCENTE: ING. RAUL PEÑA MALLMA AÑO: 2012 Tambiurco-ABANCAY ALGORITMICA III
  • 2. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Índice ALGORITMOS GENÉTICOS……………………………………………………….4 Métodos de representación…………………………………………………..….5 Métodos de selección……………………………………………………………..7 Métodos de cambio………………………………………………………………..9 Otras técnicas de resolución de problemas………………………………….10 Redes neuronales………………………………………………………………….11 Ascenso a colina (Hill Climbing)……………………………………………….12 Recocido simulado (simulated annealing)……………………………………13 Una breve historia de los AGs…………………………………………………..13 ¿Cuáles son las ventajas de los AGs?....................................................16 ¿Cuáles son las limitaciones de los AGs? …………………………………..22 Algunos ejemplos específicos de AG……………………………………….…28 Acústica………………………………………………………………………….….28 Ingeniería aeroespacial……………………………………………………………30 Astronomía y astrofísica……………………………………………………….…33 Ingeniería eléctrica……………………………………………………….…….…37 Mercados financieros…………………………………………………………….39 ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 2
  • 3. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Juegos ………………………………………………………………………………42 Geofísica………………………………………………………………………….…46 Ingeniería de materiales………………………………………………………….48 Matemáticas y algoritmia……………………………………………………..…50 Ejército y cumplimiento de la ley ………………………………………….….52 Biología molecular…………………………………………………………..……54 Reconocimiento de patrones y explotación de datos ……………….……56 Diseño de rutas y horarios………………………………………………………61 Ingeniería de sistemas …………………………………………………….……65 Los AGs no tienen múltiples sistemas de lectura………………………….79 Los AGs tienen objetivos predeterminados………………………………….80 Los AGs no generan información nueva en realida………………………82 ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 3
  • 4. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC ALGORITMO GENÉTICO Expuesto concisamente, un algoritmo genético (o AG para abreviar) es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Dado un problema específico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una métrica llamada función 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. Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayoría no funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras -pueden mostrar actividad, aunque sólo sea actividad débil e imperfecta, hacia la solución del problema. Estas candidatas prometedoras se conservan y se les permite reproducirse. Se realizan múltiples copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital prosigue con la siguiente generación, formando un nuevo acervo de soluciones candidatas, y son sometidas a una ronda de evaluación de aptitud. Las candidatas que han empeorado o no han mejorado con los cambios en su código son eliminadas de nuevo; pero, de nuevo, por puro azar, las variaciones aleatorias introducidas en la población pueden haber mejorado a algunos individuos, convirtiéndolos en mejores soluciones del problema, más completas o más eficientes. De nuevo, se selecionan y copian estos individuos vencedores hacia la siguiente generación con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la población se incrementará en cada ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy buenas del problema. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 4
  • 5. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Aunque a algunos les puede parecer asombroso y antiintuitivo, los algoritmos genéticos han demostrado ser una estrategia enormemente poderosa y exitosa para resolver problemas, demostrando de manera espectacular el poder de los principios evolutivos. Se han utilizado algoritmos genéticos en una amplia variedad de campos para desarrollar soluciones a problemas tan difíciles o más difíciles que los abordados por los diseñadores humanos. Además, las soluciones que consiguen son a menudo más eficientes, más elegantes o más complejas que nada que un ingeniero humano produciría. ¡En algunos casos, los algoritmos genéticos han producido soluciones que dejan perplejos a los programadores que escribieron los algoritmos en primera instancia! Métodos de representación Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se necesita un método para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque común es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dígito de cada posición representa el valor de algún aspecto de la solución. Otro método similar consiste en codificar las soluciones como cadenas de enteros o números decimales, donde cada posición, de nuevo, representa algún aspecto particular de la solución. Este método permite una mayor precisión y complejidad que el método comparativamente restringido de utilizar sólo números binarios, y a menudo ``está intuitivamente más cerca del espacio de problemas'' . Esta técnica se utilizó, por ejemplo, en el trabajo de Steffen Schulze-Kremer, que escribió un algoritmo genético para predecir la estructura tridimensional de una proteína, basándose en la secuencia de aminoácidos que la componen . El AG de Schulze-Kremer utilizaba números reales para representar los famosos ``ángulos de torsión'' entre los enlaces peptídicos que conectan a los aminoácidos. (Una proteína está formada por una secuencia de bloques básicos llamados aminoácidos, que se conectan como los eslabones de una cadena. Una vez que ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 5
  • 6. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC todos los aminoácidos están enlazados, la proteína se dobla formando una compleja estructura tridimensional, basada en cuáles aminoácidos se atraen entre ellos y cuáles se repelen. La forma de una proteína determina su función). Los algoritmos genéticos para entrenar a las redes neuronales también utilizan a menudo este método de codificación. Un tercer método consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra, de nuevo, representa un aspecto específico de la solución. Un ejemplo de esta técnica es el método basado en ``codificación gramática'' de Hiroaki Kitano, en el que a un AG se le encargó la tarea de evolucionar un sencillo conjunto de reglas llamadas gramática libre de contexto, que a su vez se utilizaban para generar redes neuronales para una variedad de problemas . La virtud de estos tres métodos es que facilitan la definición de operadores que causen los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un número una cantidad elegida al azar, o cambiar una letra por otra. (Ver la sección sobre los métodos de cambio para más detalles acerca de los operadores genéticos). Otra estrategia, desarrollada principalmente por John Koza, de la Universidad de Stanford, y denominada programación genética, representa a los programas como estructuras de datos ramificadas llamadas árboles . En este método, los cambios aleatorios pueden generarse cambiado el operador o alterando el valor de un cierto nodo del árbol, o sustituyendo un subárbol por otro. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 6
  • 7. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Figure: Tres sencillos árboles de programa del tipo utilizado normalmente en la programación genética. Debajo se proporciona la expresión matemática que representa cada uno. Es importante señalar que los algoritmos evolutivos no necesitan representar las soluciones candidatas como cadenas de datos de una longitud fija. Algunos las representan de esta manera, pero otros no; por ejemplo, la ``codificación gramatical'' de Kitano, explicada arriba, puede escalarse eficientemente para crear redes neuronales grandes y complejas, y los árboles de programación genética de Koza pueden crecer arbitrariamente tanto como sea necesario para resolver cualquier problema que se les pida. Métodos de selección Un algoritmo genético puede utilizar muchas técnicas diferentes para seleccionar a los individuos que deben copiarse hacia la siguiente generación, pero abajo se listan algunos de los más comunes. Algunos de estos métodos son mutuamente exclusivos, pero otros pueden utilizarse en combinación, algo que se hace a menudo. Selección elitista: se garantiza la selección de los miembros más aptos de cada generación. (La mayoría de los AGs no utilizan elitismo puro, sino que usan una forma modificada por la que el individuo mejor, o algunos de los ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 7
  • 8. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC mejores, son copiados hacia la siguiente generación en caso de que no surja nada mejor). Selección proporcional a la aptitud: los individuos más aptos tienen más probabilidad de ser seleccionados, pero no la certeza. Selección por rueda de ruleta: una forma de selección proporcional a la aptitud en la que la probabilidad de que un individuo sea seleccionado es proporcional a la diferencia entre su aptitud y la de sus competidores. (Conceptualmente, esto puede representarse como un juego de ruleta - cada individuo obtiene una sección de la ruleta, pero los más aptos obtienen secciones mayores que las de los menos aptos. Luego la ruleta se hace girar, y en cada vez se elige al individuo que ``posea'' la sección en la que se pare la ruleta). Selección escalada: al incrementarse la aptitud media de la población, la fuerza de la presión selectiva también aumenta y la función de aptitud se hace más discriminadora. Este método puede ser útil para seleccionar más tarde, cuando todos los individuos tengan una aptitud relativamente alta y sólo les distingan pequeñas diferencias en la aptitud. Selección por torneo: se eligen subgrupos de individuos de la población, y los miembros de cada subgrupo compiten entre ellos. Sólo se elige a un individuo de cada subgrupo para la reproducción. Selección por rango: a cada individuo de la población se le asigna un rango numérico basado en su aptitud, y la selección se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este método es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reduciría la diversidad genética de la población y podría obstaculizar la búsqueda de una solución aceptable. Selección generacional: la descendencia de los individuos seleccionados en cada generación se convierte en toda la siguiente generación. No se conservan individuos entre las generaciones. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 8
  • 9. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Selección por estado estacionario: la descendencia de los individuos seleccionados en cada generación vuelven al acervo genético preexistente, reemplazando a algunos de los miembros menos aptos de la siguiente generación. Se conservan algunos individuos entre generaciones. Selección jerárquica: los individuos atraviesan múltiples rondas de selección en cada generación. Las evaluaciones de los primeros niveles son más rápidas y menos discriminatorias, mientras que los que sobreviven hasta niveles más altos son evaluados más rigurosamente. La ventaja de este método es que reduce el tiempo total de cálculo al utilizar una evaluación más rápida y menos selectiva para eliminar a la mayoría de los individuos que se muestran poco o nada prometedores, y sometiendo a una evaluación de aptitud más rigurosa y computacionalmente más costosa sólo a los que sobreviven a esta prueba inicial. Métodos de cambio Una vez que la selección ha elegido a los individuos aptos, éstos deben ser alterados aleatoriamente con la esperanza de mejorar su aptitud para la siguiente generación. Existen dos estrategias básicas para llevar esto a cabo. La primera y más sencilla se llama mutación. Al igual que una mutación en los seres vivos cambia un gen por otro, una mutación en un algoritmo genético también causa pequeñas alteraciones en puntos concretos del código de un idividuo. El segundo método se llama cruzamiento, e implica elegir a dos individuos para que intercambien segmentos de su código, produciendo una ``descendencia'' artificial cuyos individuos son combinaciones de sus padres. Este proceso pretende simular el proceso análogo de la recombinación que se da en los cromosomas durante la reproducción sexual. Las formas comunes de cruzamiento incluyen al cruzamiento de un punto, en el que se establece un punto de intercambio en un lugar aleatorio del genoma de los dos individuos, y uno de los ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 9
  • 10. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC individuos contribuye todo su código anterior a ese punto y el otro individuo contribuye todo su código a partir de ese punto para producir una descendencia, y al cruzamiento uniforme, en el que el valor de una posición dada en el genoma de la descendencia corresponde al valor en esa posición del genoma de uno de los padres o al valor en esa posición del genoma del otro padre, elegido con un 50% de probabilidad. Figure: Cruzamiento y mutación. El diagrama de arriba ilustra el efecto de estos dos operadores genéticos en los individuos de una población 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 híbrido de sus progenitores. El segundo diagrama muestra a un individuo sufriendo una mutación en la posición 4, cambiando el 0 de esa posición de su genoma por un 1. Otras técnicas de resolución de problemas Con el auge de la informática de inteligencia artificial y el desarrollo de los métodos heurísticos, han emergido otras técnicas de resolución computerizada de problemas que en algunos aspectos son similares a los algoritmos genéticos. Esta sección explica algunas de estas técnicas, en qué se parecen a los AGs y en qué se diferencian. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 10
  • 11. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Redes neuronales Una red neuronal es un método de resolución de problemas basado en un modelo informático de la manera en que están conectadas las neuronas del cerebro. Una red neuronal consiste en capas de unidades procesadoras, llamadas nodos, unidas por conexiones direccionales: una capa de entrada, una capa de salida y cero o más capas ocultas enmedio. Se le presenta un patrón inicial de entrada a la capa de entrada, y luego los nodos que se estimulan transmiten una señal a los nodos de la siguiente capa a la que están conectados. Si la suma de todas las entradas que entran en una de estas neuronas virtuales es mayor que el famoso umbral de activación de la neurona, esa neurona se activa, y transmite su propia señal a las neuronas de la siguiente capa. El patrón de activación, por tanto, se propaga hacia delante hasta que alcanza a la capa de salida, donde es devuelto como solución a la entrada presentada. Al igual que en el sistema nervioso de los organismos biológicos, las redes neuronales aprenden y afinan su rendimiento a lo largo del tiempo, mediante la repetición de rondas en las que se ajustan sus umbrales, hasta que la salida real coincide con la salida deseada para cualquier entrada dada. Este proceso puede ser supervisado por un experimentador humano, o puede correr automáticamente utilizando un algoritmo de aprendizaje .Se han utilizado algoritmos genéticos para construir y entrenar a redes neuronales. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 11
  • 12. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Figure: Una sencilla red neuronal anticipativa (feedforward), con una capa consistente en cuatro neuronas, una capa oculta consistente en tres neuronas y una capa de salida consistente en cuatro neuronas. El número de cada neurona representa su umbral de activación: sólo se excitará si recibe al menos esa cantidad de entradas. El diagrama muestra cómo la red neuronal recibe una cadena de entrada y cómo la activación se extiende por la red hasta producir una salida. Ascenso a colina (Hill Climbing) Similares a los algoritmos genéticos, aunque más sistemáticos y menos aleatorios. Un algoritmo de ascenso a colina comienza con una solución al problema a mano, normalmente elegida al azar. Luego, la cadena se muta, y si la mutación proporciona una solución con mayor aptitud que la solución anterior, se conserva la nueva solución; en caso contrario, se conserva la solución actual. Luego el algoritmo se repite hasta que no se pueda encontrar una mutación que provoque un incremento en la aptitud de la solución actual, y esta solución se devuelve como . (Para entender de dónde viene el nombre de esta técnica, imagine que el espacio de todas las soluciones posibles de un cierto problema se representa como un paisaje tridimensional. Un conjunto de coordenadas en ese paisaje representa una solución particular. Las soluciones mejores están a mayor altitud, formando colinas y picos; las que son peores están a menor altitud, formando valles. Un ``trepacolinas'' es, por tanto, un algoritmo que comienza en un punto dado del paisaje y se mueve inexorablemente colina arriba). El algoritmo de ascenso a colina es lo que se conoce como algoritmo voraz, lo que significa que siempre hace la mejor elección disponible en cada paso, con la esperanza de que de esta manera se puede obtener el mejor resultado global. En contraste, los métodos como los algoritmos genéticos y el recocido simulado, discutido abajo, no son voraces; a veces, estos métodos hacen elecciones menos óptimas al principio con la esperanza de que conducirán hacia una solución mejor más adelante. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 12
  • 13. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Recocido simulado (simulated annealing) Otra técnica de optimización similar a los algoritmos evolutivos se conoce como recocido simulado. La idea toma prestado su nombre del proceso industrial en el que un material se calienta por encima de su punto de fusión y luego se enfría gradualmente para eliminar defectos en su estructura cristalina, produciendo un entramado de átomos más estable y regular .En el recocido simulado, como en los algoritmos genéticos, existe una función de aptitud que define un paisaje adaptativo; sin embargo, en lugar de una población de candidatas como en los AGs, sólo existe una solución candidata. El recocido simulado también añade el concepto de ``temperatura'', una cantidad numérica global que disminuye gradualmente en el tiempo. En cada paso del algoritmo, la solución muta (lo que es equivalente a moverse hacia un punto adyacente en el paisaje adaptativo). Luego, la aptitud de la nueva solución se compara con la aptitud de la solución anterior; si es mayor, se conserva la nueva solución. En caso contrario, el algoritmo toma la decisión de conservarla o descartarla en base a la temperatura. Si la temperatura es alta, como lo es al principio, pueden conservarse incluso cambios que causan decrementos significativos en la aptitud, y utilizarse como base para la siguiente ronda del algoritmo, pero al ir disminuyendo la temperatura, el algoritmo se va haciendo más y más propenso a aceptar sólo los cambios que aumentan la aptitud. Finalmente, la temperatura alzanca el cero y el sistema se ``congela''; cualquiera que sea la configuración que exista en ese punto se convierte en la solución. El recocido simulado tiene a menudo aplicaciones en la ingeniería del diseño, como determinar la disposición física de los componentes en un chip . Una breve historia de los AGs Los primeros ejemplos de lo que hoy podríamos llamar algoritmos genéticos aparecieron a finales de los 50 y principios de los 60, programados en computadoras por biólogos evolutivos que buscaban explícitamente realizar ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 13
  • 14. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió que esta estrategia podría aplicarse de manera más general a los problemas artificiales, pero ese reconocimiento no tardaría en llegar: ``La computación evolutiva estaba definitivamente en el aire en los días formativos de la computadora electrónica'' . En 1962, investigadores como G.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann habían desarrollado independientemente algoritmos inspirados en la evolución para optimización de funciones y aprendizaje automático, pero sus trabajos generaron poca reacción. En 1965 surgió un desarrollo más exitoso, cuando Ingo Rechenberg, entonces de la Universidad Técnica de Berlín, introdujo una técnica que llamó estrategia evolutiva, aunque se parecía más a los trepacolinas que a los algoritmos genéticos. En esta técnica no había población ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtiéndose en el padre de la siguiente ronda de mutación .Versiones posteriores introdujeron la idea de población. Las estrategias evolutivas todavía se emplean hoy en día por ingenieros y científicos, sobre todo en Alemania. El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel, A.J. Owens y M.J. Walsh introdujeron en América una técnica que llamaron programación evolutiva. En este método, las soluciones candidatas para los problemas se representaban como máquinas de estado finito sencillas; al igual que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando aleatoriamente una de estas máquinas simuladas y conservando la mejor de las dos . También al igual que las estrategias evolutivas, hoy en día existe una formulación más amplia de la técnica de programación evolutiva que todavía es un área de investigación en curso. Sin embargo, lo que todavía faltaba en estas dos metodologías era el reconocimiento de la importancia del cruzamiento. En una fecha tan temprana como 1962, el trabajo de John Holland sobre sistemas adaptativos estableció las bases para desarrollos posteriores; y lo que es más importante, Holland fue también el primero en proponer explícitamente el ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 14
  • 15. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC cruzamiento y otros operadores de recombinación. Sin embargo, el trabajo fundamental en el campo de los algoritmos genéticos apareció en 1975, con la publicación del libro ``Adaptación en Sistemas Naturales y Artificiales''. Basado en investigaciones y papers anteriores del propio Holland y de colegas de la Universidad de Michigan, este libro fue el primero en presentar sistemática y rigurosamente el concepto de sistemas digitales adaptativos utilizando la mutación, la selección y el cruzamiento, simulando el proceso de la evolución biológica como estrategia para resolver problemas. El libro también intentó colocar los algoritmos genéticos sobre una base teórica firme introduciendo el concepto de esquema .Ese mismo año, la importante tesis de Kenneth De Jong estableció el potencial de los AGs demostrando que podían desenvolverse bien en una gran variedad de funciones de prueba, incluyendo paisajes de búsqueda ruidosos, discontinuos y multimodales . Estos trabajos fundacionales establecieron un interés más generalizado en la computación evolutiva. Entre principios y mediados de los 80, los algoritmos genéticos se estaban aplicando en una amplia variedad de áreas, desde problemas matemáticos abstractos como el ``problema de la mochila'' (bin- packing) y la coloración de grafos hasta asuntos tangibles de ingeniería como el control de flujo en una línea de ensamble, reconocimiento y clasificación de patrones y optimización estructural. Al principio, estas aplicaciones eran principalmente teóricas. Sin embargo, al seguir proliferando la investigación, los algoritmos genéticos migraron hacia el sector comercial, al cobrar importancia con el crecimiento exponencial de la potencia de computación y el desarrollo de Internet. Hoy en día, la computación evolutiva es un campo floreciente, y los algoritmos genéticos están ``resolviendo problemas de interés cotidiano'' en áreas de estudio tan diversas como la predicción en la bolsa y la planificación de la cartera de valores, ingeniería aeroespacial, diseño de microchips, bioquímica ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 15
  • 16. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC y biología molecular, y diseño de horarios en aeropuertos y líneas de montaje. La potencia de la evolución ha tocado virtualmente cualquier campo que uno pueda nombrar, modelando invisiblemente el mundo que nos rodea de incontables maneras, y siguen descubriéndose nuevos usos mientras la investigación sigue su curso. Y en el corazón de todo esto se halla nada más que la simple y poderosa idea de Charles Darwin: que el azar en la variación, junto con la ley de la selección, es una técnica de resolución de problemas de inmenso poder y de aplicación casi ilimitada. ¿Cuáles son las ventajas de los AGs? El primer y más importante punto es que los algoritmos genéticos son intrínsecamente paralelos. La mayoría de los otros algoritmos son en serie y sólo pueden explorar el espacio de soluciones hacia una solución en una dirección al mismo tiempo, y si la solución que descubren resulta subóptima, no se puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo. Sin embargo, ya que los AGs tienen descendencia múltiple, pueden explorar el espacio de soluciones en múltiples direcciones a la vez. Si un camino resulta ser un callejón sin salida, pueden eliminarlo fácilmente y continuar el tabajo en avenidas más prometedoras, dándoles una mayor probabilidad en cada ejecución de encontrar la solución. Sin embargo, la ventaja del paralelismo va más allá de esto. Considere lo siguiente: todas las cadenas binarias (cadenas de ceros y unos) de 8 dígitos forman un espacio de búsqueda, que puede representarse como ******** (donde * significa ``o 0 o 1''). La cadena 01101010 es un miembro de este espacio. Sin embargo, también es un miembro del espacio 0*******, del espacio 01******, del espacio 0******0, del espacio 0*1*1*1*, del espacio 10*01**0, etcétera. Evaluando la aptitud de esta cadena particular, un algoritmo genético estaría sondeando cada uno de los espacios a los que ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 16
  • 17. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC pertenece. Tras muchas evaluaciones, iría obteniendo un valor cada vez más preciso de la aptitud media de cada uno de estos espacios, cada uno de los cuales contiene muchos miembros. Por tanto, un AG que evalúe explícitamente un número pequeño de individuos está evaluando implícitamente un grupo de individuos mucho más grande -de la misma manera que un encuestador que le hace preguntas a un cierto miembro de un grupo étnico, religioso o social espera aprender algo acerca de las opiniones de todos los miembros de ese grupo, y por tanto puede predecir con fiabilidad la opinión nacional sondeando sólo un pequeño porcentaje de la población. De la misma manera, el AG puede dirigirse hacia el espacio con los individuos más aptos y encontrar el mejor de ese grupo. En el contexto de los algoritmos evolutivos, esto se conoce como teorema del esquema, y es la ventaja principal de los AGs sobre otros métodos de resolución de problemas Debido al paralelismo que les permite evaluar implícitamente muchos esquemas a la vez, los algoritmos genéticos funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande -demasiado vasto para hacer una búsqueda exhaustiva en un tiempo razonable. La mayoría de los problemas que caen en esta categoría se conocen como ``no lineales''. En un problema lineal, la aptitud de cada componente es independiente, por lo que cualquier mejora en alguna parte dará como resultado una mejora en el sistema completo. No es necesario decir que hay pocos problemas como éste en la vida real. La no linealidad es la norma, donde cambiar un componente puede tener efectos en cadena en todo el sistema, y donde cambios múltiples que, individualmente, son perjudiciales, en combinación pueden conducir hacia mejoras en la aptitud mucho mayores. La no linealidad produce una explosión combinatoria: el espacio de cadenas binarias de 1.000 dígitos puede examinarse exhaustivamente evaluando sólo 2.000 posibilidades si el problema es lineal, mientras que si no es lineal, una búsqueda exhaustiva ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 17
  • 18. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC requiere evaluar 21.000 posibilidades -un número que, escrito, ocuparía más de 300 dígitos. Afortunadamente, el paralelismo implícito de los AGs les permite superar incluso este enorme número de posibilidades, y encontrar con éxito resultados óptimos o muy buenos en un corto periodo de tiempo, tras muestrear directamente sólo regiones pequeñas del vasto paisaje adaptativo Por ejemplo, un algoritmo genético desarrollado en común por ingenieros de General Electric y el Rensselaer Polytechnic Institute produjo el diseño de la turbina de un motor a reacción de altas prestaciones que era tres veces mejor que la configuración diseñada por humanos, y un 50% mejor que una configuración diseñada por un sistema experto que recorrió con éxito un espacio de soluciones que contenía más de 10.387 posibilidades. Los métodos convencionales para diseñar estas turbinas son una parte fundamental de proyectos de ingeniería que pueden durar hasta cinco años y costar más de 2.000 millones de dólares; el algoritmo genético descubrió esta solución en dos días, en una estación de trabajo de escritorio típica en ingeniería Otra ventaja notable de los algoritmos genéticos es que se desenvuelven bien en problemas con un paisaje adaptativo complejo -aquéllos en los que la función de aptitud es discontinua, ruidosa, cambia con el tiempo, o tiene muchos óptimos locales. La mayoría de los problemas prácticos tienen un espacio de soluciones enorme, imposible de explorar exhaustivamente; el reto se convierte entonces en cómo evitar los óptimos locales -soluciones que son mejores que todas las que son similares a ella, pero que no son mejores que otras soluciones distintas situadas en algún otro lugar del espacio de soluciones. Muchos algoritmos de búsqueda pueden quedar atrapados en los óptimos locales: si llegan a lo alto de una colina del paisaje adaptativo, descubrirán que no existen soluciones mejores en las cercanías y concluirán que han alcanzado la mejor de todas, aunque ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 18
  • 19. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC existan picos más altos en algún otro lugar del mapa. Los algoritmos evolutivos, por otro lado, han demostrado su efectividad al escapar de los óptimos locales y descubrir el óptimo global incluso en paisajes adaptativos muy escabrosos y complejos. (Debe decirse que, en la realidad, a menudo no hay manera de decir si una cierta solución a un problema es el óptimo global o sólo un óptimo local muy alto. Sin embargo, aunque un AG no devuelva siempre una solución perfecta y demostrable a un problema, casi siempre puede devolver al menos una muy buena solución). Todos los cuatro componentes principales de los AGs - paralelismo, selección, mutación y cruzamiento- trabajan juntos para conseguir esto. Al principio, el AG genera una población inicial diversa, lanzando una ``red'' sobre el paisaje adaptativo. compara esto con un ejército de paracaidistas cayendo sobre el paisaje del espacio de búsqueda de un problema, cada uno de ellos con órdenes de buscar el pico más alto). Pequeñas mutaciones permiten a cada individuo explorar sus proximidades, mientras que la selección enfoca el progreso, guiando a la descendencia del algoritmo cuesta arriba hacia zonas más prometedoras del espacio de soluciones Sin embargo, el cruzamiento es el elemento clave que distingue a los algoritmos genéticos de los otros métodos como los trepacolinas y el recocido simulado. Sin el cruzamiento, cada solución individual va por su cuenta, explorando el espacio de búsqueda en sus inmediaciones sin referencia de lo que el resto de individuos puedan haber descubierto. Sin embargo, con el cruzamiento en juego, hay una transferencia de información entre los candidatos prósperos -los individuos pueden beneficiarse de lo que otros han aprendido, y los esquemas pueden mezclarse y combinarse, con el potencial de producir una descendencia que tenga las virtudes de sus dos padres y ninguna de sus debilidades. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 19
  • 20. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC donde los autores analizan el problema de sintetizar un filtro de paso bajo utilizando programación genética. En una generación se seleccionaron dos circuitos progenitores para llevar a cabo el cruzamiento; un padre tenía una buena topología (componentes como inductores y condensadores colocados en el sitio correcto) pero malos tamaños (valores demasiado bajos de inductancia y capacidad para los componentes). El otro padre tenía mala topología pero buenos tamaños. El resultado de aparearlos mediante cruzamiento fue una descendencia con la buena topología de un padre y los buenos tamaños del otro, dando como resultado una mejora sustancial de la aptitud sobre sus dos padres. El problema de encontrar el óptimo global en un espacio con muchos óptimos locales también se conoce como el dilema de la exploración versus explotación, ``un problema clásico de todos los sistemas que pueden adaptarse y aprender'' Una vez que un algoritmo (o un diseñador humano) ha encontrado una estrategia para resolver problemas que parece funcionar satisfactoriamente, ¿debería centrarse en hacer el mejor uso de esa estrategia, o buscar otras? Abandonar una estrategia de probada solvencia para buscar otras nuevas casi garantiza que supondrá una pérdida y degradación del rendimiento, al menos a corto plazo. Pero si uno se queda con una estrategia particular excluyendo a todas las demás, corre el riesgo de no descubrir estrategias mejores que existen pero no se han encontrado. De nuevo, los algoritmos genéticos han demostrado ser muy buenos en dar con este equilibrio y descubrir buenas soluciones en un tiempo y esfuerzo computacional razonables. Otro área en el que destacan los algoritmos genéticos es su habilidad para manipular muchos parámetros simultáneamente Muchos problemas de la vida real no pueden definirse en términos de un único valor que hay que minimizar o maximizar, sino que deben expresarse en términos de múltiples objetivos, a menudo involucrando contrapartidas: uno sólo puede mejorar a ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 20
  • 21. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC expensas de otro. Los AGs son muy buenos resolviendo estos problemas: en particular, su uso del paralelismo les permite producir múltiples soluciones, igualmente buenas, al mismo problema, donde posiblemente una solución candidata optimiza un parámetro y otra candidata optimiza uno distinto y luego un supervisor humano puede seleccionar una de esas candidatas para su utilización. Si una solución particular a un problema con múltiples objetivos optimiza un parámetro hasta el punto en el que ese parámetro no puede mejorarse más sin causar una correspondiente pérdida de calidad en algún otro parámetro, esa solución se llama óptimo paretiano o no dominada Finalmente, una de las cualidades de los algoritmos genéticos 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. En lugar de utilizar información específica conocida a priori para guiar cada paso y realizar cambios con un ojo puesto en el mejoramiento, como hacen los diseñadores humanos, son ``relojeros ciegos'' realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la función de aptitud para determinar si esos cambios producen una mejora. La virtud de esta técnica es que permite a los algoritmos genéticos comenzar con una mente abierta, por así decirlo. Como sus decisiones están basadas en la aleatoriedad, todos los caminos de búsqueda posibles están abiertos teóricamente a un AG; en contraste, cualquier estrategia de resolución de problemas que dependa de un conocimiento previo, debe inevitablemente comenzar descartando muchos caminos a priori, perdiendo así cualquier solución novedosa que pueda existir. Los AGs, al carecer de ideas preconcebidas basadas en creencias establecidas sobre ``cómo deben hacerse las cosas'' o sobre lo que ``de ninguna manera podría funcionar'', los AGs no tienen este problema. De manera similar, cualquier técnica que dependa de conocimiento previo fracasará cuando no esté ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 21
  • 22. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC disponible tal conocimiento, pero, de nuevo, los AGs no se ven afectados negativamente por la ignoranci. Mediante sus componentes de paralelismo, cruzamiento y mutación, pueden viajar extensamente por el paisaje adaptativo, explorando regiones que algoritmos producidos con inteligencia podrían no haber tenido en cuenta, y revelando potencialmente soluciones de asombrosa e inesperada creatividad que podrían no habérseles ocurrido nunca a los diseñadores humanos. Un ejemplo muy gráfico de esto es el redescubrimiento, mediante la programación genética, del concepto de retroalimentación negativa -un principio crucial para muchos componentes electrónicos importantes de hoy en día, pero un concepto que, cuando fue descubierto en primera instancia, se le denegó una patente de nueve años porque el concepto era demasiado contrario a las creencias establecidas . Por supuesto, los algoritmos evolutivos no están enterados ni preocupados de si una solución va en contra de las creencias establecidas -sólo de si funciona. ¿Cuáles son las limitaciones de los AGs? Aunque los algoritmos genéticos han demostrado su eficiencia y potencia como estrategia de resolución 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 evolución biológica. La primera y más importante consideración al crear un algoritmo genético es definir una representación del problema. El lenguaje utilizado para especificar soluciones candidatas debe ser robusto; es decir, debe ser capaz de tolerar cambios aleatorios que no produzcan constantemente errores fatales o resultados sin sentido. Hay dos maneras principales para conseguir esto. La primera, utilizada por la mayoría de los algoritmos genéticos, es definir a los individuos como ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 22
  • 23. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC listas de números -binarios, enteros o reales- donde cada número representa algún aspecto de la solución candidata. Si los individuos son cadenas binarias, un 0 o 1 podría significar la ausencia o presencia de una cierta característica. Si son listas de números, estos números podrían representar muchas cosas distintas: los pesos de las conexiones en una red neuronal, el orden de las ciudades visitadas en un recorrido dado, la situación espacial de componentes electrónicos, los valores con los que se alimenta a un controlador, los ángulos de torsión de los enlaces péptidos de una proteína, etcétera. Así, la mutación implica cambiar estos números, cambiar bits o sumar o restar valores aleatorios. En este caso, el propio código del programa no cambia; el código es lo que dirige la simulación y hace un seguimiento de los individuos, evaluando sus aptitudes y quizá asegurando que sólo se producen valores realistas y posibles para el problema dado. En otro método, la programación genética, el propio código del programa sí cambia. Como ya se dijo en la sección ``Métodos de representación'', la PG representa a los individuos como árboles de código ejecutables que pueden mutar cambiando o intercambiando subárboles. Ambos méetodos producen representaciones robustas ante la mutación, y pueden representar muchos tipos diferentes de problemas y, como se dice en la sección ``Algunos ejemplos específicos'', ambas han tenido un éxito considerable. El problema de representar a las soluciones candidatas de manera robusta no surge en la naturaleza, porque el método de representación utilizado por la evolución, a saber, el código genético, es inherentemente robusto: con muy pocas excepciones, como una cadena de codones de parada, no existe una secuencia de bases de ADN que no pueda traducirse en una proteína. Por lo tanto, virtualmente, cualquier cambio en los genes de un individuo siempre producirá un resultado inteligible, y por tanto las ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 23
  • 24. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC mutaciones en la evolución tienen mayor probabilidad de producir una mejora. Esto entra en contraste con los lenguajes creados por el hombre como el inglés, donde el número de palabras con significado es pequeño comparado con el número total de formas en las que se pueden combinar las letras del alfabeto, y por tanto, es probable que un cambio aleatorio en una frase en inglés produzca un sinsentido. El problema de cómo escribir la función de aptitud debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente signifique una solución mejor para el problema dado. Si se elige mal una función de aptitud o se define de manera inexacta, puede que el algoritmo genético sea incapaz de encontrar una solución al problema, o puede acabar resolviendo el problema equivocado. (Esta última situación se describe a veces como la tendencia del AG a ``engañar'', aunque en realidad lo que está pasando es que el AG está haciendo lo que se le pidió hacer, no lo que sus creadores pretendían que hiciera). Se puede encontrar un ejemplo de esto en Graham-Rowe 2002 donde unos investigadores utilizaron un algoritmo evolutivo en conjunción con una serie de chips reprogramables, haciendo que la función de aptitud recompensara al circuito en evolución por dar como salida una señal oscilatoria. Al final del experimento, se producía efectivamente una señal oscilatoria -pero en lugar de actuar como un osculador, como pretendían los investigadores, ¡descubrieron que el circuito se había convertido en un receptor de radio que estaba recibiendo y retransmitiendo una señal oscilatoria de un componente electrónico cercano! Sin embargo, esto no es un problema en la naturaleza. En el laboratorio de la evolución biológica, sólo hay una función de aptitud que es igual para todos los seres vivos -la carrera por sobrevivir y reproducirse, sin importar qué adaptaciones hagan esto posible. Los organismos que se reproducen ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 24
  • 25. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC con más abundancia que sus competidores están más adaptados; los que fracasan en reproducirse no están adaptados. Además de elegir bien la función de aptitud, también deben elegirse cuidadosamente los otros parámetros de un AG -el tamaño de la población, el ritmo de mutación y cruzamiento, el tipo y fuerza de la selección. Si el tamaño de la población es demasiado pequeño, puede que el algoritmo genético no explore suficientemente el espacio de soluciones para encontrar buenas soluciones consistentemente. Si el ritmo de cambio genético es demasiado alto o el sistema de selección se escoge inadecuadamente, puede alterarse el desarrollo de esquemas beneficiosos y la población puede entrar en catástrofe de errores, al cambiar demasiado rápido para que la selección llegue a producir convergencia. Los seres vivos también se enfrentan a dificultades similares, y la evolución se ha encargado de ellas. Es cierto que si el tamaño de una población cae hacia un valor muy bajo, los ritmos de mutación son muy altos o la presión selectiva es demasiado fuerte (una situación así podría ser resultado de un cambio ambiental drástico), entonces la especie puede extinguirse. La solución ha sido ``la evolución de la evolutividad'' -las adaptaciones que alteran la habilidad de una especie para adaptarse. Un ejemplo. La mayoría de los seres vivos han evolucionado una elaborada maquinaria celular que comprueba y corrigue errores durante el proceso de replicación del ADN, manteniendo su ritmo de mutación a unos niveles aceptablemente bajos; a la inversa, en tiempos de fuerte presión ambiental, algunas especies de bacterias entran en un estado de hipermutación en el que el ritmo de errores en la replicación del ADN aumenta bruscamente, aumentando la probabilidad de que se descubrirá una mutación compensatoria. Por supuesto, no pueden eludirse todas las catástrofes, pero la enorme diversidad y las adaptaciones altamente complejas de los seres vivos actuales muestran que, en general, la evolución es una estrategia exitosa. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 25
  • 26. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Igualmente, las aplicaciones diversas y los impresionantes resultados de los algoritmos genéticos demuestran que son un campo de estudio poderoso y que merece la pena. Un problema con el que los algoritmos genéticos tienen dificultades son los problemas con las funciones de aptitud ``engañosas'' en las que la situación de los puntos mejorados ofrecen información engañosa sobre dónde se encuentra probablemente el óptimo global. Por ejemplo: imagine un problema en el que el espacio de búsqueda esté compuesto por todas las cadenas binarias de ocho caracteres, y en el que la aptitud de cada individuo sea directamente proporcional al número de unos en él -es decir, 00000001 sería menos apto que 00000011, que sería menos apto que 00000111, etcétera -, con dos excepciones: la cadena 11111111 resulta tener una aptitud muy baja, y la cadena 00000000 resulta tener una aptitud muy alta. En este problema, un AG (al igual que la mayoría de los algoritmos) no tendría más probabilidad de encontrar un óptimo global que una búsqueda aleatoria. La solución a este problema es la misma para los algoritmos genéticos y la evolución biológica: la evolución no es un proceso que deba encontrar siempre el óptimo global. Puede funcionar casi igual de bien alcanzando la cima de un óptimo local alto y, para la mayoría de las situaciones, eso será suficiente, incluso aunque el óptimo global no pueda alcanzarse fácilmente desde ese punto. La evolución es como un ``satisfactor'' -un algoritmo que entrega una solución ``suficientemente buena'', aunque no necesariamente la mejor solución posible, dada una cantidad razonable de tiempo y esfuerzo invertidos en la búsqueda. La ``FAQ de la evidencia de diseño improvisado en la naturaleza'' proporciona ejemplos de la naturaleza con estos resultados. (También hay que tener en cuenta que pocos o ningún problema real es tan engañoso como el ejemplo algo forzado dado arriba. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 26
  • 27. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Normalmente, la situación de las mejoras locales proporciona alguna información sobre la situación del óptimo global). Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura. Si un individuo que es más apto que la mayoría de sus competidores emerge muy pronto en el curso de la ejecución, se puede reproducir tan abundantemente que merme la diversidad de la población 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 .Esto es un problema especialmente común en las poblaciones pequeñas, donde incluso una variación aleatoria en el ritmo de reproducción puede provocar que un genotipo se haga dominante sobre los otros. Los métodos más comunes implementados por los investigadores en AGs para solucionar este problema implican controlar la fuerza selectiva, para no proporcionar tanta ventaja a los individuos excesivamente aptos. La selección escalada, por rango y por torneo, discutidas anteriormente, son tres de los métodos principales para conseguir esto; algunos métodos de selección escalada son el escalado sigma, en el que la reproducción se basa en una comparación estadística de la aptitud media de la población, y la selección de Boltzmann, en la que la fuerza selectiva aumenta durante la ejecución de manera similar a la variable ``temperatura'' en el recocido simulado La convergencia prematura ocurre en la naturaleza (los biólogos la llaman deriva genética). Esto no debe sorprender; como ya se dijo arriba, la evolución, como estrategia de resolución de problemas, no está obligada a encontrar la mejor solución, sólo una que sea lo bastante buena. Sin embargo, en la naturaleza, la convergencia prematura es menos común, ya que la mayoría de las mutaciones beneficiosas en los seres vivos sólo producen mejoras en la aptitud pequeñas e incrementales; son raras las ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 27
  • 28. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC mutaciones que producen una ganancia de aptitud tan grande que otorgue a sus poseedores una drástica ventaja reproductiva. Finalmente, varios investigadores aconsejan no utilizar algoritmos genéticos en problemas resolubles de manera analítica. No es que los algoritmos genéticos no puedan encontrar soluciones buenas para estos problemas; simplemente es que los métodos analíticos tradicionales consumen mucho menos tiempo y potencia computacional que los AGs y, a diferencia de los AGs, a menudo está demostrado matemáticamente que ofrecen la única solución exacta. Por supuesto, como no existe una solución matemática perfecta para ningún problema de adaptación biológica, este problema no aparece en la naturaleza. Algunos ejemplos específicos de AG Mientras el poder de la evolución gana reconocimiento cada vez más generalizado, los algoritmos genéticos se utilizan para abordar una amplia variedad de problemas en un conjunto de campos sumamente diverso, demostrando claramente su capacidad y su potencial. Esta sección analizará algunos de los usos más notables en los que han tomado parte. Acústica Sato et al. 2002 utilizaron algoritmos genéticos para diseñar una sala de conciertos con propiedades acústicas óptimas, maximizando la calidad del sonido para la audiencia, para el director y para los músicos del escenario. Esta tarea implica la optimización simultánea de múltiples 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'' (p. 526). Los autores afirman que estas soluciones tienen proporciones similares al Grosser Musikvereinsaal de Viena, el cual está considerado generalmente como una de las ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 28
  • 29. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC mejores -si no la mejor- salas de conciertos del mundo, en términos de propiedades acústicas. Porto, Fogel y Fogel 1995 utilizaron programación evolutiva para adiestrar a redes neuronales para distinguir entre reflexiones sonoras desde distintos tipos de objetos: esferas metálicas hechas por el hombre, montañas submarinas, peces y plantas, y ruido aleatorio de fondo. Tras 500 generaciones, la mejor red neuronal que evolucionó tenía una probabilidad de clasificación correcta que iba desde el 94% al 98%, y una probabilidad de clasificación errónea entre un 7,4% y un 1,5%, que son ``probabilidades razonables de detección y falsa alarma'' (p. 21). Esta red evolucionada igualó las prestaciones de otra red desarrollada mediante recocido simulado, y superó consistentemente a redes entrenadas mediante propagación hacia atrás, las cuales ``se atascaban repetidamente en conjuntos de pesos subóptimos que no producían resultados satisfactorios'' (p. 21). En contraste, ambos métodos estocásticos demostraron su capacidad para superar estos óptimos locales y producir redes más pequeñas, efectivas y robustas; pero los autores sugieren que el algoritmo evolutivo, a diferencia del recocido simulado, opera sobre una población, y por tanto se beneficia de la información global sobre el espacio de búsqueda, conduciendo potencialmente hacia un rendimiento mayor a la larga. Tang et al. 1996 analizan los usos de los algoritmos genéticos en el campo de la acústica y el procesamiento de señales. Un área de interés particular incluye el uso de AGs para diseñar sistemas de Control Activo de Ruido (CAR), que eliminan el sonido no deseado produciendo ondas sonoras que interfieren destructivamente con el ruido. Esto es un problema de múltiples objetivos que requiere el control y la colocación precisa de múltiples altavoces; los AGs se han utilizado en estos sistemas tanto para diseñar los controladores como para encontrar la colocación óptima de los altavoces, dando como resultado una ``atenuación efectiva del ruido'' (p. 33) en pruebas experimentales. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 29
  • 30. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Ingeniería aeroespacial Obayashi et al. 2000 utilizaron un algoritmo genético de múltiples objetivos para diseñar la forma del ala de un avión supersónico. Hay tres consideraciones principales que determinan la configuración del ala -minimizar la resistencia aerodinámica a velocidades de vuelo supersónicas, minimizar la resistencia a velocidades subsónicas y minimizar la carga aerodinámica (la fuerza que tiende a doblar el ala). Estos objetivos son mutuamente exclusivos, y optimizarlos todos simultáneamente requiere realizar contrapartidas. El cromosoma de este problema es una cadena de 66 números reales, cada uno de los cuales corresponde a un aspecto específico del ala: su forma, su grosor, su torsión, etcétera. Se simuló una evolución con selección elitista durante 70 generaciones, con un tamaño de población de 64 individuos. Al final de este proceso había varios individuos paretianos, cada uno representando una solución no dominada del problema. El artículo comenta que estos individuos ganadores tenían características ``físicamente razonables'', señalando la validez de la técnica de optimización (p. 186). Para evaluar mejor la calidad de las soluciones, las seis mejores fueron comparadas con un diseño de ala supersónica producido por el Equipo de Diseño SST del Laboratorio Aeroespacial Nacional de Japón. Las seis fueron competitivas, con valores de resistencia y carga aproximadamente iguales o menores a los del ala diseñada por humanos; en particular, una de las soluciones evolucionadas superó al diseño del LAN en los tres objetivos. Los autores señalan que las soluciones del AG son similares a un diseño llamado ``ala flecha'', sugerido por primera vez a finales de los años 50, pero que finalmente fue abandonado en favor del diseño más convencional con forma de delta. En un artículo posterior (Sasaki et al. 2001), los autores repitieron el experimento añadiendo un cuarto objetivo, a saber, minimizar el momento de torsión (un conocido problema en los diseños de alas flecha en el vuelo supersónico). También se añadieron puntos de control adicionales para el grosor al conjunto de ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 30
  • 31. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC variables de diseño. Tras 75 generaciones de evolución, se compararon dos de las mejores soluciones paretianas con el diseño de ala que el Laboratorio Aeroespacial Nacional japonés realizó para el avión supersónico experimental NEXST-1. Se descubrió que ambos diseños (además de un diseño óptimo de la simulación anterior, explicada arriba) eran físicamente razonables y superiores al diseño del LAN en los cuatro objetivos. Williams, Crossley y Lang 2001 aplicaron algoritmos genéticos a la tarea de situar órbitas de satélites para minimizar los apagones de cobertura. Mientras la tecnología de telecomunicaciones sigue progresando, los humanos somos cada vez más dependientes de las funciones vitales que realizan los satélites en órbita alrededor de la Tierra, y uno de los problemas con los que se enfrentan los ingenieros es el diseño de las trayectorias orbitales. Los satélites que se encuentran en una órbita terrestre alta, a unos 35.000 kilómetros de altitud, pueden ver amplias secciones del planeta al mismo tiempo y estar en contacto con las estaciones terrestres, pero son mucho más caros de lanzar y más vulnerables a las radiaciones cósmicas. Es más económico colocar satélites en órbitas bajas, en algunos casos a sólo unos pocos cientos de kilómetros; pero, a causa de la curvatura de la Tierra, es inevitable que estos satélites pierdan durante un tiempo la línea de visión con los receptores terrestres, y por lo tanto se vuelven inútiles. Incluso las constelaciones de varios satélites tienen apagones ineludibles y pérdidas de cobertura por esta razón. El reto consiste en colocar las órbitas de los satélites para minimizar este tiempo muerto. Esto es un problema multi-objetivo que implica la minimización de el tiempo medio de apagón para todas las localizaciones y el tiempo máximo de apagón para cada una de las localizaciones; en la práctica, estos objetivos resultan ser mutuamente exclusivos. Cuando se utilizó el AG en este problema, los resultados que evolucionaron para constelaciones de tres, cuatro y cinco satélites eran extraños, configuraciones orbitales muy asimétricas, con los satélites colocados alternando huecos grandes y pequeños, en lugar de huecos de igual tamaño como habrían hecho las técnicas ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 31
  • 32. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC convencionales. Sin embargo, esta solución redujo significativamente los tiempos medio y máximo de apagón, en algunos casos hasta en 90 minutos. En un artículo periodístico, el Dr. William Crossley señaló que ``ingenieros con años de experiencia aeroespacial quedaorn sorprendidos con el rendimiento ofrecido por el diseño no convencional''. Keane y Brown 1996 utilizadon un AG para producir un nuevo diseño para un brazo o jirafa para transportar carga que pudiese montarse en órbita y utilizarse con satélites, estaciones espaciales y otros proyectos de construcción aeroespacial. El resultado, una estructura retorcida con aspecto orgánico que se ha comparado con un fémur humano, no utiliza más material que el diseño de brazo estándar, pero es ligera, fuerte y muy superior a la hora de amortiguar las vibraciones perjudiciales, como confirmaron las pruebas reales del producto final. Y sin embargo ``Ninguna inteligencia produjo los diseños. Simplemente evolucionaron'' (Petit 1998). Los autores del artículo comentan además que su AG sólo se ejecutó durante 10 generaciones, debido a la naturaleza computacionalmente costosa de la simulación, y la población no se había estancado todavía. Haber proseguido la ejecución durante más generaciones habría producido indudablemente mayores mejoras de rendimiento. Figure: Un brazo tridimensional optimizado genéticamente, con una respuesta ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 32
  • 33. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC mejorada a la frecuencia (adaptado de http://www.soton.ac.uk/~ajk/truss/welcome.html). Finalmente, como informa Gibbs 1996, Lockheed Martin ha utilizado un algoritmo genético para producir mediante evolución una serie de maniobras para mover una nave espacial de una orientación a otra, dentro del 2% del tiempo mínimo teórico para tales maniobras. La solución evolucionada era un 10% más rápida que una solución producida manualmente por un experto para el mismo problema. Astronomía y astrofísica Charbonneau 1995 sugiere la utilidad de los AGs para problemas de astrofísica, aplicándolos a tres problemas de ejemplo: obtener la curva de rotación de una galaxia basándose en las velocidades rotacionales observadas de sus componentes, determinar el periodo de pulsación de una estrella variable basándose en series de datos temporales, y sacar los valores de los parámetros críticos de un modelo magnetohidrodinámico del viento solar. Son tres difíciles problemas no lineales y multidimensionales. El algoritmo genético de Charbonneau, PIKAIA, utiliza selección generacional y proporcional a la aptitud, junto con elitismo, para asegurar que el mejor individuo se copia una vez hacia la siguiente generación sin ninguna modificación. PIKAIA tiene un ritmo de cruzamiento de 0,65 y un ritmo de mutación variable que se pone a 0,003 inicialmente y luego aumenta gradualmente, mientras la población se aproxima a la convergencia, para mantener la variabilidad en el acervo genético. En el problema de la curva de rotación galáctica, el AG produjo dos curvas, y ambas estaban bien ajustadas a los datos (un resultado común en este tipo de problema, en el que hay poco contraste entre cimas cercanas); observaciones posteriores pueden distinguir cuál es la preferible. En el problema de la serie temporal, el AG fue impresionantemente exitoso, generando un ajuste de los datos ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 33
  • 34. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC de gran calidad, aunque otros problemas más difíciles no se ajustaron tan bien (aunque, como señala Charbonneau, estos problemas son igualmente difíciles de resolver con técnicas convencionales). El artículo sugiere que un AG híbrido que emplee tanto evolución artificial como técnicas analíticas estándar, podría funcionar mejor. Finalmente, en el problema de obtener los seis parámetros críticos del viento solar, el AG determinó con éxito el valor de tres con una precisión de menos del 0,1% y los otros tres con precisiones entre el 1 y el 10%. (Aunque siempre serían preferibles unos errores experimentales menores para estos tres parámetros, Charbonneau señala que no existe ningún otro método eficiente y robusto para resolver experimentalmente un problema no lineal 6- dimensional de este tipo; un método de gradiente conjugado funciona ``siempre que se pueda proporcionar un valor inicial muy acertado'' (p. 323). En contraste, los AGs no requieren un conocimiento del dominio tan bien afinado). Basándose en los resultados obtenidos hasta ahora, Charbonneau sugiere que los AGs pueden y deben encontrar uso en otros problemas difíciles de astrofísica, en particular, problemas inversos como las imágenes por Doppler y las inversiones heliosísmicas. Para terminar, Charbonneau sostiene que los AGs son un ``contendiente poderoso y prometedor'' (p. 324) en este campo, del que se puede esperar que complemente (no sustituya) a las técnicas tradicionales de optimización, y concluye que ``el punto decisivo, si es que tiene que haber alguno, es que los algoritmos genéticos funcionan, y a menudo colosalmente bien'' (p. 325). Química Un pulso láser ultracorto de alta energía puede romper moléculas complejas en moléculas más sencillas, un proceso con aplicaciones importantes en la química orgánica y la microelectrónica. Los productos específicos de una reacción así pueden controlarse modulando la fase del pulso láser. Sin embargo, para moléculas grandes, obtener la forma del pulso deseado de manera analítica es ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 34
  • 35. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC demasiado difícil: los cálculos son demasiado complejos y las características relevantes (las superficies de energía potencial de las moléculas) no se conocen con suficiente precisión. Assion et al. 1998 resolvieron este problema utilizando un algoritmo evolutivo para diseñar la forma del pulso. En lugar de introducir información compleja, específica del problema, sobre las características cuánticas de las moléculas iniciales, para diseñar el pulso conforme a las especificaciones, el AE dispara un pulso, mide las proporciones de las moléculas producto resultantes, muta aleatoriamente las características del rayo con la esperanza de conseguir que estas proporciones se acerquen a la salida deseada, y el proceso se repite. (En lugar de afinar directamente las características del rayo láser, el AG de los autores representa a los individuos como un conjunto de 128 números, en el que cada número es un valor de voltaje que controla el índice de refracción de uno de los pixeles del modulador láser. De nuevo, no se necesita un conocimiento específico del problema sobre las propiedades del láser o de los productos de la reacción). Los autores afirman que su algoritmo, cuando se aplica a dos sustancias de muestra, ``encuentra automáticamente la mejor configuración... no importa lo complicada que sea la respuesta molecular'' (p. 921), demostrando un ``control coherente automatizado de los productos que son químicamente diferentes uno del otro y de la molécula padre'' (p. 921). A principios y mediados de los 90, la amplia adopción de una novedosa técnica de diseño de fármacos, llamada química combinatoria, revolucionó la industria farmacéutica. Con este método, en lugar de la síntesis precisa y meticulosa de un sólo compuesto de una vez, los bioquímicos mezclan deliberadamente una gran variedad de reactivos para producir una variedad aún mayor de productos - cientos, miles o millones de compuestos diferentes en cada remesa- que luego pueden aislarse rápidamente para su actividad bioquímica. Hay dos formas de diseñar las bibliotecas de reactivos en esta técnica: diseño basado en los reactivos, que elige grupos optimizados de reactivos sin considerar qué productos ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 35
  • 36. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC saldrán como resultado, y diseño basado en los productos, que selecciona los reactivos que producirán con mayor probabilidad los productos con las propiedades deseadas. El diseño basado en los productos es más difícil y complejo, pero se ha demostrado que genera bibliotecas combinatorias mejores y más diversas, y tiene más probabilidades de ofrecer un resultado útil. En un artículo patrocinado por el departamento de investigación y desarrollo de GlaxoSmithKline, Gillet 2002 describe el uso de un algoritmo genético multiobjetivo para el diseño basado en los productos de bibliotecas combinatorias. Al elegir los componentes que van en una biblioteca particular, deben considerarse características como la diversidad y peso molecular, el coste de los suministros, la toxicidad, la absorción, la distribución y el metabolismo. Si el objetivo es encontrar moléculas similares a una molécula existente con una función conocida (un método común en el diseño de nuevos fármacos), también se puede tener en cuenta la similaridad estructural. Este artículo presenta un enfoque multiobjetivo, donde puede desarrollarse un conjunto de resultados paretianos que maximicen o minimicen cada uno de estos objetivos. El autor concluye diciendo que el AG fue capaz de satisfacer simultáneamente los criterios de diversidad molecular y eficiencia sintética máxima, y también fue capaz de encontrar moléculas parecidas a un fármaco que eran ``muy similares a las moléculas objetivo dadas, tras explorar una fracción muy pequeña del espacio de búsqueda total'' (p. 378). En un artículo relacionado, Glen y Payne 1995 describen el uso de algoritmos genéticos para diseñar automáticamente moléculas nuevas desde cero que se ajustan a un conjunto de especificaciones dado. Dada una población inicial, bien generada aleatoriamente o utilizando la sencilla molécula del etano como semilla, el AG añade, elimina y altera aleatoriamente átomos y fragmentos moleculares con el objetivo de generar moléculas que se ajusten a los requisitos dados. El AG puede optimizar simultáneamente un gran número de objetivos, incluyendo el peso molecular, el volumen molecular, el número de enlaces, el número de centros quirales, el número de átomos, el número de enlaces rotables, la polarizabilidad, el ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 36
  • 37. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC momento dipolar, etcétera, para producer moléculas candidatas con las propiedades deseadas. Basándose en pruebas experimentales, incluyendo un difícil problema de optimización que implicaba la generación de moléculas con propiedades similares a la ribosa (un componente del azúcar imitado a menudo en los fármacos antivirales), los autores concluyen que el AG es un ``excelente generador de ideas'' (p. 199) que ofrece ``propiedades de optimización rápidas y poderosas'' y puede generar ``un conjunto diverso de estructuras posibles'' (p. 182). Continúan afirmando: ``Es de interés especial la poderosa capacidad de optimización del algoritmo genético, incluso con tamaños de población relativamente pequeños'' (p. 200). Como prueba de que estos resultados no son simplemente teóricos, Lemley 2001[45] informa de que la empresa Unilever ha utilizado algoritmos genéticos para diseñar nuevos componentes antimicrobianos para su uso en productos de limpieza, algo que ha patentado. Ingeniería eléctrica Una matriz de puertas programable en campo (Field Programmable Gate Array, o FPGA), es un tipo especial de placa de circuito con una matriz de celdas lógicas, cada una de las cuales puede actuar como cualquier tipo de puerta lógica, interconectado con conexiones flexibles que pueden conectar celdas. Estas dos funciones se controlan por software, así que simplemente cargando un programa especial en la placa, puede alterarse al vuelo para realizar las funciones de cualquier dispositivo de hardware de la amplia variedad existente. El Dr. Adrian Thompson ha explotado este dispositivo, en conjunción con los principios de la evolución, para producir un prototipo de circuito reconocedor de voz que puede distinguir y responder a órdenes habladas utilizando sólo 37 puertas lógicas -una tarea que se habría considerado imposible para cualquier ingeniero humano. Generó cadenas aleatorias de bits de ceros y unos y las utilizó como configuraciones de la FPGA, seleccionando los individuos más aptos de cada generación, reproduciéndolos y mutándolos aleatoriamente, intercambiando ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 37
  • 38. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC secciones de su código y pasándolo hacia la siguiente ronda de selección. Su objetivo era evolucionar un dispositivo que pudiera en principio discriminar entre tonos de frecuencias distintas (1 y 10 kilohercios), y luego distinguir entre las palabras habladas ``go'' (adelante) y ``stop'' (para). Su objetivo se alcanzó en 3.000 generaciones, pero el éxito fue mayor de lo que había anticipado. El sistema que evolucionó utilizaba muchas menos celdas que cualquier cosa que pudiera haber diseñado un ingeniero humano, y ni siquiera necesita del componente más crítico de los sistemas diseñados por humanos -un reloj. ¿Cómo funcionaba? Thompson no tiene ni idea, aunque ha rastreado la señal de entrada a través de un complejo sistema de bucles realimentados del circuito evolucionado. De hecho, de las 37 puertas lógicas que utiliza el producto final, cinco de ellas ni siquiera están conectadas al resto del circuito de ninguna manera -pero si se les retira la alimentación eléctrica, el circuito deja de funcionar. Parece que la evolución ha explotado algún sutil efecto electromagnético de estas celdas para alcanzar su solución, pero el funcionamiento exacto de la compleja e intrincada estructura evolucionada sigue siendo un misterio (Davidson 1997). Altshuler y Linden 1997 utilizaron un algoritmo genético para evolucionar antenas de alambre con propiedades especificadas a priori. Los autores señalan que el diseño de tales antenas es un proceso impreciso, comenzando con las propiedades deseadas y luego determinando la forma de la antena mediante ``conjeturas... intuición, experiencia, ecuaciones aproximadas o estudios empíricos'' (p. 50). Esta técnica requiere mucho tiempo, a menudo no produce resultados óptimos y tiende a funcionar bien sólo con diseños simétricos y relativamente simples. En contraste, con el método del algoritmo genético, el ingeniero especifica las propiedades electromagnéticas de la antena, y el AG sintetiza automáticamente una configuración que sirva. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 38
  • 39. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Figure: Una antena genética de alambre doblado (de Altshuler y Linden 1997, figura 1). Altshuler y Linden utilizaron su AG para diseñar una antena de siete segmentos polarizada circularmente con una cobertura hemisférica; el resultado se muestra a la izquierda. Cada individuo del AG consistía en un cromosoma binario que especificaba las coordenadas tridimensionales de cada extremo final de cada alambre. La aptitud se evaluaba simulando a cada candidato de acuerdo con un código de cableado electromagnético, y el individuo mejor de cada ronda se construía y probaba. Los autores describen la forma de esta antena, que no se parece a las antenas tradicionales y carece de una simetría obvia, como ``inusualmente extraña'' y ``antiintuitiva'' (p. 52), aunque tenía un patrón de radiación casi uniforme y con un gran ancho de banda tanto en la simulación como en la prueba experimental, adecuándose excelentemente a la especificación inicial. Los autores concluyen que un método basado en algoritmos genéticos para diseñar antenas se muestra ``excepcionalmente prometedor''. ``... este nuevo procedimiento de diseño es capaz de encontrar antenas genéticas capaces de resolver de manera efectiva difíciles problemas de antenas, y será especialmente útil en situaciones en las que los diseños existentes no sean adecuados'' (p. 52). Mercados financieros ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 39
  • 40. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Mahfoud y Mani 1996 utilizaron un algoritmo genético para predecir el rendimiento futuro de 1.600 acciones ofertadas públicamente. Concretamente, al AG se le asignó la tarea de predecir el beneficio relativo de cada acción, definido como el beneficio de esa acción menos el beneficio medio de las 1.600 acciones a lo largo del periodo de tiempo en cuestión, 12 semanas (un cuarto del calendario) en el futuro. Como entrada, al AG se le proporcionaron datos históricos de cada acción en forma de una lista de 15 atributos, como la relación precio-beneficio y el ritmo de crecimiento, medidos en varios puntos del tiempo pasado; se le pidió al AG que evolucionara un conjunto de reglas si/entonces para clasificar cada acción y proporcionar, como salida, una recomendación sobre qué hacer con respecto a la acción (comprar, vender o ninguna predicción) y un pronóstico numérico del beneficio relativo. Los resultados del AG fueron comparados con los de un sistema establecido, basado en una red neuronal, que los autores habían estado utilizando para pronosticar los precios de las acciones y administrar las carteras de valores durante tres años. Por supuesto, el mercado de valores es un sistema extremadamente ruidoso y no lineal, y ningún mecanismo predictivo puede ser correcto el 100% del tiempo; el reto consiste en encontrar un predictor que sea preciso más de la mitad de las veces. En el experiemnto, el AG y la red neuronal hicieron pronósticos al final de la semana para cada una de las 1.600 acciones, durante doce semanas consecutivas. Doce semanas después de cada predicción, se comparó el rendimiento verdadero con el beneficio relativo predicho. Globalmente, el AG superó significativamente a la red neuronal: en una ejecución de prueba, el AG predijo correctamente la dirección de una acción el 47,6% de las veces, no hizo predicción el 45,8% de las veces y realizó una predicción incorrecta sólo un 6.6% de las veces, una precisión predictiva total de un 87,8%. Aunque la red neuronal realizó predicciones precisas más a menudo, también hizo predicciones erróneas más a menudo (de hecho, los autores especulan que la mayor capacidad del AG para no realizar predicciones cuando los datos eran dudosos fue un factor de su ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 40
  • 41. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC éxito; la red neuronal siempre produce una predicción a menos que sea restringida explícitamente por el programador). En el experimento de las 1.600 acciones, el AG produjo un beneficio relativo de un +5,47%, contra el +4,40% de la red neuronal -una diferencia estadísticamente significativa. De hecho, el AG también superó significativamente a tres índices bursátiles importantes -el S&P 500, el S&P 400 y el Russell 2000- en este periodo; la casualidad fue excluída como causa de este resultado con un margen de confianza de un 95%. Los autores atribuyen este convincente éxito a la capacidad del algoritmo genético de percatarse de relaciones no lineales difícilmente evidentes para los observadores humanos, además del hecho de que carece del ``prejuicio contra las reglas antiintuitivas y contradictorias'' (p. 562) de los expertos humanos. Andreou, Georgopoulos y Likothanassis 2002 lograron un éxito similar utilizando algoritmos genéticos híbridos para evolucionar redes neuronales que predijeran los tipos de cambio de monedas extranjeras hasta un mes en el futuro. Al contrario que en el ejemplo anterior, donde competían AGs y redes neuronales, aquí los dos trabajaron conjuntamente: el AG evolucionó la arquitectura (número de unidades de entrada, número de unidades ocultas y la estructura de enlaces entre ellas) de la red, que luego era entrenada por un algoritmo de filtro. Se le proporciaron al algoritmo 1.300 valores brutos diarios de cinco divisas como información histórica -el dólar estadounidense, el marco alemán, el franco francés, la libra esterlina y el dracma griego- y se le pidió que predijera sus valores futuros para los 1, 2, 5 y 20 días posteriores. El rendimiento del AG híbrido mostró, en general, un ``nivel excepcional de precisión'' (p. 200) en todos los casos probados, superando a otros varios métodos, incluyendo a las redes neuronales en solitario. Los autores concluyen que ``se ha logrado un excepcional éxito predictivo tanto con un horizonte predictivo de un paso como de varios pasos'' (p. 208) -de hecho, afirman que sus resultados son mejores con diferencia que cualquier estrategia predictiva relacionada que se haya aplicado en esta serie de datos u otras divisas. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 41
  • 42. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC La utilización de los AGs en los mercados financieros ha empezado a extenderse en las empresas de corretaje bursátil del mundo real. Naik 1996[informa de que LBS Capital Management, una empresa estadounidense cons ede en Florida, utiliza algoritmos genéticos para escoger las acciones de los fondos de pensiones que administra. Coale 1997 y Begley y Beals 1995 informan de que First Quadrant, una empresa de inversiones de Californa que mueve más de 2.200 millones de dólares, utiliza AGs para tomar decisiones de inversión en todos sus servicios financieros. Su modelo evolucionado gana, de media, 225 dólares por cada 100 dólares invertidos durante seis años, en contraste con los 205 dólares de otros tipos de sistemas de modelos. Juegos Una de las demostraciones más novedosas y persuasivas de la potencia de los algoritmos genéticos la presentaron Chellapilla y Fogel 2001, que utilizaron un AG para evolucionar redes neuronales que pudieran jugar a las damas. Los autores afirman que una de las mayores dificultades en este tipo de problemas relacionados con estrategias es el problema de la asignación de crédito -en otras palabras, ¿cómo escribir una función de aptitud? Se ha creído ampliamente que los criterios simples de ganar, perder o empatar no proporcionan la suficiente información para que un algoritmo genético averigüe qué constituye el buen juego. En este artículo, Chellapila y Fogel echan por tierra esa suposición. Dados sólo las posiciones espaciales de las piezas en el tablero y el número total de piezas que posee cada jugador, fueron capaces de evolucionar un programa de damas que jugaba a un nivel competitivo con expertos humanos, sin ninguna información de entrada inteligente acerca de lo que constituye el buen juego -es más, ni siquiera se les dijo a los individuos del algoritmo evolutivo cuál era el criterio para ganar, ni se les dijo el resultado de ningún juego. ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 42
  • 43. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC En la representación de Chellapilla y Fogel, el estado del juego estaba representado por una lista numérica de 32 elementos, en donde cada posición de la lista correspondía a una posición disponible en el tablero. El valor de cada posición era 0 para una casilla desocupada, -1 si esa casilla estaba ocupada por una pieza enemiga, +1 si la casilla estaba ocupada por una de las piezas del programa, y -K o +K si la casilla estaba ocupada por una dama enemiga o amiga. (El valor de K no se especificaba a priori, sino que, de nuevo, era determinado por la evolución durante el curso del algoritmo). Acompañando a todo esto había una red neuronal con múltiples capas de procesamiento y una capa de entrada con un nodo para cada una de las 4x4, 5x5, 6x6, 7x7 y 8x8 posibles casillas del tablero. La salida de la red neuronal para una colocación de las piezas dada era un valor entre -1 y +1, que indicaba cómo de buena le parecía esa posición. Para cada movimiento, se le presentaba a la red neuronal un árbol de juego que contenía todos los movimientos posibles hasta cuatro turnos en el futuro, y el movimiento se decidía basándose en qué rama del árbol producía los mejores resultados. El algoritmo evolutivo comenzó con una población de 15 redes neuronales con pesos y tendencias, generados aleatoriamente, asignados a cada nodo y conexión; luego, cada individuo se reprodujo una vez, generando una descendencia con variaciones en los valores de la red. Luego estos 30 individuos compitieron por la supervivencia jugando entre ellos; cada individuo compitió en cada turno con 5 oponentes elegidos aleatoriamente. Se otorgó 1 punto a cada victoria y se descontaban 2 puntos por cada derrota. Se seleccionaron los 15 mejores jugadores en relación a su puntuación total, y el proceso se repitió. La evolución continuó durante 840 generaciones más (aproximadamente seis meses de tiempo de computación). Clase Puntuación Gran Maestro +2.400 ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 43
  • 44. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC Maestro 2.200-2.399 Experto 2.000-2.199 Clase A 1.800-1.999 Clase B 1.600-1.799 Clase C 1.400-1.599 Clase J <200 El mejor individuo que surgió de esta selección fue inscrito como competidor en la página web de juegos http://www.zone.com. Durante un periodo de dos meses, jugó contra 165 oponentes humanos que componían una gama de niveles altos, desde clase C a maestros, de acuerdo con el sistema de clasificaciones de la Federación de Ajedrez de Estados Unidos (mostrado a la izquierda, con algunos rangos omitidos en aras de claridad). De estas partidas, la red neuronal ganó 94, perdió 39 y empató 32; en base a las clasificaciones de los oponentes en estas partidas, la red neuronal evolucionada era equivalente a un jugador con una puntuación media de 2.045,85, colocándola en el nivel experto -una clasificación superior a la del 99,61% de los 80.000 jugadores registrados en la página web. Una de las victorias más significativas de la red neuronal fue cuando venció a un jugador clasificado en la posición 98 de todos los jugadores registrados, cuya puntuación estaba tan sólo 27 puntos por debajo del nivel de maestro. Las pruebas realizadas con un sencillo programa diferencial en las piezas (que basa sus movimientos solamente en la diferencia entre el número de piezas que quedan en cada lado) con una capacidad de anticipación de 8 movimientos demostró que la red neuronal era significativamente superior, con una puntuación de más de 400 puntos por encima. ``Un programa que se basa sólo en el número de piezas y en una búsqueda de ocho capas vencerá a muchas personas, pero no es un experto. La mejor red neuronal evolucionada sí lo es'' (p. 425). Aunque ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 44
  • 45. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC podía buscar posiciones dos movimientos más lejos que la red neuronal, el programa diferencial en las piezas perdió contundentemente 8 de 10 partidas. Esto demuestra concluyentemente que la red neuronal evolucionada no sólo está contando piezas, sino que de alguna manera procesa las características espaciales del tablero para decidir sus movimientos. Los autores señalan que los oponentes de zone.com que los movimientos de la red neuronal eran ``extraños'', pero su nivel global de juego fue descrito como ``muy duro'' o con términos elogiosos similares. Para probar más a la red neuronal evolucionada (a la que los autores nombraron ``Anaconda'' porque a menudo ganaba restringiendo la movilidad de sus oponentes), jugó contra un programa de damas comercial, el Hoyle Classic Games, distribuído por Sierra Online (Chellapilla y Fogel 2000). Este programa viene con un surtido de personajes incorporados, cada uno con un nivel de juego distinto. Anaconda se puso a prueba con tres personajes (``Beatrice'', ``Natasha'' y ``Leopold'') designados como jugadores expertos, jugando una partida con las rojas y otra partida con las blancas contra cada uno de ellos con una capacidad de anticipación de 6 movimientos. Aunque los autores dudaban de que esta profundidad de anticipación pudiera darla a Anaconda la capacidad de juego experto que demostró anteriormente, consiguió seis victorias seguidas de las seis partidas jugadas. Basándose en este resultado, los autores expresaron escepticismo sobre si el software Hoyle jugaba al nivel que anunciaba, ¡aunque debe señalarse que llegaron a esta conclusión basándose solamente en la facilidad con la que Anaconda le venció! La prueba definitiva de Anaconda se detalla en Chellapilla y Fogel 2002, cuando la red neuronal evolucionada jugó contra el mejor jugador de damas del mundo: Chinook, un programa diseñado principalmente por el Dr. Jonathan Schaeffer, de la Universidad de Alberta. Con una puntuación de 2.814 en 1996 (mientras que sus competidores humanos más cercanos andan por los 2.600), Chinook incorpora un libro de movimientos de apertura proporcionado por grandes ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 45
  • 46. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC maestros humanos, un conjunto sofisticado de algoritmos de juego para la parte central de la partida, y una base de datos completa de todos los movimientos posibles cuando quedan en el tablero 10 piezas o menos, de manera que nunca comete un error durante un final de partida. Se invirtió una cantidad enorme de inteligencia y experiencia humana en el diseño de este programa. Chellapilla y Fogel enfrentaron a Anaconda y Chinook en un torneo de 10 partidas, con Chinook jugando al nivel de 5 capas de anticipación, aproximándolo más o menos al nivel de maestro. Chinook ganó esta competición, cuatro victorias a dos, con cuatro empates. (Curiosamente, como señalan los autores, en dos de las partidas que acabaron con empate, Anaconda lideraba con cuatro damas mientras que Chinook tenía tres. Además, una de las victorias de Chinook vino tras una serie de movimientos con búsqueda de 10 capas sacados de su base de datos de finales de partida; unos movimientos que Anaconda, con una anticipación de 8 capas, no pudo anticipar. Si Anaconda hubiera tenido acceso a una base de datos de finales de partida de la misma calidad de la de Chinook, el resultado del torneo bien podría haber sido el de victoria para Anaconda, cuatro a tres). Estos resultados ``proporcionan un buen sustento a la puntuación de experto que se ganó Anaconda en www.zone.com'' (p. 76), con una puntuación global de 2.030- 2.055, comparable a la puntuación de 2.045 que ganó jugando contra humanos. Aunque Anaconda no es un jugador invulnerable, es capaz de jugar competitivamente en el nivel experto y comportarse ante una variedad de jugadores de damas humanos extremadamente hábiles. Cuando uno considera los criterios de aptitud tan sencillos con los que se obtuvieron estos resultados, el surgimiento de Anaconda proporciona una espectacular corroboración del poder de la evolución. Geofísica Sambridge y Gallaguer 1993 utilizaron un algoritmo genético para los hipocentros de los terremotos basándose en datos sismológicos. (El hipocentro es el punto ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 46
  • 47. UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC bajo la superficie terrestre en el que se origina un terremoto. El epicentro es el punto de la superficie directamente encima del hipocentro). Esto es una tarea sumamente compleja, ya que las propiedades de las ondas sísmicas dependen de las propiedades de las capas de roca a través de las que viajan. El método tradicional para localizar el hipocentro se basa en lo que se conoce como algoritmo de inversión sísmico, que empieza con la mejor estimación de la ubicación, calcula las derivadas del tiempo de viaje de la onda con respecto al punto de origen, y realiza una operación de matriz para proporcionar una ubicación actualizada. Este proceso se repite hasta que se alcanza una solución aceptable. (Este Mensaje del Mes, de noviembre de 2003, proporciona más información). Sin embargo, este método requiere información diferencial y es propenso a quedar atrapado en óptimos locales. Un algoritmo de localización que no dependa de información diferencial o modelos de velocidad puede evitar esta deficiencia calculando sólo el problema directo -la diferencia entre los tiempos de llegada de la onda observados y predichos para distintas localizaciones del hipocentro. Sin embargo, un método de búsqueda exhaustivo basado en este método sería demasiado costoso computacionalmente. Éste, por supuesto, es precisamente el tipo de problema de optimización en el que destacan los algoritmos genéticos. Como todos los AGs, el propuesto por el artículo citado es paralelo en naturaleza -en lugar de mover un solo hipocentro más y más cerca hacia la solución, comienza con una nube de hipocentros potenciales que encoge con el tiempo hasta converger en una sola solución. Los autores afirman que su método ``puede localizar rápidamente soluciones casi óptimas sin una búsqueda exhaustiva del espacio de parámetros'' (p. 1.467), muestra ``un comportamiento muy organizado que produce una búsqueda eficiente'' y es ``un compromiso entre la eficiencia de los métodos basados en derivadas y la robustez de una búsqueda exhaustiva completamente no lineal'' (p. 1.469). Los autores concluyen que su algoritmo genético es ``eficiente para una ING.INFORMATICA Y SISTEMAS ALGORITMOS GENETICOS 47