Está en la página 1de 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

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

Generacin
actual

Generacin
intermedia

Descendiente 1
Descendiente 2
Descendiente 3
..

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.

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

bi xi

1i n

sujeto a

pi x i C

1i n

con

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

1i n
f (x) =
bi x i
1i n

si

bi x i

>C

1i n

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

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)

f5104(x)

f105 (x)

f105(x)

4015

83

6120

33

12400

33

16537

7772

5 1095445

4005

16

6110

20

12390

30

16524

7761

4 1095382 10

3955

6100

29

12380

10

16519

7758

11 1095357 3

6090

11

12370

16518

7741

7 1095266 1

6060

12360

19

16499

7739

1 1095264 9

6050

12330

16497

7738

3 1095206 3

6040

11960

16494

7725

1 1095157 2

11950

16473

7719

1 1095081 1

16472

7715

1 1095035 2

16467

7711

2 1095035 8

16463

7706

1 1094965 1

f=40127

f=61023

f=123747

f=16378

f=7626

f2105(x)

f=1093897

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

El problema del viajante


v

Si otra vez yo,


y qu!

Recordar

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]

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]

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

También podría gustarte