Está en la página 1de 9

BÚSQUEDA DE PATRONES CON ALGORÍTMOS 

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

ABSTRACT Aquí se mostrará una implementación sencilla de reconocimiento


de patrones mediante un algoritmo mixto basado en algoritmos
genéticos.
En los años 70, surgió una de las líneas más prometedoras de la
inteligencia artificial, los algoritmos genéticos. Reciben este
nombre, porque se inspiran en la evolución biológica y su base
2. ALGORITMOS GENÉTICOS
genético-molecular. Por ello, se presentarán estos algoritmos
junto con todos los parámetros que le caracterízan. Los Algoritmos Genéticos (AGs) son métodos adaptativos que
El fin de este artículo, es desarrollar una aplicación basada en pueden usarse para resolver problemas de búsqueda y
MATLAB, que permite encontrar un determinado patrón de optimización. Están basados en el proceso genético de los
dimensiones variables, obteniendo así un método rápido y eficaz organismos vivos. A lo largo de las generaciones, las poblaciones
que en pocas generaciones obtiene un porcentaje de similitud evolucionan en la naturaleza de acorde con los principios de la
muy eleveado. selección natural y la supervivencia de los más fuertes,
postulados por Darwin (1859).

1. INTRODUCCIÓN Por imitación de este proceso, los Algoritmos Genéticos son


capaces de ir creando soluciones para problemas del mundo real.
La evolución de dichas soluciones hacia valores óptimos del
El reconocimiento de patrones es un tema derivado del problema depende en buena medida de una adecuada codificación
aprendizaje de máquinas. Consiste en tomar una ristra de datos y de las mismas.
realizar una acción basada en las características de esos datos. La
mayoría de los estudios de reconocimiento de patrones se Los principios básicos de los Algoritmos Genéticos fueron
desarrollan bajo métodos de aprendizaje supervisado y no establecidos por Holland (1975), y se encuentran bien descritos
supervisado. en varios textos [Goldberg (1989), Davis (1991), Michalewicz
(1992), Reeves (1993)].
En la naturaleza los individuos de una población compiten entre
La clasificación o el esquema de descripción, suele basarse en la sí en la búsqueda de recursos tales como comida, agua y refugio.
disponibilidad de un conjunto de patrones que ya han sido Incluso los miembros de una misma especie compiten a menudo
clasificados o descritos. Este conjunto de patrones que se en la búsqueda de un compañero. Aquellos individuos que tienen
denomina el conjunto de entrenamiento, y como ya hemos dicho, más éxito en sobrevivir y en atraer compañeros tienen mayor
la consiguiente estrategia de aprendizaje se caracteriza como de probabilidad de generar un gran número de descendientes. Por el
aprendizaje supervisado. El aprendizaje también puede ser sin contrario individuos poco dotados producirán un menor número
supervisión, en el sentido de que el sistema no da a priori un de de descendientes. Esto significa que los genes de los individuos
etiquetado de patrones, sino que se establece las clases basadas mejor adaptados se propagaran en sucesivas generaciones hacia
en las regularidades estadísticas de los patrones. un número de individuos creciente. La combinación de buenas
características provenientes de diferentes ancestros, puede a veces
producir descendientes “superindividuos", cuya adaptación es
Dentro de la ciencia médica, el reconocimiento de patrones es la mucho mayor que la de cualquiera de sus ancestros. De esta
base de los sistemas CAD. CAD presenta un procedimiento de manera, las especies evolucionan logrando unas características
apoyo a las interpretaciones y evidencias médicas. cada vez mejor adaptadas al entorno en el que viven.

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

Una cuestión que uno puede plantearse es la relacionada con el


tamaño idóneo de la población. Parece intuitivo que las
poblaciones pequeñas corren el riesgo de no cubrir
adecuadamente el espacio de búsqueda, mientras que el trabajar
con poblaciones de gran tamaño puede acarrear problemas
relacionados con el excesivo costo computacional.

Goldberg efectuó un estudio teórico, obteniendo como conclusión


que el tamaño óptimo de la población para ristras de longitud I,
con codificación binaria, crece exponencialmente con el tamaño
de la ristra.

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.

3.2.1 Selección por la Regla de la Ruleta


