• No se han encontrado resultados

Arquitectura de un algoritmo gen´ etico

2. Redes Neuronales Artificiales

3.1.3. Arquitectura de un algoritmo gen´ etico

El esquema general de un algoritmo gen´etico es el expuesto en la figura3.4, aunque dependiendo del problema y la implementaci´on puede variar la forma en la que se seleccionan los individuos (es com´un generar toda una nueva poblaci´on de descendientes en una iteraci´on y tomarla como nue- va poblaci´on de partida para seleccionar). Los bloques caracter´ısticos del algoritmo son los siguientes:

que servir´an de punto de partida para el proceso evolutivo.

Selecci´on. Toma la poblaci´on y realiza una selecci´on de n individuos (com´unmente 2). Estos individuos no se suelen elegir de forma arbi- traria, sino que se eligen de tal forma que exista una relaci´on directa entre la aptitud3del individuo y la probabilidad de ser escogido.

Cruce. Toma los n individuos y, si se supera una determinada pro-

babilidad (que puede venir determinada por las caracter´ısticas de los individuos), los cruza obteniendo como resultado de 1 a n individuos nuevos con caracter´ısticas heredadas de los anteriores genes. Lo m´as com´un suele ser tomar 2 individuos y obtener 2 descendientes.

Mutaci´on. Para cada individuo resultante del cruce existe una proba-

bilidad de que mute y se obtenga un individuo parcial o totalmente distinto.

Parada. Indica cual es la condici´on de parada del algoritmo (e.g. 1000 pasos del algoritmo, encontrada una soluci´on aceptable, . . . ).

El resto del apartado desarrolla cada uno de estos bloques por separado.

3.1.3.1. Generaci´on de la poblaci´on inicial

Este bloque ser´a el encargado de generar una poblaci´on inicial de indivi- duos que representen posibles soluciones al problema a resolver. Se genera un conjunto de individuos (normalmente soluciones al problema) de forma aleatoria para que de este modo exista suficiente variaci´on “gen´etica” que mezclar en sucesivos pasos del algoritmo.

El tama˜no de la poblaci´on (que generalmente se hereda en cada ciclo del algoritmo evolutivo) es decisivo en la eficiencia del algoritmo. Un tama˜no de poblaci´on escaso puede no generar la suficiente diversidad gen´etica para

3El uso de los t´erminos aptitud y fitness (su nombre en ingl´es) se usar´an indistintamente

a lo largo del cap´ıtulo para referirse a la calidad de la soluci´on en el entorno que es el problema.

poder llegar a una soluci´on ´optima, mientras que una poblaci´on demasiado grande puede hacer el algoritmo inviable por el consumo de recursos.

3.1.3.2. Selecci´on de individuos

En la selecci´on de individuos un operador se encarga de tomar individuos de la poblaci´on para cederlos al operador de cruce. El objetivo es seleccio- nar de forma eficiente los mejores individuos posibles que ir´an surgiendo de las sucesivas generaciones.

Sin embargo, la selecci´on de los individuos no es un operador trivial. Es el primer paso para garantizar la diversidad gen´etica de sucesivas gene- raciones de poblaciones de individuos. Por ejemplo, seleccionar siempre al mejor individuo implica que en pocas generaciones los individuos de la misma acaben siendo todos pr´acticamente iguales y por tanto eliminando toda posibilidad de explorar nuevas posibles soluciones.

Por ello a lo largo de la literatura existen distintas aproximaciones para este operador. Algunos de ´estos son los siguientes:

Selecci´on proporcional [Holland, 1975]. M´etodo original propuesto por Holland donde los individuos reciben una probabilidad propor- cional a su aptitud, como por ejemplo la frecuencia relativa de los valores de fitness. Su principal desventaja es que en poblaciones gran- des los individuos m´as aptos no destacan suficiente sobre individuos de aptitud m´as baja y por tanto la convergencia hacia una soluci´on se hace mucho m´as lenta.

Selecci´on lineal [Whitley et al. , 1989]. Una de las primeras grandes propuestas de algoritmo de selecci´on. Fue introducido por Whitley et al. Se toman los n individuos de la poblaci´on y se ordenan de mayor a menor fitness. Una vez hecho esto, a cada individuo de la selecci´on se le asigna una probabilidad en funci´on de la posici´on i que ocupan en la lista. La ecuaci´on3.1es la presentada por el autor:

