Está en la página 1de 15

ALGORITMOS GENETICOS

PRESENTADO POR:

• SEBASTIAN ROMERO
• JEAN ESTRADA
• STEEVENS FONSECA
ANTECEDENTES HISTORICOS
• Su nombre se deriva de que están basados en modelos de cambio genético en una población de
individuos.

• Tienen como fundamento los principios de selección natural y supervivencia, postulados por
Darwin en su libro "El origen de las especies" publicado en 1859.

• Se reconoce a Holland como su fundador quien, en 1975, intuyó la posibilidad de incorporar la


semántica de la evolución natural a procesos de optimización, surgiendo así los principios de esta
técnica.

• Se encuentran bien descritos en textos de Goldberg. Davis, Michalewicz y Reeves.


DEFINICIONES
• Los Algoritmos Genéticos (AG) puede verse como una familia de procedimientos de búsqueda
adaptativos.

• Los Algoritmos Genéticos son un método de optimización mediante procesos de búsqueda.

• El Algoritmo Genético es un proceso de cómputo que emula la forma de actuar de la


evolución biológica.
DESCRIPCIÓN GENERAL
• La idea básica es generar un conjunto con algunas de las posibles soluciones. Cada una va a ser
llamada individuo, y a dicho conjunto se le denominará población.

• Cada individuo tiene una información asociada a él. Tiene asociada una función de adaptación que
determina el grado de adaptación de un individuo. A dicha información se le denomina código
genético.

• Las características de los individuos, sean beneficiosas o no, se van a denominar fenotipos. La
información asociada a un individuo se compone de partes indivisibles denominados cromosomas.

• Un fenotipo puede estar en más de un cromosoma, en cuyo caso puede ser que el hijo herede un
fenotipo que no tenía ni el padre ni la madre, sino una combinación de ambos. En caso de que el
hijo tenga parte de los genes del padre y parte de los genes de la madre que intervienen en un
fenotip0, se va a crear una caracteristica nueva asociada a ese fenotipo.
CARACTERÍSTICAS
• Son algoritmos estocásticos, es decir, dos ejecuciones distintas pueden dar dos soluciones
distintas.
• Son algoritmos de búsqueda múltiple, luego dan varias soluciones.
• Son los algoritmos que hacen una barrida mayor al subespacio de posibles soluciones válidas.
• A diferencia de los otros algoritmos, cuya convergencia y resultado final son fuertemente
dependientes de la posición inicial, la convergencia del algoritmo genético es poco sensible a
la población inicial si esta se escoge de forma aleatoria y es lo suficientemente grande.
• Por su grado de penetración casi nulo, la curva de convergencia asociada al algoritmo
presenta una convergencia excepcionalmente rápida al principio, que casi enseguida se
bloquea. Esto de debe a que el algoritmo genético es excelente descartando subespacios
realmente malos.
• La optimización es función de la representación de los datos.
• búsqueda paramétricamente robusta. Eso quiere decir que sólo si se escoge realmente mal
los parámetros del algoritmo, éste no va a converger.
DIFERENCIAS CON OTROS METODOS

• Trabajan con un conjunto de parámetros codificados y no con los parámetros mismos.

• Inician la búsqueda desde un conjunto de puntos, no de uno solo.

• Usan una función a optimizar en lugar de la derivada u otro conocimiento adicional.

• Usan reglas de transición probabilísticas no determinísticas.