Figura 3: Selección por Ranking.
Los padres se seleccionan de acuerdo a su fitness. Los individuos
mejores (con mayor fitness) son los que tienen mayores
Como se muestra en la Figura 3, ahora todos los cromosomas
posibilidades de ser elegidos. Intuitivamente el proceso construye
tienen la oportunidad de ser elegidos. Sin embargo este método
una ruleta en la que cada uno de las porciones representa a un
puede hacer que el genético converja lentamente a la solución, ya
individuo. La porción de ruleta que le toca a cada individuo es
que los mejores individuos no se diferencian apenas de los
proporcional a su fitness. Así los individuos buenos se llevarán
peores.
las mayores porciones y al revés ocurrirá con los peores. En la
Figura 2 se puede ver un ejemplo.
A este esquema se le pueden aplicar otros criterios; por ejemplo,
se crea la descendencia de uno de los paladines/amazonas, y esta
sustituye al más parecido entre los perdedores. Esto se denomina
crowding, y fue introducido por DeJong. Una variante de este es
el muestreado estocástico universal, que trata de evitar que los
individuos con más fitness copen la población; en vez de dar la
vuelta a una ruleta con una ranura, da la vuelta a la ruleta con N
ranuras, tantas como la población; de esta forma, la distribución
estadística de descendientes en la nueva población es más
Figura 2: Selección por Regla de la Ruleta parecida a la real.

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

Este concepto expresa la idea de que el mejor individuo de la


actual generación pase sin modificar a la siguiente generación.
De esta forma no se perderá el mejor cromosoma. Al resto de la
población se le aplica la reproducción normalmente.

Por otra parte existen algoritmos genéticos llamados elitistas


debido a que convergen muy rápidamente a la solución. Esto se
debe al tipo de problema que se trate.
Figura 5: Ejemplo de cruce en n puntos.

3.3 Operador de cruce


3.3.3 Cruce uniforme
Los operadores de cruce tratan de crear una generación de
individuos nuevos (offspring) pidiendo información a sus No se puede aplicar a la representación basada en permutaciones.
ancestros. Aunque estos operadores parecen corresponderse con Se escoge aleatoriamente si el gen i-ésimo del hijo se toma del
la representación basada en precedencia, realizando un estudio primer o del segundo padre.
mas minucioso se observa que su funcionamiento está
influenciado por otros factores.

3.3.1 Cruce en un punto

Se copian los genes del primer padre hasta el punto de corte y se


rellena con el resto de elementos que hagan la solución válida en
el orden en que aparecen en el segundo padre considerando la
cadena de genes como cíclica. En el caso de que se haya
utilizado una codificación binaria simplemente se copian el resto
de genes del segundo padre.

Figura 6: Ejemplo de cruce uniforme.

3.3.4 Cruce aritmético

No se puede aplicar a la representación basada en permutaciones.


Se realizan operaciones aritméticas con los genes de los padres
para resultar la codificación genética del hijo.

3.4 Operador mutación

La mutación sucede en la naturaleza. Aunque ocurre de forma


poco frecuente. Muchas teorías afirman que es el principal medio
Figura 4: Ejemplo de cruce en un punto. de conducción hacia la evolución. El resultado de la mutación
puede ocurrir a menudo en un individuo débil. Ocasionalmente el
resultado podría convertir éste individuo en un individuo con un
3.3.2 Cruce en n puntos fitness de alto grado. En cada caso, consiste en alterar parte del
cromosoma y ocurre de forma espontánea sin que tenga nada que
ver con el resto de la población.
Se copian los genes del primer padre comprendidos entre los n
puntos de cruce y se rellenan los que faltan con los del segundo
padre considerando la cadena de genes como cíclica. Si el cambio es positivo a la población general, entonces el
individuo tendera a sobrevivir y pasará sus cambios estructurales
a otras generaciones. Si la mutación es débil, morirá como
cualquier otro individuo con fitness bajo.
Se aplicará un porcentaje de mutación que determina el número Nuestro programa ha sido implementado obedeciendo la
de bits que deberán permutarse. En la Figura 7 se muestra un siguiente lógica:
ejemplo donde el individuo mutado se convierte en un individuo
con un fitness mayor.
1. Creamos una matriz binaria al azar, del tamaño que
elija el usuario, la cual será la muestra a encontrar por
nuestro algoritmo.

2. Inicializamos una población inicial con el número de


individuos que haya especificado el usuario. Cada
individuo será una matriz binaria de las mismas
dimensiones que la muestra.

3. Cada generación será cruzada, obteniendo todos los


individuos que resulten de combinar cada individuo
inicial con los demás miembros de su generación. El
cruce que se aplica consiste en juntar la mitad superior
de la matriz del individuo padre, con la mitad inferior
Figura 7: Ejemplo de mutación con un resultado superior de de la matriz del individuo con el que cruzaremos el
fitness. individuo padre.

4. Una vez obtenidos todos los cruces aplicamos la


función de fitness sobre estos, haciendo que pasen a la
4. IMPLEMENTACIÓN DE UN siguiente generación tan solo los individuos que tengan
ALGORITMO GENÉTICO EN MATLAB un fitness mayor. La función de fitness implementada
da un valor entre 0 y 1 de la similitud del individuo con
PARA LA BUSQUEDA DE PATRONES la muestra a encontrar.

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

