Está en la página 1de 8

15.

053
z

Jueves, 14 de mayo

El algoritmo gentico bsico


z

Algoritmos genticos

Desarrollado por John Holland en 1975 Simula el proceso de la evolucin Principio bsico: la evolucin se puede entender como un proceso de optimizacin

Entregas: material de clase


z

Pregunta: cundo damos la sesin de repaso extra?

Ms sobre analogas fsicas


z

El algoritmo gentico bsico


z

Las analogas fsicas como principio rector de los problemas de optimizacin


Algoritmos genticos John Holland 1975 Recocido simulado Kirkpatrick Sistemas de colonia de hormigas

Basado en trminos generales en la seleccin natural con un toque aadido de biologa molecular.

z Los individuos con mejor calidad se reproducen [operador de seleccin] z

Los cromosomas de cada hijo se forman como una mezcla de los cromosomas de los padres [operador de cruce]. La mutacin aade diversidad a las especies y un mayor campo para la mejora [operador de mutacin]. En los cromosomas est codificada la info. pertinente
4

Trminos AG
cromosoma (solucin)

Operador de seleccin: Seleccione dos padres de la poblacin para reproducirse. La seleccin tiende a los individuos de mayor calidad. gen 1 (variable) seleccin cruce mutacin
0

alelos (valores)

Operador de cruce: Cada hijo se obtiene como una mezcla aleatoria de sus padres utilizando una operacin de cruce. Operador de mutacin: En algunos momentos un individuo de la poblacin sufre una mutacin aleatoria.

poblacin

Objetivo: maximizar la funcin de calidad (funcin objetivo)


5

Un ejemplo sencillo: maximizar el nmero de unos


z

Poblacin inicial 11101 01101 00110 10011 Calidad media

Calidad 4 3 2 3 3
7

Operacin de cruce: toma dos soluciones y crea un hijo (o ms) cuyos genes son una mezcla de los genes de los padres.
Seleccione dos padres de la poblacin. ste es el paso de seleccin. Veremos ms sobre ello ms adelante.

z z z z

padre 1

01101

padre 2

10011

Las poblaciones suelen ser mucho mayores, digamos alrededor de 50 a 100, o ms.

Operacin de cruce: toma dos soluciones y crea un hijo (o ms) cuyos genes son una mezcla de los genes de los padres.
Cruce de 1 punto: se divide cada padre en dos partes en la misma ubicacin k (aleatoriamente) padre 1

Operador de seleccin
z z

Piense en el cruce como en la reproduccin


La seleccin influye en la reproduccin de modo que los padres de ms calidad tienen ms posibilidades

01101

padre 2

10011

Ejemplo:
1. 2. 3. 4.
9

Por ejemplo, sea la probabilidad de seleccionar al miembro j calidad(j)/calidad total 4 3 2 3 12 Prob(1) = 4/12 = 1/3 Prob(3) = 2/12 = 1/6

El hijo 1 consiste en los genes 1 a k-1 del padre 1 y en los genes k a n del padre 2. El hijo 2 es el reverso. hijo 1 hijo 2

01111

10001

11101 01101 00110 10011 Calidad total

10

Ejemplo slo con seleccin y cruce


original tras 5 generaciones 11011 10111 11011 11011 11011 11011 3,7000 tras 10 generaciones 11011 10011 11011 11011 11011 11011 3,9000
11

Mutacin
z

10011 01000 00001 11111 ... 00100 11011 2,8000

Dificultad previa: la poblacin ha perdido gran cantidad de variabilidad gentica. Idea: introducir variabilidad gentica en la poblacin a travs de la mutacin. Operacin de mutacin sencilla: reemplazar aleatoriamente q% de los bits en la poblacin.
12

Ejemplo anterior con un 1% de tasa de mutacin


original 10011 01000 00001 11111 ... 10001 00100 11011 2.8000 tras 5 generaciones 11011 11111 11111 11111 01111 11111 11111 4.8000 tras 10 generaciones 11111 11111 11111 11111 11111 11111 11111 4.9000
13

Representaciones de operadores
ilustrado con una representacin basada en bits