si = 1 N · (λ − + (λ+− λ−) · i − 1 N − 1) (3.1)

Donde λ− N y

λ+

N son las probabilidades de ser escogidos menor y mayor

de los individuos. Este m´etodo asigna probabilidades en funci´on de su posici´on y no de su aptitud. Sin embargo, con poblaciones grandes el m´etodo sufre los mismos problemas que lo de la selecci´on propor- cional.

Selecci´on exponencial. Similar a la selecci´on lineal pero donde la probabilidad relativa de cada individuo de cara a la selecci´on es au- mentada de forma exponencial seg´un aumenta la aptitud del indivi- duo. La ecuaci´on3.2muestra f´ormula en funci´on de la posici´on.

si =

α − 1 αN − 1· α

N −i (3.2)

Siendo 0 < α < 1 el factor “exponencial” (cuanto m´as cercano a 1, menor es el factor de separaci´on entre elementos de aptitud alta). De esta forma es m´as probable que en la selecci´on lineal la selecci´on de individuos aptos.

Selecci´on por torneo [Blickle et al. , 1995]. Propuesta por T. Blickle el al., la selecci´on se realiza escogiendo al azar n individuos de la poblaci´on y tomando el de mayor fitness. En el caso del operador de cruce, si son necesarios i individuos para el mismo (normalmente 2), se realizar´an i selecciones distintas tomando el mejor individuo de cada una. La ventaja de este tipo de selecci´on es que compara individuos y escoge el mejor, de tal manera que la selection pressure4

asociada al proceso de selecci´on disminuye.

Selecci´on sesgada [Schlierkamp-Voosen, 1993]. Tambi´en llamada se- lecci´on truncada, aplica un operador de selecci´on sobre una muestra previa de los m mejores individuos de una poblaci´on de n elementos. Fue propuesto por Schlierkamp-Voosen en 1993.

4Selection pressure (SP) es una medida de la influencia del fitness del individuo en el

proceso de selecci´on, de tal forma que una SP fuerte favorece en exceso a los individuosas aptos mientras que una SP d´ebil no discrimina tanto a los miembros d´ebiles de la poblaci´on

3.1.3.3. Operadores de cruce

Los operadores de cruce se encargan de la creaci´on de nuevos individuos a partir de los anteriormente seleccionados. Son operadores altamente de- pendientes del individuo y del problema.

(a) Cruce por un ´unico punto de pivote.

(b) Cruce por dos puntos

de pivote.

(c) Cruce por un punto

asim´etrico.

Figura 3.5: Ejemplos de algunos operadores de cruce cl´asicos.

En el caso del individuo, el algoritmo ha de ser capaz de leer y escribir el material gen´etico de los individuos, es decir, si la representaci´on del individuo es una lista con una determinada estructura, el operador de cruce ha de saber c´omo cruzar dos listas para generar como soluci´on una nueva lista con la misma estructura que las originales.

En el caso del problema, hemos de asegurarnos de que los individuos gene- rados son aceptables dentro del entorno en el que est´an definidos, esto es, son soluciones aceptables para el problema. En caso contrario, en el mejor de los casos puede darse una reducci´on de la variedad gen´etica de la pobla- ci´on y en el peor, una parada completa del algoritmo por no quedar ning´un individuo aceptable como soluci´on del problema.

A´un siendo dependientes, existen algunos operadores cl´asicos usados a lo largo de la literatura. En la figura 3.5 se ilustran algunos de ellos. En el apartado dedicado a la programaci´on gen´etica (3.1.4) existen m´as ejemplos de operadores de cruce, en este caso para cromosomas de tipo ´arbol.

3.1.3.4. Operadores de mutaci´on

Al igual que su hom´ologo biol´ogico, la mutaci´on es un proceso por el cual se cambia ligeramente un individuo. De esta manera se le da a la poblaci´on

la oportunidad de crear variedad gen´etica (y por tanto de explorar diferen- tes soluciones al problema) que en otros casos hubiese sido muy dif´ıcil o incluso imposible obtener.

