Está en la página 1de 20

Algoritmos genticos

v Introduccin 2
v Esquema bsico 3
v El problema de la mochila 7
v Asignacin de recursos 10
v El problema del viajante 13
v Variantes del esquema bsico 15
v Por qu funciona? 19
v Observaciones finales 20

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 1


Algoritmos genticos:
Introduccin

v Inventados por John Holland a mitades


de los 70.
v Inspirados en el modelo de evolucin
biolgica.
v Utilizan el principio de seleccin
natural para resolver problemas de
optimizacin complicados.

v Idea:
Partiendo de una poblacin inicial (soluciones
factibles)
Seleccionar individuos (favorecer a los de mayor
calidad)
Recombinarlos
Introducir mutaciones en sus descendientes
Insertarlos en la siguiente generacin

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 2


Algoritmos genticos
Esquema bsico

algoritmo
algoritmo gentico
gentico
principio
principio
t:=0;
t:=0;
inicializa
inicializa P(t);
P(t);
evala
evala P(t);
P(t);
mq
mq not termina hacer
not termina hacer
t:=t+1;
t:=t+1;
P(t):=selecciona
P(t):=selecciona P(t-1);
P(t-1);
recombina
recombina P(t);
P(t);
muta
muta P(t);
P(t);
evala
evala P(t)
P(t)
fmq;
fmq;
fin
fin

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 3


Algoritmos genticos
Esquema bsico

v Maximizar f(x) = x2 con x entero entre 0


y 31

Representacin en binario
0 1 1 0 1
Poblacin inicial generada aleatoriamente,
tamao 4
01101
11000
01000
10011

Funcin de calidad f(x) = x2


Seleccin:
Seleccionar Recombinar
(Duplicar) (Cruce)

Individuo 1 Individuo 1 Descendiente 1


Individuo 2 Individuo 2 Descendiente 2
Individuo 3 Individuo 3 Descendiente 3
.. .. ..

Generacin Generacin Generacin


actual intermedia siguiente

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 4


Algoritmos genticos
Esquema bsico

Generar una poblacin intermedia. Para ello


asignar a cada individuo una probabilidad de ser
seleccionado directamente proporcional a su
funcin de calidad.
Cromosoma x f( x) prob. copias
01101 13 169 0.14 1
11000 24 576 0.49 2
01000 8 64 0.06 0
10011 19 361 0.31 1

De la poblacin intermedia se seleccionan parejas


de forma aleatoria.

Cruce: elegir un punto intermedio e intercambiar


los genes de los padres a partir de ese punto.

11 000 11 011
10 011 10 000

Mutacin: cambio de un bit elegido aleatoria-


mente (probabilidad pequea).
Cromosoma x f(x)
11011 27 729
10000 16 256
01100 12 144
11001 25 625

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 5


Algoritmos genticos
Esquema bsico

v Codificacin:
Utilizar cadenas de bits para representar las
soluciones
Los bits pueden codificar nmeros enteros,
reales, conjuntos,
Ventaja: los operadores de cruce y mutacin son
simples.
Inconveniente: no siempre resulta natural.

v Seleccin:
Asignar una probabilidad de supervivencia
proporcional a la calidad
Generar una poblacin intermedia
Elegir parejas de forma aleatoria
No se pueden cruzar elementos de dos
generaciones distintas.

v Operador de cruce de un punto

v Mutacin:
Hay una pequea probabilidad de cambio de un
bit.

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 6


El problema de la mochila

v Recordar...
Se tienen n objetos y una mochila
El objeto i tiene peso pi y la inclusin del objeto i
en la mochila produce un beneficio bi
El objetivo es llenar la mochila, de capacidad C,
de manera que se maximice el beneficio.

maximizar bi xi
1i n

sujeto a pi x i C
1i n

con x i {0,1}, bi > 0, pi > 0, 1 i n

v Problemas:
Codificacin gentica: cmo representar las
soluciones
Calidad de las soluciones: cmo se mide

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 7


