You are on page 1of 20

Algoritmos genticos

v v v v v v v v

Introduccin Esquema bsico El problema de la mochila Asignacin de recursos El problema del viajante Variantes del esquema bsico Por qu funciona? Observaciones finales

2 3 7 10 13 15 19 20

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

Algoritmos genticos: Introduccin


v v v

Inventados por John Holland a mitades de los 70. Inspirados en el modelo de evolucin biolgica. Utilizan el principio de seleccin natural para resolver problemas de optimizacin complicados. 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 not termina mq not termina hacer 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 (Duplicar) Recombinar (Cruce)

Individuo 1 Individuo 2 Individuo 3 ..

Individuo 1 Individuo 2 Individuo 3 ..

Descendiente 1 Descendiente 2 Descendiente 3 ..

Generacin actual

Generacin intermedia

Generacin 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 01101 11000 01000 10011 x f( x) prob. copias 13 169 0.14 1 24 576 0.49 2 8 64 0.06 0 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 10 011 11 011 10 000

Mutacin: cambio de un bit elegido aleatoriamente (probabilidad pequea).


Cromosoma 11011 10000 01100 11001 x 27 16 12 25 f(x) 729 256 144 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.

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 v

Operador de cruce de un punto 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 sujeto a con
1i n

bi xi pi x i C

1i n

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

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 1 i n f (x ) = bi x i 1 i n si
1i n

bi x i

>C

en otro caso

Penalizar la no factibilidad. Obliga al algoritmo a elegir soluciones factibles porque son mejores. v

Inicializacin:
Generar secuencias de ceros y unos

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.

Problema: qu operador de cruce utilizamos?


Observar que el operador de un punto no sirve, es necesario adaptarlo. (2,3,4) (1,4,5) (2,3,5) (1,4,4)

Por ejemplo, eliminar los elementos repetidos

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

Asignacin de recursos

v Hay 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. v La ejecucin de la tarea i-sima produce un beneficio bi. v Se 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
v Representacin 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

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

v El 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 4015 4005 3955 83 16 1 f104 (x) 6120 6110 6100 6090 6060 6050 6040 N 33 20 29 11 3 1 3 f5104(x) 12400 12390 12380 12370 12360 12330 11960 11950 N 33 30 10 1 19 5 1 1 f105 (x) 16537 16524 16519 16518 16499 16497 16494 16473 16472 16467 16463 f=40127 f=61023 f=123747 f=16378 N 1 1 2 5 1 1 1 1 1 1 1 f105(x) 7772 7761 7758 7741 7739 7738 7725 7719 7715 7711 7706 f=7626 N f2105(x) N

5 1095445 4 1095382 10 11 1095357 3 7 1095266 1 1 1095264 9 3 1095206 3 1 1095157 2 1 1095081 1 1 1095035 2 2 1095035 8 1 1094965 1 f=1093897

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

El problema del viajante


v

Recordar

Si otra vez yo, 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

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

[3, 2, 1, 4, 2] [3, 5, 5, 4, 1]

Pueden aparecer ciudades repetidas 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

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

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

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.

Seleccin:
Asignar a cada individuo una probabilidad de ser elegido definida como
f (x i )
poblacin

f (x j )

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

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}

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

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

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

You might also like