ALGORITMO GENÉTICO BASICO
• PROCEDIMIENTO AG
tiempo 0
inicializa_población(tiempo)
evalúa_población(tiempo)
mientras no condición_de_terminación
tiempo = tiempo + 1
construye_población(tiempo) a partir de población(tiempo -1) usando
selección
modifica_población(tiempo) usando operadores genéticos
evalúa_poblaciónțtiempo)
reemplazar
fin mientras
PUNTOS A CONSIDERAR
• Codificación de los parámetros de un problema.
• Función de aptitud. Es base para determinar qué individuos (soluciones) tienen mayor o
menor probabilidad de sobrevivir.
• Criterios de tamaño de población. Balance entre una población muy pequeña (convergencia a
un máximo local) y una población muy grande (mayor utilización de recursos
computacionales).
• Criterio de selección. Los individuos son escogidos de acuerdo a su aptitud. Los más aptos
tienen mayor probabilidad de contribuir con una o más copias en la siguiente generación
(simulación de la selección natural).
• Criterio de paro. Normalmente cuando un porcentaje alto de la población converge a un valor.
Si con ese valor no se llega a la medida esperada, entonces se toma una pequeña proporción y
se inyecta "diversidad genética" (se generan aleatoriamente nuevos individuos), o inclusive se
reemplaza completamente la población.
• Operadores genéticos. Los principales son: cruza(crossover), mutación, selección (algunos
autores lo consideran como tal) y reemplazo (aunque existen mas).
OPERADORES GENÉTICOS: SELECCION

• Proceso que escoge los miembros de la población que serán utilizados para la reproducción.
Su meta es dar más oportunidades de selección a los miembros más aptos de la población.

• Lo más común es implementar una "ruleta con truco" para elegir a los individuos, donde los
más aptos tienen una mayor parte en la ruleta, por lo tanto, más probabilidad de ser
escogidos.

• Existen otros métodos como el "torneo" en que dos individuos son elegidos aleatoriamente y
se escoge al más apto.
OPERADORES GENÉTICOS: CRUZA
• Operador que consiste en unir en alguna forma los cromosomas de dos padres para formar
dos descendientes.
• Lo más sencillo es implementar cruza de un punto, que toma dos individuos y corta sus
cromosomas en una posición seleccionada al azar, para producir dos segmentos anteriores y
dos posteriores, los posteriores se intercambian para obtener dos cromosomas nuevos, como
se ve en la siguiente figura:
OPERADORES GENÉTICOS: MUTACIÓN
• Se encarga de modificar en forma aleatoria uno o más genes del cromosoma de un
descendiente.
• La siguiente figura muestra el quinto gen siendo mutado, a lo que se conoce como "mutación
sencilla":
OPERADORES GENÉTICOS REEMPLAZO

• Es el método por el cual se insertan los hijos en la población, por ejemplo mediante la
eliminación del individuo más débil o al azar.
SOFTWARE
Existen varios paquetes y bibliotecas de algoritmos genéticos en el mercado, a continuación se
presentan algunos:
• GAGS
Generador de aplicaciones basadas en algoritmos genéticos, escrito en C++. Desarrollado
por el grupo de J.J. Melero.
Dirección primaria: kal-el.ugr.es/gags.html
Dirección para descargar vía FTP:kal-el.ugr.es/GAGS/.
• GALIB
Biblioteca de algoritmos genéticos de Matthew. Conjunto de clases en C++ de algoritmos
genéticos.
Dirección primaria: lancet.mit.edu/lgal
Dirección para descargar via FTP:lancet.mit.edu/pub/gal
• GPDATA
Para desarrollar algoritmos genéticos en C++.
Dirección primaria: cs.ucl.ac.uk/geneticlpapers/
Dirección para descargar vía FTP: ftp.cs.bharm.ac.uk/pub/authors/W.B. Langdon/gp-code/

• GPJPP
Bibliotecas de clases para desarrollar algoritmos genéticos en Java
Dirección primaria: www.turbopower.com/-kimklgpipp.asp.
• LIL-GP
Herramientas para programación genética en C.
Dirección primaria: isl.msu.edu/GA/software/lil-gp/index.html
Dirección para descargar via FTP: isl.cps.msu.edu/pub/GAlilgp/
• GPsys
Sistema de programación genética en Java.
Dirección primaria: www.cs.ucl.ac.uk/staffiA.Qureshilgpsys.html.

También podría gustarte