f4 f5 f6

f3

f2

1111111111 0000000000 1111000000 0000111111


Cruce

1001110100

f1

1000110100

Seleccin

Mutacin
14

El algoritmo genetico bsico


z definir la representacin
iniciar poblacin seleccionar 2 padres crear 1 o 2 hijos mutar poblacin modificar poblacin paramos o continuamos? finalizar
15

AG basados en generacin
2 4 8 6 9 11 1 3 5 7 10 12 14 15 Tome toda la poblacin de n y cree n/2 conjuntos de padres utilizando la seleccin.
16

cmo se representa la solucin


z definir la funcin de calidad

En los AG basados en generacin creamos hijos de generacin en generacin.

objective function
z definir los operadores

inicializacin, cruce, mutacin

13

16 17 18 19 20

AG basados en generacin
2 4 8 6 9 11 1 3 5 7 10 12 14 15 2 5 3 2 1 3 14 8 15 2 9 1 8 12 6 4 7 2 6 5
17

AG basados en generacin
2 1 3 5 6 9 11 7 10 12 14 15 2 5 3 2 1 3 14 8 15 2 9 1 8 12 6 4 7 2 6 5 A C E G I K M O Q S B D F H J L N P R T
18

A continuacin, cree dos hijos de cada padre.

4 8

13

13

Luego reemplace la poblacin original por el hijo

16 17 18 19 20

16 17 18 19 20

AG basados en generacin
A B C 1D 2 3 E F 5 4 G H 7 6 I J 8 9 10 K L 11 12 M N 13 14 15 O P 16 17 Q R 18 19 S 20 T

AG basados en estado estacionario


2 1 3 5 6 9 11 7 10 12 14 15 En AG de estado estacionario creamos los hijos de uno en uno y luego reemplazamos un miembro de la pob. con el nuevo hijo.

As se crea la prxima generacin. Luego haga las iteraciones

4 8

13

16 17 18 19
19

20

20

AG basados en estado estacionario


2 4 8 6 9 11 1 3 5 7 10 12 14 15 Seleccione dos padres. Luego cree un hijo. 6 2 A 8

AG basados en estado estacionario


2 4 6 9 11 1 3 5 7 10 12 14 15 6 Luego reemplace un miembro de la poblacin con el nuevo hijo. 2 A

13

13

16 17 18 19 20
21

16 17 18 A 19 20
22

AG basados en estado estacionario


2 4 8 6 9 11 1 3 5 7 10 12 14 15 Repita este proceso, y ocasionalmente forme una mutacin.

Algoritmo gentico de estado estacionario


Principio obtener poblacin inicial Repetir seleccionar dos individuos I 1 y I2; aplique el operador de cruce sobre I 1 y I2 para producir un hijo I 3; reemplace un miembro de la poblacin con I3 o deseche I3; (a menudo se reemplaza un padre) ocasionalmente realice una mutacin o una inmigracin; sta que la poblacin converja; ha 24 Fin;

13

16 17 18 A 19 20
23

Codificacin (puede ser peliagudo para problemas combinatorios)


z z

Cmo se hace un cruce?


z

Cmo se codifica una ruta de n ciudades? Representacin 1: las ciudades en orden

Es muy difcil en este caso. No est claro cmo mezclar dos tours. En la comunidad del AG se ha confiado a menudo en mtodos especficos que no han dado buenos resultados. 8 6 5 4 1 7 4 9 7 8 6 1 3 3 9 5 2 2

Representacin 2: la lista de ciudades prximas 1 4 2 8 3 9 4 7 5 1 6 3 7 6 8 5 9 2


25

No se puede tomar mitad de una ruta y mitad de otra

26

Cmo se hace un cruce?


z

Representacin de claves aleatorias


z z

Regla estndar: halle algo que funcione.


Ejemplo: visite primero las ciudades k para que aparezcan en la primera ruta, y luego visite las ciudades restantes para que aparezcan en la segunda ruta. 8 6 8 5 4 5 1 7 1 4 9 4 7 8 7 6 1 9 3 3 3 1 8 9 5 2 5 2 2 6
27

