Está en la página 1de 27

Conferencia # 5

Algoritmos Genéticos
Sistemas inspirados en la naturaleza
Naturaleza  inspiración en diferentes áreas de la
actividad humana

Organismos naturales  capacidad para enfrentar


problemas complejos y dinámicos

Capacidad de adaptación y aprendizaje 


mediante evolución
Ejemplos de Metaheurística Bioinspiradas

• Redes neuronales artificiales.

• Algoritmos genéticos.

• Inteligencia colectiva.
Modelos computacionales bioinspirados

Inspirados en
• Bird flocks

• Fish schools

• Swarms of insects
Procedimiento de búsqueda general

Find starting point x (0)  S


t=0;
Repeat
Evaluate f(x(t));
Calculate a search direction, q(t);
Calculate step length, η(t);
Set x(t+1) to x(t)+ η(t)q(t);
t=t+1;
Until stopping condition is true;
Return x(t) as the solution;
Inspiración
• La Evolución crea individuos de más calidad
– Población de individuos
Cada individuo tiene un código genético
– Individuos exitosos (mayor calidad) tienden a tener más
descendencia
Ciertos códigos resultan en mayor calidad
– Los hijos combinan los códigos de sus padres
•Cruce
•Mutación
• Optimización a través de la evolución artificial
– Definir calidad de acuerdo a la función a optimizar
– Codificar posibles soluciones como códigos genéticos
individuales
– Evolucionar mejores soluciones a través de la evolución
simulada
Algoritmo Genético

El término Algoritmo Genético se usa por el hecho de


que estos simulan los procesos de la evolución
darwiniana a través del uso de operadores genéticos
que operan sobre una población de individuos que
“evoluciona” de una generación a otra.
¿Qué son los Algoritmos Genéticos?

Los Algoritmos Genéticos son métodos de búsqueda de


propósito general basados en los principios de la
genética natural, es decir, son algoritmos de búsqueda
basados en los mecanismos de la selección natural y la
genética.
Algoritmos Genéticos.

Un AG puede ser visto como una estructura de control


que organiza o dirige un conjunto de
transformaciones y operaciones diseñadas para
simular estos procesos de evolución.
Los algoritmos genéticos se pueden considerar
métodos de búsqueda aleatoriamente guiados.
Los algoritmos genéticos son aplicables en la solución
de diferentes tipos de problemas.
Modelos relacionados: Programación genética,
Algoritmos Meméticos.
Un algoritmo general que describe las cuestiones
esenciales de los algoritmos evolutivos es el siguiente:

t = 0;
InicializarPoblacion P (t);
Evaluar P (t);
mientras no se cumpla Condición de Parada
t = t + 1;
P' = SeleccionarPadres(t);
Recombinar P'(t);
Mutar P'(t);
Evaluar P'(t);
P := sobrevivientes P,P'(t);
fin del ciclo
Analogía entre algunos conceptos.
MSP CE
Solución Individuo
Estado Población
Expandir Procesos de recombinación
y mutación
Acciones Operadores genéticos
Estrategia de selección Esquema de selección que
de nodo a expandir utiliza el valor de
adaptación del individuo
Estado objetivo o meta Condición de parada
Representación

• Genes: típicamente una cadena de símbolos


– Frecuentemente una cadena de bits
– Genes pueden ser una simple función o un programa
• Evolutionary programming
• Todo posible gen tiene que codificar una solución
válida.
– El cruce debe generar genes válidos
– La mutación debe generar genes válidos
• Genes intermedios = valor de calidad intermedio
– Los AG son una técnica hill climbing
Componentes de los algoritmos genéticos:
Cromosomas

i. Para la ecuación 3*x - 2*y=0: cromosoma (x,y)


soluciones candidatas (1,2), (2, 3), (-1,2),...,
ii. Para el problema del viajero vendedor: cromosoma
un vector de n componentes donde cada gen o
componente del vector representa el código de
una ciudad, solución candidata: n1n2n3...nn.
Los cromosomas se representan usualmente como cadenas de
caracteres sobre un alfabeto finito, {0,1}, {0,1,2,...,9},
{a,b,...,z}, etc..
Cada componente de esa cadena es equivalente a un gen, y estos
representan parámetros o variables del problema.
Componentes de los algoritmos genéticos:
Población.
Un conjunto de cromosomas, cada uno de ellos se
denomina individuo o elemento de la población. La
población representa un conjunto de soluciones candidatas
del problema.
Ejemplos:
i.{(1,2), (2, 3), (-1,2),..., } es una población para el problema i
antes enunciado.
ii.{ n1n2n3...nn, n3n5n7n2n4n8...} es una población para el
problema ii antes enunciado.

Población inicial: generarlas aleatoriamente o formarlas a


partir del criterio experto. Una vía alternativa es usar un
enfoque basado en casos.
Componentes de los algoritmos genéticos:
Función de Calidad.

