Algoritmos genéticos en grafos Características de los GAs

Anuncio
Algoritmos genéticos en grafos
Algoritmos evolutivos
Jesús García López de Lacalle
E. Universitaria de Informática (UPM)
Características de los GAs
• También se llaman EAs
• Fueron introducidos por John Holland ∼ 1970
• Están inspirados en sistemas biológicos
Hay una población de individuos
La población evoluciona con un criterio de selección natural
Los individuos se reproducen y mueren
Pueden aparecer mutaciones en los individuos
Los individuos tienen material genético
1
Material genético
• Cromosoma
conjunto de alelos = { 0, 1}
01001100010100101000100001110011101
longitud = w
• Cada individuo tiene un único cromosoma
• Mutación
10001010101101010
10001010100101010
Reproducción
Los individuos “más aptos”
• Tienen mayor probabilidad de ser padres
• Tienen más hijos
Recombinación cromosómica
Padres
Hijos
10001010101101010
10001010101111001
01100101000111001
01100101000101010
2
Selección natural
El tamaño de la población se mantiene constante
Evolución de la población en una generación
• Reproducción
• Mutaciones (afectan a los hijos)
• Muerte de los individuos “menos aptos”
Criterio de selección natural
• v : { individuos } → R
• a es más apto que b ⇔ v(a) > v(b)
Parámetros
de los
algoritmos genéticos I
a = Número de alelos
w = Longitud de los cromosomas
n = Tamaño de la población
m = Número de generaciones
r = Número de parejas que se reproducen
f = Distribución de probabilidad de ser padre
p = Probabilidad de mutación de un alelo
v = función de evaluación
3
Algoritmo genético general I
• Obtener aleatoriamente la primera generación P1
• Para 1 ≤ i < m
– Para 1 ≤ j ≤ r
•
•
•
•
Elegir en Pi una pareja de individuos
Recombinarlos
Mutar sus alelos con probabilidad pm
Incluirlos en la población Pi
– Eliminar de Pi los 2r individuos menos aptos
– Hacer Pi+1 = Pi
• Devolver el individuo más apto de Pm
Parámetros
de los
algoritmos genéticos II
a = Número de alelos
w = Longitud de los cromosomas
n = Tamaño de la población
m = Número de generaciones
pc = Probabilidad de combinación de una pareja
f = Distribución de probabilidad de ser padre
pm = Probabilidad de mutación de un alelo
v = función de evaluación
4
Algoritmo genético general II
• Obtener aleatoriamente la primera generación P1
• Para 1 ≤ i < m
– Para 1 ≤ j ≤ n/2
•
•
•
•
Elegir en Pi una pareja de individuos
Recombinarlos con probabilidad pc
Mutar sus alelos con probabilidad pm
Incluirlos en la población Pi+1
• Devolver el individuo más apto de todas las
generaciones P1, P2, ..., Pm
Ejemplo 1
Problema: Calcular la cadena de 20 bits (cromosoma)
que mayor número de 1’s contiene
Parámetros:
¿ 11111111111111111111 ?
•a=2
•r=7
• w = 20
• p = 0.01
• n = 15
• v(x) = núm. de 1’s de x
• m = 12
• función f
5
Función f
Dada la población P = {u1,u2,u3,...,un}
Entonces: f(x) = Σ { v(uj) − vmin − b | j ≤ x }
U
u1 u2 u3
un
Ejemplo 1
Problema: Calcular la cadena de 20 bits (cromosoma)
que mayor número de 1’s contiene
Parámetros:
•a=2
• w = 20
• n = 15
• m = 12
•f → b=0 y1
•r=7
• p = 0.01
• v(x) = núm. de 1’s de x
Ejecución del GA...
6
Conclusiones del ejemplo 1
b = 0: La población converge demasiado deprisa (se pierde
rápidamente la diversidad)
b = 1: La población converge más despacio obteniéndose un
resultado mejor
Principio básico: Los parámetros de un GA deben ajustarse
de modo que no se produzca una convergencia
rápida de la población
Ejemplo 2
Problema: Dado el siguiente conjunto de cláusulas ternarias
determinar si existe una asignación de valores de verdad a las
variables de forma que se cumplan todas las cláusulas
x1∨¬ x2∨¬ x3
x4∨¬ x5∨¬ x6
x7∨¬ x8∨¬ x9
x10∨¬ x11∨¬ x12
x1∨ x2∨ x3
x4∨ x5∨ x6
x7∨ x8∨ x9
x10∨ x11∨ x12
x1∨¬ x2∨ x3
x4∨¬ x5∨ x6
x7∨¬ x8∨ x9
x10∨¬ x11∨ x12
x1∨ x2∨¬ x3
x4∨ x5∨¬ x6
x7∨ x8∨¬ x9
x10∨ x11∨¬ x12
¬ x1∨ x2∨¬ x3
¬ x4∨ x5∨¬ x6
¬ x7∨ x8∨¬ x9
¬ x10∨ x11∨¬ x12
¬ x1∨ x2∨ x3
¬ x4∨ x5∨ x6
¬ x7∨ x8∨ x9
¬ x10∨ x11∨ x12
¬ x1∨¬ x2∨ x3
¬ x4∨¬ x5∨ x6
¬ x7∨¬ x8∨ x9
¬ x10∨¬ x11∨ x12
x1∨¬ x4∨¬ x7
¬ x2∨ x6∨¬ x10
¬ x3∨¬ x8∨ x11
x5∨¬ x9∨¬ x12
7
Ejemplo 2
Cromosoma: x = 011001010011
Alelo(i) = valor de la variable xi
Parámetros:
•a=2
•r=7
• w = 12 (núm. Variables)
• p = 0.01
• v(x) = núm. Cláusulas
• n = 15
satisfechas por x
• m = 12
•f → b=1
• nc = 32 (núm. de cláusulas)
Ejecución del GA...
Características de los GAs
• Son aplicables en problemas de optimización
• Son “heurísticos”
• Realizan una búsqueda global
• Suprimen la búsqueda en si los resultados son malos
• Son apropiados para problemas NP
8
Teorema fundamental de los GAs
• Para GAs de tipo II
• Esquema:
Orden:
H = *11***0**
O(H) = 3
Longitud:
L(H) = 5
• Número esperado de individuos que cumplen el esquema H
en la generación t: m(H,t)
• Valoración de H:
v(H) =
1
Σ
|Pt∩H|
• Valoración de P:
v(P) =
1
|Pt|
{ v(u) | u∈Pt∩H }
Σ { v(u) | u∈Pt }
• Teorema:
m(H,t+1) ≥ m(H,t)
v(H)
v(P)
1– pc L(H) – O(H)pm
w–1
Un GA para coloración de grafos
• Está basado en el algoritmo voraz de coloración:
1- Elegir una ordenación de los vértices
2- Asignar a cada vértice el color permitido más pequeño
1
Permutación de vértices:
1
3
5
2
2
42531
Conjunto de colores:
{1,2,3,4,5}
1
4
3
3
• Los cromosomas son permutaciones de los vértices
9
Un GA para coloración de grafos
• Recombinación cromosómica:
Padres
Hijos
685932147
786495321
684935127
986315427
• Mutaciones:
685932147
685392147
Un GA para coloración de grafos
Función de evaluación:
• Longitud de los cromosomas w
• Número cromático del cromosoma x χ(x)
• Función de evaluación
v(x) = w − χ(x)
10
Ejemplo 3
Calcular el número cromático del siguiente grafo
Ejecución del GA...
Un GA para el problema del viajante
• Dado un grafo ponderado completo encontrar el
ciclo hamiltoniano de menor peso
1
2
2
5
2
1
1
1
4
ciclo C = 32541
1
2
1
1
Solución:
1
peso w(C) = 5
3
• Los cromosomas son permutaciones de los vértices
11
Un GA para el problema del viajante
• Recombinación cromosómica:
Padres
Hijo1
685932147
786495321
684935127
628934157
652938147
645932187
• Mutaciones:
685932147
785932146
Un GA para el problema del viajante
• Mutación II:
685932147
623958147
12
Un GA para el problema del viajante
Función de evaluación:
• Lista ordenada de pesos L = { w1,w2,...,wq }
• Peso del grafo W = w1 + w2 + ... + wq
• Ciclo hamiltoniano C = v1,v2,...,vn
• Peso del ciclo w(C) = w(v1v2) + w(v2v3) + ... + w(vnv1)
v(C) = W − w(C)
v(C) = n*w1 − w(C)
v(C) = w1 + w2 + ... + wn − w(C)
Un GA para ciclos hamiltonianos
• Calcular, si existe, un ciclo hamiltoniano en G = (V,A)
• Construir un grafo ponderado completo G´= (V,A´)
w(a) = 1 si a∈A
w(a) = 2 si a∉A
• Aplicar el AG para el problema del viajante a G´
Sea C el ciclo de menor peso obtenido
C es hamiltoniano ⇔ w(C) = n
w(C) − n = núm. de aristas de C que no están en G
13
Ejemplo 4
Determinar si el siguiente grafo es hamiltoniano
Ejecución del GA...
Ejemplo 5
Determinar si el siguiente grafo es hamiltoniano
Ejecución del GA...
14
Referencias
• D.E. Goldberg, Genetic Algorithms in Search, Optimization and
Machine Learning, Addison-Wesley, 1989.
• L. Davis, Handbook of Genetic Algorithms, Van Nostrand Reinhold, 1991.
• W.M. Spears, Evolutionary Algorithms. The Role of Mutation and
Recombination, Springer, 2000.
15
Descargar