El problema de la mochila

v Representacin:
x = (x 1 , ,xn ), x i {0,1}

Observar que no se garantiza factibilidad


v Funcin de calidad:
C bi x i si bi x i >C
1i n 1i n
f (x) =
bi x i en otro caso
1i n

Penalizar la no factibilidad. Obliga al algoritmo a


elegir soluciones factibles porque son mejores.

v Inicializacin:
Generar secuencias de ceros y unos

v Operador de cruce de un punto

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 8


El problema de la mochila

v Otra posible representacin:


Una lista con los elementos que metemos en la
mochila.

v Problema: qu operador de cruce


utilizamos?
Observar que el operador de un punto no sirve,
es necesario adaptarlo.

(2,3,4) (2,3,5)
(1,4,5) (1,4,4)

Por ejemplo, eliminar los elementos repetidos

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 9


Asignacin de recursos

vHay m recursos de capacidades


c1,c2,,cm y n tareas a ejecutar que
consumen parte de los recursos.
La tarea i-sima consume wij partes del
recurso j.

vLa ejecucin de la tarea i-sima produce


un beneficio bi.

vSe trata de decidir qu tareas se ejecutan


de manera que se maximice el beneficio
total.

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 10


Asignacin de recursos

vRepresentacin de un individuo:
x = (x1,x2,,xn), con xi{0,1}
(xi=1 significa ejecutar la tarea i-sima)
para ser factible debe verificar: i=1wijxi c j,
para j=1,2,,n
y para ser ptima debe maximizar: B(x) =
i=1xibi

vLa funcin de calidad:


f(x) = i=1bixi - s max{bi}
donde s = |{j | i=1wijxi > cj}|, es decir,
el nmero de recursos agotados.

vEl tamao de la poblacin elegido es


=50, la tasa de mutacin pm=1/n, y la
tasa de recombinacin pc=06 .

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 11


Asignacin de recursos

v Resultados obtenidos tras 100


ejecuciones de 6 casos distintos:

n=15, m=10 n=20, m=10 n=28, m=10 n=50, m=5 n=60, m=30 n=105, m=2
f5103(x) N f104 (x) N f5104(x) N f105 (x) N f105(x) N f2105(x) N

4015 83 6120 33 12400 33 16537 1 7772 5 1095445


4005 16 6110 20 12390 30 16524 1 7761 4 1095382 10
3955 1 6100 29 12380 10 16519 2 7758 11 1095357 3
6090 11 12370 1 16518 5 7741 7 1095266 1
6060 3 12360 19 16499 1 7739 1 1095264 9
6050 1 12330 5 16497 1 7738 3 1095206 3
6040 3 11960 1 16494 1 7725 1 1095157 2
11950 1 16473 1 7719 1 1095081 1
16472 1 7715 1 1095035 2
16467 1 7711 2 1095035 8
16463 1 7706 1 1094965 1

f=40127 f=61023 f=123747 f=16378 f=7626 f=1093897

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 12


El problema del viajante

Si otra vez yo,


v Recordar y qu!

Encontrar un recorrido de longitud mnima


para un viajante que tiene que visitar varias
ciudades y volver al punto de partida, conocida
la distancia existente entre cada dos ciudades.

v Codificacin: en forma de vector


siguiendo el orden del recorrido
Ejemplo:
[3, 2, 5, 4, 1] 3 2 5 4 1

v Cruce:
De un punto:
[3, 2, 5, 4, 1] [3, 2, 1, 4, 2]
[3, 5, 1, 4, 2] [3, 5, 5, 4, 1]

u Pueden aparecer ciudades repetidas


u No siempre visitamos todas.

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 13


El problema del viajante

Heurstica:
u Elegir una ciudad , i, aleatoriamente

u Suponer que en el padre 1 de la ciudad i