Puesto que gracias a la implementación de nuestro programa


tenemos la posibilidad de realizar tests de funcionamiento para
diferentes escenarios a continuación se ejecutarán varias pruebas
con el algoritmo genético programado, variando diferentes
parámetros de entrada y observando su ejecución.
Realizaremos pruebas para diferentes tamaños de la matriz de
muestra, intentando encontrar soluciones relativamente óptimas
en función del resto de parámetros.

5.1 Matriz de Orden 4


Figura 9: muestra de orden 4 con 2 individuos por generación
La primera prueba la realizaremos con una matriz de tamaño y mutación 0.5
4x4, esto son 16 bits, con los parámetros adecuadamente elegidos
(un tamaño de población de 10 individuos y un porcentaje de
mutación de 0.1) vemos como el algoritmo converge rápido (en 3 En este segundo caso de estudio, llegamos a la solución óptima
generaciones) en 231 generaciones, y no sin cierta fortuna, ya que en otras
ocasiones con los mismos parámetros, tras 1000 generaciones no
encontramos solución, condicionados en gran medida por el
reducido tamaño de la población, que impide la diversidad de las
muestras.
Para terminar de ilustrar la influencia de los diferentes
parámetros, observaremos que ocurre si eliminamos la mutación
de nuestro algoritmo, es decir, introducimos un porcentaje de
mutación igual a cero:

Figura 8: muestra de orden 4 con 10 individuos por


generación y mutación 0.1

Para el mismo tamaño de muestra, si bajamos el número de


individuos y subimos el porcentaje de mutación, observaremos
como podemos tardar bastante más en converger para un
escenario relativamente sencillo:
Figura 10: muestra de orden 4 con 10 individuos por
generación y mutación 0

Observamos en este fatídico caso en el que la mutación ha sido


eliminada como nuestra población es incapaz de evolucionar, esto
es porque tras el cruce de los 10 primeros individuos, hemos
obtenido una segunda generación ‘mejorada’ que no será capaz
de volver a mejorar debido a que no se introducirán nuevos datos
que lleven a la evolución positiva del fitness del algoritmo.
5.2 Matriz de Orden 10 5.3 Matriz de Orden 25

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).

Figura 11: muestra de orden 10 con 10 individuos por


generación y mutación 0.1
Figura 13: muestra de orden 25 con 10 individuos por
Deberemos pensar en encontrar algún parámetro que mejore esta generación y mutación 0.001
situación. Si pensamos en como funciona el algoritmo genético,
podemos deducir, que a mayor volumen de datos, deberemos
tener un porcentaje de mutación menor, ya que un porcentaje de 5.4 Matriz de Orden 50
0.1 en 16 bits apenas cambia 2 bits por muestra, pero este mismo
porcentaje en 100 bits cambiará 10 bits de cada individuo,
introduciendo una aleatoriedad a las generaciones que impedirá
encontrar la solución en la mayor parte de los casos. Mostraremos ahora el resultado de ejecutar el algoritmo con una
matriz de tamaño 50x50. El número de individuos por generación
Probaremos pues a reducir el porcentaje de mutación a 0.01, con seguirá siendo 10, pero reduciremos el porcentaje de mutación
esto, en una matriz de orden 10 se cambiará un bit de cada para lograr la convergencia.
individuo, lo que probablemente, unido al elitismo aplicado en
nuestra implementación tras los cruces, haga que se llegue a la
solución en un reducido número de generaciones (en el caso de la
prueba se encontró el patrón en la generación número 31).

Figura 14: muestra de orden 50 con 10 individuos por


generación y mutación 0.0005

Figura 12: muestra de orden 10 con 10 individuos por


generación y mutación 0.01
Observamos en este caso que la curva del fitness frente a las
generaciones iteradas es análoga a la del caso de lamatriz de
muestra de orden 25, pero en este caso obtendremos un fitness
igual a uno en una generación cercana a la número 1000.

5.5 Matriz de Orden 100

Para terminar con las pruebas ejecutaremos un par de pruebas


para matrices de tamaño 100x100, estas matrices estarán
compuestas por 10.000 elementos, por lo que su convergencia,
una vez elegidos los parámetros adecuadamente, se puede alargar
durante un número elevado de generaciones.

Si elegimos un valor para el porcentaje de mutación erróneo el


algoritmo no convergerá nunca, y se estavilizará en un va,or de
fitness inferior a 1(en la figura 8 vemos como para un porcentaje Figura 16: muestra de orden 100 con 10 individuos por
de mutación mal elegido (0.001) el fitness se estabiliza en torno a generación y mutación 0.00005
un valor de 0.85 en la generación 1600 aproximadamente).

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/

También podría gustarte