SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Curso de Computación Evolutivo
                                                                                                                    Xochilt Ramírez García


ALGORITMOS GENETICOS

¿Qué son los algoritmos genéticos?

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema
específico.

En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la inteligencia artificial, la de los
algoritmos genéticos. Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos
hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución
biológica (mutaciones y recombinaciones genéticas), así como también a una Selección de acuerdo con algún criterio, en función del
cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. También es
denominado algoritmos evolutivos, e incluye las estrategias evolutiva, la programación evolutiva y la programación genética.

Un algoritmo genético es un método de búsqueda dirigida basada en probabilidad. Bajo una condición muy débil (que el algoritmo
mantenga elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar que el
algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el
óptimo en la población tiende a 1 (uno).

¿Cómo funcionan?

Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los
operadores genéticos (cruzamiento, mutación), de cómo se realiza la selección y de cómo se decide el
reemplazo de los individuos para formar la nueva población. En general, el pseudocódigo consiste de los
siguientes pasos:

     1.   Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales
          representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro
          de la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte
          de la población posible o al menos evitar la convergencia prematura.
     2.   Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber qué tan "buena" es
          la solución que se está codificando.
     3.   Condición de término El AG se deberá detener cuando se alcance la solución óptima, pero ésta generalmente se
          desconoce, por lo que se deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un
          número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la
          condición de término se hace lo siguiente:
               o Selección. Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán
                    cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser
                    seleccionados.
               o Sobrecruzamiento. El cruzamiento es el principal operador genético, representa la reproducción sexual, opera
                    sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos
                    cromosomas padres.
               o Mutación. Modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de
                    búsqueda que no estaban cubiertas por los individuos de la población actual.
               o Reemplazo. Una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la
                    población de la generación siguiente.




                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                        Xochilt Ramírez García


CODIFICACION DE PROBLEMAS

Cualquier solución potencial a un problema puede ser presentada dando valores a una serie de parámetros. El conjunto de todos los
parámetros (genes en la terminología de Algoritmos Genéticos) se codifica en una cadena de valores denominada cromosoma.

El conjunto de los parámetros representado por un cromosoma particular recibe el nombre de genotipo. El genotipo contiene la
información necesaria para la construcción del organismo, es decir, la solución real al problema, denominada fenotipo. Por ejemplo, en
términos biológicos, la información genética contenida en el ADN de un individuo sería el genotipo, mientras que la expresión de ese
ADN (el propio individuo) sería el fenotipo.

Desde los primeros trabajos de John Holland la codificación suele hacerse mediante valores binarios. Se asigna un determinado
número de bits a cada parámetro y se realiza una discretización de la variable representada por cada gen. El número de bits asignados
dependerá del grado de ajuste que se desee alcanzar. Evidentemente no todos los parámetros tienen porqué estar codificados con el
mismo número de bits. Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo.

La figura muestra un ejemplo de un individuo binario que codifica 3 parámetros.

Sin embargo, también pueden existir representaciones que codifiquen directamente cada
parámetro con un valor entero, real o en punto flotante. A pesar de que se acusa a estas
representaciones de degradar el paralelismo implícito de las representaciones binarias, permiten
el desarrollo de operadores genéticos más específicos al campo de aplicación del Algoritmo
Genético.

OPERADORES GENETICOS CON TSP

El problema del agente viajero, también denominado TSP (Travelling Salesman Problem), consiste en -dada una colección de ciudades-
determinar la gira de mínimo costo, visitando cada ciudad exactamente una vez y volviendo al punto de partida.
Más precisamente, dado un número entero n=3 y dada una matriz C = (cij) 2 M(n; n), con elementos cij enteros no negativos, se trata de
encontrar la permutación cíclica de los enteros de 1 a n que minimiza          .

A lo largo de los años el problema del agente viajero ha ocupado la mente de numerosos investigadores. Los motivos son varios. En
primer lugar, el TSP es un problema muy sencillo de enunciar, pero muy difícil de resolver. En segundo lugar, el TSP es aplicable a una
gran variedad de problemas de planificación. Finalmente, se ha convertido en una especie de problema test, es decir los nuevos
métodos de optimización combinatoria son a menudo aplicados al TSP con objeto de tener una idea de sus potencialidades.
Se expondrán distintas representaciones, así como diferentes operadores de cruce y mutación, que han sido utilizados para resolver el
TSP por medio de Algoritmos Genéticos.


REPRESENTACION BASADA EN TRAYECTORIA

La representación basada en la trayectoria es la representación más natural de una gira. En ella, una gira se representa como una lista
de n ciudades. Si la ciudad i es el j-ésimo elemento de la lista, la ciudad i es la j-ésima ciudad a visitar. Así por ejemplo, la gira 3-2-4-1-
7-5-8-6 se representará como (3 2 4 1 7 5 8 6).
Debido a que los operadores clásicos no funcionan con esta representación, se han definido otros operadores de cruce y mutación,
algunos de los cuales se describen a continuación. Resultados experimentales con dichos operadores de cruce y mutación pueden
consultarse en Larranaga et al. (1999).


OPERADORES DE CRUCE

Basado en una correspondencia parcial (PMX)

El PMX lo introdujeron Goldberg y Lingle (1985). En el, una parte de la ristra representando a uno de los padres, se hace corresponder
con una parte, de igual tamaño, de la ristra del otro padre, intercambiándose la información restante. Por ejemplo, si consideramos los
dos padres siguientes:(1 2 3 4 5 6 7 8) y (3 7 5 1 6 8 2 4); el operador PMX crea las giras descendientes de la siguiente manera. En

                                                                                                                Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                    Xochilt Ramírez García


primer lugar, selecciona con probabilidad uniforme dos puntos de corte a lo largo de las ristras que representan las giras padres.
Supongamos que el primer punto de corte se selecciona entre el tercer y el cuarto elemento de la gira, y el segundo entre el sexto y el
séptimo elemento: (1 2 3 | 4 5 6| 7 8) y (3 7 5 | 1 6 8 | 2 4).

Se considera que existe una correspondencia biunívoca entre los elementos que forman parte de las subristras comprendidas entre los
puntos de corte. En nuestro ejemplo la correspondencia establecida es la siguiente: 4 <--> 1, 5<--> 6 y 6<--> 8. A continuación la
subristra del primer padre se copia en el segundo hijo. De forma análoga, la subristra del segundo padre se copia en el primer hijo,
obteniéndose: descendiente 1: (x x x | 1 6 8 | x x) y descendiente 2: (x x x| 4 5 6 | x x).

En el siguiente paso el descendiente i-ésimo (i=1,2) se rellena copiando los elementos del i-ésimo padre. En el caso de que una ciudad
esté ya presente en el descendiente, se reemplaza teniendo en cuenta la correspondencia anterior. Por ejemplo el primer elemento del
descendiente 1 será un 1 al igual que el primer elemento del primer padre. Sin embargo, al existir un 1 en el descendiente 1 y teniendo
en cuenta la correspondencia 1 <--> 4, se escoge la ciudad 4 como primer elemento del descendiente 1. El segundo, tercer y séptimo
elementos del descendiente 1 pueden escogerse del primer padre. Sin embargo, el último elemento del descendiente 1 deberá ser un 8,
ciudad ya presente. Teniendo en cuenta las correspondencias 8 <-->6, y 6 <--> 5, se escoge en su lugar un 5.
De ahí que descendiente 1: (4 2 3 | 1 6 8 | 7 5). En forma análoga, se obtiene descendiente 2: (3 7 8 | 4 5 6 | 2 1).

Basado en ciclos (CX)

El operador CX (Oliver y col., 1987) crea un descendiente a partir de los padres, de tal manera que cada posición se ocupa por el
correspondiente elemento de uno de los padres. Por ejemplo, considerando los padres (1 2 3 4 5 6 7 8) y
(2 4 6 8 7 5 3 1). Escogemos el primer elemento del descendiente bien del primer elemento del primer padre o del primer elemento del
segundo padre. Por tanto, el primer elemento del descendiente debe ser un 1 o un 2. Supongamos que escogemos el 1. Por el
momento, el descendiente tendrá la siguiente forma: (1 *******).

A continuación debemos de considerar el último elemento del descendiente. Ya que dicho elemento debe ser escogido de uno de los
padres, tan sólo puede tratarse de un 8 o un 1. Al haber sido seleccionado el 1 con anterioridad, se escoge el 8, con lo cual el
descendiente estará constituido por (1 ****** 8).

De forma análoga encontramos que el segundo y cuarto elemento del descendiente deben de ser seleccionados del primer padre, lo
cual resulta (1 2 * 4***8).

Una vez concluido ese ciclo, consideramos a continuación el tercer elemento del descendiente. Dicho elemento puede ser escogido de
cualquiera de los padres. Supongamos que lo seleccionamos del segundo padre. Esto implica que los elementos quinto, sexto y
séptimo del descendiente deben de escogerse del segundo padre, ya que constituyen un ciclo. De ahí que se obtenga el siguiente
descendiente: (1 2 6 4 7 5 3 8).

Basado en el orden (OX1)

El operador OX1 propuesto por Davis (1985), construye descendientes escogiendo una subgira de un padre y preservando el orden
relativo de las ciudades del otro padre. Por ejemplo, considerando las dos giras padres anteriores:
(1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1); y suponiendo que se escoge un primer punto de corte entre el segundo y el tercer elemento y un
segundo punto entre el quinto y el sexto elemento, se tiene (1 2 | 3 4 5 | 6 7 8) y (2 4 | 6 8 7 | 5 3 1).
Los descendientes se crean de la siguiente manera. En primer lugar, las subgiras comprendidas entre los puntos de corte se copian en
los descendientes, obteniéndose (** | 3 4 5|***) y (**| 6 8 7 |***).

A continuación, comenzando por el segundo punto de corte de uno de los padres, el resto de las ciudades se copian en el orden en el
que aparecen en el otro padre, omitiéndose las ciudades ya presentes. Cuando se llega al final de la ristra de la gira padre, se continúa
en su primera posición. En nuestro ejemplo, esto da origen a los siguientes hijos:
(8 7 | 3 4 5 | 1 2 6) y (4 5 | 6 8 7 | 1 2 3).

Basado en el orden (OX2)

Syswerda (1991) sugiere, en conexión con problemas de secuenciación de tareas, el operador OX2, el cual puede considerarse como
una modificación del OX1. El operador OX2 selecciona al azar varias posiciones en el string de uno de los padres, para a continuación
imponer en el otro padre, el orden de los elementos en las posiciones seleccionadas.

                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                    Xochilt Ramírez García


Por ejemplo consideremos los padres (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1); y supongamos que en el segundo padre se seleccionan las
posiciones segunda, tercera y sexta. Los elementos en dichas posiciones son 4, 6 y 5 respectivamente. En el primer padre dichos
elementos se encuentran en las posiciones cuarta, quinta y sexta. El descendiente coincidirá con el primer padre si exceptuamos las
posiciones cuarta, quinta y sexta: (1 2 3***7 8).
A continuación rellenamos los huecos del descendiente teniendo en cuenta el orden con el que aparecen en el segundo padre. Como
resultado obtenemos (1 2 3 4 6 5 7 8). Cambiando el papel entre el primer y segundo padre, y utilizando las mismas posiciones
seleccionadas, obtendremos el segundo descendiente: (2 4 3 8 7 5 6 1).

Basado en la posición (POS)

Syswerda (1991) propone también en conexión con problemas de secuenciación, una segunda modificación del operador OX1: el
operador POS. El operador POS también comienza seleccionando al azar un conjunto de posiciones en las giras padres. Sin embargo
este operador impone, la posición de los elementos seleccionados, en los correspondientes elementos del otro padre. Por ejemplo, si
consideramos los padres (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1);
y suponemos que se seleccionan las posiciones segunda, tercera y sexta, esto nos proporcionará los siguientes descendientes: (1 4 6 2
3 5 7 8) y (4 2 3 8 7 6 5 1).

Basado en la combinación de arcos (ER)

Este operador desarrollado por Whitley y col. (1991), Whitley y Starkweather (1990), utiliza una
conexión de arcos", la cual proporciona para cada ciudad los arcos de los padres que comienzan
o finalizan en ella. Por ejemplo, si consideramos las giras: (1 2 3 4 5 6) y (2 4 3 1 5 6); la
conexión de arcos" correspondiente puede consultarse en la tabla.

El operador ER funciona ciudad ciudades conectadas de acorde con el siguiente algoritmo:

1. Escoger la ciudad inicial de una de las dos giras padres. Esta selección puede realizarse al azar o de acorde con el criterio expuesto
en el paso 4. La ciudad seleccionada se denominará ciudad de referencia.
2. Quitar todas las ocurrencias de la ciudad de referencia de la parte derecha de la tabla de conexión de arcos correspondiente.
3. Si la ciudad de referencia tiene entradas en la lista de arcos se irá al paso 4, en caso contrario al paso 5.
4. Determinar la ciudad que perteneciendo a la lista de ciudades conectadas con la ciudad de referencia tenga el menor número de
entradas en su lista de arcos. Dicha ciudad se convierte en la nueva ciudad de referencia. Los empates se dilucidan al azar. Ir al paso 2.
5. Si no quedan ciudades por visitar, parar el algoritmo. En otro caso, escoger al azar una ciudad no visitada e ir al paso 2.
.
Basado en la combinación del voto (VR)

El operador VR propuesto por Muhlenbein (1989) puede verse como un operador de cruce p-sexual, donde p es un número natural
mayor o igual que 2. Comienza definiendo un umbral, que es un número natural menor o igual que p. A continuación para cada i que
pertenece al conjunto {1; 2,…n} se considera el conjunto de los i-ésimos elementos. Si en dicho conjunto un elemento ocurre con una
frecuencia superior o igual al umbral anteriormente determinado, dicho elemento se copia en el descendiente. Por ejemplo, si se
consideran los padres (p=4): (1 4 3 5 2 6 ); (1 2 4 3 5 6 ); (3 2 1 5 4 6 ); (1 2 3 4 5 6 ) y definimos el umbral en 3, encontramos
(1 2*** 6). El resto de las posiciones se completan con mutaciones. Por tanto, en este ejemplo se podrá obtener como resultado:
(1 2 4 5 3 6).

Basado en la alternancia de las posiciones (AP)

El operador AP ( Larrañaga y col., 1999), crea un descendiente seleccionando ciudades alternativamente del primer y segundo padre
en el orden ocupado por los mismos, omitiéndose aquellas ciudades que ya se encuentran presenten en la gira descendiente. Por
ejemplo, si el primer padre es (1 2 3 4 5 6 7 8) y el segundo padre es (3 7 5 1 6 8 2 4); el operador AP proporciona el siguiente
descendiente: (1 3 2 7 5 4 6 8). Cambiando el orden de los padres se obtiene (3 1 7 2 5 4 6 8).



OPERADORES DE MUTACION

Basado en el desplazamiento (DM)

                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                    Xochilt Ramírez García



El operador DM (Michalewizc, 1997) comienza seleccionando una subristra al azar. Dicha subristra se extrae de la gira, y se inserta en
un lugar aleatorio. Por ejemplo, si consideramos la gira representada por (1 2 3 4 5 6 7 8); y suponemos que se selecciona la subristra
(3 4 5), después de quitar dicha subristra tenemos (1 2 6 7 8). Supongamos que aleatoriamente seleccionamos la ciudad 7 para insertar
a partir de ella la subgira extraída. Esto producirá la gira: (1 2 6 7 3 4 5 8).

Basado en cambios (EM)

El operador EM (Banzhaf, 1990) selecciona al azar dos ciudades en la gira y las cambia. Por ejemplo, si consideremos la gira
representada por (1 2 3 4 5 6 7 8); y suponemos que seleccionamos al azar la tercera y la quinta ciudad. El resultado del operador EM
sobre la gira anterior será (1 2 5 4 3 6 7 8).

Basado en la inserción (ISM)

El operador ISM (Fogel, 1993; Michalewizc, 1992) escoge aleatoriamente una ciudad en la gira, para a continuación extraer dicha
ciudad de la gira, e insertarla en un lugar seleccionado al azar. Por ejemplo, si consideramos de nuevo la gira (1 2 3 4 5 6 7 8); y
suponiendo que se seleccione la ciudad 4, para colocarla a continuación de la ciudad 7, el resultado será (1 2 3 5 6 7 4 8).

Basado en la inversión simple (SIM)

El operador SIM (Holland, 1975; Grefenstette y col., 1985) selecciona aleatoriamente dos puntos de corte en la ristra, para a
continuación revertir la subristra comprendida entre ambos. Por ejemplo, si consideramos la gira (1 2 3 4 5 6 7 8); y suponemos que el
primer punto de corte se escoge entre la segunda y tercera ciudad, y el segundo punto de corte se escoge entre la quinta y la sexta
ciudad, la gira resultante será (1 2 5 4 3 6 7 8).

Basado en la inversión (IVM)

El operador IVM (Fogel, 1988, 1993) es similar al operador DM. Se selecciona al azar una subgira, para a continuación y una vez
extraída la misma, insertarla en orden contrario en una posición seleccionada aleatoriamente.
Por ejemplo, si consideramos la gira (1 2 3 4 5 6 7 8); y se supone que se escoge la subgira (3 4 5), para insertarla a continuación de la
ciudad 7, obtendríamos (1 2 6 7 5 4 3 8).

Basado en el cambio (SM)

Este operador de mutación, introducido por Syswerda (1991), selecciona una subgira al azar y a continuación cambia el orden de las
ciudades de la misma. Por ejemplo, considerando la gira (1 2 3 4 5 6 7 8); y suponiendo que se escoge la subgira (4 5 6 7) podríamos
obtener como resultado (1 2 3 5 6 7 4 8).


REPRESENTACION BINARIA

En una representación binaria de un TSP con n ciudades, cada ciudad se codifica como una subristra de               bits, donde
denota la suma entre la parte entera del logaritmo en base 2 de n y la unidad. Una gira de n ciudades, se representar_a por medio de
una ristra de          bits. Por ejemplo, en un TSP de 6 ciudades, las ciudades se representan por medio de subristras de 3 bits.
Siguiendo la representación binaria definida en la tabla, la gira 1-2-3-4-5-6 representa por medio de (000 001 010 011 100 101).




Representación binaria para un TSP con 6 ciudades.


El cruce clásico

Para mostrar la problemática que surge al aplicar el operador de cruce basado en un punto, se consideran las dos giras siguientes: (000
001 010 011 100 101) y (101 100 011 010 001 000).

                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                     Xochilt Ramírez García



Suponiendo que el punto de cruce escogido al azar se encuentre entre el noveno y el décimo bit, tendríamos:            (000 001 010 j 011
100 101) y (101 100 011 j 010 001 000).

La combinación de las distintas partes da como resultado (000 001 010 010 001 000) y (101 100 011 011 100 101).

La mutación clásica

Al aplicar el operador de mutación, cada bit tiene una probabilidad de ser alterado cercana a cero. Por ejemplo, si consideramos de
nuevo la ristra (000 001 010 011 100 101); y suponemos que se mutan el primer y segundo bit, obtenemos como resultado la ristra:
(110 001 010 011 100 101); la cual no representa una gira.


REPRESENTACION MATRICIAL

Fox y McMahon (1987) representan una gira como una matriz en la cual el elemento (i; j) de la misma vale 1, si y sólo si, en la gira la
ciudad i se visita con anterioridad a la j. En caso contrario dicho elemento valdrá 0.

Una manera de definir el cruce es por medio de un operador que construye un descendiente, O, a partir de dos padres, P1 y P2, de la
manera siguiente:



A continuación, algunos 1-s que tan sólo aparecen en uno de los padres se añaden al descendiente, para finalmente completarse la
matriz de manera que el resultado sea una gira legal. Por ejemplo, las giras padres 2-3-1-4 y 2-4-1- 3 que se representan por medio de
las matrices:




Después de la primera fase dan como resultado:




Esta matriz puede completarse de 6 maneras diferentes, ya que la única restricción en la gira descendiente es que comienza en la
ciudad 2. Una posible gira descendiente es: 2-1-4-3, la cual se representa por medio de:




Seniw (1991) define otra representación en la cual el elemento (i; j) de la matriz vale 1, si y solo si, en la gira la ciudad j se visita
inmediatamente después de la ciudad i.




La primera de ellas representa la gira 2-3-1-4, mientras que la segunda esta representando el conjunto de subgiras       {1-2}, {3-4}.



REPRESENTACION BASADA EN UNA LISTA DE ADYACENCIA



                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                    Xochilt Ramírez García


En esta representación una ruta se representa como una lista de n ciudades. La ciudad j esta en la posición i-esima, si y solo si, la ruta
va de la ciudad i a la j. Así por ejemplo, la lista de adyacencia (3 5 7 6 4 8 2 1) representa la ruta 1-3-7-2-5-4-6-8.Toda ruta tiene una
única representación por medio de una lista de adyacencia. Sin embargo, una lista de adyacencia puede no representar una ruta. Así
por ejemplo, (3 5 7 6 2 4 1 8) representa el siguiente conjunto de sub rutas: 1-3-7; 2-5; 4-6 y 8.




REPRESENTACION ORDINAL


En la representación ordinal -Grefenstette y col.(1985)- una gira se representa como una lista, T, de longitud n, denotando n el número
de ciudades. El i-ésimo elemento de la lista T, es un número entero comprendido entre 1 y n-i+1. Existe también una lista ordenada de
ciudades, L0, que sirve como punto de referencia inicial, y que posteriormente se actualiza. Así por ejemplo, sea la lista ordenada de
ciudades: L0 = (1 2 3 4 5 6 7 8). Sea la gira 1-5-3-2-8-4-7-6. Su representación ordinal consiste en la ristra: T = (1 4 2 1 4 1 2 1).

La cual se interpreta de la siguiente manera:

         El primer número de T es el 1. Esto significa que para conseguir la primera ciudad de la gira, se debe de coger el primer
          elemento de la lista L0 y a continuación quitarlo de dicha lista. La gira parcial es: 1, y la lista ordenada de ciudades
          actualizada será: L1 = (2 3 4 5 6 7 8):
         El segundo elemento de T es el 4. Para conseguir la segunda ciudad de la gira, debemos de escoger el cuarto elemento de la
          lista L1, que es un 5. A continuación quitamos el 5 de la lista L1. La gira parcial es: 1- 5, y la lista ordenada de ciudades
          actualizada será: L2 = (2 3 4 6 7 8):

Si continuamos de manera análoga hasta que quitemos todos los elementos de la lista ordenada de ciudades, obtenemos la gira 1- 5-3-
2-8-4-7-6. La ventaja de la representación ordinal es que el operador de cruce basado en un punto funciona.

REPRESENTACION CON PERMUTACIONES

El objetivo es encontrar el recorrido con n ciudades dadas teniendo una longitud mínima. El espacio de búsqueda para este problema
es muy grande, hay (n-1)! diferentes rutas posibles para n ciudades dadas. Para n=30 hay aproximadamente 1032 diferentes rutas. Se
etiquetan las ciudades como n=1,2…n. Un viaje completo es una permutación de ciudades. Así, para n=4 las rutas (1234) y (3421)
son validas. El punto de inicio de las rutas puede ser cualquiera, entonces (1234), (2341), (3412), (4321) y (4123) es equivalente.

El valor del elemento de ith denota la posición en la secuencia en la que el evento ocurre. Así, para las
cuatro ciudades [ABCD], si tenemos la permutación [3124] la codificación se denota por [CABD].




SELECCIÓN


Los algoritmos de selección serán los encargados de escoger qué individuos van a disponer de oportunidades de reproducirse y cuáles
no. Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otorgar un mayor número de oportunidades de reproducción a
los individuos más aptos. Por lo tanto la selección de un individuo estará relacionada con su valor de ajuste. No se debe sin embargo
eliminar por completo las opciones de reproducción de los individuos menos aptos, pues en pocas generaciones la población se
volvería homogénea.
Una opción bastante común consiste en seleccionar el primero de los individuos participantes en el cruce mediante alguno de los
métodos expuestos a continuación y el segundo de manera aleatoria.

Selección por ruleta


                                                                                                            Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                   Xochilt Ramírez García


Propuesto por DeJong, es posiblemente el método más utilizado desde los orígenes de los Algoritmos Genéticos [Blickle and Thiele,
1995]. A cada uno de los individuos de la población se le asigna una parte proporcional a su ajuste de una ruleta, de tal forma que la
suma de todos los porcentajes sea la unidad. Los mejores individuos recibirán una porción de la ruleta mayor que la recibida por los
peores. Generalmente la población esta ordenada en base al ajuste por lo que las porciones más grandes se encuentran al inicio de la
ruleta. Para seleccionar un individuo basta con generar un número aleatorio del intervalo [0..1] y devolver el individuo situado en esa
posición de la ruleta. Esta posición se suele obtener recorriendo los individuos de la población y acumulando sus proporciones de ruleta
hasta que la suma exceda el valor obtenido.
Es un método muy sencillo, pero ineficiente a medida que aumenta el tamaño de la población (su complejidad es O(n2)). Presenta
además el inconveniente de que el peor individuo puede ser seleccionado más de una vez.

Selección por torneo

La idea principal de este método consiste en realizar la selección en base a comparaciones directas entre individuos. Existen dos
versiones de selección mediante torneo: determinística y probabilística.

En la versión determinística se selecciona al azar un número p de individuos (generalmente se escoge p = 2). De entre los individuos
seleccionados se selecciona el más apto para pasarlo a la siguiente generación. La versión probabilística únicamente se diferencia en
el paso de selección del ganador del torneo. En vez de escoger siempre el mejor se genera un número aleatorio del intervalo [0..1], si
es mayor que un parámetro p (fijado para todo el proceso evolutivo) se escoge el individuo más alto y en caso contrario el menos apto.
Generalmente p toma valores en el rango 0,5 < p · 1.

Variando el número de individuos que participan en cada torneo se puede modificar la presión de selección. Cuando participan muchos
individuos en cada torneo, la presión de selección es elevada y los peores individuos apenas tienen oportunidades de reproducción. Un
caso particular es el elitismo global. Se trata de un torneo en el que participan todos los individuos de la población con lo cual la
selección se vuelve totalmente determinística. Cuando el tamaño del torneo es reducido, la presión de selección disminuye y los peores
individuos tienen más oportunidades de ser seleccionados.

Elegir uno u otro método de selección determinaría la estrategia de búsqueda del Algoritmo Genético. Si se opta por un método con una
alta presión de selección se centra la búsqueda de las soluciones en un entorno próximo a las mejores soluciones actuales. Por el
contrario, optando por una presión de selección menor se deja el camino abierto para la exploración de nuevas regiones del espacio de
búsqueda.
Existen muchos otros algoritmos de selección. Unos buscan mejorar la eficiencia computacional, otros el número de veces que los
mejores o peores individuos pueden ser seleccionados. Algunos de estos algoritmos son muestreo determinístico, escalamiento sigma,
selección por jerarquías, estado uniforme, sobrante estocástico, brecha generacional, etc.

Cruce

Una vez seleccionados los individuos, ´estos son recombinados para producir la descendencia que se insertará en la siguiente
generación. Tal y como se ha indicado anteriormente el cruce es una estrategia de reproducción sexual.

Su importancia para la transición entre generaciones es elevada puesto que las tasas de cruce con las que se suele trabajar rondan el
90%. Los diferentes métodos de cruce podrán operar de dos formas diferentes. Si se opta por una estrategia destructiva los
descendientes se insertarán en la población temporal aunque sus padres tengan mejor ajuste (trabajando con una única población esta
comparación se realizará con los individuos a reemplazar). Por el contrario utilizando una estrategia no destructiva la descendencia
pasará a la siguiente generación únicamente si supera la bondad del ajuste de los padres (o de los individuos a reemplazar). La idea
principal del cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se obtiene una descendencia que
comparta genes de ambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los
padres.

Al compartir las características buenas de dos individuos, la descendencia, o al menos parte de ella, debería tener una bondad mayor
que cada uno de los padres por separado. Si el cruce no agrupa las mejores características en uno de los hijos y la descendencia tiene
un peor ajuste que los padres no significa que se esté dando un paso atrás.

Optando por una estrategia de cruce no destructiva garantizamos que pasen a la siguiente generación los mejores individuos. Si, aún
con un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes de los padres continuarán en la población - aunque
dispersos y posiblemente levemente modificados por la mutación - en posteriores cruces se podrán volver a obtener estos padres,

                                                                                                           Instituto Tecnológico de Tijuana
Curso de Computación Evolutivo
                                                                                                                Xochilt Ramírez García


recuperando así la bondad previamente perdida. Existen multitud de algoritmos de cruce. Sin embargo los más empleados son: Cruce
de 1 punto, Cruce de 2 puntos y Cruce uniforme.


REEMPLAZO

Cuando en vez de trabajar con una población temporal se hace con una única población, sobre la que se realizan las selecciones e
inserciones, deberá tenerse en cuenta que para insertar un nuevo individuo deberá de eliminarse previamente otro de la población.
Existen diferentes métodos de reemplazo:

         Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la población.
         Reemplazo de padres: se obtiene espacio para la nueva descendencia liberando el espacio ocupado por los padres.
         Reemplazo de similares: una vez obtenido el ajuste de la descendencia se selecciona un grupo de individuos (entre seis y
          diez) de la población con un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios.
         Reemplazo de los peores: de entre un porcentaje de los peores individuos de la población se seleccionan aleatoriamente los
          necesarios para dejar sitio a la descendencia.




Referencias




     [1] http://es.wikipedia.org/wiki/Algoritmo_genetico

     [2] http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/ temageneticos.pdf

     [3] Algoritmos genéticos para la resolución de problemas de Programación por Metas Entera. Aplicación a la Economía de la
     Educación.

     [4] Introduction to Evolutionary Computing, A. E. Eiben, J. E. Smith.




                                                                                                        Instituto Tecnológico de Tijuana

Más contenido relacionado

La actualidad más candente

computacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalcomputacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalRenzo Marrufo Cabanillas
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialGabriela_Rodriguez
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosYAn_dy
 
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
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoVane Erraez
 
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
 
Anatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenesAnatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenesLuis Dimas Azocar
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5UNEFA
 
Resolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosResolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosMauro Parra-Miranda
 
Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlabUNIV OF PERU
 

La actualidad más candente (13)

COMPUTACIÓN EVOLUTIVA
COMPUTACIÓN EVOLUTIVACOMPUTACIÓN EVOLUTIVA
COMPUTACIÓN EVOLUTIVA
 
computacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronalcomputacion evolutiva y computacion neuronal
computacion evolutiva y computacion neuronal
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
 
Resumen 2 Unidad
Resumen 2 UnidadResumen 2 Unidad
Resumen 2 Unidad
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
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
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
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_
 
Anatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenesAnatomía de un algoritmo genético en jenes
Anatomía de un algoritmo genético en jenes
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5
 
Resolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticosResolviendo problemas con algoritmos geneticos
Resolviendo problemas con algoritmos geneticos
 
Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlab
 
Desarollo de sofware con algoritmos genéticos
Desarollo de sofware con algoritmos genéticosDesarollo de sofware con algoritmos genéticos
Desarollo de sofware con algoritmos genéticos
 

Similar a A Geneticos

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
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximosAbraham Prado
 
computacion Evolutiva
computacion Evolutivacomputacion Evolutiva
computacion Evolutivaguest590a846
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoRufino meri?
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticosRichar León
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoyenpochih
 
Algotitmos geneticos mundial
Algotitmos geneticos mundialAlgotitmos geneticos mundial
Algotitmos geneticos mundialjhymermartinez
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundialJairo Banda
 
68682 101665-1-pb
68682 101665-1-pb68682 101665-1-pb
68682 101665-1-pbisabel84
 
Algoritmos evolutivos ii
Algoritmos evolutivos iiAlgoritmos evolutivos ii
Algoritmos evolutivos iinando85
 

Similar a A Geneticos (20)

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.
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximos
 
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 - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticos
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Algotitmos geneticos mundial
Algotitmos geneticos mundialAlgotitmos geneticos mundial
Algotitmos geneticos mundial
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundial
 
Algoritmo genetico1
Algoritmo genetico1Algoritmo genetico1
Algoritmo genetico1
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
68682 101665-1-pb
68682 101665-1-pb68682 101665-1-pb
68682 101665-1-pb
 
Algoritmos evolutivos ii
Algoritmos evolutivos iiAlgoritmos evolutivos ii
Algoritmos evolutivos ii
 

Más de Xochilt Ramirez

Comparación todos los_metodos
Comparación todos los_metodosComparación todos los_metodos
Comparación todos los_metodosXochilt Ramirez
 
Comparación todos los_metodos
Comparación todos los_metodosComparación todos los_metodos
Comparación todos los_metodosXochilt Ramirez
 
Reporte opt funciones Real y Binario
Reporte opt funciones Real y BinarioReporte opt funciones Real y Binario
Reporte opt funciones Real y BinarioXochilt Ramirez
 
Reporte comparacion de metodos
Reporte comparacion de metodosReporte comparacion de metodos
Reporte comparacion de metodosXochilt Ramirez
 
Reporte comparacion de metodos
Reporte comparacion de metodosReporte comparacion de metodos
Reporte comparacion de metodosXochilt Ramirez
 
Comportamiento ga binario
Comportamiento ga binarioComportamiento ga binario
Comportamiento ga binarioXochilt Ramirez
 
Optimización con ag binario reporte
Optimización con ag binario reporteOptimización con ag binario reporte
Optimización con ag binario reporteXochilt Ramirez
 
Optimizacion de funciones popov
Optimizacion de funciones popovOptimizacion de funciones popov
Optimizacion de funciones popovXochilt Ramirez
 

Más de Xochilt Ramirez (12)

Gpm
GpmGpm
Gpm
 
Memoria_Con_Memoria
Memoria_Con_MemoriaMemoria_Con_Memoria
Memoria_Con_Memoria
 
Proyecto gpm
Proyecto gpmProyecto gpm
Proyecto gpm
 
Comparación todos los_metodos
Comparación todos los_metodosComparación todos los_metodos
Comparación todos los_metodos
 
Comparación todos los_metodos
Comparación todos los_metodosComparación todos los_metodos
Comparación todos los_metodos
 
Reporte opt funciones Real y Binario
Reporte opt funciones Real y BinarioReporte opt funciones Real y Binario
Reporte opt funciones Real y Binario
 
Demos gplab
Demos gplabDemos gplab
Demos gplab
 
Reporte comparacion de metodos
Reporte comparacion de metodosReporte comparacion de metodos
Reporte comparacion de metodos
 
Reporte comparacion de metodos
Reporte comparacion de metodosReporte comparacion de metodos
Reporte comparacion de metodos
 
Comportamiento ga binario
Comportamiento ga binarioComportamiento ga binario
Comportamiento ga binario
 
Optimización con ag binario reporte
Optimización con ag binario reporteOptimización con ag binario reporte
Optimización con ag binario reporte
 
Optimizacion de funciones popov
Optimizacion de funciones popovOptimizacion de funciones popov
Optimizacion de funciones popov
 

A Geneticos

  • 1. Curso de Computación Evolutivo Xochilt Ramírez García ALGORITMOS GENETICOS ¿Qué son los algoritmos genéticos? Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), así como también a una Selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. También es denominado algoritmos evolutivos, e incluye las estrategias evolutiva, la programación evolutiva y la programación genética. Un algoritmo genético es un método de búsqueda dirigida basada en probabilidad. Bajo una condición muy débil (que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar que el algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el óptimo en la población tiende a 1 (uno). ¿Cómo funcionan? Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los operadores genéticos (cruzamiento, mutación), de cómo se realiza la selección y de cómo se decide el reemplazo de los individuos para formar la nueva población. En general, el pseudocódigo consiste de los siguientes pasos: 1. Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la convergencia prematura. 2. Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber qué tan "buena" es la solución que se está codificando. 3. Condición de término El AG se deberá detener cuando se alcance la solución óptima, pero ésta generalmente se desconoce, por lo que se deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición de término se hace lo siguiente: o Selección. Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados. o Sobrecruzamiento. El cruzamiento es el principal operador genético, representa la reproducción sexual, opera sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos cromosomas padres. o Mutación. Modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la población actual. o Reemplazo. Una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la población de la generación siguiente. Instituto Tecnológico de Tijuana
  • 2. Curso de Computación Evolutivo Xochilt Ramírez García CODIFICACION DE PROBLEMAS Cualquier solución potencial a un problema puede ser presentada dando valores a una serie de parámetros. El conjunto de todos los parámetros (genes en la terminología de Algoritmos Genéticos) se codifica en una cadena de valores denominada cromosoma. El conjunto de los parámetros representado por un cromosoma particular recibe el nombre de genotipo. El genotipo contiene la información necesaria para la construcción del organismo, es decir, la solución real al problema, denominada fenotipo. Por ejemplo, en términos biológicos, la información genética contenida en el ADN de un individuo sería el genotipo, mientras que la expresión de ese ADN (el propio individuo) sería el fenotipo. Desde los primeros trabajos de John Holland la codificación suele hacerse mediante valores binarios. Se asigna un determinado número de bits a cada parámetro y se realiza una discretización de la variable representada por cada gen. El número de bits asignados dependerá del grado de ajuste que se desee alcanzar. Evidentemente no todos los parámetros tienen porqué estar codificados con el mismo número de bits. Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo. La figura muestra un ejemplo de un individuo binario que codifica 3 parámetros. Sin embargo, también pueden existir representaciones que codifiquen directamente cada parámetro con un valor entero, real o en punto flotante. A pesar de que se acusa a estas representaciones de degradar el paralelismo implícito de las representaciones binarias, permiten el desarrollo de operadores genéticos más específicos al campo de aplicación del Algoritmo Genético. OPERADORES GENETICOS CON TSP El problema del agente viajero, también denominado TSP (Travelling Salesman Problem), consiste en -dada una colección de ciudades- determinar la gira de mínimo costo, visitando cada ciudad exactamente una vez y volviendo al punto de partida. Más precisamente, dado un número entero n=3 y dada una matriz C = (cij) 2 M(n; n), con elementos cij enteros no negativos, se trata de encontrar la permutación cíclica de los enteros de 1 a n que minimiza . A lo largo de los años el problema del agente viajero ha ocupado la mente de numerosos investigadores. Los motivos son varios. En primer lugar, el TSP es un problema muy sencillo de enunciar, pero muy difícil de resolver. En segundo lugar, el TSP es aplicable a una gran variedad de problemas de planificación. Finalmente, se ha convertido en una especie de problema test, es decir los nuevos métodos de optimización combinatoria son a menudo aplicados al TSP con objeto de tener una idea de sus potencialidades. Se expondrán distintas representaciones, así como diferentes operadores de cruce y mutación, que han sido utilizados para resolver el TSP por medio de Algoritmos Genéticos. REPRESENTACION BASADA EN TRAYECTORIA La representación basada en la trayectoria es la representación más natural de una gira. En ella, una gira se representa como una lista de n ciudades. Si la ciudad i es el j-ésimo elemento de la lista, la ciudad i es la j-ésima ciudad a visitar. Así por ejemplo, la gira 3-2-4-1- 7-5-8-6 se representará como (3 2 4 1 7 5 8 6). Debido a que los operadores clásicos no funcionan con esta representación, se han definido otros operadores de cruce y mutación, algunos de los cuales se describen a continuación. Resultados experimentales con dichos operadores de cruce y mutación pueden consultarse en Larranaga et al. (1999). OPERADORES DE CRUCE Basado en una correspondencia parcial (PMX) El PMX lo introdujeron Goldberg y Lingle (1985). En el, una parte de la ristra representando a uno de los padres, se hace corresponder con una parte, de igual tamaño, de la ristra del otro padre, intercambiándose la información restante. Por ejemplo, si consideramos los dos padres siguientes:(1 2 3 4 5 6 7 8) y (3 7 5 1 6 8 2 4); el operador PMX crea las giras descendientes de la siguiente manera. En Instituto Tecnológico de Tijuana
  • 3. Curso de Computación Evolutivo Xochilt Ramírez García primer lugar, selecciona con probabilidad uniforme dos puntos de corte a lo largo de las ristras que representan las giras padres. Supongamos que el primer punto de corte se selecciona entre el tercer y el cuarto elemento de la gira, y el segundo entre el sexto y el séptimo elemento: (1 2 3 | 4 5 6| 7 8) y (3 7 5 | 1 6 8 | 2 4). Se considera que existe una correspondencia biunívoca entre los elementos que forman parte de las subristras comprendidas entre los puntos de corte. En nuestro ejemplo la correspondencia establecida es la siguiente: 4 <--> 1, 5<--> 6 y 6<--> 8. A continuación la subristra del primer padre se copia en el segundo hijo. De forma análoga, la subristra del segundo padre se copia en el primer hijo, obteniéndose: descendiente 1: (x x x | 1 6 8 | x x) y descendiente 2: (x x x| 4 5 6 | x x). En el siguiente paso el descendiente i-ésimo (i=1,2) se rellena copiando los elementos del i-ésimo padre. En el caso de que una ciudad esté ya presente en el descendiente, se reemplaza teniendo en cuenta la correspondencia anterior. Por ejemplo el primer elemento del descendiente 1 será un 1 al igual que el primer elemento del primer padre. Sin embargo, al existir un 1 en el descendiente 1 y teniendo en cuenta la correspondencia 1 <--> 4, se escoge la ciudad 4 como primer elemento del descendiente 1. El segundo, tercer y séptimo elementos del descendiente 1 pueden escogerse del primer padre. Sin embargo, el último elemento del descendiente 1 deberá ser un 8, ciudad ya presente. Teniendo en cuenta las correspondencias 8 <-->6, y 6 <--> 5, se escoge en su lugar un 5. De ahí que descendiente 1: (4 2 3 | 1 6 8 | 7 5). En forma análoga, se obtiene descendiente 2: (3 7 8 | 4 5 6 | 2 1). Basado en ciclos (CX) El operador CX (Oliver y col., 1987) crea un descendiente a partir de los padres, de tal manera que cada posición se ocupa por el correspondiente elemento de uno de los padres. Por ejemplo, considerando los padres (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1). Escogemos el primer elemento del descendiente bien del primer elemento del primer padre o del primer elemento del segundo padre. Por tanto, el primer elemento del descendiente debe ser un 1 o un 2. Supongamos que escogemos el 1. Por el momento, el descendiente tendrá la siguiente forma: (1 *******). A continuación debemos de considerar el último elemento del descendiente. Ya que dicho elemento debe ser escogido de uno de los padres, tan sólo puede tratarse de un 8 o un 1. Al haber sido seleccionado el 1 con anterioridad, se escoge el 8, con lo cual el descendiente estará constituido por (1 ****** 8). De forma análoga encontramos que el segundo y cuarto elemento del descendiente deben de ser seleccionados del primer padre, lo cual resulta (1 2 * 4***8). Una vez concluido ese ciclo, consideramos a continuación el tercer elemento del descendiente. Dicho elemento puede ser escogido de cualquiera de los padres. Supongamos que lo seleccionamos del segundo padre. Esto implica que los elementos quinto, sexto y séptimo del descendiente deben de escogerse del segundo padre, ya que constituyen un ciclo. De ahí que se obtenga el siguiente descendiente: (1 2 6 4 7 5 3 8). Basado en el orden (OX1) El operador OX1 propuesto por Davis (1985), construye descendientes escogiendo una subgira de un padre y preservando el orden relativo de las ciudades del otro padre. Por ejemplo, considerando las dos giras padres anteriores: (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1); y suponiendo que se escoge un primer punto de corte entre el segundo y el tercer elemento y un segundo punto entre el quinto y el sexto elemento, se tiene (1 2 | 3 4 5 | 6 7 8) y (2 4 | 6 8 7 | 5 3 1). Los descendientes se crean de la siguiente manera. En primer lugar, las subgiras comprendidas entre los puntos de corte se copian en los descendientes, obteniéndose (** | 3 4 5|***) y (**| 6 8 7 |***). A continuación, comenzando por el segundo punto de corte de uno de los padres, el resto de las ciudades se copian en el orden en el que aparecen en el otro padre, omitiéndose las ciudades ya presentes. Cuando se llega al final de la ristra de la gira padre, se continúa en su primera posición. En nuestro ejemplo, esto da origen a los siguientes hijos: (8 7 | 3 4 5 | 1 2 6) y (4 5 | 6 8 7 | 1 2 3). Basado en el orden (OX2) Syswerda (1991) sugiere, en conexión con problemas de secuenciación de tareas, el operador OX2, el cual puede considerarse como una modificación del OX1. El operador OX2 selecciona al azar varias posiciones en el string de uno de los padres, para a continuación imponer en el otro padre, el orden de los elementos en las posiciones seleccionadas. Instituto Tecnológico de Tijuana
  • 4. Curso de Computación Evolutivo Xochilt Ramírez García Por ejemplo consideremos los padres (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1); y supongamos que en el segundo padre se seleccionan las posiciones segunda, tercera y sexta. Los elementos en dichas posiciones son 4, 6 y 5 respectivamente. En el primer padre dichos elementos se encuentran en las posiciones cuarta, quinta y sexta. El descendiente coincidirá con el primer padre si exceptuamos las posiciones cuarta, quinta y sexta: (1 2 3***7 8). A continuación rellenamos los huecos del descendiente teniendo en cuenta el orden con el que aparecen en el segundo padre. Como resultado obtenemos (1 2 3 4 6 5 7 8). Cambiando el papel entre el primer y segundo padre, y utilizando las mismas posiciones seleccionadas, obtendremos el segundo descendiente: (2 4 3 8 7 5 6 1). Basado en la posición (POS) Syswerda (1991) propone también en conexión con problemas de secuenciación, una segunda modificación del operador OX1: el operador POS. El operador POS también comienza seleccionando al azar un conjunto de posiciones en las giras padres. Sin embargo este operador impone, la posición de los elementos seleccionados, en los correspondientes elementos del otro padre. Por ejemplo, si consideramos los padres (1 2 3 4 5 6 7 8) y (2 4 6 8 7 5 3 1); y suponemos que se seleccionan las posiciones segunda, tercera y sexta, esto nos proporcionará los siguientes descendientes: (1 4 6 2 3 5 7 8) y (4 2 3 8 7 6 5 1). Basado en la combinación de arcos (ER) Este operador desarrollado por Whitley y col. (1991), Whitley y Starkweather (1990), utiliza una conexión de arcos", la cual proporciona para cada ciudad los arcos de los padres que comienzan o finalizan en ella. Por ejemplo, si consideramos las giras: (1 2 3 4 5 6) y (2 4 3 1 5 6); la conexión de arcos" correspondiente puede consultarse en la tabla. El operador ER funciona ciudad ciudades conectadas de acorde con el siguiente algoritmo: 1. Escoger la ciudad inicial de una de las dos giras padres. Esta selección puede realizarse al azar o de acorde con el criterio expuesto en el paso 4. La ciudad seleccionada se denominará ciudad de referencia. 2. Quitar todas las ocurrencias de la ciudad de referencia de la parte derecha de la tabla de conexión de arcos correspondiente. 3. Si la ciudad de referencia tiene entradas en la lista de arcos se irá al paso 4, en caso contrario al paso 5. 4. Determinar la ciudad que perteneciendo a la lista de ciudades conectadas con la ciudad de referencia tenga el menor número de entradas en su lista de arcos. Dicha ciudad se convierte en la nueva ciudad de referencia. Los empates se dilucidan al azar. Ir al paso 2. 5. Si no quedan ciudades por visitar, parar el algoritmo. En otro caso, escoger al azar una ciudad no visitada e ir al paso 2. . Basado en la combinación del voto (VR) El operador VR propuesto por Muhlenbein (1989) puede verse como un operador de cruce p-sexual, donde p es un número natural mayor o igual que 2. Comienza definiendo un umbral, que es un número natural menor o igual que p. A continuación para cada i que pertenece al conjunto {1; 2,…n} se considera el conjunto de los i-ésimos elementos. Si en dicho conjunto un elemento ocurre con una frecuencia superior o igual al umbral anteriormente determinado, dicho elemento se copia en el descendiente. Por ejemplo, si se consideran los padres (p=4): (1 4 3 5 2 6 ); (1 2 4 3 5 6 ); (3 2 1 5 4 6 ); (1 2 3 4 5 6 ) y definimos el umbral en 3, encontramos (1 2*** 6). El resto de las posiciones se completan con mutaciones. Por tanto, en este ejemplo se podrá obtener como resultado: (1 2 4 5 3 6). Basado en la alternancia de las posiciones (AP) El operador AP ( Larrañaga y col., 1999), crea un descendiente seleccionando ciudades alternativamente del primer y segundo padre en el orden ocupado por los mismos, omitiéndose aquellas ciudades que ya se encuentran presenten en la gira descendiente. Por ejemplo, si el primer padre es (1 2 3 4 5 6 7 8) y el segundo padre es (3 7 5 1 6 8 2 4); el operador AP proporciona el siguiente descendiente: (1 3 2 7 5 4 6 8). Cambiando el orden de los padres se obtiene (3 1 7 2 5 4 6 8). OPERADORES DE MUTACION Basado en el desplazamiento (DM) Instituto Tecnológico de Tijuana
  • 5. Curso de Computación Evolutivo Xochilt Ramírez García El operador DM (Michalewizc, 1997) comienza seleccionando una subristra al azar. Dicha subristra se extrae de la gira, y se inserta en un lugar aleatorio. Por ejemplo, si consideramos la gira representada por (1 2 3 4 5 6 7 8); y suponemos que se selecciona la subristra (3 4 5), después de quitar dicha subristra tenemos (1 2 6 7 8). Supongamos que aleatoriamente seleccionamos la ciudad 7 para insertar a partir de ella la subgira extraída. Esto producirá la gira: (1 2 6 7 3 4 5 8). Basado en cambios (EM) El operador EM (Banzhaf, 1990) selecciona al azar dos ciudades en la gira y las cambia. Por ejemplo, si consideremos la gira representada por (1 2 3 4 5 6 7 8); y suponemos que seleccionamos al azar la tercera y la quinta ciudad. El resultado del operador EM sobre la gira anterior será (1 2 5 4 3 6 7 8). Basado en la inserción (ISM) El operador ISM (Fogel, 1993; Michalewizc, 1992) escoge aleatoriamente una ciudad en la gira, para a continuación extraer dicha ciudad de la gira, e insertarla en un lugar seleccionado al azar. Por ejemplo, si consideramos de nuevo la gira (1 2 3 4 5 6 7 8); y suponiendo que se seleccione la ciudad 4, para colocarla a continuación de la ciudad 7, el resultado será (1 2 3 5 6 7 4 8). Basado en la inversión simple (SIM) El operador SIM (Holland, 1975; Grefenstette y col., 1985) selecciona aleatoriamente dos puntos de corte en la ristra, para a continuación revertir la subristra comprendida entre ambos. Por ejemplo, si consideramos la gira (1 2 3 4 5 6 7 8); y suponemos que el primer punto de corte se escoge entre la segunda y tercera ciudad, y el segundo punto de corte se escoge entre la quinta y la sexta ciudad, la gira resultante será (1 2 5 4 3 6 7 8). Basado en la inversión (IVM) El operador IVM (Fogel, 1988, 1993) es similar al operador DM. Se selecciona al azar una subgira, para a continuación y una vez extraída la misma, insertarla en orden contrario en una posición seleccionada aleatoriamente. Por ejemplo, si consideramos la gira (1 2 3 4 5 6 7 8); y se supone que se escoge la subgira (3 4 5), para insertarla a continuación de la ciudad 7, obtendríamos (1 2 6 7 5 4 3 8). Basado en el cambio (SM) Este operador de mutación, introducido por Syswerda (1991), selecciona una subgira al azar y a continuación cambia el orden de las ciudades de la misma. Por ejemplo, considerando la gira (1 2 3 4 5 6 7 8); y suponiendo que se escoge la subgira (4 5 6 7) podríamos obtener como resultado (1 2 3 5 6 7 4 8). REPRESENTACION BINARIA En una representación binaria de un TSP con n ciudades, cada ciudad se codifica como una subristra de bits, donde denota la suma entre la parte entera del logaritmo en base 2 de n y la unidad. Una gira de n ciudades, se representar_a por medio de una ristra de bits. Por ejemplo, en un TSP de 6 ciudades, las ciudades se representan por medio de subristras de 3 bits. Siguiendo la representación binaria definida en la tabla, la gira 1-2-3-4-5-6 representa por medio de (000 001 010 011 100 101). Representación binaria para un TSP con 6 ciudades. El cruce clásico Para mostrar la problemática que surge al aplicar el operador de cruce basado en un punto, se consideran las dos giras siguientes: (000 001 010 011 100 101) y (101 100 011 010 001 000). Instituto Tecnológico de Tijuana
  • 6. Curso de Computación Evolutivo Xochilt Ramírez García Suponiendo que el punto de cruce escogido al azar se encuentre entre el noveno y el décimo bit, tendríamos: (000 001 010 j 011 100 101) y (101 100 011 j 010 001 000). La combinación de las distintas partes da como resultado (000 001 010 010 001 000) y (101 100 011 011 100 101). La mutación clásica Al aplicar el operador de mutación, cada bit tiene una probabilidad de ser alterado cercana a cero. Por ejemplo, si consideramos de nuevo la ristra (000 001 010 011 100 101); y suponemos que se mutan el primer y segundo bit, obtenemos como resultado la ristra: (110 001 010 011 100 101); la cual no representa una gira. REPRESENTACION MATRICIAL Fox y McMahon (1987) representan una gira como una matriz en la cual el elemento (i; j) de la misma vale 1, si y sólo si, en la gira la ciudad i se visita con anterioridad a la j. En caso contrario dicho elemento valdrá 0. Una manera de definir el cruce es por medio de un operador que construye un descendiente, O, a partir de dos padres, P1 y P2, de la manera siguiente: A continuación, algunos 1-s que tan sólo aparecen en uno de los padres se añaden al descendiente, para finalmente completarse la matriz de manera que el resultado sea una gira legal. Por ejemplo, las giras padres 2-3-1-4 y 2-4-1- 3 que se representan por medio de las matrices: Después de la primera fase dan como resultado: Esta matriz puede completarse de 6 maneras diferentes, ya que la única restricción en la gira descendiente es que comienza en la ciudad 2. Una posible gira descendiente es: 2-1-4-3, la cual se representa por medio de: Seniw (1991) define otra representación en la cual el elemento (i; j) de la matriz vale 1, si y solo si, en la gira la ciudad j se visita inmediatamente después de la ciudad i. La primera de ellas representa la gira 2-3-1-4, mientras que la segunda esta representando el conjunto de subgiras {1-2}, {3-4}. REPRESENTACION BASADA EN UNA LISTA DE ADYACENCIA Instituto Tecnológico de Tijuana
  • 7. Curso de Computación Evolutivo Xochilt Ramírez García En esta representación una ruta se representa como una lista de n ciudades. La ciudad j esta en la posición i-esima, si y solo si, la ruta va de la ciudad i a la j. Así por ejemplo, la lista de adyacencia (3 5 7 6 4 8 2 1) representa la ruta 1-3-7-2-5-4-6-8.Toda ruta tiene una única representación por medio de una lista de adyacencia. Sin embargo, una lista de adyacencia puede no representar una ruta. Así por ejemplo, (3 5 7 6 2 4 1 8) representa el siguiente conjunto de sub rutas: 1-3-7; 2-5; 4-6 y 8. REPRESENTACION ORDINAL En la representación ordinal -Grefenstette y col.(1985)- una gira se representa como una lista, T, de longitud n, denotando n el número de ciudades. El i-ésimo elemento de la lista T, es un número entero comprendido entre 1 y n-i+1. Existe también una lista ordenada de ciudades, L0, que sirve como punto de referencia inicial, y que posteriormente se actualiza. Así por ejemplo, sea la lista ordenada de ciudades: L0 = (1 2 3 4 5 6 7 8). Sea la gira 1-5-3-2-8-4-7-6. Su representación ordinal consiste en la ristra: T = (1 4 2 1 4 1 2 1). La cual se interpreta de la siguiente manera:  El primer número de T es el 1. Esto significa que para conseguir la primera ciudad de la gira, se debe de coger el primer elemento de la lista L0 y a continuación quitarlo de dicha lista. La gira parcial es: 1, y la lista ordenada de ciudades actualizada será: L1 = (2 3 4 5 6 7 8):  El segundo elemento de T es el 4. Para conseguir la segunda ciudad de la gira, debemos de escoger el cuarto elemento de la lista L1, que es un 5. A continuación quitamos el 5 de la lista L1. La gira parcial es: 1- 5, y la lista ordenada de ciudades actualizada será: L2 = (2 3 4 6 7 8): Si continuamos de manera análoga hasta que quitemos todos los elementos de la lista ordenada de ciudades, obtenemos la gira 1- 5-3- 2-8-4-7-6. La ventaja de la representación ordinal es que el operador de cruce basado en un punto funciona. REPRESENTACION CON PERMUTACIONES El objetivo es encontrar el recorrido con n ciudades dadas teniendo una longitud mínima. El espacio de búsqueda para este problema es muy grande, hay (n-1)! diferentes rutas posibles para n ciudades dadas. Para n=30 hay aproximadamente 1032 diferentes rutas. Se etiquetan las ciudades como n=1,2…n. Un viaje completo es una permutación de ciudades. Así, para n=4 las rutas (1234) y (3421) son validas. El punto de inicio de las rutas puede ser cualquiera, entonces (1234), (2341), (3412), (4321) y (4123) es equivalente. El valor del elemento de ith denota la posición en la secuencia en la que el evento ocurre. Así, para las cuatro ciudades [ABCD], si tenemos la permutación [3124] la codificación se denota por [CABD]. SELECCIÓN Los algoritmos de selección serán los encargados de escoger qué individuos van a disponer de oportunidades de reproducirse y cuáles no. Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otorgar un mayor número de oportunidades de reproducción a los individuos más aptos. Por lo tanto la selección de un individuo estará relacionada con su valor de ajuste. No se debe sin embargo eliminar por completo las opciones de reproducción de los individuos menos aptos, pues en pocas generaciones la población se volvería homogénea. Una opción bastante común consiste en seleccionar el primero de los individuos participantes en el cruce mediante alguno de los métodos expuestos a continuación y el segundo de manera aleatoria. Selección por ruleta Instituto Tecnológico de Tijuana
  • 8. Curso de Computación Evolutivo Xochilt Ramírez García Propuesto por DeJong, es posiblemente el método más utilizado desde los orígenes de los Algoritmos Genéticos [Blickle and Thiele, 1995]. A cada uno de los individuos de la población se le asigna una parte proporcional a su ajuste de una ruleta, de tal forma que la suma de todos los porcentajes sea la unidad. Los mejores individuos recibirán una porción de la ruleta mayor que la recibida por los peores. Generalmente la población esta ordenada en base al ajuste por lo que las porciones más grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo basta con generar un número aleatorio del intervalo [0..1] y devolver el individuo situado en esa posición de la ruleta. Esta posición se suele obtener recorriendo los individuos de la población y acumulando sus proporciones de ruleta hasta que la suma exceda el valor obtenido. Es un método muy sencillo, pero ineficiente a medida que aumenta el tamaño de la población (su complejidad es O(n2)). Presenta además el inconveniente de que el peor individuo puede ser seleccionado más de una vez. Selección por torneo La idea principal de este método consiste en realizar la selección en base a comparaciones directas entre individuos. Existen dos versiones de selección mediante torneo: determinística y probabilística. En la versión determinística se selecciona al azar un número p de individuos (generalmente se escoge p = 2). De entre los individuos seleccionados se selecciona el más apto para pasarlo a la siguiente generación. La versión probabilística únicamente se diferencia en el paso de selección del ganador del torneo. En vez de escoger siempre el mejor se genera un número aleatorio del intervalo [0..1], si es mayor que un parámetro p (fijado para todo el proceso evolutivo) se escoge el individuo más alto y en caso contrario el menos apto. Generalmente p toma valores en el rango 0,5 < p · 1. Variando el número de individuos que participan en cada torneo se puede modificar la presión de selección. Cuando participan muchos individuos en cada torneo, la presión de selección es elevada y los peores individuos apenas tienen oportunidades de reproducción. Un caso particular es el elitismo global. Se trata de un torneo en el que participan todos los individuos de la población con lo cual la selección se vuelve totalmente determinística. Cuando el tamaño del torneo es reducido, la presión de selección disminuye y los peores individuos tienen más oportunidades de ser seleccionados. Elegir uno u otro método de selección determinaría la estrategia de búsqueda del Algoritmo Genético. Si se opta por un método con una alta presión de selección se centra la búsqueda de las soluciones en un entorno próximo a las mejores soluciones actuales. Por el contrario, optando por una presión de selección menor se deja el camino abierto para la exploración de nuevas regiones del espacio de búsqueda. Existen muchos otros algoritmos de selección. Unos buscan mejorar la eficiencia computacional, otros el número de veces que los mejores o peores individuos pueden ser seleccionados. Algunos de estos algoritmos son muestreo determinístico, escalamiento sigma, selección por jerarquías, estado uniforme, sobrante estocástico, brecha generacional, etc. Cruce Una vez seleccionados los individuos, ´estos son recombinados para producir la descendencia que se insertará en la siguiente generación. Tal y como se ha indicado anteriormente el cruce es una estrategia de reproducción sexual. Su importancia para la transición entre generaciones es elevada puesto que las tasas de cruce con las que se suele trabajar rondan el 90%. Los diferentes métodos de cruce podrán operar de dos formas diferentes. Si se opta por una estrategia destructiva los descendientes se insertarán en la población temporal aunque sus padres tengan mejor ajuste (trabajando con una única población esta comparación se realizará con los individuos a reemplazar). Por el contrario utilizando una estrategia no destructiva la descendencia pasará a la siguiente generación únicamente si supera la bondad del ajuste de los padres (o de los individuos a reemplazar). La idea principal del cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se obtiene una descendencia que comparta genes de ambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los padres. Al compartir las características buenas de dos individuos, la descendencia, o al menos parte de ella, debería tener una bondad mayor que cada uno de los padres por separado. Si el cruce no agrupa las mejores características en uno de los hijos y la descendencia tiene un peor ajuste que los padres no significa que se esté dando un paso atrás. Optando por una estrategia de cruce no destructiva garantizamos que pasen a la siguiente generación los mejores individuos. Si, aún con un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes de los padres continuarán en la población - aunque dispersos y posiblemente levemente modificados por la mutación - en posteriores cruces se podrán volver a obtener estos padres, Instituto Tecnológico de Tijuana
  • 9. Curso de Computación Evolutivo Xochilt Ramírez García recuperando así la bondad previamente perdida. Existen multitud de algoritmos de cruce. Sin embargo los más empleados son: Cruce de 1 punto, Cruce de 2 puntos y Cruce uniforme. REEMPLAZO Cuando en vez de trabajar con una población temporal se hace con una única población, sobre la que se realizan las selecciones e inserciones, deberá tenerse en cuenta que para insertar un nuevo individuo deberá de eliminarse previamente otro de la población. Existen diferentes métodos de reemplazo:  Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la población.  Reemplazo de padres: se obtiene espacio para la nueva descendencia liberando el espacio ocupado por los padres.  Reemplazo de similares: una vez obtenido el ajuste de la descendencia se selecciona un grupo de individuos (entre seis y diez) de la población con un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios.  Reemplazo de los peores: de entre un porcentaje de los peores individuos de la población se seleccionan aleatoriamente los necesarios para dejar sitio a la descendencia. Referencias [1] http://es.wikipedia.org/wiki/Algoritmo_genetico [2] http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/ temageneticos.pdf [3] Algoritmos genéticos para la resolución de problemas de Programación por Metas Entera. Aplicación a la Economía de la Educación. [4] Introduction to Evolutionary Computing, A. E. Eiben, J. E. Smith. Instituto Tecnológico de Tijuana