• No se han encontrado resultados

2.12 Los Algoritmos Genéticos

2.13. Funcionamiento básico de los Algoritmos Genéticos

Un AG simple mantiene en cada paso de su ejecución un conjunto de soluciones a un problema al que llamaremos población, cada elemento de la población, es decir, cada posible solución al problema será llamado individuo. En el caso del AG básico, las posibles soluciones del problema que se quiere optimizar vienen codificadas como vectores de ceros y unos. Cada individuo de la población es un vector de longitud L que codifica una solución. Se requiere una función F, llamada función objetivo o de adaptación, que mida el grado en que cada individuo resuelve el problema.

En términos evolutivos la función F mide el grado de adaptación del individuo al entorno. Si nos encontramos ante un problema de optimización normalmente la función F suele ser la propia función a optimizar.

Cada iteración del AG simple consiste en la realización de tres operaciones básicas: selección, recombinación y mutación. La primera de estas tres operaciones realiza una selección de dos individuos de la población, esta selección suele ser llevada a cabo de manera aleatoria pero proporcional al valor que la función objetivo F toma en cada individuo.

La segunda operación, es decir la recombinación, se efectúa con cierta probabilidad, esta operación consiste en la aplicación de un operador de cruce que trata de simular la mezcla genética que se produce en el mundo natural, mezclando los componentes de los dos individuos seleccionados.

Generación de la Población Inicial Evaluación de la Función de Adaptación Selección de los Individuos a Reproducir Recombinación Mutación

Inserción de los hijos en la Población

Repetir hasta que se cumpla el Criterio de Terminación

Mejor Cromosoma Decodificación Solución

En el caso del AG simple se suele utilizar lo que se llama operador de cruce basado en un punto.

La última de las operaciones consiste en aplicar un operador de mutación, en este caso el operador modifica el valor de algún gen de un individuo de acuerdo con una probabilidad. En el AG simple, generalmente, cada individuo de la población se representa mediante una cadena binaria de longitud fija que codifica los valores de las variables que intervienen en el problema, con lo cual las representaciones de los datos (cadenas de bits) y las operaciones sobre ellas pueden manipularse para generar cadenas de bits que estén bien adaptadas al problema a resolver. Como hemos comentado, los mecanismos fundamentales que aplican los AG operan sobre una población de individuos, generada inicialmente de forma aleatoria y cambian la población en cada iteración atendiendo a los tres pasos siguientes:

1. Evaluación de los individuos de la población.

2. Selección de un nuevo conjunto de individuos, sobre la base de su adaptación relativa.

3. Alteración de los individuos seleccionados para formar una nueva población a partir de los operadores de cruce y mutación.

Los individuos resultantes de las tres operaciones anteriores forman la siguiente población, repitiéndose el proceso hasta que se dé una cierta condición de parada.

Durante la iteración t, el AG mantiene una población P(t) de M soluciones t M t t C C

C1, 2... , en donde cada solución Cit se evalúa por la función F, de modo que )

( t i

C

F da una medida de conveniencia de la misma, en la siguiente iteración, t+1, se forma una nueva población en base a las operaciones 2 y 3.

Existen dos modelos básicos de evolución para un AG, que dependen del método de selección y reemplazamiento de solución considerado.

x El modelo generacional, también conocido como modelo clásico, en el que durante cada generación se crea una población completa con nuevos individuos mediante la selección de padres de la población anterior y la aplicación de los operadores genéticos sobre ellos. La nueva población reemplazará directamente a la antigua.

x El modelo estacionario, en el que durante cada generación se escoge un número más reducido de individuos, normalmente dos padres de la población (usando cualquier mecanismo de selección), y se aplican los operadores genéticos sobre ellos. Los dos nuevos cromosomas (o el único hijo) reemplazan a dos cromosomas de la población (normalmente a los dos peores).

Mostramos a continuación, los algoritmos de las dos estructuras nombradas anteriormente (generacional y estacionaria) para un AG:

ModeloGeneracional: Comienzo t=0 InicializarP(0) EvaluarP(0)

Mientrasquenosedelacondicióndeparadahacer

Comienzo

t=t+1

SeleccionarP(t)desdeP(tŞ1)

CruzaryMutarP(t)conprobabilidad PcyPm

respectivamente

EvaluarP(t)

Fin

DevolverelmejorindividuodeP(t)

Fin ModeloEstacionario: Comienzo t=0 InicializaP(0) EvaluarP(0)

Mientrasquenosedelacondicióndeparadahacer

Comienzo

t=t+1

SeleccionardospadresdeP(tŞ1)

Cruzarlosdospadresparaobtenerdoshijos

MutarlosdoshijosconprobabilidadPm

AñadirlosdosdescendientesaP(t)

EliminarlosdospeoresindividuosdeP(t)

Fin

DevolverelmejorindividuodeP(t)

Fin

Como se observa en ambos algoritmos, asociadas a los operadores de cruce y mutación existen la probabilidad de cruce Pc, y la probabilidad de mutación, Pm., la primera representa la probabilidad de aplicar el operador de cruce sobre parejas de cadenas obtenidas en la recombinación mientras que la segunda representa la probabilidad de aplicar el operador de mutación sobre los caracteres de cada cadena.

2.14. Representación del cromosoma en los Algoritmos

Genéticos

El esquema de representación es el que define de qué forma se corresponden los cromosomas con las soluciones al problema. Para diseñar el esquema de representación, se buscan los parámetros que identifican a las soluciones, y luego se codifican estos parámetros dentro del cromosoma.

La figura 2.18 muestra un posible esquema de representación para un problema que tiene como soluciones a los polígonos regulares. Los parámetros que identifican a cada solución son 2 (cantidad de lados y longitud del lado), y estos se codifican en el cromosoma en forma binaria. El cromosoma se compone de una cadena de 10 bits, en los que los primeros 3 son la cantidad de lados, y los siguientes 7 bits representan la longitud de los lados en milímetros.

El esquema de representación debería ser tal que exista al menos una posible codificación para cada una de las soluciones posibles. Las soluciones que no estén dentro del espacio de cromosomas no serán exploradas por el algoritmo genético. En el ejemplo de la figura 2.18, el algoritmo genético no explorará soluciones que se compongan por polígonos de más de 7 lados ni longitudes mayores a 127 milímetros, ya que con 3 y 7 bits pueden codificarse solamente números del 0 al 7, y del 0 al 127, respectivamente.

Por el mismo motivo (porque la búsqueda se hace sobre el espacio de cromosomas), es deseable que no haya redundancia en la representación; que cada solución sea representada por solamente un cromosoma. Si existen K cromosomas por cada solución, el espacio de búsqueda sobre el que opera el algoritmo genético es K veces más grande que el espacio de soluciones, haciendo más lento la evolución.

La representación ejemplificada en la figura 2.18 no tiene redundancia, cada polígono es representado sólo por un cromosoma, Un problema que puede presentarse es que haya cromosomas que no representan ninguna solución, por ejemplo en la figura, un cromosoma que tenga todos 0 en los primeros 3 ó en los últimos 7 bits no representa un polígono válido.

La codificación ejemplificada en la figura anterior se denomina “binaria”, ya que cada posición del cromosoma contiene un bit. Esta es la representación clásica propuesta por los primeros autores y que todavía es utilizada ampliamente [Goldberg, 1989]; [Falkenauer, 1999], sin embargo, hay problemas para los cuales esta representación no es la más conveniente y se podría utilizar una representación mediante números reales.