SlideShare una empresa de Scribd logo
1 de 17
Algoritmos Genéticos


Rafael Martí

Los Algoritmos Genéticos (GA) fueron introducidos por John Holland en 1970
inspirándose en el proceso observado en la evolución natural de los seres vivos.
Los Biólogos han estudiado en profundidad los mecanismos de la evolución, y aunque
quedan parcelas por entender, muchos aspectos están bastante explicados. De manera
muy general podemos decir que en la evolución de los seres vivos el problema al que
cada individuo se enfrenta cada día es la supervivencia. Para ello cuenta con las
habilidades innatas provistas en su material genético. A nivel de los genes, el problema
es el de buscar aquellas adaptaciones beneficiosas en un medio hostil y cambiante.
Debido en parte a la selección natural, cada especie gana una cierta cantidad de
"conocimiento", el cual es incorporado a la información de sus cromosomas.
Así pues, la evolución tiene lugar en los cromosomas, en donde está codificada la
información del ser vivo. La información almacenada en el cromosoma varía de unas
generaciones a otras. En el proceso de formación de un nuevo individuo, se combina la
información cromosómica de los progenitores aunque la forma exacta en que se realiza
es aún desconocida.
Aunque muchos aspectos están todavía por discernir, existen unos principios generales
ampliamente aceptados por la comunidad científica. Algunos de estos son:
   1. La evolución opera en los cromosomas en lugar de en los individuos a los que
      representan.
   2. La selección natural es el proceso por el que los cromosomas con "buenas
      estructuras" se reproducen más a menudo que los demás.
   3. En el proceso de reproducción tiene lugar la evolución mediante la combinación
      de los cromosomas de los progenitores. Llamamos Recombinación a este
      proceso en el que se forma el cromosoma del descendiente. También son de
      tener en cuenta las mutaciones que pueden alterar dichos códigos.
   4. La evolución biológica no tiene memoria en el sentido de que en la formación de
      los cromosomas únicamente se considera la información del período anterior
Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un
problema y el conjunto de individuos de una población natural, codificando la
información de cada solución en un string (vector binario) a modo de cromosoma. En
palabras del propio Holland:
"Se pueden encontrar soluciones aproximadas a problemas de gran complejidad
computacional mediante un proceso de "evolución simulada",
A tal efecto se introduce una función de evaluación de los cromosomas, que llamaremos
calidad ("fitness") y que está basada en la función objetivo del problema. Igualmente se
introduce un mecanismo de selección de manera que los cromosomas con mejor
evaluación sean escogidos para "reproducirse" mas a menudo que los que la tienen peor.
Los algoritmos desarrollados por Holland inicialmente eran sencillos pero dieron
buenos resultados en problemas considerados difíciles. Los algoritmos Genéticos están
basados en integrar e implementar eficientemente dos ideas fundamentales: Las
representaciones simples como strings binarios de las soluciones del problema y la
realización de transformaciones simples para modificar y mejorar estas
representaciones.
Para llevar a la práctica el esquema anterior y concretarlo en un algoritmo, hay que
especificar los siguientes elementos:
   •   · Una representación cromosómica
   •   · Una población inicial
   •   · Una medida de evaluación
   •   · Un criterio de selección / eliminación de cromosomas
   •   · Una o varias operaciones de recombinación
   •   · Una o varias operaciones de mutación
A continuación pasamos a comentar y detallar todos estos elementos.
En los trabajos originales las soluciones se representaban por strings binarios, es decir,
listas de 1s y 0s. Este tipo de representaciones ha sido ampliamente utilizada incluso en
problemas en donde no es muy natural. En 1985, De Jong introduce la siguiente
cuestión: ¿Qué se debe hacer cuando los elementos del espacio de búsqueda se
representan de modo natural por estructuras complejas como vectores, árboles o
grafos?, ¿Se debe intentar linealizar en un string o trabajar directamente con estas
estructuras?
En la actualidad podemos distinguir dos escuelas:
   •   · Limitarse a strings binarios o
   •   · Utilizar otro tipo de configuraciones
Hemos de notar que las operaciones genéticas dependen del tipo de representación, por
lo que la elección de una condiciona a la otra.
La ventaja de las primeras es que permite definir fácilmente operaciones de
recombinación, además los resultados sobre convergencia están probados para el caso
de strings binarios. Sin embargo en algunos problemas puede ser poco natural y
eficiente el utilizarlas. Por ejemplo en el problema del agente viajero sobre 5 ciudades y
20 aristas, el string 01000100001000100010 representa una solución sobre las aristas
ordenadas. Sin embargo dicha representación no es muy natural y además, no todos los
strings con cinco 1s representan soluciones lo cual complica substancialmente la
definición de una operación de sobrecruzamiento. Es mas natural la ruta de ciudades:
(2,3,1,5,4), lo cual permite definir naturalmente diferentes operaciones estables.
La población inicial suele ser generada aleatoriamente. Sin embargo, últimamente se
están utilizando métodos heurísticos para generar soluciones iniciales de buena calidad.
En este caso, es importante garantizar la diversidad estructural de estas soluciones para
tener una "representación" de la mayor parte de población posible o al menos evitar la
convergencia prematura.
Respecto a la evaluación de los cromosomas, se suele utilizar la calidad como medida
de la bondad según el valor de la función objetivo en el que se puede añadir un factor de
penalización para controlar la infactibilidad. Este factor puede ser estático o ajustarse
dinámicamente, lo cual produciría un efecto similar al de la Oscilación Estratégica en
Tabu Search:
calidad = ValorObjetivoNormalizado - Penalización * MedidaInfactibilidad
La selección de los padres viene dada habitualmente mediante probabilidades según su
fitness. Uno de los procedimientos más utilizado es el denominado de la ruleta en donde
cada individuo tiene una sección circular de una ruleta que es directamente proporcional
a su calidad. Para realizar una selección se realizaría un tirada de bola en la ruleta,
tomando el individuo asociado a la casilla donde cayo la bola.
Los Operadores de Cruzamiento mas utilizados son:
   •   De un punto: Se elige aleatoriamente un punto de ruptura en los padres y se
       intercambian sus bits.
   •   De dos puntos: Se eligen dos puntos de ruptura al azar para intercambiar.
   •   Uniforme: En cada bit se elige al azar un padre para que contribuya con su bit al
       del hijo, mientras que el segundo hijo recibe el bit del otro padre.
   •   PMX, SEX: Son operadores más sofisticados fruto de mezclar y aleatorizar los
       anteriores.
La operación de Mutación más sencilla, y una de la más utilizadas consiste en
reemplazar con cierta probabilidad el valor de un bit. Notar que el papel que juega la
mutación es el de introducir un factor de diversificación ya que, en ocasiones, la
convergencia del procedimiento a buenas soluciones puede ser prematura y quedarse
atrapado en óptimos locales. Otra forma obvia de introducir nuevos elementos en una
población es recombinar elementos tomados al azar sin considerar su fitness.


Convergencia del Algoritmo
Dado que el algoritmo genético opera con una población en cada iteración, se espera
que el método converja de modo que al final del proceso la población sea muy similar, y
en el infinito se reduzca a un sólo individuo.
Se ha desarrollado toda una teoría para estudiar la convergencia de estos algoritmos en
el caso de strings binarios. Esta teoría se basa principalmente en considerar que un
string es un representante de una clase de equivalencia o esquema, reinterpretando la
búsqueda en lugar de entre strings, entre esquemas. De este modo se concluye lo que se
conoce como paralelismo intrínseco:
"En una población de m strings se están procesando implícitamente O(m^3) esquemas"
A partir de este resultado el teorema de esquemas prueba que la población converge a
unos esquemas que cada vez son más parecidos, y en el límite a un único string.
En el caso de strings no binarios se introducen los conceptos de forma y conjunto de
similitud que generalizan al de esquema. Se consideran una serie de condiciones sobre
los operadores de manera que se garantice la convergencia. Básicamente se exige que al
cruzar dos strings de la misma clase se obtenga otro dentro de ésta. Además hay que
respetar ciertas condiciones sobre selección de los progenitores. Bajo toda esta serie de
hipótesis se prueba la convergencia del algoritmo.
En la práctica no se suelen respetar las condiciones vistas ya que son difíciles de seguir
y probar, encontrándonos con que, en ocasiones los algoritmos genéticos resuelven
satisfactoriamente un problema de optimización dado y otras se quedan muy alejados
del óptimo. Los estudiosos del tema han tratado de caracterizar lo que han denominado
problemas AG-fáciles (aquellos en los que los AG proporcionan buenos resultados) y
AG-difíciles con el objetivo de saber de antemano, al estudiar un nuevo problema, si los
AG son una buena elección para su resolución.
Se han tratado de caracterizar estas clases mediante el concepto de engaño
considerando que si el algoritmo converge al mejor esquema (aquel con mejor promedio
del fitness de sus strings) y en éste se encuentra el óptimo, entonces es fácil que se
resuelva satisfactoriamente. En caso de que el óptimo esté en un esquema con bajo
promedio se denomina engaño y se pensaba que en estos casos es cuando el problema es
AG-difícil. Sin embargo se ha visto que esta caracterización mediante el engaño no es
siempre cierta y no constituye un criterio fiable.
Es importante citar que, a diferencia de otros metaheurísticos, los Algoritmos Genéticos
han crecido de forma espectacular, hasta el punto de poder encontrar referencias sobre
ellos en revista de informática de carácter general. Además muchos de los
investigadores de este campo están trabajando en desarrollar los aspectos teóricos de la
materia incorporando algunas otras técnicas de búsqueda local en el esquema genético.
Especial mención merecen los Algoritmos Meméticos ( Memetic Algorithms' Home
Page by P. Moscato) en donde podemos encontrar una clase amplia de Metaheurísticos
basados en poblaciones. Estos métodos incorporan técnicas variadas desde "búsqueda
local" hasta operadores de "cruzamiento" con el fin de introducir información y
conocimiento en la búsqueda. Uno de los métodos que podemos encontrar bajo esta
denominación es "Scatter Search" que comparte también elementos de Tabu Search.


BIBLIOGRAFÍA
Entre la abundante bibliografía existente podemos considerar el trabajo de Holland
(1992), el libro de Davis (1991) en donde se recogen muchos de los aspectos teóricos de
la materia, así como el libro de Michalewizc (1992) más orientado a la programación y
aspectos computacionales.
Podemos conseguir abundante material en la red, por ejemplo el tutorial sobre genéticos
de Whitley (1993).
Podemos encontrar esquemas de procedimientos genéticos ya implementados en los que
incorporar nuestras funciones de evaluación y con poco más, tener un algoritmos
genético para nuestro problema. La siguiente lista recoge algunos de estos métodos
generales:
•   GAucsd - Schraudolph & Grefenstette (1992) / Dominio público /
       (132.239.51.3) pub/GAucsd
   •   GENESIS - Grefenstette (1987) / Dominio público / gref@aic.nrl.navy.ilm
   •   OOGA - Davis (1991) / Comercial / 70461.1552@compuserve.com
   •   GENITOR - Whitley (1988) / Dominio público (whitley@cs.colostate.edu)



