Algoritmos Genéticos
Algoritmos Genéticos
Algoritmos Genéticos
00001111000011000011
Un algoritmo genético es un método de búsqueda que imita la SSeelleecccciióónn EEE vvaalluuaacciióónn
4.2 Selección
Como ya hemos visto anteriormente es necesario hacer
una selección con los individuos más capacitados para que éstos
sean los que se reproduzcan con más probabilidad de acuerdo
con la teoría de Darwin en la cual los más capacitados son los
que deben sobrevivir y crear una nueva descendencia más
facultada. Figura 5. Caso de selección por ruleta.
Por lo tanto una vez evaluado cada cromosoma y obtenida su
puntuación, se tiene que crear la nueva población teniendo en
cuenta que los buenos rasgos de los mejores se transmitan a
ésta.
Esta selección se puede realizar de varias formas como se
verá a continuación.
4.4 Mutación
Tras el cruce, tiene lugar la mutación. Si nos referimos
en términos de evolución, la mutación se manifiesta de
Figura 18. Mutación de rama para una codificación en árbol.
forma extraordinaria, nada común. Las mutaciones suelen en
promedio ser beneficiosas pues contribuyen a la diversidad
genética de la especie. Además previenen a las soluciones de 5. OTROS OPERADORES
la población de verse limitadas por un óptimo local. Por lo En algunos problemas se pueden utilizar otro tipo de
tanto la mutación consiste en modificar ciertos genes de forma operadores que buscan soluciones de forma más ordenada o que
aleatoria atendiendo a la probabilidad de mutación establecida actúan en las últimas fases para optimizar la solución.
con anterioridad. La mutación depende de la codificación y de
la reproducción. Si se abusa de la mutación podemos caer 5.1 Cromosomas de longitud variable.
en el uso del algoritmo genético como una simple búsqueda Puede suceder que para ciertas aplicaciones como en las
aleatoria. Por lo tanto antes de aumentar las mutaciones, redes neuronales no se conozca de antemano el número de
conviene estudiar otras soluciones que aporten diversidad a la neuronas que vamos a utilizar por lo que habrá que disponer
población como podría ser el aumento del tamaño de la de alguna técnica para solventar el problema.
población o garantizar la aleatoriedad de la población inicial.
En estos casos, necesitamos dos operadores más: añadir
Para el caso de una codificación binaria, la mutación consiste y eliminar. Estos operadores se utilizan para añadir un gen,
simplemente en la inversión del gen mutado que corresponderá o eliminar un gen del cromosoma. La forma más habitual
con un bit. En el caso de una codificación numérica, la mutación es duplicar uno ya existente, el cual sufre mutación y se añade
podría consistir en sustituir un número por otro o intercambiar al lado del anterior. En este caso, los operadores del
un número por otro que está en otra posición del cromosoma. algoritmo genético simple (selección, mutación, crossover)
En el caso de codificación por valor directo en el que por funcionarán de la forma habitual, salvo, claro está, que sólo se
ejemplo usemos números reales, la mutación puede consistir hará crossover en la zona del cromosoma de menor longitud.
simplemente en modificar el valor en unos decimales. Por Estos operadores permiten, además, crear un algoritmo
último, en una codificación en árbol, la mutación podría radicar genético de dos niveles: a nivel de cromosoma y a nivel de gen.
en el cambio de operador, de un número o incluso en la
mutación de una rama entera. 5.2 Operadores de Nicho
Veamos unos ejemplos para analizar el fenómeno de la Estos operadores están encaminados a mantener la diversidad
mutación: genética de la población, de forma que cromosomas similares
sustituyan sólo a cromosomas similares, y son especialmente
útiles en problemas con muchas soluciones. Un algoritmo
genético con estos operadores es capaz de hallar todos
los máximos, dedicándose cada especie a un máximo. Más
que operadores genéticos, son formas de enfocar la selección
y la evaluación de la población.
6. VENTAJAS DE LOS ALGORITMOS población demasiado pronto, provocando que
el algoritmo converja hacia el óptimo local que
GENÉTICOS representa ese individuo, en lugar de rastrear el paisaje
• Una clara ventaja es que los algoritmos genéticos adaptativo lo bastante a fondo para encontrar el
son intrínsicamente paralelos, es decir, operan de óptimo global. Esto es un problema especialmente
forma simultánea con varias soluciones, en vez de común en las poblaciones pequeñas, donde incluso
trabajar de forma secuencial como las técnicas una variación aleatoria en el ritmo de reproducción
tradicionales. Esto significa que mientras técnicas puede provocar que un genotipo se haga dominante
tradicionales sólo pueden explorar el espacio de sobre los otros.
soluciones hacia una solución en una dirección al
mismo tiempo, y si la solución que descubren resulta 8. APLICACIONES DE LOS
subóptima, no se puede hacer otra cosa que abandonar
todo el trabajo hecho y empezar de nuevo. Sin
ALGORITMOS GENÉTICOS
embargo, los algoritmos genéticos simplemente La aplicación más común de los algoritmos genéticos ha sido
desechan esta solución subóptima y siguen por la solución de problemas de optimización, en donde han
otros caminos. mostrado ser muy eficientes. Sin embargo, no todos los
problemas pudieran ser apropiados para esta técnica. Se
• Cuando se usan para problemas de optimización recomienda en general tomar en cuenta las siguientes
resultan menos afectados por los máximos locales características del mismo antes de intentar usarla:
(falsas soluciones) que las técnicas tradicionales.
Muchos algoritmos de búsqueda pueden quedar • Su espacio de búsqueda debe estar delimitado dentro
atrapados en los óptimos locales: si llegan a lo alto de un cierto rango.
de una colina del paisaje adaptativo, descubrirán que • Debe poderse definir una función de aptitud que
no existen soluciones mejores en las cercanías y nos indique qué tan buena o mala es una cierta
concluirán que han alcanzado la mejor de todas, respuesta.
aunque existan picos más altos en algún otro lugar
del mapa, situación que no sucede para algoritmos • Las soluciones deben codificarse de una forma
genéticos. que resulte relativamente fácil de implementar
en la computadora.
• Otra ventaja es su habilidad para manipular muchos
Dentro de los distintos problemas de optimización podemos
parámetros simultáneamente. Resulta interesante
encontrar unas áreas de aplicación:
en caso de tener varios objetivos a resolver.
• No necesitan conocimientos específicos sobre • Diseño por computadora de nuevos materiales
el problema que intentan resolver. Realizan que cumplan múltiples objetivos.
cambios aleatorios en sus soluciones candidatas y
luego utilizan la función de aptitud para determinar • Optimización del la carga de containers.
si esos cambios producen una mejora o no.
• Asignación de procesos en topologías de redes
• Resulta sumamente fácil ejecutarlos en las modernas
con procesamiento distribuido.
arquitecturas masivas en paralelo.
• Usan operadores probabilísticos, en vez de los típicos • Ubicación de archivos en sistemas de
operadores determinísticos de las otras técnicas. almacenamiento distribuido.