Un cromosoma consiste en n enteros de 0 a K


en nuestro ejemplo, K = 100

Clasificando los n enteros, se puede obtener un orden 1 43 2 3 4 5 6 7 8 9

32 17 9 88 23 6 55 72 stas son las claves aleatorias para las ciudades 1 a 9

4 3 6 2 1 8 9 5 ste es el orden obtenido tomando las ciudades por el orden de sus claves aleatorias.
28

Un cruce utilizando claves aleatorias


padre 1 1 43 padre 2 1 21 2 32 2 49 3 17 3 87 4 9 4 39 5 88 5 77 6 23 6 17 7 6 7 9 8 55 8 69 9 72 9 92

padre 1 1 43 7 padre 2 1 21 7 hijo 1 43


29

2 32 4 2 49 6 2 32 4

3 17 3 3 87 1 3 87 6

4 9 6 4 39 4 4 9 2

5 88 2 5 77 2 5 77 1

6 23 1 6 17 8 6 17 8

7 6 8 7 9 5 7 9 5

8 55 9 8 69 3 8 55 3

9 72 5 9 92 9 9 92 9
30

Seleccione una clave de uno de los dos padres (al azar) 1 43 2 32 3 87 4 9 5 77 6 17 7 9 8 55 9 92

Un cruce alternativo que se basa en un algoritmo aleatorizado


z

Elija las 3 ciudades con las claves ms, pequeas y cree una ruta sobre ellas.
59 19 13

El algoritmo de insercin aleatorio


Escoja tres ciudades al azar y halle una ruta T sobre las ciudades Para k = 4 a n, escoja una ciudad que no est en T e insrtela de modo ptimo en T.

67 53 89 38 31 26 83
32

Representacin: use claves aleatorias, seleccione ciudades para insertar en el orden en que aparecen en claves aleatorias
31

Halle la ciudad con la siguiente clave ms pequea e insrtela


59 19 13

Halle la ciudad con la siguiente clave ms pequea e insrtela


59 19 13

67 53 89 38 31 26 83
33

67 53 89 38 31 26 83
34

Halle la ciudad con la siguiente clave ms pequea e insrtela


59 19 13

Halle la ciudad con la siguiente clave ms pequea e insrtela


59 19 13

67 53 89 38 31 26 83
35

67 53 89 38 31 26 83
36

Halle la ciudad con la siguiente clave ms pequea e insrtela


59 19 13

Inserte la 8 ciudad
19

59

13

67 53 89 38 31 26 83
37

67 53 89 38 31 26 83
38

Inserte la ltima ciudad


59 19 13

La ruta asociada con las claves aleatorias utilizando la insercin


59 19 67 13

67 53 89 31 38 31 26

53 89

38

26 83
39

83

40

AG
z z z

Bsqueda Nbhd
z z z z

AG desde 1975
z

Poblacin Funcin de calidad Operador de mutacin (opera en soluciones nicas) Operador de cruce (crea un hijo aleatorio de dos padres)

Una solucin cada vez Funcin objetivo Operador de vecindario Bsqueda local: intentar siempre la mejora No suele confiar en la aleatorizacin

Los AG se iniciaron con el cruce de 1 punto, intercambio de bits para mutar y un plan generacional.
Muchas tcnicas de representacin, para mutacin, para cruce, para combinar heursticas mltiples, ... Ya no es fcil distinguir qu es un algoritmo gentico y qu no lo es.

z Los AG han evolucionado mucho desde entonces

z Operador de seleccin (tiende a individuos de ms calidad) z

Uso importante de la aleatorizacin

41

42

Caractersticas de los algoritmos genricos


z

Los AG parecen funcionar mejor en problemas en los que la funcin es muy compleja y la factibilidad es fcil de conseguir. La implementacin de los AG es todava un arte. Requiere muchos ajustes, sin embargo, a veces se puede afinar mucho y llegar de todos modos al mismo resultado. Fcil realizar un paralelo Fcil al principio y para obtener una tcnica que funcione
43

z z

z A menudo requiere mucho esfuerzo para que funcione bien

También podría gustarte