5.6 Algoritmos Genéticos
Los Algoritmos Genéticos (GA) pueden verse como una familia de procedimientos de
búsqueda adaptivos.
Su nombre se deriva de que están basados en modelos de cambio genético en una
población de individuos. Esto es:
   •   noción Darwiniana de aptitud (fitness) que influye en generaciones futuras
   •   apareamiento que produce descendientes en generaciones futuras
   •   operadores genéticos que determinan la configuración genética de los
       descendientes (tomada de los padres)
Un punto clave de estos modelos, es que el proceso de adaptación no se hace cambiando
incrementalmente una sola estructura, sino manteniendo una población de estructuras a
partir de las cuales se generan nuevas estructuras usando los operadores genéticos.
Cada estructura en la población está asociada con una aptitud y los valores se usan en
competencia para determinar qué esrtucturas serán usadas para formar nuevas
estructuras.
Una de sus características es su abilidad de explotar información acumulada acerca de
un espacio de búsqueda inicialmente desconocido para guiar la búsqueda subsecuente a
subespacios útiles.
Su aplicación está enfocada sobretodo a espacios de búsqueda grandes, complejos y
poco entendidos.
El precio es que se puede necesitar un número grande de muestras para que se tenga
suficiente información para guiar muestras subsecuentes a subespacios útiles.
En su forma más simple, un GA está orientado a desempeño (i.e., hacer cambios
estructurales para mejorar el desempeño).
Una de las ideas más importantes es definir estructuras admisibles en el sentido que
esten bien definidas y puedan ser evaluadas.
Surgen a finales de los 50's, principios de los 60's.
Se le reconoce a Holland como el fundador.
Diferencias con métodos tradicionales de búsqueda y optimización:
•   trabajan con un conjunto de parámetros codificados y no con los parámetros
       mismos
   •   inician la búsqueda desde un conjunto de puntos, no de uno solo
   •   usan una función a optimizar en lugar de la derivada u otro conocimiento
       adicional
   •   usan reglas de transición probabilísticas no determinísticas
5.6.2 Puntos a considerar en GA
   •   Codificación de los parámetros de un problema.
       Dentro de la codificación a veces se usan codificaciones que tengan la propiedad
       de que números consecutivos varíen a lo más en un bit (e.g., codificación de
       Gray).
       En la codificación se busca idealmente que todos los puntos estén dentro del
       espacio de solución (sean válidos).
       Se buscan representaciones que favorescan los esquemas cortos de bajo orden.
       Pueden existir problemas de interdependencia (problemas para los GA si existe
       mucha y es preferible usar otro método si es casi nula).
   •   Función de aptitud.
       Es la base para determinar qué soluciones tienen mayor o menor probabilidad de
       sobrevivir.
       Se tiene que tener un balance entre una función que haga diferencias muy
       grandes (y por lo tanto una convergencia prematura) y diferencias muy pequeñas
       (y por lo tanto un estancamineto).
   •   Criterios de tamaño de la población.
       Balance entre una población muy pequeña (y por lo tanto convergencia a
       máximo local) y una población muy grande (y por lo tanto muchos recursos
       computacionales).
       Aunque normalmente se elige una población de tamaño fijo, también existen
       esquemas de poblaciones de tamaño variable.
   •   Criterio de selección.
       Individuos son copiadas de acuerdo a su evaluación en la función objetivo
       (aptitud). Los más aptos tienen mayor probabilidad a contribuir con una o más
       copias en la siguiente generación (se simula selección natural).
       Se puede implementar de varias formas, sin embargo, la más común es la de
       simular una ruleta, donde cada cadena tiene un espacio en ella proporcional a su
       valor de aptitud.
Se pueden seleccionar individuos de la población actual, generar una nueva
    población y reemplazar con ella completamente a la población que se tenia.
    También a veces se mantienen los Nmejores individuos de una población a la
    siguiente (esto parece ser la mejor opción).
    Otras opciones:
    (i) Torneo, donde se seleccionan 2 individuos aleatoriamente de la población y
    se opta por el más apto con una probabilidad predeterminada P (y por el menos
    apto con probabilidad (1 - P)).
    (ii) ``Ranqueo'': se ordena la población por aptitud y se asignan probabilidades
    de selección de acuerdo a su posición (en lugar de su aptitud).
•   Criterio de paro.
    Normalmente cuando un porcentaje alto de la población converge a un valor. Si
    con ese valor no se llega a la medida esperado, entonces se toma una pequeña
    proporción y se inyecta ``diversidad genética'' (se generan aleatoriamente nuevos
    individuos), o inclusive se reemplaza completamente la población.
•   Operadores genéticos
       o   Cruce: tiene una alta probabilidad de ser utilizado y es considerado como
           el más importante dentro de los AG. Permite la generación de nuevos
           individuos tomando caracterísitcas de individuos padres.
           Consiste en seleccionar dos individuos después del proceso de selección,
           determinar una posición de cruce aleatoria e intercambiar las cadenas
           entre la posición inicial y el punto de cruce y el punto de cruce y la
           posición final.
           Existen diferentes tipos de cruza. (i) Cruza simple: un solo punto de
           cruza (una máscara de 1's seguida de 0's), (ii) cruza de dos puntos y (iii)
           cruza uniforme.
       o   Mutación: tiene baja probabilidad de ser utilizado y permite introducir
           nueva información no presente en la población. Opera sobre un solo
           individuo, determina una posición y la invierte con cierta probabilidad.
           Permite salir de máximos locales.
       o   Inversión: tiene baja probabilidad. Incrementa la capacidad de
           exploración. Permite generar cadenas que serían difíciles de obtener con
           los otros dos operadores. Opera en un individuo, determina dos
           posiciones dentro de la cadena e invierte la subcadena.
       o   Existem más...
5.6.4 Temas Recientes
   •   Evolución Lamarckiana: Lamarck (científico del s. XIX) propuso que las
       expeciencias de un individuo durante su vida pueden afectar genéticamente a sus
       descendientes. Aunque científicamente esto ha sido rechazado, algunos autores
       han usado estas ideas dentro de sus algoritmos.
   •   Efecto Baldwin: Baldwin (1896) propuso que si existen cambios en el ambiente,
       la evolución tiende a favorecer individuos con la capacidad de aprender a
       adaptarse al nuevo medio ambiente acelerando cambios genéticos entre
       individuos parecidos.
   •   Crowding: es el fenómeno cuando algún individuo es mucho más apto que los
       demás y se reproduce rápidamente llenando la problación con sus copias. Esto
       reduce diversidad y desacelera rápidamente el proceso evolutivo.
       Se han propuesto varias posibles soluciones cambiando el criterio de selección:
           o   selección por torneo

           o   selección por ranqueo

           o   ``fitness sharing'': reducir la aptitud de un individuo por la prescencia de
               otros individuos parecidos
           o   sólo combinar individuos muy parecidos entre si, creado ``sub-especies''

   •   Paralelización: Se han propuesto (por razones naturales) varios esquemas de
       paralelización: (i) Grano grueso: varias poblaciones (demes) al mismo tiempo
       con migración entre ellas y (ii) Grano fino: individuo por procesador
   •   Sistemas Autoadaptativos: En la mayoría de los casos, el desempeño de un
       algoritmo genético depende fuertemente de la representación utilizada y de la
       selección de la función de aptitud. Un tema de investigación actual es tratar de
       descubrir automáticamente las primitivas que mejoren el comportamiento de las
       primitivas originales.
   •   Relación de aprendizaje por refuerzo con sistemas clasificadores
   •   Incorporación de restricciones y optimización multiobjetivo
   •   Análisis y evolución estadística de los cromosomas, por ejemplo, PBIL y BOA.

Algoritmos Genéticos

Los Algoritmos Genéticos (AG) son métodos adaptativos que pueden ser utilizados para
implementar búsquedas y problemas de optimización. Ellos están basados en los
procesos genéticos de organismos biológicos, codificando una posible solución a un
problema en un "cromosoma" compuesto por una cadena de bits o caracteres.
Estos cromosomas representan individuos que son llevados a lo largo de varias
generaciones, en forma similar a las poblaciones naturales, evolucionando de acuerdo a
los principios de selección natural y "supervivencia" del más apto, descritos por primera
vez por Charles Darwin en su libro "Origen de las Especies". Emulando estos procesos,
los Algoritmos Genéticos son capaces de "evolucionar" soluciones a problemas del
mundo real.
En la naturaleza, los individuos compiten entre si por recursos tales como comida, agua
y refugio. Adicionalmente, los animales de la misma especie normalmente antagonizan
para obtener una pareja. Aquellos individuos que tengan más éxito tendrán
probablemente un número mayor de descendientes, por lo tanto, mayores
probabilidades de que sus genes sean propagados a lo largo de sucesivas generaciones.
La combinación de características de los padres bien adaptados, en un descendiente,
puede producir muchas veces un nuevo individuo mucho mejor adaptado que cualquiera
de sus padres a las características de su medio ambiente.
Los Algoritmos Genéticos utilizan una analogía directa del fenómeno de evolución en la
naturaleza. Trabajan con una población de individuos, cada uno representando una
posible solución a un problema dado. A cada individuo se le asigna una puntuación de
adaptación, dependiendo de que tan buena fue la respuesta al problema. A los más
adaptados se les da la oportunidad de reproducirse mediante cruzamientos con otros
individuos de la población, produciendo descendientes con características de ambos
padres. Los miembros menos adaptados poseen pocas probabilidades de que sean
seleccionados para la reproducción, y desaparecen.
Una nueva población de posibles soluciones es generada mediante la selección de los
mejores individuos de la generación actual, emparejándolos entre ellos para producir un
nuevo conjunto de individuos. Esta nueva generación contiene una proporción más alta
de las características poseídas por los mejores miembros de la generación anterior. De
esta forma, a lo largo de varias generaciones, las características buenas son difundidas a
lo largo de la población mezclándose con otras. Favoreciendo el emparejamiento de los
individuos mejor adaptados, es posible recorrer las áreas más prometedoras del espacio
de búsqueda. Si el Algoritmo Genético ha sido diseñado correctamente, la población
convergerá a una solución óptima o casi óptima al problema.
Los dos procesos que más contribuyen a la evolución son el crossover y la adaptación
basada en la selección / reproducción. La mutación también juega un papel
significativo, pero determinar que tan importante sea su rol, continúa siendo una materia
de debate (algunos se refieren a ella como un operador en background), ella no debe ser
utilizada demasiado, ya que el Algoritmo Genético se puede convertir en una búsqueda
al azar, pero su utilización asegura que ningún punto en el espacio de búsqueda tiene
probabilidad 0 de ser examinado.
En la practica, se puede implementar este modelo, utilizando matrices de bits o
caracteres para representar los cromosomas. Operaciones sencillas de bits permiten
efectuar el crossover, la mutación y otras operaciones. A pesar de que una gran cantidad
de investigación ha sido realizada en cadenas de longitud variable y otras estructuras, la
mayor parte del trabajo con AG ha sido enfocado en cadenas de caracteres de longitud
fija. Se hace énfasis en este aspecto y en la necesidad de codificar la solución como una
cadena de caracteres.
Generalmente, los AG son implementados siguiendo el siguiente ciclo:
   •   Generar aleatoriamente la población inicial
   •   Evaluar la adaptación de todos los individuos en la población.