La calidad o grado de aptitud de la solución (fitness)


es una medida que permite comparar las soluciones
para determinar cual es mejor.
Usualmente se expresa como una función que tiene
como argumento el cromosoma y le asigna a este un
valor de aptitud.
Ejemplo:
En el problema del viajero vendedor ii, el costo (quizás
expresado en distancia) del camino indicado por ese
cromosoma.
Operadores genéticos

Permiten crear nuevas poblaciones a partir de una


existente.

P0  P1  P2  ...  Pn
Operadores genéticos

 Operador de Selección o Darwiniano

 Operador de Cruzamiento o Mendeliano

 Operador de Mutación
Operadores genéticos

•Operador de selección realiza la selección de las


cadenas de acuerdo a su adaptabilidad para el
posterior apareamiento.
•Operador de cruzamiento realiza la recombinación
del material genético de dos cadenas padres.
•Operador de Mutación al estilo del operador
natural realiza la mutación de un gen dentro de un
cromosoma o cadena a sus diferentes formas
alelomorfas.

Para cada uno de estos operadores está asociado el uso de


probabilidades y la generación de números aleatorios.
Parámetros del algoritmo genético
• Tamaño de la población: indica la cantidad de soluciones
que forman la población.
• Número de generaciones: cantidad de iteraciones que
realizara el algoritmo hasta alcanzar una solución satisfactoria.
• Probabilidad de cruce: Valor entre 0 y 1 que permite
determinar si procede o no el cruce. Como la frecuencia de
cruce es alta este debe ser un valor alto (pc=0.7, pc=0.91,
etc.).
• Probabilidad de mutación: Valor entre 0 y 1 que permite
determinar si procede o no la mutación. Como la frecuencia
de mutación es pequeña este debe ser un valor pequeño
(pc=0.007, pc=0.0091, etc.).
Estrategia de un Algoritmo Genético

Problema Solución Buena


Complejo óptima

Población de soluciones

mutaciones selección natural


crossover
bajo ritmo ruleta
frecuencia alta

Los algoritmos genéticos son potentes

• AGs trabajan con una parametrización del problema


• AGs usan una función premio
• AGs usan reglas de transición probabilísticas
Problema del viajante (Travelling Salesman Problem)
Hallar el camino que visita
n ciudades sólo una vez
n

1
2

Problema NP
Hay n! soluciones que explorar
No existe un algoritmo eficiente para hallar la solución
Mínimos locales, frustración
Uso práctico frecuente si se añaden ligaduras (rutas, llamadas de teléfono,..)

Parametrización
e.g. A1 = {1,7,4,3,8,2,6,9,5}
mutación A2 = {1,7,3,4,8,2,6,9,5}
crossover A3 = {1,8,2,6,7,4,3,9,5}
premio dist = d(1,7) + d(7,4) + ... + d(9,5) + d(5,1)
Funcionamiento de un AG

Generación aleatoria de la Población


Inicial

Evaluación de las cadenas de acuerdo a


la Función Objetivo

Criterio de Parada para la Optimización


Objetivo

Proceso de Reproducción
(selección)

Recombinación por cruzamiento

Mutación

Actualización de los individuos de la próxima


generación y evaluación de la población
Generación de la población inicial
• Generación aleatoria de los individuos.

• Sembrado de individuos (dados por expertos).

• Solución a casos semejantes.


Mecanismos de reproducción o selección
• se encarga de la selección de los
mejores de una generación a otra. Los
mejores seleccionados participan en el
cruce.

• Para la selección se usa la función


objetivo (o de adaptación) la que
evaluada en cada uno de los individuos
determinará cuántos individuos como
este participarán en el cruzamiento
Mecanismos de cruzamiento

• permite "confrontar ideas para el


desarrollo de la población en la
búsqueda del mejor”
• El punto de cruce se obtiene, como
debe suponerse de forma aleatoria.
• Una vez obtenido este número, lo que
queda es copiar a los dos individuos
nuevos la parte de la cadena de sus
padres que le corresponde.
El operador de mutación

La mutación es un
proceso, similar al
biológico en el cual un
gen de un individuo
muta o cambia al otro
valor posible, o sea, si
era 0 pasa a ser 1 y
viceversa.
Genetic Algorithm
initialize population p with random genes
repeat
foreach pi in p
fi = fitness(pi)
repeat
parent1 = select(p,f)
parent2 = select(p,f)
child1, child2 = crossover(parent1,parent2)
if (random < mutate_probability)
child1 = mutate(child1)
if (random < mutate_probability)
child2 = mutate(child2)
add child1, child2 to p’
until p’ is full
p = p’
• Fitness(gene): the fitness function
• Select(population,fitness): weighted selection of parents
• Crossover(gene,gene): crosses over two genes
• Mutate(gene): randomly mutates a gene

También podría gustarte