vamos a la j y en el padre 2 de i vamos a
k
Si j,k ya estn incluidos, elegir una nueva
ciudad.
Si no, aadir la ciudad que no est incluida
ms prxima a i.
u Repetir mientras queden ciudades sin
recorrer

v Otra codificacin:
Asignar a cada ciudad un valor entre 0 y 1
aleatoriamente. El recorrido se obtiene al ordenar
estos nmeros de mayor a menor.
Ejemplo:
[0.2, 0.8, 0.4, 0.7, 0.9] 5 2 4 3 1

v Cruce:
Cualquiera de los habituales, de un punto por
ejemplo.

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 14


Variantes del esquema bsico

v Codificacin: cmo se representan las


soluciones en forma de cromosomas?
Cadenas de 0s y 1s (algoritmos clsicos)
Nmeros enteros y reales
Otros
v Cuestiones a tener en cuenta:
Factibilidad: los cromosomas pueden codificar
soluciones no factibles del problema.
u Solucin: penalizar en la funcin de calidad

descartar
reparar
Legalidad: los cromosomas pueden no ser
decodificables a una solucin.
Ejemplo: problema de la mochila
(2,3,4) (2,3,5)
(1,4,5) (1,4,4)
Unicidad de la codificacin:
u Uno a uno

u Uno a N

u N a uno

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 15


Variantes del esquema bsico

v Cambio de generacin:
Manteniendo el tamao de la poblacin
u Reemplazar padres por hijos

u Reemplazar un par de individuos elegidos


aleatoriamente por los hijos
u Otros

Aumentando el tamao de la poblacin


u Crear una poblacin temporal formada por
los padres y los hijos y seleccionar de ah los
mejores para formar la nueva generacin
u Dados n padres generar m hijos (m>n) y de
ah seleccionar los n mejores.
v Seleccin:
Asignar a cada individuo una probabilidad de
ser elegido definida como
f (x i ) f (x j )
poblacin
donde f puede ser
u la funcin de calidad (quizs escalada o
centrada)
u la posicin de la solucin si se ordenan
segn su calidad

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 16


Variantes del esquema bsico

v Cruce
De un punto: seleccionar aleatoriamente un
punto en el cromosoma e intercambiar el final de
cada cromosoma a partir de dicho punto.

padre

madre

hijo 1
hijo 2

De dos puntos:

padre

madre

hijo 1
hijo 2

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 17


Variantes del algoritmo bsico

Uniforme: cada gen se hereda de un padre


elegido aleatoriamente.

padre

madre

hijo 1
hijo 2

v Mutacin
Evita que solo se considere un subconjunto de las
posibles soluciones

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 18


Por qu funciona?

v Un esquema es el conjunto de
cromosomas que siguen un patrn.

Ejemplo: 00*1*0={000100, 000110, 001100, 001110}

v Teorema del esquema:


Relaciona la calidad de los miembros
de un esquema en una generacin con
el nmero esperado de miembros en la
siguiente generacin.
<Ns(g+1)>= Ns(g)* ms(g)/m(g)
Ns(g) es el nmero de elementos del esquema s
en la generacin g
m(g) la calidad media de los cromosomas en la
generacin g
ms(g) una estimacin de la calidad media de los
cromosomas de la generacin s que pertenecen al
esquema s
<x> es el valor esperado

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 19


Observaciones finales

v Observaciones:
La evolucin est dirigida por la calidad relativa
Existe un paralelismo implcito, las operaciones
se hacen implcitamente sobre todo un esquema.
Encontrar un equilibrio entre
explotacin/exploracin

v Los algoritmos genticos funcionan


mejor cuando:
Las soluciones potenciales pueden representarse
de forma que quede explcita la composicin
Existen operadores para mutar y recombinar
estas representaciones

v Los algoritmos genticos funcionan


peor cuando:
La representacin no recoge las caractersticas de
las soluciones
Los operadores no generan candidatos
interesantes

L. Recalde - C.P.S. Esquemas algortmicos - Algoritmos genticos Pg. 20

También podría gustarte