•   Crear una nueva población efectuando operaciones como crossover,
       reproducción proporcional a la adaptación y mutaciones en los individuos cuya
       adaptación acaba de ser medida.
   •   Eliminar la antigua población
   •   Iterar utilizando la nueva población, hasta que la población converja.
Cada iteración de este bucle es conocida como generación. La primera generación de
este proceso es una población de individuos generados al azar. Desde ese punto, los
operadores genéticos, en unión con la medida de adaptación, actúan para mejorar la
población.
Los Algoritmos Genéticos no son la única técnica basada en una analogía de la
naturaleza. Por ejemplo, las Redes Neurales están basadas en el comportamiento de las
neuronas en el cerebro. Pueden ser utilizadas en una gran variedad de tareas de
clasificación, como reconocimiento de patrones o proceso de imágenes. Actualmente
está en investigación la utilización de Algoritmos Genéticos para el diseño de Redes
Neurales.
El poder de los Algoritmos Genéticos proviene del hecho de que la técnica es robusta, y
puede manejar exitosamente un amplio rango de problemas, incluso algunos que son
difíciles de resolver por otros métodos. Los Algoritmos Genéticos no garantizan que
encontrarán la solución óptima al problema, pero son generalmente buenos encontrando
soluciones aceptables a problemas en corto tiempo. Donde existan técnicas
especializadas para la resolución de problemas, estas superarán fácilmente a los
Algoritmos Genéticos tanto en velocidad como en precisión. El campo principal de
aplicación es donde no existan este tipo de técnicas.
Diferencias entre los Algoritmos Genéticos y los métodos tradicionales.
Los Algoritmos Genéticos tienen cuatro diferencias principales con los métodos más
utilizados o conocidos de optimización y búsqueda:
   •   Trabajan con una codificación de el conjunto de parámetros, no con estos
       directamente.
   •   Buscan simultáneamente la solución en una población de puntos, no en uno sólo.
   •   Utilizan la función objetivo (rendimiento), no derivadas u otro conocimiento
       auxiliar
   •   Utilizan reglas de transición probabilísticas, y no determinísticas.
Definiciones básicas


Contenido
   •   Codificación
   •   Función de Evaluación
   •   Reproducción
•   Convergencia

Codificación
Las partes que relacionan un Algoritmo Genético con un problema dado son la
codificación y la función de evaluación.
Si un problema puede ser representado por un conjunto de parámetros (conocidos como
genes), estos pueden ser unidos para formar una cadena de valores (cromosoma), a este
proceso se le llama codificación. En genética este conjunto representado por un
cromosoma en particular es referido como genotipo, este contiene la información
necesaria para construir un organismo, conocido como fenotipo. Estos mismos términos
se aplican en Algoritmos Genéticos, por ejemplo, si se desea diseñar un puente, el
conjunto de parámetros especificando el diseño es el genotipo, y la construcción final es
el fenotipo. La adaptación de cada individuo depende de su fenotipo, el cual se puede
inferir de su genotipo, es decir, puede calcularse desde el cromosoma utilizando la
función de evaluación.
Por ejemplo, si se tiene un problema de maximizar una función de tres variables,
F(X,Y,Z), se podría representar cada variable por un número binario de 10 bits,
obteniéndose un cromosoma de 30 bits de longitud y 3 genes.
Existen varios aspectos relacionados con la codificación de un problema a ser tomados
en cuenta en el momento de su realización:
   •   Se debe utilizar el alfabeto más pequeño posible para representar los parámetros,
       normalmente se utilizan dígitos binarios
   •   Las variables que representan los parámetros del problema deben ser
       discretizadas para poder representarse con cadenas de bits, hay que utilizar
       suficiente resolución para asegurar que la salida tiene un nivel de precisión
       adecuado, se asume que la discretización es representativa de la función
       objetivo.
   •   La mayor parte de los problemas tratados con Algoritmos Genéticos son no
       lineales y muchas veces existen relaciones "ocultas" entre las variables que
       conforman la solución. Esta interacción es referida como epístasis, y es
       necesario tomar la en cuenta para una representación adecuada del problema.
   •   El tratamiento de los genotipos inválidos debe ser tomado en cuenta para el
       diseño de la codificación. Supóngase que se necesitan 1200 valores para
       representar una variable, esto requiere al menos 11 bits, pero estos codifican un
       total de 2048 posibilidades, "sobrando" 848 patrones de bits no necesarios. A
       estos patrones se les puede dar un valor cero de adaptación, ser substituidos por
       un valor real, o eliminar el cromosoma.
Función de evaluación
Dado un cromosoma, la función de evaluación consiste en asignarle un valor numérico
de "adaptación", el cual se supone que es proporcional a la "utilidad" o "habilidad" del
individuo representado. En muchas casos, el desarrollo de una función de evaluación
involucra hacer una simulación, en otros, la función puede estar basada en el
rendimiento y representar sólo una evaluación parcial del problema. Adicionalmente
debe ser rápida, ya que hay que aplicarla para cada individuo de cada población en las
sucesivas generaciones, por lo cual, gran parte del tiempo de corrida de un algoritmo
genético se emplea en la función de evaluación.
Convergencia prematura
Un problema de los Algoritmos Genéticos dado por una mala formulación del modelo
es aquel en el cual los genes de una pocos individuos relativamente bien adaptados, pero
no óptimos, pueden rápidamente dominar la población, causando que converja a un
máximo local. Una vez que esto ocurre, la habilidad del modelo para buscar mejores
soluciones es eliminada completamente, quedando sólo la mutación como vía de buscar
nuevas alternativas, y el algoritmo se convierte en una búsqueda lenta al azar. Para
evitar este problema, es necesario controlar el número de oportunidades reproductivas
de cada individuo, tal que, no obtenga ni muy alta o muy baja probabilidad. El efecto es
comprimir el rango de adaptación y prevenir que un individuo "super-adaptado" tome
control rápidamente
Finalización lenta.
Este es un problema contrario al anterior, luego de muchas generaciones, la población
habrá convergido, pero no habrá localizado el máximo global. La adaptación promedio
será alta y habrá poca diferencia entre el mejor y el individuo promedio, por
consiguiente será muy baja la tendencia de la función de adaptación a llevar el
algoritmo hacia el máximo. Las mismas técnicas aplicadas en la convergencia
prematura son utilizadas en este caso.
Reproducción
Durante la fase reproductiva de un Algoritmo Genético, se seleccionan individuos de la
población siendo recombinados para formar descendientes que formarán la siguiente
generación. Los padres son seleccionados al azar, usando un método que favorece a los
individuos mejor adaptados y le asigna una probabilidad baja de ser seleccionados a los
menos adaptados. Luego de ser escogidos los padres, sus cromosomas se mezclan y
cambian, usando crossover y mutación. Las formas básicas de estos operadores son:
Crossover: toma dos individuos y corta sus cromosomas en una posición seleccionada
al azar, para producir dos segmentos anteriores y dos posteriores, los posteriores se
intercambian para obtener dos cromosomas nuevos. (Ver figura 1). Esto es conocido
como crossover de un punto.
Mutación: es aplicada a cada descendiente individualmente luego de cada crossover.
Altera un gen al azar, con una probabilidad muy pequeña (típicamente 0.001). La figura
2. muestra el 5to gen siendo mutado:




Convergencia
Si el Algoritmo Genético ha sido correctamente implementado, la población
evolucionará a lo largo de sucesivas generaciones de forma que la adaptación del mejor
y el promedio general se incrementarán hacia el óptimo global. La convergencia es la
progresión hacia la uniformidad. Un gen ha convergido cuando el 95% de la población
tienen el mismo valor. La población converge cuando todos los genes de cada individuo
lo hacen. Por ejemplo la figura 2.3 muestra la convergencia representada por la varianza
de una población a lo largo de sucesivas generaciones.
Figura 3. Ejemplo de convergencia.




Contactarme en:jcontre@iamnet.com
Maracaibo 18/11/96
Tipos de Algoritmos Genéticos


Contenido
   •   Algoritmos Genéticos Generacionales
   •   Algoritmos Genéticos de Estado Fijo
•   Algoritmos Genéticos Paralelos

Existen varios tipos de Algoritmos Genéticos, cada uno basado en una metáfora distinta
de la naturaleza.
Algoritmos Genéticos Generacionales
Se asemeja a la forma de reproducción de los insectos, donde una generación pone
huevos, se aleja geográficamente o muere y es substituida por una nueva. En este
modelo se realizan cruces en una piscina de individuos, los descendientes son puestos
en otra, al final de la fase reproductiva se elimina la generación anterior y se pasa a
utilizar la nueva. Este modelo también es conocido como Algoritmo Genético
Canónico.
Algoritmos Genéticos de Estado Fijo
Utilizan el esquema generacional de los mamíferos y otros animales de vida larga,
donde coexisten padres y sus descendientes, permitiendo que los hijos sean educados
por sus progenitores, pero también que a la larga se genere competencia entre ellos.
En este modelo, no sólo se debe seleccionar los dos individuos a ser padres, si no
también cuales de la población anterior serán eliminados , para hacer espacio a los
descendientes.
La diferencia esencial entre el reemplazo generacional y el modelo de estado fijo, es que
las estadísticas de la población son recalculadas luego de cada cruce y los nuevos
descendientes están disponibles inmediatamente para la reproducción. Esto permite al
modelo utilizar las características de un individuo prometedor tan pronto como es
creado.
Algunos autores dicen que este modelo tiende a evolucionar mucho más rápido que el
modelo generacional [BD93], sin embargo investigaciones de Goldberg y Deb (1993)
encontraron que las ventajas parecen estar relacionadas con la alta tasa de crecimiento
inicial, ellos dicen que los mismos efectos pueden ser obtenidos en rangos de
adaptación exponencial o selección por competencia. No encontraron evidencia que este
modelo sea mejor que el generacional.
Algoritmos Genéticos Paralelos
Parte de la metáfora biológica que motivó a utilizar la búsqueda genética consiste en
que es inherentemente paralela, donde al evolucionar se recorren simultáneamente
muchas soluciones, cada una representada por un individuo de la población. Sin
embargo, es muy común en la naturaleza que no sólo sea una población evolucionando,
si no varias poblaciones, normalmente aisladas geográficamente, que originan
respuestas diferentes a la presión evolutiva. Esto origina dos modelos que toman en
cuenta esta variación, y utilizan no una población como los anteriores si no múltiples
concurrentemente.
Modelos de Islas: Si se tiene una población de individuos, esta se divide en
subpoblaciones que evolucionan independientemente como un algoritmo genético
normal. Ocasionalmente, se producen migraciones entre ellas, permitiendoles
intercambiar material genético.
Con la utilización de la migración, este modelo puede explotar las diferencias en las
subpoblaciones; esta variación representa una fuente de diversidad genética. Sin
embargo, si un gran número de individuos emigran en cada generación, ocurre una
mezcla global y se eliminan las diferencias locales, y si la migración es infrecuente, es
probable que se produzca convergencia prematura en las subpoblaciones.
Modelo Celular: Coloca cada individuo en una matriz, donde cada uno sólo podrá
buscar reproducirse con los individuos que tenga a su alrededor (más cerca de casa)
escogiendo al azar o al mejor adaptado. El descendiente pasará a ocupar una posición
cercana.
No hay islas en este modelo, pero hay efectos potenciales similares. Asumiendo que el
cruce esta restringido a individuos adyacentes, dos individuos separados por 20 espacios
están tan aislados como si estuvieran en dos islas, este tipo de separación es conocido
como aislamiento por distancia.
Luego de la primera evaluación, los individuos están todavía distribuidos al azar sobre
la matriz. Posteriormente, empiezan a emerger zonas con cromosomas y adaptaciones
semejantes. La reproducción y selección local crea tendencias evolutivas aisladas, luego
de varias generaciones, la competencia local resultará en grupos más grandes de
individuos semejantes.
Operadores Genéticos