(a) Intercambio de un ´uni- co cromosoma.

(b) Generaci´on de nuevos cromosomas.

(c) Cambio aleatorio en

alelos de genes.

Figura 3.6: Operadores de mutaci´on para cromosomas de tipo “lista’.’

Al igual que con el caso de los operadores de cruce, los operadores de mu- taci´on son tambi´en dependientes de la representaci´on del individuo y del problema por exactamente las mismas razones. En la figura3.6se muestran algunos ejemplos de mutaciones cl´asicas de cromosomas.

3.1.3.5. Parada del algoritmo

La condici´on de parada es la que determina en qu´e momento se debe acabar la ejecuci´on del algoritmo gen´etico. Existen multitud de variantes, algunas dependientes del problema y otras gen´ericas. En el segundo de los casos, las condiciones m´as t´ıpicas son:

Generaciones. La simulaci´on se finaliza una vez ha evolucionado un n´umero predeterminado de generaciones (e.g. parada a las 5000 ite- raciones del algoritmo).

Fitness. La simulaci´on finaliza una vez se ha superado un determina- do fitness (e.g. para una vez llegado a una calidad de m´as de 5000). Esta soluci´on es especialmente interesante dado que se puede buscar una soluci´on suficientemente buena sin necesidad de limitarse a un determinado n´umero de pasos.

3.1.3.6. Modificaciones al Algoritmo Base

A lo largo de la literatura el esquema de algoritmos gen´etico visto en la figu- ra3.4ha sido modificado para dar cabida a modificadores de todo tipo, ya sea modificando bloques funcionales o a˜nadiendo nuevos. A continuaci´on se ofrece un conjunto de modificadores que se suelen usar como a˜nadidos a los ya vistos en un algoritmo gen´etico cl´asico [Shukla et al. , 2010].

Elitismo. Esta modificaci´on hace que se coja un n´umero predetermi- nado de individuos (los mejores) de una poblaci´on y se inserten en la poblaci´on descendiente. La ventaja de este planteamiento es que el fitness del mejor individuo de la nueva poblaci´on nunca ser´a peor que el fitness de la antigua. Sin embargo, uno de los problemas de este tipo de operadores es que puede provocar una disminuci´on de la variedad gen´etica de las sucesivas poblaciones.

Insert y Delete. Con estos modificadores se da la opci´on al algoritmo de, en determinadas situaciones (e.g. 10 generaciones sin un aumen- to del mejor fitness), se a˜nadan o se eliminen individuos de la misma. Ambas modificaciones tienen sus ventajas y sus inconvenientes. En el caso de la inserci´on, se a˜nade variedad gen´etica (nuevos caminos en el espacio de soluciones a explorar), pero elimina individuos que pue- den llevar a una soluci´on. En el caso del borrado, la ventaja es que los individuos menos aptos no transmiten su informaci´on y por tanto no aparecen partes de sus soluciones en sucesivas generaciones, pero a su vez reduce la diversidad gen´etica en la soluci´on.

Mutaci´on Hard y Soft. En lugar de usar un ´unico operador de mu- taci´on, ´este se separa en dos. Por un lado, la parte soft del operador se encarga de mutar el individuo a peque˜na escala y de esta forma tratar de que la soluci´on converja m´as lentamente. Por otro lado, la parte hard se encarga de hacer grandes mutaciones, haciendo que la soluci´on tenga cambios m´as bruscos. La ventaja m´as obvia es que se puede llegar a tener un control m´as exhaustivo en la evoluci´on hacia la soluci´on del algoritmo.

Reparaci´on. Aunque es misi´on de los operadores de cruce y mutaci´on el generar individuos v´alidos como soluciones al problema planteado, por decisiones de una u otra ´ındole dichos operadores pueden gene- rar soluciones no v´alidas o con una aptitud extremadamente baja. Por tanto en aquellas ocasiones que se conocen una serie de proce- dimientos para hacer v´alidas soluciones no v´alidas o para modificar soluciones con aptitud baja para aumentar su aptitud hasta un m´ıni- mo se a˜nade un m´odulo de reparaci´on al algoritmo original.

Documento similar