Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GENÉTICOS
Victor Esteban Alonso Carlos Marín Rico
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
Máster Interuniversitario en Máster Interuniversitario en
Ingeniería Telématica Ingeniería Telématica
100048654@alumnos.uc3m.es 100084018@alumnos.uc3m.es
Las aplicaciones más típicas son de reconocimiento de voz, Los Algoritmos Genéticos usan una analogía directa con el
clasificación del lenguaje natural en ciertas categorías (por comportamiento natural. Trabajan con una población de
ejemplo, un filtro antispam para correo electrónico), individuos, cada uno de los cuales representa una solución
reconocimiento automático del correo postal en cartas o el factible a un problema dado. Cuanto mayor sea la adaptación de
reconocimiento automático de rostros humanos en imágenes. un individuo al problema, mayor será la probabilidad de que el
mismo sea seleccionado para reproducirse, cruzando su material
genético con otro individuo seleccionado de igual forma. Este
cruce producirá nuevos individuos (descendientes de los • Gen o Cromosoma: Conocido también como genotipo. Es un
anteriores) los cuales comparten algunas de las características de individuo o elemento de la población, que representa una posible
sus padres. solución al problema.
• Función Fitness: Conocida también como función de aptitud. Es
una expresión matemática para evaluar la aptitud (calidad) de los
Cuanto menor sea la adaptación de un individuo, menor será la individuos en una generación. Lo clave a la hora de definir una
probabilidad de que dicho individuo sea seleccionado para la función de aptitud es que esta debe devolver los valores más altos
siguiente generación y por tanto de que su material genético se cuando es aplicada a los individuos que más se aproximan a la
propague. solución óptima.
• Selección natural de padres: Es un mecanismo de selección
De este modo se genera una nueva población de posibles aplicado sobre una población o una generación en forma
soluciones, que reemplazará a la anterior. Ésta nueva generación probabilística de acuerdo al valor de la función de aptitud de
se ajustará mejor al entorno que la población anterior. Así a lo cada individuo. Los individuos mejor calificados de acuerdo a
largo de las generaciones las buenas características se propagan a esta función tendrán una mayor oportunidad de ser escogidos
través de la población. Favoreciendo el cruce de los individuos como padres para producir la siguiente generación.
mejor adaptados, se avanza hacia la rama más favorable del • Operadores genéticos: Son los operadores que permiten obtener
espacio de búsqueda. Si el Algoritmo Genético ha sido bien una nueva generación a partir de una población. Los operadores
diseñado, la población convergerá hacia una solución óptima del genéticos más comunes son el crossover (cruce o recombinación
problema. genética) y el operador de mutación.
Los Algoritmos Genéticos son perfectamente útiles en aquellos • Crossover: Es el proceso mediante el cual dos individuos se
problemas para los cuales no existen técnicas especializadas. aparean para producir descendencias individuales. Esto se realiza
Incluso en el caso en que dichas técnicas existan, y funcionen intercambiando segmentos de los cromosomas de los padres. Se
bien, pueden efectuarse mejoras de las mismas hibridándolas con han propuesto diferentes modelos de crossover como el punto
los Algoritmos Genéticos. simple, el punto múltiple y el cruzamiento uniforme.
• Mutación: Es un mecanismo necesario para asegurar la
Algunos ejemplos de uso son el diseño de sistemas de diversidad en la población. En forma aleatoria se selecciona un
distribución de aguas, diseño de topologías de circuitos impresos, individuo para sufrir la mutación, el algoritmo cambia un bit
diseño de topologías de redes computacionales, aprendizaje de también en forma aleatoria. Esto tiene como objetivo evitar un
comportamiento de robots, reglas de lógica difusa, procesado de modelo fijo de soluciones que haya sido propagado a través de
lenguaje natural, infraestructuras en redes de comunicaciones todas las diferentes generaciones.
móviles, predicción de estructura de RNA, ingeniería de
software, hallazgo de errores en programas y un largo etcétera.
3.1 Tamaño de la población
Figura 1: Funcionamiento de un algoritmo genético. Este resultado traería como consecuencia que la aplicabilidad de
los Algoritmos Genéticos en problemas reales sería muy limitada,
ya que resultarían no competitivos con otros métodos de
optimización combinatoria. Alander, basándose en evidencia
3. FUNCIONAMIENTO DE LOS empírica sugiere que un tamaño de población comprendida entre
ALGORITMOS GENÉTICOS l y 21 es suficiente para atacar con éxito los problemas por el
considerados.
Gracias a los operadores genéticos, como el cruzamiento y la
mutación, se originan los descendientes que constituirán una
nueva generación.
3.1.1 Población inicial [Recorrer] Recorrer la población acumulando nuevamente los
fitness. Cuando la suma que se lleve sea mayor o igual a r
seleccionamos el individuo donde se vaya recorriendo.
Habitualmente la población inicial se escoge generando ristras al
azar, pudiendo contener cada gen uno de los posibles valores del
alfabeto con probabilidad uniforme. Nos podríamos preguntar 3.2.2 Selección por Ranking
que es lo que sucedería si los individuos de la población inicial
se obtuviesen como resultado de alguna técnica heurística o de
optimización local. En los pocos trabajos que existen sobre este El anterior tipo de selección funciona mal cuando existan
aspecto, se constata que esta inicialización no aleatoria de la grandes diferencias entre los fitness de los individuos de la
población inicial, puede acelerar la convergencia del Algoritmo población. Por ejemplo si un cromosoma ocupa el 90% de la
Genético. Sin embargo en algunos casos la desventaja resulta ser ruleta el resto de los cromosomas tienen muy pocas posibilidades
la prematura convergencia del algoritmo, queriendo indicar con de ser elegidos. La selección por ranking da solución a este
esto la convergencia hacia óptimos locales. problema.
3.2 Operador Selección Los individuos son ordenados de acuerdo a su ranking de fitness.
De esta manera si tenemos n cromosomas el individuo con peor
Como ya se ha visto los individuos se seleccionan para fitness se le asignará un 1 y el que tenga el mejor fitness se le
reproducirse, ahora bien el problema está en cómo seleccionar. asignará la n.
De acuerdo con la teoría de la evolución de Darwin, sólo los
mejores individuos se reproducen. Basándose en esto existen
varios métodos que son utilizados por los genéticos: Selección
por la Regla de la Ruleta ,Selección por Ranking, Selección de
Estado Fijo por citar algunos de los más utilizados.
Una vez estipuladas las proporciones asignadas a cada individuo, 3.2.3 Selección por Torneo K/L
se procede a realizar la elección al azar. Como es normal, los
individuos con mayor fitness son los que más a menudo son
La selección por Torneo K/L consiste en seleccionar K
elegidos.
individuos de la población aleatoriamente y de estos K individuos
se seleccionan los L que tengan mejor fitness. Este proceso se
Existe un algoritmo para realizar este proceso: repite todas las veces necesarias hasta formar la nueva población.
[SumaTotal] Calcular la suma total acumulada de los fitness de Este es uno de los métodos de selección mas utilizados
todos los individuos de la población actual. actualmente. Se utiliza también en algunos algorítmos en el
momento de la aceptación.
[Elegir un número aleatorio r] Generar un número aleatorio
entre 0 y la SumaTotal.
3.2.4 Elitismo
Hemos realizado la implementación de un algoritmo genético en 5. Tras aplicar el elitismo a los cruces para obtener la
MATLAB, sobre el que realizaremos una serie de pruebas para siguiente generación, se mutan algunos bits de esta
estudiar el funcionamiento de este tipo de algoritmos en la nueva generación de acuerdo con el porcentaje de
búsqueda de patrones, e intentar obtener los parámetros
mutación que haya indicado el usuario. La mutación
adecuados para varios casos particulares de estudio.
consistirá en el cambio de ciertas posiciones de la
Nuestro programa implementa un algoritmo genético de matriz elegidas al azar de ceros a unos y viceversa.
búsqueda en el que tendremos una matriz binaria, inicializada al
azar, que será el individuo a encontrar. En nuestro script se han
6. Los pasos 3, 4 y 5 serán repetidos o bien durante el
dejado varios parámetros del algoritmo como variables de entrada
a este, para poder realizar pruebas de los diferentes casos a numero de generaciones indicado por el usuario como
estudiar. Los parámetros que podemos modificar en cada parámetro de entrada, o bien hasta que se encuentre la
ejecución son: muestra buscada, si esta se encuentra antes del número
indicado de generaciones.
• El tamaño de la matriz de muestra (la matriz con la que Tras la ejecución del algoritmo obtendremos tres figuras Matlab:
trabajará esta aplicación será una matriz cuadrada)
• El número de individuos que formaran la población • En la primera se mostrará una representación gráfica de
la matriz a encontrar, en la que los puntos negros
• El número de generaciones que iterará el algoritmo representarán unos en la matriz y os puntos blancos
hasta finalizar, si el algoritmo llega a la solución antes representarán los ceros.
del número de generaciones indicado, este se detendrá. • En la segunda figura obtendremos una gráfica de la
evolución del fitness del mejor individuo frente al
• El porcentaje de mutación que se aplicará en cada número de generaciones que itere el algoritmo.
iteración sobre los individuos de la población. • En la tercera figura, dependiendo del valor que haya
dado el usuario al indicador binario de entrada,
• Indicador binario que marcará si al final de la tendremos o bien la representación del mejor individuo
ejecución obtendremos una figura con la mejor muestra de la última generación, o una figura en la que según
pulsemos la tecla intro avanzaremos en una
de la última generación, o una figura en la que
presentación a través de los mejores individuos de todas
podremos realizar una presentación de la evolución de las iteraciones del algoritmo.
los mejores individuos de cada generación
5. PRUEBAS DE FUNCIONAMIENTO
En la segunda prueba aumentaremos el tamaño de la matriz de Estudiados casos sencillos y relativamente pequeños, y una vez
muestra a 10x10, esto quiere decir que deberemos encontrar la comprendidos los parámetros básicos que pueden variar en la
equivalencia exacta entre 100 bits para resolver la busqueda del ejecución del algoritmo y hacen que se llegue a una solución en
patrón de muestra. Si ejecutamos este test con los parámetros que la búsqueda del patrón muestra, vamos a observar la ejecución
ejecutamos el primer test para la matriz de orden 4 observamos del programa para matrices de orden cada vez mayor.
que en las primeras generaciones el fitness mejora rápidamente
hasta alcanzar un valor de 0.85, pero que tras esta mejora el
algoritmo no es capaz de converger y los valores de fitness En la tercera prueba hemos usado una matriz de muestra de
oscilan en torno a este valor sin llegar a la solución. tamaño 25x25, esto son más de seis veces los bits que teníamos
en el anterior test, por lo que podemos deducir que el algoritmo
tardará algo más en converger (en la ejecución de prueba,
aproximadamente unas 240 generaciones).
6. CONCLUSIONES
Del siguiente studio podemos extraer diversas conclusiones
gracias a las pruebas realizadas.
• Para que un algoritmo genético encuentre la solución a
un problema, esta debe estar contenida en el
subconjunto de la población que irá evolucionando a lo
largo de las generaciones.
• A mayor número de individuos en la población inicial,
más rápida será la convergencia hacia la solución,
siempre y cuando el resto de parámetros permitan
encontrar esta solución.
• A mayor tamaño de la muestra a encontrar, mayor será
el número de generaciones que pasarán hasta llegar a la
solución.
Figura 15: muestra de orden 100 con 10 individuos por • Cuanto mayor sea el tamaño de la muestra a encontrar,
generación y mutación 0.001 menor tendrá que ser el porcentaje de mutación, ya que
si mutamos muchas posiciones de un individuo de
generación en generación, oscilaremos en torno a un
Si escogemos el valor del porcentaje de mutación de manera que valor medio de fitness, pero jamás convergeremos.
el algoritmo sea capaz de converger, obtendremos la solución, • Si eliminamos la mutación de nuestro algoritmo, el
aunque en un número de generaciones mayor que en las pruebas punto hasta el que llegará el fitness vendrá totalmente
anteriores debido al aumento de tamaño de la matriz de muestra. marcado por los datos de la población inicial, y rara
vez se llegará a la solución.
7. REFERENCIAS
[5] The MathWorks - MATLAB and Simulink for Technical
Computing
[1] Apuntes asignatura Inteligencia Artificial en Redes de
comunicación, Julio Villena Román – Universidad Carlos http://www.mathworks.com/
III de Madrid
http://www.it.uc3m.es/jvillena/irc/ [6] Tutorial - Introduction to Genetic Algorithms
http://www.obitko.com/tutorials/genetic-algorithms/
[2] Algoritmos genéticos – Wikipedia, Enciclopedia libre
http://es.wikipedia.org/wiki/Algoritmo_genético [7] Ciencia e Ingeniería Neogranadina, Vol. 17-2, pp. 95-109.
Bogotá, Diciembre de 2007. ISSN 0124-8170
[3] Intelligent Systems Group, Computer Science Faculty, http://www.umng.edu.co/www/resources/17n2art6.pdf
University of the Basque Country (UPV – EHU) [8] Departamento de Ingeniería de Sistemas e Industrial -
http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temag Universidad Nacional de Colombia
eneticos.pdf
http://dis.unal.edu.co/~lfnino/bioinfo/material/lecturas/neuro
nales/Algoritmos%20Geneticos.ppt
[4] NEO - Networking and Emerging Optimization -
http://neo.lcc.uma.es/