Son los diferentes métodos u operaciones que se pueden ejercer sobre una población en
los Algoritmos Genéticos. Se dividen en 4 categorías: Crossover, Mutación, Selección y
Reemplazo.
   •   Crossover: Consiste en unir en alguna forma los cromosomas de dos padres
       para formar dos descendientes. Existen diversas variaciones, dependiendo del
       número de puntos de división a emplear, la forma de ver el cromosoma, etc.
   •   Mutación: Se encarga de modificar en forma aleatoria uno o más genes del
       cromosoma de un descendiente.
   •   Selección: Proceso que escoge los miembros de la población que serán
       utilizados para la reproducción. Su meta es dar más oportunidades de selección a
       los miembros más aptos de la población
   •   Reemplazo: Es el método por el cual se insertan los hijos en la población, por
       ejemplo mediante la eliminación del individuo más débil o al azar
INTRODUCCIÓN.
John Holland, desde pequeño, se preguntaba cómo logra la naturaleza, crear
seres cada vez más perfectos (aunque, esto no es totalmente cierto, o en todo
caso depende de qué entienda uno por perfecto). Lo curioso era que todo se
lleva a cabo a base de interacciones locales entre individuos, y entre éstos y lo
que                                  les                                   rodea.
Fue leyendo un libro escrito por un biólogo evolucionista, R. A. Fisher, titulado
"La teoría genética de la selección natural", como comenzó a descubrir los
medios de llevar a cabo sus propósitos de comprensión de la naturaleza. De
ese libro aprendió que la evolución era una forma de adaptación más potente
que el simple aprendizaje.
ANATOMÍA DE UN ALGORITMO GENÉTICO SIMPLE.
Los algoritmos genéticos son métodos sistemáticos para la resolución de
problemas de búsqueda y optimización que aplican a éstos los mismos
métodos de la evolución biológica: selección basada en la población,
reproducción             sexual             y            mutación.
Los algoritmos genéticos son métodos de optimización. En un algoritmo
genético, tras parametrizar el problema en una serie de variables (xi,...,xn), se
codifican en un cromosoma. Todos los operadores utilizados por un algoritmo
genético se aplicarán sobre estos cromosomas, o sobre poblaciones de ellos.
Las soluciones codificadas en un cromosoma compiten para ver cuál constituye
la mejor solución (aunque no necesariamente la mejor de todas las soluciones
posibles). El ambiente, constituido por las otras camaradas de soluciones,
ejercerá una presión selectiva sobre la población, de forma que sólo los mejor
adaptados (aquellos que resuelvan mejor el problema) sobrevivan o leguen su
material genético a las siguientes generaciones, igual que en la evolución de
las especies. La diversidad genética se introduce mediante mutaciones y
reproducción                                                              sexual.
Un algoritmo genético se usará para optimizar habitualmente sólo una función,
no diversas funciones relacionadas entre sí simultáneamente. Este tipo de
optimización         se        denomina         optimización       multimodal.
Por lo tanto, un algoritmo genético consiste en lo siguiente: hallar de qué
parámetros depende el problema, codificarlos en un cromosoma, y aplicar los
métodos de la evolución: selección y reproducción sexual con intercambio de
información y alteraciones que generan diversidad.


Para Jorge Granados, los algoritmos genéticos son programas
computacionales cuyo fin es imitar el proceso de "selección natural" que, según
la teoría de Darwin, rige el curso de la evolución. El proceso de selección
natural descrito de una manera sencilla es: tienes una población, esa población
se multiplica por medio del intercambio de genes, de la nueva generación sólo
sobreviven los más capaces de adaptarse a su medio ambiente para así formar
una nueva población "mejor" que la anterior. Este ciclo se repite a través del
tiempo. Sin embargo, hay ocasiones en que se producen mutaciones en los
individuos, lo que origina cambios drásticos en las características del individuo,
y con esto se evita que se llegue a un "estancamiento", en la evolución.
Se dice que el proceso evolutivo es aleatorio en el sentido de que se generan
poblaciones cuyas características se parecen a las de sus padres, pero varían
aleatoriamente. Luego, estas poblaciones son "probadas" en el ambiente para
ver cuál se "adapta" mejor. Sobreviven los que se adapten mejor al medio
ambiente, pero no se sabe para qué se quiere adaptar al medio ambiente, es
decir,                      con                     qué                        fin.
Cuando la gente se enfrentó con problemas que no podían ser solucionados
por métodos matemáticos o analíticos, y que la única forma de resolverlos era
a través de prueba y error dirigido, es decir, probar dónde se crea que va a
mejorar el resultado, se dio cuenta de que este proceso era similar al proceso
que seguía la naturaleza, así que se intentó copiar su manera de operar y se
crearon los algoritmos genéticos, que en la actualidad sólo son una rama de
una extensa materia conocida como computación evolutiva que, en resumen,
es la ciencia computacional cuyos algoritmos imitan el proceso evolutivo de la
naturaleza.


Hace unos meses (25/2/99), el peródico Cyberp@ís publicaba un artículo sobre
algoritmos genéticos y su aplicación en la resolución de problemas complejos
de logística. El funcionamiento de los algorítmos genéticos seguiría el siguiente
proceso:
   •   Primera generación: el sistema genera varios centenares de soluciones
       posibles.
   •   Evaluación: las que mejor se ajustan a los requerimientos, obtienen más
       posibilidades de reproducirse.
   •   Segunda generación: los individuos-soluciones de la primera generación
       se emparejan al azar y producen nuevas soluciones.
   •   Evaluación: los que mejor se ajustan a los requerimientos obtienen más
       posibilidades de reproducirse. Las peores son descartadas.
   •   Continuación: los pasos 3 y 4 se reiteran docenas de miles de veces.
       Tras miles de generaciones, el mejor individuo-solución resuelve el
       problema de manera satisfactoria. No se puede aspirar al óptimo
       absoluto.
Todo este proceso se basa en el tipo de reproducción en el que la dotación
genética del nuevo ser tiene dos o más orígenes. La gran ventaja del
ordenador es que puede simular decenas de miles de generaciones en
minutos.



MASSACHUSSETTS INSTITUTE OF TECHNOLOGY

Implementación de una red neuronal simple y de los algoritmos genéticos

http://lancet.mit.edu/ga/

Más contenido relacionado

La actualidad más candente

Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Juan Carlos Martinez Garcia
 
Simulacion de sistemas
Simulacion de sistemasSimulacion de sistemas
Simulacion de sistemaswilbero
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.Emmanuel Colon
 
Lenguaje de simulación
Lenguaje de simulaciónLenguaje de simulación
Lenguaje de simulaciónJeicod Tupapa
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptx3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptxRam Vazquez
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriosAnel Sosa
 
Mapa conceptual mantenimiento de software
Mapa conceptual mantenimiento de softwareMapa conceptual mantenimiento de software
Mapa conceptual mantenimiento de softwareluiscastejon
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacionAnel Sosa
 
Simulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónSimulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónJosé Antonio Sandoval Acosta
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 

La actualidad más candente (20)

Metodo congruencial mixto en java
Metodo congruencial mixto en javaMetodo congruencial mixto en java
Metodo congruencial mixto en java
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
Simulacion de sistemas
Simulacion de sistemasSimulacion de sistemas
Simulacion de sistemas
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Lenguaje de simulación
Lenguaje de simulaciónLenguaje de simulación
Lenguaje de simulación
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Ejemplo Prueba De Medias
Ejemplo Prueba De MediasEjemplo Prueba De Medias
Ejemplo Prueba De Medias
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptx3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptx
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatorios
 
Manual basico Arena
Manual basico ArenaManual basico Arena
Manual basico Arena
 
Mapa conceptual mantenimiento de software
Mapa conceptual mantenimiento de softwareMapa conceptual mantenimiento de software
Mapa conceptual mantenimiento de software
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacion
 
Rol del Analista de Sistemas
Rol del Analista de SistemasRol del Analista de Sistemas
Rol del Analista de Sistemas
 
Simulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónSimulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la Simulación
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Algoritmo De Productos Medios
Algoritmo De Productos MediosAlgoritmo De Productos Medios
Algoritmo De Productos Medios
 

Similar a 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_jcbenitezp
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoVane Erraez
 
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.SantiagoGarridoBulln
 
Algoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfAlgoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfCastañeda Samanamu
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialGabriela_Rodriguez
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlabMaje Gonzalez
 
computacion Evolutiva
computacion Evolutivacomputacion Evolutiva
computacion Evolutivaguest590a846
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoRufino meri?
 

Similar a Algoritmos GenéTicos (20)

A Geneticos
A GeneticosA Geneticos
A Geneticos
 
ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
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 Geneticos
A GeneticosA Geneticos
A Geneticos
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
Genetic Algorithms. Algoritmos Genéticos y cómo funcionan.
 
Algoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfAlgoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdf
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
computacion Evolutiva
computacion Evolutivacomputacion Evolutiva
computacion Evolutiva
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Algoritmo genetico1
Algoritmo genetico1Algoritmo genetico1
Algoritmo genetico1
 

Más de ESCOM

redes neuronales tipo Som
redes neuronales tipo Somredes neuronales tipo Som
redes neuronales tipo SomESCOM
 
