• No results found

Los Algoritmo Genético son técnicas de optimización que imitan a la evolución biológica como estrategia para la resolución de problemas. Típicamente consta de los siguientes pasos: 1. Definición de la población inicial.

2. Evaluación de la función de fitness. 3. Selección de individuos.

4. Generación de descendencia.

5. Regreso al paso 2 hasta alcanzar la condición de parada.

En función de la naturaleza del problema se deberá elegir el tipo de algoritmo que más se adecúe a la misma, pudiéndose utilizar valores binarios o reales para definir los cromosomas de los individuos.

A continuación, se explicarán las definiciones importantes, de los algoritmos, relativas a la elección de la población inicial, la función de fitness, el método de selección de individuos y el modo de transferir la información genética de los individuos seleccionados a su descendencia.

 Población inicial.

El primer paso de los Algoritmos Genéticos es generar una población inicial de soluciones sobre la cual empezar a aplicar los operadores genéticos. Esta población suele generarse aleatoriamente, aunque en ocasiones se incluyen soluciones con algún material cromosómico en particular. En general asegura una convergencia más rápida, pero se corre el riesgo de perder diversidad en la población [42].

Un aspecto importante a considerar en esta etapa es que la población tenga la suficiente diversidad, de modo que pueda explorar zonas más amplias del espacio de búsqueda. Así se pueden obtener soluciones más cercanas al óptimo global y evitar la convergencia prematura.

 Función de calidad (fitness).

La función de fitness es una función de coste que determina cómo de buenos son los individuos de la población. La elección de esta función es uno de los puntos más críticos del algoritmo genético, ya que se encarga de separar las soluciones buenas de las malas con una distancia considerable (dicha distancia puede ser incluso exponencial).

Si se utiliza una analogía con la selección natural, que un individuo obtenga una buena puntuación al ser evaluado por la función de fitness, significa que ese individuo está bien adaptado para sobrevivir [42].

La función de fitness tiene que ser significativa, lo que implica representar con un solo valor todas las aptitudes de los elementos pertenecientes a la población bajo estudio.

 Métodos de selección.

El método de selección define cómo elegir la siguiente población de individuos en función de sus aptitudes (las cuales han sido cuantificadas por la función de fitness). Los tres métodos más comunes de selección son: selección proporcional, selección por rango y selección por torneo [42].

 Selección por rango.

La selección basada en el rango es la estrategia estocástica más sencilla que existe. Consiste en clasificar a los individuos de la población según la puntación obtenida al ser evaluados por la función de fitness. La selección de los individuos se llevará a cabo según su rango o posición. El método por rango puede ser tanto lineal como exponencial. El método por rango lineal fuerza una convergencia lenta y preserva la diversidad de la población durante un alto número de iteraciones, y es útil cuando los requerimientos computacionales de la función de

 Selección proporcional.

Este método es el más popular en cuanto a estrategias de selección estocásticas. Se conoce también como selección por rueda de ruleta. La implementación de este método consiste en crear una ruleta donde la porción asignada a cada individuo es proporcional a la puntuación asignada al mismo por la función de fitness. Una vez ha sido creada la ruleta, se hace girar tantas veces como sea necesario hasta obtener los individuos cuyo material genético será combinado para obtener la siguiente generación. La Figura 2.1 muestra un ejemplo de este tipo de estrategia [42].

Figura 2.1. Método de selección proporcional o método de ruleta [43].

 Selección por torneo.

En este método se toman dos elementos de la población de manera aleatoria, y después se selecciona como ganador del torneo al que haya obtenido una mayor puntuación en la función de fitness. Hay diferentes variantes de este método donde se pueden seleccionar más de dos individuos, o seleccionar al mejor individuo con una probabilidad dada o seleccionar al otro [42].

 Elitismo

El elitismo no es realmente un método de selección, no obstante, puede ser utilizado combinándolo con los métodos anteriores. El elitismo consiste en forzar la presencia del mejor individuo en la siguiente generación, aun cuando ese individuo no haya sido seleccionado por el método de selección [42].

 Operadores genéticos.

A la hora de generar descendencia, se utilizan estos operadores para mezclar el material genético de los padres. Los operadores genéticos básicos son cruce y mutación.

 Cruce.

Es el operador genético más importante, ya que sin él no se podría hablar de algoritmos genéticos propiamente dichos. Una vez han sido seleccionados los padres por alguno de los métodos de selección, sus cromosomas deben mezclarse para producir descendientes, utilizando para ello la operación de cruce. Existen múltiples técnicas para realizar esta operación. Típicamente, para problemas discretos, se selecciona aleatoriamente una posición en cada cromosoma (un gen) y, tomando ese punto como división, se separa cada uno en dos partes, obteniendo dos nuevos cromosomas. En la Figura 2.2 se puede ver cómo se realiza esta operación de cruce entre dos cromosomas [42].

Figura 2.2. Ejemplo de operación de cruce entre 2 cromosomas [42].

Este operador se aplica de acuerdo a una probabilidad denominada pcruce. Este parámetro suele tomar valores que se encuentran normalmente alrededor de 0.8.

 Mutación.

La mutación es el proceso por el cual, al igual que en la naturaleza, se produce una variación aleatoria de genes en un cromosoma. Este mecanismo contribuye a la diversidad genética de la especie. La operación de mutación se aplica con una probabilidad pmutacion muy pequeña (normalmente menor que 0.01), y es una potente herramienta en el proceso de optimización, ya que permite al algoritmo escapar de mínimos locales [44].

Los diferentes tipos de mutaciones existentes son:

Mutación uniforme: Modifica un valor del individuo con un valor obtenido aleatoriamente. Mutación Gaussiana: Modifica un valor del individuo obteniendo el valor a través de un método de obtención de números aleatorios por medio de Gaussianas.

 Condición de parada.

Hay múltiples posibilidades para la elección de la condición de parada del algoritmo. La más simple es fijar un número de iteraciones, aunque siempre es necesario comprobar la convergencia del algoritmo. Otras técnicas más complejas tienen en cuenta esta convergencia, la evolución de la solución en el tiempo, o el logro de ciertos objetivos [44]. En la Figura 2.3 se muestra un ejemplo genérico de condición de parada:

Figura 2.3 Condición de parada [44].