redes neuronales Som
redes neuronales Somredes neuronales Som
redes neuronales SomESCOM
 
redes neuronales Som Slides
redes neuronales Som Slidesredes neuronales Som Slides
redes neuronales Som SlidesESCOM
 
red neuronal Som Net
red neuronal Som Netred neuronal Som Net
red neuronal Som NetESCOM
 
Self Organinising neural networks
Self Organinising  neural networksSelf Organinising  neural networks
Self Organinising neural networksESCOM
 
redes neuronales Kohonen
redes neuronales Kohonenredes neuronales Kohonen
redes neuronales KohonenESCOM
 
Teoria Resonancia Adaptativa
Teoria Resonancia AdaptativaTeoria Resonancia Adaptativa
Teoria Resonancia AdaptativaESCOM
 
ejemplo red neuronal Art1
ejemplo red neuronal Art1ejemplo red neuronal Art1
ejemplo red neuronal Art1ESCOM
 
redes neuronales tipo Art3
redes neuronales tipo Art3redes neuronales tipo Art3
redes neuronales tipo Art3ESCOM
 
Art2
Art2Art2
Art2ESCOM
 
Redes neuronales tipo Art
Redes neuronales tipo ArtRedes neuronales tipo Art
Redes neuronales tipo ArtESCOM
 
Neocognitron
NeocognitronNeocognitron
NeocognitronESCOM
 
Neocognitron
NeocognitronNeocognitron
NeocognitronESCOM
 
Neocognitron
NeocognitronNeocognitron
NeocognitronESCOM
 
Fukushima Cognitron
Fukushima CognitronFukushima Cognitron
Fukushima CognitronESCOM
 
Counterpropagation NETWORK
Counterpropagation NETWORKCounterpropagation NETWORK
Counterpropagation NETWORKESCOM
 
Counterpropagation NETWORK
Counterpropagation NETWORKCounterpropagation NETWORK
Counterpropagation NETWORKESCOM
 
Counterpropagation
CounterpropagationCounterpropagation
CounterpropagationESCOM
 
Teoría de Resonancia Adaptativa Art2 ARTMAP
Teoría de Resonancia Adaptativa Art2 ARTMAPTeoría de Resonancia Adaptativa Art2 ARTMAP
Teoría de Resonancia Adaptativa Art2 ARTMAPESCOM
 
Teoría de Resonancia Adaptativa ART1
Teoría de Resonancia Adaptativa ART1Teoría de Resonancia Adaptativa ART1
Teoría de Resonancia Adaptativa ART1ESCOM
 

Más de ESCOM (20)

redes neuronales tipo Som
redes neuronales tipo Somredes neuronales tipo Som
redes neuronales tipo Som
 
redes neuronales Som
redes neuronales Somredes neuronales Som
redes neuronales Som
 
redes neuronales Som Slides
redes neuronales Som Slidesredes neuronales Som Slides
redes neuronales Som Slides
 
red neuronal Som Net
red neuronal Som Netred neuronal Som Net
red neuronal Som Net
 
Self Organinising neural networks
Self Organinising  neural networksSelf Organinising  neural networks
Self Organinising neural networks
 
redes neuronales Kohonen
redes neuronales Kohonenredes neuronales Kohonen
redes neuronales Kohonen
 
Teoria Resonancia Adaptativa
Teoria Resonancia AdaptativaTeoria Resonancia Adaptativa
Teoria Resonancia Adaptativa
 
ejemplo red neuronal Art1
ejemplo red neuronal Art1ejemplo red neuronal Art1
ejemplo red neuronal Art1
 
redes neuronales tipo Art3
redes neuronales tipo Art3redes neuronales tipo Art3
redes neuronales tipo Art3
 
Art2
Art2Art2
Art2
 
Redes neuronales tipo Art
Redes neuronales tipo ArtRedes neuronales tipo Art
Redes neuronales tipo Art
 
Neocognitron
NeocognitronNeocognitron
Neocognitron
 
Neocognitron
NeocognitronNeocognitron
Neocognitron
 
Neocognitron
NeocognitronNeocognitron
Neocognitron
 
Fukushima Cognitron
Fukushima CognitronFukushima Cognitron
Fukushima Cognitron
 
Counterpropagation NETWORK
Counterpropagation NETWORKCounterpropagation NETWORK
Counterpropagation NETWORK
 
Counterpropagation NETWORK
Counterpropagation NETWORKCounterpropagation NETWORK
Counterpropagation NETWORK
 
Counterpropagation
CounterpropagationCounterpropagation
Counterpropagation
 
Teoría de Resonancia Adaptativa Art2 ARTMAP
Teoría de Resonancia Adaptativa Art2 ARTMAPTeoría de Resonancia Adaptativa Art2 ARTMAP
Teoría de Resonancia Adaptativa Art2 ARTMAP
 
Teoría de Resonancia Adaptativa ART1
Teoría de Resonancia Adaptativa ART1Teoría de Resonancia Adaptativa ART1
Teoría de Resonancia Adaptativa ART1
 

Último

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
 
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
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
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
 

Último (20)

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
 
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
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
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.
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
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
 

Algoritmos GenéTicos

  • 1. Algoritmos Genéticos Rafael Martí Los Algoritmos Genéticos (GA) fueron introducidos por John Holland en 1970 inspirándose en el proceso observado en la evolución natural de los seres vivos. Los Biólogos han estudiado en profundidad los mecanismos de la evolución, y aunque quedan parcelas por entender, muchos aspectos están bastante explicados. De manera muy general podemos decir que en la evolución de los seres vivos el problema al que cada individuo se enfrenta cada día es la supervivencia. Para ello cuenta con las habilidades innatas provistas en su material genético. A nivel de los genes, el problema es el de buscar aquellas adaptaciones beneficiosas en un medio hostil y cambiante. Debido en parte a la selección natural, cada especie gana una cierta cantidad de "conocimiento", el cual es incorporado a la información de sus cromosomas. Así pues, la evolución tiene lugar en los cromosomas, en donde está codificada la información del ser vivo. La información almacenada en el cromosoma varía de unas generaciones a otras. En el proceso de formación de un nuevo individuo, se combina la información cromosómica de los progenitores aunque la forma exacta en que se realiza es aún desconocida. Aunque muchos aspectos están todavía por discernir, existen unos principios generales ampliamente aceptados por la comunidad científica. Algunos de estos son: 1. La evolución opera en los cromosomas en lugar de en los individuos a los que representan. 2. La selección natural es el proceso por el que los cromosomas con "buenas estructuras" se reproducen más a menudo que los demás. 3. En el proceso de reproducción tiene lugar la evolución mediante la combinación de los cromosomas de los progenitores. Llamamos Recombinación a este proceso en el que se forma el cromosoma del descendiente. También son de tener en cuenta las mutaciones que pueden alterar dichos códigos. 4. La evolución biológica no tiene memoria en el sentido de que en la formación de los cromosomas únicamente se considera la información del período anterior Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema y el conjunto de individuos de una población natural, codificando la información de cada solución en un string (vector binario) a modo de cromosoma. En palabras del propio Holland: "Se pueden encontrar soluciones aproximadas a problemas de gran complejidad computacional mediante un proceso de "evolución simulada", A tal efecto se introduce una función de evaluación de los cromosomas, que llamaremos calidad ("fitness") y que está basada en la función objetivo del problema. Igualmente se introduce un mecanismo de selección de manera que los cromosomas con mejor evaluación sean escogidos para "reproducirse" mas a menudo que los que la tienen peor.
  • 2. Los algoritmos desarrollados por Holland inicialmente eran sencillos pero dieron buenos resultados en problemas considerados difíciles. Los algoritmos Genéticos están basados en integrar e implementar eficientemente dos ideas fundamentales: Las representaciones simples como strings binarios de las soluciones del problema y la realización de transformaciones simples para modificar y mejorar estas representaciones. Para llevar a la práctica el esquema anterior y concretarlo en un algoritmo, hay que especificar los siguientes elementos: • · Una representación cromosómica • · Una población inicial • · Una medida de evaluación • · Un criterio de selección / eliminación de cromosomas • · Una o varias operaciones de recombinación • · Una o varias operaciones de mutación A continuación pasamos a comentar y detallar todos estos elementos. En los trabajos originales las soluciones se representaban por strings binarios, es decir, listas de 1s y 0s. Este tipo de representaciones ha sido ampliamente utilizada incluso en problemas en donde no es muy natural. En 1985, De Jong introduce la siguiente cuestión: ¿Qué se debe hacer cuando los elementos del espacio de búsqueda se representan de modo natural por estructuras complejas como vectores, árboles o grafos?, ¿Se debe intentar linealizar en un string o trabajar directamente con estas estructuras? En la actualidad podemos distinguir dos escuelas: • · Limitarse a strings binarios o • · Utilizar otro tipo de configuraciones Hemos de notar que las operaciones genéticas dependen del tipo de representación, por lo que la elección de una condiciona a la otra. La ventaja de las primeras es que permite definir fácilmente operaciones de recombinación, además los resultados sobre convergencia están probados para el caso de strings binarios. Sin embargo en algunos problemas puede ser poco natural y eficiente el utilizarlas. Por ejemplo en el problema del agente viajero sobre 5 ciudades y 20 aristas, el string 01000100001000100010 representa una solución sobre las aristas ordenadas. Sin embargo dicha representación no es muy natural y además, no todos los strings con cinco 1s representan soluciones lo cual complica substancialmente la definición de una operación de sobrecruzamiento. Es mas natural la ruta de ciudades: (2,3,1,5,4), lo cual permite definir naturalmente diferentes operaciones estables. La población inicial suele ser generada aleatoriamente. Sin embargo, últimamente se están utilizando métodos heurísticos para generar soluciones iniciales de buena calidad. En este caso, es importante garantizar la diversidad estructural de estas soluciones para
  • 3. tener una "representación" de la mayor parte de población posible o al menos evitar la convergencia prematura. Respecto a la evaluación de los cromosomas, se suele utilizar la calidad como medida de la bondad según el valor de la función objetivo en el que se puede añadir un factor de penalización para controlar la infactibilidad. Este factor puede ser estático o ajustarse dinámicamente, lo cual produciría un efecto similar al de la Oscilación Estratégica en Tabu Search: calidad = ValorObjetivoNormalizado - Penalización * MedidaInfactibilidad La selección de los padres viene dada habitualmente mediante probabilidades según su fitness. Uno de los procedimientos más utilizado es el denominado de la ruleta en donde cada individuo tiene una sección circular de una ruleta que es directamente proporcional a su calidad. Para realizar una selección se realizaría un tirada de bola en la ruleta, tomando el individuo asociado a la casilla donde cayo la bola. Los Operadores de Cruzamiento mas utilizados son: • De un punto: Se elige aleatoriamente un punto de ruptura en los padres y se intercambian sus bits. • De dos puntos: Se eligen dos puntos de ruptura al azar para intercambiar. • Uniforme: En cada bit se elige al azar un padre para que contribuya con su bit al del hijo, mientras que el segundo hijo recibe el bit del otro padre. • PMX, SEX: Son operadores más sofisticados fruto de mezclar y aleatorizar los anteriores. La operación de Mutación más sencilla, y una de la más utilizadas consiste en reemplazar con cierta probabilidad el valor de un bit. Notar que el papel que juega la mutación es el de introducir un factor de diversificación ya que, en ocasiones, la convergencia del procedimiento a buenas soluciones puede ser prematura y quedarse atrapado en óptimos locales. Otra forma obvia de introducir nuevos elementos en una población es recombinar elementos tomados al azar sin considerar su fitness. Convergencia del Algoritmo Dado que el algoritmo genético opera con una población en cada iteración, se espera que el método converja de modo que al final del proceso la población sea muy similar, y en el infinito se reduzca a un sólo individuo. Se ha desarrollado toda una teoría para estudiar la convergencia de estos algoritmos en el caso de strings binarios. Esta teoría se basa principalmente en considerar que un string es un representante de una clase de equivalencia o esquema, reinterpretando la búsqueda en lugar de entre strings, entre esquemas. De este modo se concluye lo que se conoce como paralelismo intrínseco: "En una población de m strings se están procesando implícitamente O(m^3) esquemas" A partir de este resultado el teorema de esquemas prueba que la población converge a unos esquemas que cada vez son más parecidos, y en el límite a un único string.
  • 4. En el caso de strings no binarios se introducen los conceptos de forma y conjunto de similitud que generalizan al de esquema. Se consideran una serie de condiciones sobre los operadores de manera que se garantice la convergencia. Básicamente se exige que al cruzar dos strings de la misma clase se obtenga otro dentro de ésta. Además hay que respetar ciertas condiciones sobre selección de los progenitores. Bajo toda esta serie de hipótesis se prueba la convergencia del algoritmo. En la práctica no se suelen respetar las condiciones vistas ya que son difíciles de seguir y probar, encontrándonos con que, en ocasiones los algoritmos genéticos resuelven satisfactoriamente un problema de optimización dado y otras se quedan muy alejados del óptimo. Los estudiosos del tema han tratado de caracterizar lo que han denominado problemas AG-fáciles (aquellos en los que los AG proporcionan buenos resultados) y AG-difíciles con el objetivo de saber de antemano, al estudiar un nuevo problema, si los AG son una buena elección para su resolución. Se han tratado de caracterizar estas clases mediante el concepto de engaño considerando que si el algoritmo converge al mejor esquema (aquel con mejor promedio del fitness de sus strings) y en éste se encuentra el óptimo, entonces es fácil que se resuelva satisfactoriamente. En caso de que el óptimo esté en un esquema con bajo promedio se denomina engaño y se pensaba que en estos casos es cuando el problema es AG-difícil. Sin embargo se ha visto que esta caracterización mediante el engaño no es siempre cierta y no constituye un criterio fiable. Es importante citar que, a diferencia de otros metaheurísticos, los Algoritmos Genéticos han crecido de forma espectacular, hasta el punto de poder encontrar referencias sobre ellos en revista de informática de carácter general. Además muchos de los investigadores de este campo están trabajando en desarrollar los aspectos teóricos de la materia incorporando algunas otras técnicas de búsqueda local en el esquema genético. Especial mención merecen los Algoritmos Meméticos ( Memetic Algorithms' Home Page by P. Moscato) en donde podemos encontrar una clase amplia de Metaheurísticos basados en poblaciones. Estos métodos incorporan técnicas variadas desde "búsqueda local" hasta operadores de "cruzamiento" con el fin de introducir información y conocimiento en la búsqueda. Uno de los métodos que podemos encontrar bajo esta denominación es "Scatter Search" que comparte también elementos de Tabu Search. BIBLIOGRAFÍA Entre la abundante bibliografía existente podemos considerar el trabajo de Holland (1992), el libro de Davis (1991) en donde se recogen muchos de los aspectos teóricos de la materia, así como el libro de Michalewizc (1992) más orientado a la programación y aspectos computacionales. Podemos conseguir abundante material en la red, por ejemplo el tutorial sobre genéticos de Whitley (1993). Podemos encontrar esquemas de procedimientos genéticos ya implementados en los que incorporar nuestras funciones de evaluación y con poco más, tener un algoritmos genético para nuestro problema. La siguiente lista recoge algunos de estos métodos generales:
  • 5. GAucsd - Schraudolph & Grefenstette (1992) / Dominio público / (132.239.51.3) pub/GAucsd • GENESIS - Grefenstette (1987) / Dominio público / gref@aic.nrl.navy.ilm • OOGA - Davis (1991) / Comercial / 70461.1552@compuserve.com • GENITOR - Whitley (1988) / Dominio público (whitley@cs.colostate.edu) 5.6 Algoritmos Genéticos Los Algoritmos Genéticos (GA) pueden verse como una familia de procedimientos de búsqueda adaptivos. Su nombre se deriva de que están basados en modelos de cambio genético en una población de individuos. Esto es: • noción Darwiniana de aptitud (fitness) que influye en generaciones futuras • apareamiento que produce descendientes en generaciones futuras • operadores genéticos que determinan la configuración genética de los descendientes (tomada de los padres) Un punto clave de estos modelos, es que el proceso de adaptación no se hace cambiando incrementalmente una sola estructura, sino manteniendo una población de estructuras a partir de las cuales se generan nuevas estructuras usando los operadores genéticos. Cada estructura en la población está asociada con una aptitud y los valores se usan en competencia para determinar qué esrtucturas serán usadas para formar nuevas estructuras. Una de sus características es su abilidad de explotar información acumulada acerca de un espacio de búsqueda inicialmente desconocido para guiar la búsqueda subsecuente a subespacios útiles. Su aplicación está enfocada sobretodo a espacios de búsqueda grandes, complejos y poco entendidos. El precio es que se puede necesitar un número grande de muestras para que se tenga suficiente información para guiar muestras subsecuentes a subespacios útiles. En su forma más simple, un GA está orientado a desempeño (i.e., hacer cambios estructurales para mejorar el desempeño). Una de las ideas más importantes es definir estructuras admisibles en el sentido que esten bien definidas y puedan ser evaluadas. Surgen a finales de los 50's, principios de los 60's. Se le reconoce a Holland como el fundador. Diferencias con métodos tradicionales de búsqueda y optimización:
  • 6. trabajan con un conjunto de parámetros codificados y no con los parámetros mismos • inician la búsqueda desde un conjunto de puntos, no de uno solo • usan una función a optimizar en lugar de la derivada u otro conocimiento adicional • usan reglas de transición probabilísticas no determinísticas 5.6.2 Puntos a considerar en GA • Codificación de los parámetros de un problema. Dentro de la codificación a veces se usan codificaciones que tengan la propiedad de que números consecutivos varíen a lo más en un bit (e.g., codificación de Gray). En la codificación se busca idealmente que todos los puntos estén dentro del espacio de solución (sean válidos). Se buscan representaciones que favorescan los esquemas cortos de bajo orden. Pueden existir problemas de interdependencia (problemas para los GA si existe mucha y es preferible usar otro método si es casi nula). • Función de aptitud. Es la base para determinar qué soluciones tienen mayor o menor probabilidad de sobrevivir. Se tiene que tener un balance entre una función que haga diferencias muy grandes (y por lo tanto una convergencia prematura) y diferencias muy pequeñas (y por lo tanto un estancamineto). • Criterios de tamaño de la población. Balance entre una población muy pequeña (y por lo tanto convergencia a máximo local) y una población muy grande (y por lo tanto muchos recursos computacionales). Aunque normalmente se elige una población de tamaño fijo, también existen esquemas de poblaciones de tamaño variable. • Criterio de selección. Individuos son copiadas de acuerdo a su evaluación en la función objetivo (aptitud). Los más aptos tienen mayor probabilidad a contribuir con una o más copias en la siguiente generación (se simula selección natural). Se puede implementar de varias formas, sin embargo, la más común es la de simular una ruleta, donde cada cadena tiene un espacio en ella proporcional a su valor de aptitud.
  • 7. Se pueden seleccionar individuos de la población actual, generar una nueva población y reemplazar con ella completamente a la población que se tenia. También a veces se mantienen los Nmejores individuos de una población a la siguiente (esto parece ser la mejor opción). Otras opciones: (i) Torneo, donde se seleccionan 2 individuos aleatoriamente de la población y se opta por el más apto con una probabilidad predeterminada P (y por el menos apto con probabilidad (1 - P)). (ii) ``Ranqueo'': se ordena la población por aptitud y se asignan probabilidades de selección de acuerdo a su posición (en lugar de su aptitud). • Criterio de paro. Normalmente cuando un porcentaje alto de la población converge a un valor. Si con ese valor no se llega a la medida esperado, entonces se toma una pequeña proporción y se inyecta ``diversidad genética'' (se generan aleatoriamente nuevos individuos), o inclusive se reemplaza completamente la población. • Operadores genéticos o Cruce: tiene una alta probabilidad de ser utilizado y es considerado como el más importante dentro de los AG. Permite la generación de nuevos individuos tomando caracterísitcas de individuos padres. Consiste en seleccionar dos individuos después del proceso de selección, determinar una posición de cruce aleatoria e intercambiar las cadenas entre la posición inicial y el punto de cruce y el punto de cruce y la posición final. Existen diferentes tipos de cruza. (i) Cruza simple: un solo punto de cruza (una máscara de 1's seguida de 0's), (ii) cruza de dos puntos y (iii) cruza uniforme. o Mutación: tiene baja probabilidad de ser utilizado y permite introducir nueva información no presente en la población. Opera sobre un solo individuo, determina una posición y la invierte con cierta probabilidad. Permite salir de máximos locales. o Inversión: tiene baja probabilidad. Incrementa la capacidad de exploración. Permite generar cadenas que serían difíciles de obtener con los otros dos operadores. Opera en un individuo, determina dos posiciones dentro de la cadena e invierte la subcadena. o Existem más...
  • 8. 5.6.4 Temas Recientes • Evolución Lamarckiana: Lamarck (científico del s. XIX) propuso que las expeciencias de un individuo durante su vida pueden afectar genéticamente a sus descendientes. Aunque científicamente esto ha sido rechazado, algunos autores han usado estas ideas dentro de sus algoritmos. • Efecto Baldwin: Baldwin (1896) propuso que si existen cambios en el ambiente, la evolución tiende a favorecer individuos con la capacidad de aprender a adaptarse al nuevo medio ambiente acelerando cambios genéticos entre individuos parecidos. • Crowding: es el fenómeno cuando algún individuo es mucho más apto que los demás y se reproduce rápidamente llenando la problación con sus copias. Esto reduce diversidad y desacelera rápidamente el proceso evolutivo. Se han propuesto varias posibles soluciones cambiando el criterio de selección: o selección por torneo o selección por ranqueo o ``fitness sharing'': reducir la aptitud de un individuo por la prescencia de otros individuos parecidos o sólo combinar individuos muy parecidos entre si, creado ``sub-especies'' • Paralelización: Se han propuesto (por razones naturales) varios esquemas de paralelización: (i) Grano grueso: varias poblaciones (demes) al mismo tiempo con migración entre ellas y (ii) Grano fino: individuo por procesador • Sistemas Autoadaptativos: En la mayoría de los casos, el desempeño de un algoritmo genético depende fuertemente de la representación utilizada y de la selección de la función de aptitud. Un tema de investigación actual es tratar de descubrir automáticamente las primitivas que mejoren el comportamiento de las primitivas originales. • Relación de aprendizaje por refuerzo con sistemas clasificadores • Incorporación de restricciones y optimización multiobjetivo • Análisis y evolución estadística de los cromosomas, por ejemplo, PBIL y BOA. Algoritmos Genéticos Los Algoritmos Genéticos (AG) son métodos adaptativos que pueden ser utilizados para implementar búsquedas y problemas de optimización. Ellos están basados en los procesos genéticos de organismos biológicos, codificando una posible solución a un problema en un "cromosoma" compuesto por una cadena de bits o caracteres. Estos cromosomas representan individuos que son llevados a lo largo de varias generaciones, en forma similar a las poblaciones naturales, evolucionando de acuerdo a los principios de selección natural y "supervivencia" del más apto, descritos por primera vez por Charles Darwin en su libro "Origen de las Especies". Emulando estos procesos,
  • 9. los Algoritmos Genéticos son capaces de "evolucionar" soluciones a problemas del mundo real. En la naturaleza, los individuos compiten entre si por recursos tales como comida, agua y refugio. Adicionalmente, los animales de la misma especie normalmente antagonizan para obtener una pareja. Aquellos individuos que tengan más éxito tendrán probablemente un número mayor de descendientes, por lo tanto, mayores probabilidades de que sus genes sean propagados a lo largo de sucesivas generaciones. La combinación de características de los padres bien adaptados, en un descendiente, puede producir muchas veces un nuevo individuo mucho mejor adaptado que cualquiera de sus padres a las características de su medio ambiente. Los Algoritmos Genéticos utilizan una analogía directa del fenómeno de evolución en la naturaleza. Trabajan con una población de individuos, cada uno representando una posible solución a un problema dado. A cada individuo se le asigna una puntuación de adaptación, dependiendo de que tan buena fue la respuesta al problema. A los más adaptados se les da la oportunidad de reproducirse mediante cruzamientos con otros individuos de la población, produciendo descendientes con características de ambos padres. Los miembros menos adaptados poseen pocas probabilidades de que sean seleccionados para la reproducción, y desaparecen. Una nueva población de posibles soluciones es generada mediante la selección de los mejores individuos de la generación actual, emparejándolos entre ellos para producir un nuevo conjunto de individuos. Esta nueva generación contiene una proporción más alta de las características poseídas por los mejores miembros de la generación anterior. De esta forma, a lo largo de varias generaciones, las características buenas son difundidas a lo largo de la población mezclándose con otras. Favoreciendo el emparejamiento de los individuos mejor adaptados, es posible recorrer las áreas más prometedoras del espacio de búsqueda. Si el Algoritmo Genético ha sido diseñado correctamente, la población convergerá a una solución óptima o casi óptima al problema. Los dos procesos que más contribuyen a la evolución son el crossover y la adaptación basada en la selección / reproducción. La mutación también juega un papel significativo, pero determinar que tan importante sea su rol, continúa siendo una materia de debate (algunos se refieren a ella como un operador en background), ella no debe ser utilizada demasiado, ya que el Algoritmo Genético se puede convertir en una búsqueda al azar, pero su utilización asegura que ningún punto en el espacio de búsqueda tiene probabilidad 0 de ser examinado. En la practica, se puede implementar este modelo, utilizando matrices de bits o caracteres para representar los cromosomas. Operaciones sencillas de bits permiten efectuar el crossover, la mutación y otras operaciones. A pesar de que una gran cantidad de investigación ha sido realizada en cadenas de longitud variable y otras estructuras, la mayor parte del trabajo con AG ha sido enfocado en cadenas de caracteres de longitud fija. Se hace énfasis en este aspecto y en la necesidad de codificar la solución como una cadena de caracteres. Generalmente, los AG son implementados siguiendo el siguiente ciclo: • Generar aleatoriamente la población inicial • Evaluar la adaptación de todos los individuos en la población.
  • 10. Crear una nueva población efectuando operaciones como crossover, reproducción proporcional a la adaptación y mutaciones en los individuos cuya adaptación acaba de ser medida. • Eliminar la antigua población • Iterar utilizando la nueva población, hasta que la población converja. Cada iteración de este bucle es conocida como generación. La primera generación de este proceso es una población de individuos generados al azar. Desde ese punto, los operadores genéticos, en unión con la medida de adaptación, actúan para mejorar la población. Los Algoritmos Genéticos no son la única técnica basada en una analogía de la naturaleza. Por ejemplo, las Redes Neurales están basadas en el comportamiento de las neuronas en el cerebro. Pueden ser utilizadas en una gran variedad de tareas de clasificación, como reconocimiento de patrones o proceso de imágenes. Actualmente está en investigación la utilización de Algoritmos Genéticos para el diseño de Redes Neurales. El poder de los Algoritmos Genéticos proviene del hecho de que la técnica es robusta, y puede manejar exitosamente un amplio rango de problemas, incluso algunos que son difíciles de resolver por otros métodos. Los Algoritmos Genéticos no garantizan que encontrarán la solución óptima al problema, pero son generalmente buenos encontrando soluciones aceptables a problemas en corto tiempo. Donde existan técnicas especializadas para la resolución de problemas, estas superarán fácilmente a los Algoritmos Genéticos tanto en velocidad como en precisión. El campo principal de aplicación es donde no existan este tipo de técnicas. Diferencias entre los Algoritmos Genéticos y los métodos tradicionales. Los Algoritmos Genéticos tienen cuatro diferencias principales con los métodos más utilizados o conocidos de optimización y búsqueda: • Trabajan con una codificación de el conjunto de parámetros, no con estos directamente. • Buscan simultáneamente la solución en una población de puntos, no en uno sólo. • Utilizan la función objetivo (rendimiento), no derivadas u otro conocimiento auxiliar • Utilizan reglas de transición probabilísticas, y no determinísticas. Definiciones básicas Contenido • Codificación • Función de Evaluación • Reproducción
  • 11. Convergencia Codificación Las partes que relacionan un Algoritmo Genético con un problema dado son la codificación y la función de evaluación. Si un problema puede ser representado por un conjunto de parámetros (conocidos como genes), estos pueden ser unidos para formar una cadena de valores (cromosoma), a este proceso se le llama codificación. En genética este conjunto representado por un cromosoma en particular es referido como genotipo, este contiene la información necesaria para construir un organismo, conocido como fenotipo. Estos mismos términos se aplican en Algoritmos Genéticos, por ejemplo, si se desea diseñar un puente, el conjunto de parámetros especificando el diseño es el genotipo, y la construcción final es el fenotipo. La adaptación de cada individuo depende de su fenotipo, el cual se puede inferir de su genotipo, es decir, puede calcularse desde el cromosoma utilizando la función de evaluación. Por ejemplo, si se tiene un problema de maximizar una función de tres variables, F(X,Y,Z), se podría representar cada variable por un número binario de 10 bits, obteniéndose un cromosoma de 30 bits de longitud y 3 genes. Existen varios aspectos relacionados con la codificación de un problema a ser tomados en cuenta en el momento de su realización: • Se debe utilizar el alfabeto más pequeño posible para representar los parámetros, normalmente se utilizan dígitos binarios • Las variables que representan los parámetros del problema deben ser discretizadas para poder representarse con cadenas de bits, hay que utilizar suficiente resolución para asegurar que la salida tiene un nivel de precisión adecuado, se asume que la discretización es representativa de la función objetivo. • La mayor parte de los problemas tratados con Algoritmos Genéticos son no lineales y muchas veces existen relaciones "ocultas" entre las variables que conforman la solución. Esta interacción es referida como epístasis, y es necesario tomar la en cuenta para una representación adecuada del problema. • El tratamiento de los genotipos inválidos debe ser tomado en cuenta para el diseño de la codificación. Supóngase que se necesitan 1200 valores para representar una variable, esto requiere al menos 11 bits, pero estos codifican un total de 2048 posibilidades, "sobrando" 848 patrones de bits no necesarios. A estos patrones se les puede dar un valor cero de adaptación, ser substituidos por un valor real, o eliminar el cromosoma. Función de evaluación Dado un cromosoma, la función de evaluación consiste en asignarle un valor numérico de "adaptación", el cual se supone que es proporcional a la "utilidad" o "habilidad" del individuo representado. En muchas casos, el desarrollo de una función de evaluación involucra hacer una simulación, en otros, la función puede estar basada en el
  • 12. rendimiento y representar sólo una evaluación parcial del problema. Adicionalmente debe ser rápida, ya que hay que aplicarla para cada individuo de cada población en las sucesivas generaciones, por lo cual, gran parte del tiempo de corrida de un algoritmo genético se emplea en la función de evaluación. Convergencia prematura Un problema de los Algoritmos Genéticos dado por una mala formulación del modelo es aquel en el cual los genes de una pocos individuos relativamente bien adaptados, pero no óptimos, pueden rápidamente dominar la población, causando que converja a un máximo local. Una vez que esto ocurre, la habilidad del modelo para buscar mejores soluciones es eliminada completamente, quedando sólo la mutación como vía de buscar nuevas alternativas, y el algoritmo se convierte en una búsqueda lenta al azar. Para evitar este problema, es necesario controlar el número de oportunidades reproductivas de cada individuo, tal que, no obtenga ni muy alta o muy baja probabilidad. El efecto es comprimir el rango de adaptación y prevenir que un individuo "super-adaptado" tome control rápidamente Finalización lenta. Este es un problema contrario al anterior, luego de muchas generaciones, la población habrá convergido, pero no habrá localizado el máximo global. La adaptación promedio será alta y habrá poca diferencia entre el mejor y el individuo promedio, por consiguiente será muy baja la tendencia de la función de adaptación a llevar el algoritmo hacia el máximo. Las mismas técnicas aplicadas en la convergencia prematura son utilizadas en este caso. Reproducción Durante la fase reproductiva de un Algoritmo Genético, se seleccionan individuos de la población siendo recombinados para formar descendientes que formarán la siguiente generación. Los padres son seleccionados al azar, usando un método que favorece a los individuos mejor adaptados y le asigna una probabilidad baja de ser seleccionados a los menos adaptados. Luego de ser escogidos los padres, sus cromosomas se mezclan y cambian, usando crossover y mutación. Las formas básicas de estos operadores son: Crossover: toma dos individuos y corta sus cromosomas en una posición seleccionada al azar, para producir dos segmentos anteriores y dos posteriores, los posteriores se intercambian para obtener dos cromosomas nuevos. (Ver figura 1). Esto es conocido como crossover de un punto.
  • 13. Mutación: es aplicada a cada descendiente individualmente luego de cada crossover. Altera un gen al azar, con una probabilidad muy pequeña (típicamente 0.001). La figura 2. muestra el 5to gen siendo mutado: Convergencia Si el Algoritmo Genético ha sido correctamente implementado, la población evolucionará a lo largo de sucesivas generaciones de forma que la adaptación del mejor y el promedio general se incrementarán hacia el óptimo global. La convergencia es la progresión hacia la uniformidad. Un gen ha convergido cuando el 95% de la población tienen el mismo valor. La población converge cuando todos los genes de cada individuo lo hacen. Por ejemplo la figura 2.3 muestra la convergencia representada por la varianza de una población a lo largo de sucesivas generaciones. Figura 3. Ejemplo de convergencia. Contactarme en:jcontre@iamnet.com Maracaibo 18/11/96 Tipos de Algoritmos Genéticos Contenido • Algoritmos Genéticos Generacionales • Algoritmos Genéticos de Estado Fijo
  • 14. Algoritmos Genéticos Paralelos Existen varios tipos de Algoritmos Genéticos, cada uno basado en una metáfora distinta de la naturaleza. Algoritmos Genéticos Generacionales Se asemeja a la forma de reproducción de los insectos, donde una generación pone huevos, se aleja geográficamente o muere y es substituida por una nueva. En este modelo se realizan cruces en una piscina de individuos, los descendientes son puestos en otra, al final de la fase reproductiva se elimina la generación anterior y se pasa a utilizar la nueva. Este modelo también es conocido como Algoritmo Genético Canónico. Algoritmos Genéticos de Estado Fijo Utilizan el esquema generacional de los mamíferos y otros animales de vida larga, donde coexisten padres y sus descendientes, permitiendo que los hijos sean educados por sus progenitores, pero también que a la larga se genere competencia entre ellos. En este modelo, no sólo se debe seleccionar los dos individuos a ser padres, si no también cuales de la población anterior serán eliminados , para hacer espacio a los descendientes. La diferencia esencial entre el reemplazo generacional y el modelo de estado fijo, es que las estadísticas de la población son recalculadas luego de cada cruce y los nuevos descendientes están disponibles inmediatamente para la reproducción. Esto permite al modelo utilizar las características de un individuo prometedor tan pronto como es creado. Algunos autores dicen que este modelo tiende a evolucionar mucho más rápido que el modelo generacional [BD93], sin embargo investigaciones de Goldberg y Deb (1993) encontraron que las ventajas parecen estar relacionadas con la alta tasa de crecimiento inicial, ellos dicen que los mismos efectos pueden ser obtenidos en rangos de adaptación exponencial o selección por competencia. No encontraron evidencia que este modelo sea mejor que el generacional. Algoritmos Genéticos Paralelos Parte de la metáfora biológica que motivó a utilizar la búsqueda genética consiste en que es inherentemente paralela, donde al evolucionar se recorren simultáneamente muchas soluciones, cada una representada por un individuo de la población. Sin embargo, es muy común en la naturaleza que no sólo sea una población evolucionando, si no varias poblaciones, normalmente aisladas geográficamente, que originan respuestas diferentes a la presión evolutiva. Esto origina dos modelos que toman en cuenta esta variación, y utilizan no una población como los anteriores si no múltiples concurrentemente. Modelos de Islas: Si se tiene una población de individuos, esta se divide en subpoblaciones que evolucionan independientemente como un algoritmo genético normal. Ocasionalmente, se producen migraciones entre ellas, permitiendoles intercambiar material genético.
  • 15. Con la utilización de la migración, este modelo puede explotar las diferencias en las subpoblaciones; esta variación representa una fuente de diversidad genética. Sin embargo, si un gran número de individuos emigran en cada generación, ocurre una mezcla global y se eliminan las diferencias locales, y si la migración es infrecuente, es probable que se produzca convergencia prematura en las subpoblaciones. Modelo Celular: Coloca cada individuo en una matriz, donde cada uno sólo podrá buscar reproducirse con los individuos que tenga a su alrededor (más cerca de casa) escogiendo al azar o al mejor adaptado. El descendiente pasará a ocupar una posición cercana. No hay islas en este modelo, pero hay efectos potenciales similares. Asumiendo que el cruce esta restringido a individuos adyacentes, dos individuos separados por 20 espacios están tan aislados como si estuvieran en dos islas, este tipo de separación es conocido como aislamiento por distancia. Luego de la primera evaluación, los individuos están todavía distribuidos al azar sobre la matriz. Posteriormente, empiezan a emerger zonas con cromosomas y adaptaciones semejantes. La reproducción y selección local crea tendencias evolutivas aisladas, luego de varias generaciones, la competencia local resultará en grupos más grandes de individuos semejantes. Operadores Genéticos Son los diferentes métodos u operaciones que se pueden ejercer sobre una población en los Algoritmos Genéticos. Se dividen en 4 categorías: Crossover, Mutación, Selección y Reemplazo. • Crossover: Consiste en unir en alguna forma los cromosomas de dos padres para formar dos descendientes. Existen diversas variaciones, dependiendo del número de puntos de división a emplear, la forma de ver el cromosoma, etc. • Mutación: Se encarga de modificar en forma aleatoria uno o más genes del cromosoma de un descendiente. • Selección: Proceso que escoge los miembros de la población que serán utilizados para la reproducción. Su meta es dar más oportunidades de selección a los miembros más aptos de la población • Reemplazo: Es el método por el cual se insertan los hijos en la población, por ejemplo mediante la eliminación del individuo más débil o al azar INTRODUCCIÓN. John Holland, desde pequeño, se preguntaba cómo logra la naturaleza, crear seres cada vez más perfectos (aunque, esto no es totalmente cierto, o en todo caso depende de qué entienda uno por perfecto). Lo curioso era que todo se lleva a cabo a base de interacciones locales entre individuos, y entre éstos y lo que les rodea. Fue leyendo un libro escrito por un biólogo evolucionista, R. A. Fisher, titulado "La teoría genética de la selección natural", como comenzó a descubrir los medios de llevar a cabo sus propósitos de comprensión de la naturaleza. De
  • 16. ese libro aprendió que la evolución era una forma de adaptación más potente que el simple aprendizaje. ANATOMÍA DE UN ALGORITMO GENÉTICO SIMPLE. Los algoritmos genéticos son métodos sistemáticos para la resolución de problemas de búsqueda y optimización que aplican a éstos los mismos métodos de la evolución biológica: selección basada en la población, reproducción sexual y mutación. Los algoritmos genéticos son métodos de optimización. En un algoritmo genético, tras parametrizar el problema en una serie de variables (xi,...,xn), se codifican en un cromosoma. Todos los operadores utilizados por un algoritmo genético se aplicarán sobre estos cromosomas, o sobre poblaciones de ellos. Las soluciones codificadas en un cromosoma compiten para ver cuál constituye la mejor solución (aunque no necesariamente la mejor de todas las soluciones posibles). El ambiente, constituido por las otras camaradas de soluciones, ejercerá una presión selectiva sobre la población, de forma que sólo los mejor adaptados (aquellos que resuelvan mejor el problema) sobrevivan o leguen su material genético a las siguientes generaciones, igual que en la evolución de las especies. La diversidad genética se introduce mediante mutaciones y reproducción sexual. Un algoritmo genético se usará para optimizar habitualmente sólo una función, no diversas funciones relacionadas entre sí simultáneamente. Este tipo de optimización se denomina optimización multimodal. Por lo tanto, un algoritmo genético consiste en lo siguiente: hallar de qué parámetros depende el problema, codificarlos en un cromosoma, y aplicar los métodos de la evolución: selección y reproducción sexual con intercambio de información y alteraciones que generan diversidad. Para Jorge Granados, los algoritmos genéticos son programas computacionales cuyo fin es imitar el proceso de "selección natural" que, según la teoría de Darwin, rige el curso de la evolución. El proceso de selección natural descrito de una manera sencilla es: tienes una población, esa población se multiplica por medio del intercambio de genes, de la nueva generación sólo sobreviven los más capaces de adaptarse a su medio ambiente para así formar una nueva población "mejor" que la anterior. Este ciclo se repite a través del tiempo. Sin embargo, hay ocasiones en que se producen mutaciones en los individuos, lo que origina cambios drásticos en las características del individuo, y con esto se evita que se llegue a un "estancamiento", en la evolución. Se dice que el proceso evolutivo es aleatorio en el sentido de que se generan poblaciones cuyas características se parecen a las de sus padres, pero varían aleatoriamente. Luego, estas poblaciones son "probadas" en el ambiente para ver cuál se "adapta" mejor. Sobreviven los que se adapten mejor al medio ambiente, pero no se sabe para qué se quiere adaptar al medio ambiente, es decir, con qué fin. Cuando la gente se enfrentó con problemas que no podían ser solucionados por métodos matemáticos o analíticos, y que la única forma de resolverlos era a través de prueba y error dirigido, es decir, probar dónde se crea que va a mejorar el resultado, se dio cuenta de que este proceso era similar al proceso
  • 17. que seguía la naturaleza, así que se intentó copiar su manera de operar y se crearon los algoritmos genéticos, que en la actualidad sólo son una rama de una extensa materia conocida como computación evolutiva que, en resumen, es la ciencia computacional cuyos algoritmos imitan el proceso evolutivo de la naturaleza. Hace unos meses (25/2/99), el peródico Cyberp@ís publicaba un artículo sobre algoritmos genéticos y su aplicación en la resolución de problemas complejos de logística. El funcionamiento de los algorítmos genéticos seguiría el siguiente proceso: • Primera generación: el sistema genera varios centenares de soluciones posibles. • Evaluación: las que mejor se ajustan a los requerimientos, obtienen más posibilidades de reproducirse. • Segunda generación: los individuos-soluciones de la primera generación se emparejan al azar y producen nuevas soluciones. • Evaluación: los que mejor se ajustan a los requerimientos obtienen más posibilidades de reproducirse. Las peores son descartadas. • Continuación: los pasos 3 y 4 se reiteran docenas de miles de veces. Tras miles de generaciones, el mejor individuo-solución resuelve el problema de manera satisfactoria. No se puede aspirar al óptimo absoluto. Todo este proceso se basa en el tipo de reproducción en el que la dotación genética del nuevo ser tiene dos o más orígenes. La gran ventaja del ordenador es que puede simular decenas de miles de generaciones en minutos. MASSACHUSSETTS INSTITUTE OF TECHNOLOGY Implementación de una red neuronal simple y de los algoritmos genéticos http://lancet.mit.edu/ga/