ejemplo resolución algoritmo genético

9
UNED 2015 Ampliación de sistemas inteligentes

Upload: javier-rey

Post on 28-Jan-2016

5 views

Category:

Documents


0 download

DESCRIPTION

Resolución de dos variantes de algoritmo gnético a una población inicial, y creación de una sola generación.

TRANSCRIPT

Page 1: Ejemplo resolución algoritmo genético

UNED 2015

Ampliación de sistemas inteligentes

Page 2: Ejemplo resolución algoritmo genético

Algoritmo genético

Variante 1

Datos iniciales

F. adecuación

x1 x2 x3 x4 x5 x6 x7

-4.39 -7.66 -5.20 +4.59 +7.19 -3.06 -9.59 0.784715

+6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 0.865700

+3.32 +9.45 -6.45 -7.90 -3.14 -8.47 +0.34 0.726645

-8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25 0.709982

+5.33 +5.40 -2.68 0.84 +3.14 +8.41 +2.60 0.753913

-4.91 -1.29 -9.62 -4.23 +1.58 +8.81 -5.00 0.113377

+1.17 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31 1.617830

+9.08 +3.49 +5.42 +8.66 +7.50 -7.82 -6.75 0.727677

-3.17 +8.82 -7.44 -8.64 -1.43 --8.90 +4.90 0.538443

total 6.838282

En la selección proporcional calculamos la probabilidad de selección de cada cromosoma como:

pi = __fi_________ Σ de la las funciones de adecuación = 6.838282

Luego la probabilidad acumulada como:

qi = Σ desde j=1 hasta j= i de las pi de esa generación

Seleccionamos un número aleatorio del intervalo [0-1] para cada saber que cromosoma se muestrea.Debido a que se pide realizar sustitución generacional completa elitista, solo necesitamos 8 cromosomas de muestra para cruzarse y generar 8 individuos nuevos para completar una nueva

población.

f. adecuación selección pr acumulada num aleat ind muestreo

Id individuo i fi pi qi r i

1 0.784715 0.114753 0.114753 0.361428 4

2 0.865700 0.126600 0.241353 0.644376 7

3 0.726645 0.106259 0.347612 0.195519 2

4 0.709982 0.103823 0.451435 0.130596 2

5 0.753913 0.110250 0.561685 0.928964 9

6 0.113377 0.016577 0.578262 0.433523 4

7 1.617830 0.236583 0.814845 0.850961 8

8 0.727677 0.106411 0.921256 0.751477 7

Page 3: Ejemplo resolución algoritmo genético

9 0.538443 0.078744 1.000000

Emparejamos en orden secuencial los cromosomas y aplicamos la probabilidad de cruce para saber que pareja se van a cruzar. Seguimos eligiendo números aleatorios de la columna del intervalo [0-1]para aplicarla como probabilidad de cruce de la pareja k. Si k<p entonces la pareja se cruza mediante cruce simple.

individuo i p cruce nº aleatorio prob,k cruce si/no

4 0.4 0.068952 si

7

Individuo i p cruce nº aleatorio prob,k cruce si/no

2 0.4 0.100952 si

2

Individuo i p cruce nº aleatorio prob,k cruce si/no

9 0.4 0.508623 no

4

Individuo i p cruce nº aleatorio prob,k cruce si/no

8 0.4 0.316724 si

7

Cruces simples

Las parejas que se van a cruzar con cruce simple necesitan conocer su punto de corte así extraigo dela columna [1,long-1] un numero aleatorio que representará el punto de corte.

Padres ↓ poscorte

hijos

i x1 x2 x3 x4 x5 x6 x7 x1 x2 x3 x4 x5 x6 x7

4 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25 1 -8.59 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31

7 +1.17 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31 +1.17 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25

Padres ↓ poscorte

hijos

i x1 x2 x3 x4 x5 x6 x7 x1 x2 x3 x4 x5 x6 x7

2 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53

Page 4: Ejemplo resolución algoritmo genético

62 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53

Padres poscorte

hijos

i x1 x2 x3 x4 x5 x6 x7 x1 x2 x3 x4 x5 x6 x7

9 -3.17 +8.82 -7.44 -8.64 -1.43 -8.90 +4.90 X -3.17 +8.82 -7.44 -8.64 -1.43 -8.90 +4.90

4 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25

Padres ↓ poscorte

hijos

i x1 x2 x3 x4 x5 x6 x7 x1 x2 x3 x4 x5 x6 x7

8 +9.08 +3.49 +5.42 +8.66 +7.50 -7.82 -6.75 3 +9.08 +3.49 +5.42 +7.97 +8.56 -5.49 -7.53

7 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 +6.97 -3.65 +3.46 +8.66 +7.50 -7.82 -6.75

Mutaciones

Sigo eligiendo valores de la tabla de [0-1] para probabilidades.Para intercambiar componentes de los cromosomas utilizo la columna [1-7]

p=0.2

nº aleatorio (prob pareja) c1 = 0.913732, como c1> p → no se realiza mutación.nº aleatorio (prob pareja) c2 = 0.051637, como c2< p → se realiza mutación. Intercambiar 2 y 1.

Hijos 1ª pareja

x1 x2 x3 x4 x5 x6 x7

c1 -8.59 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31

c2 -5.87 +1.17 -9.28 -6.99 +11.59 +1.91 -4.25

nº aleatorio (prob pareja) c3 = 0.846248, como c3> p → no se realiza mutación.nº aleatorio (prob pareja) c4 = 0.776817, como c4> p → no se realiza mutación.

Hijos 2ª pareja

x1 x2 x3 x4 x5 x6 x7

c3 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53

c4 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53

nº aleatorio (prob pareja) c5 = 0.686349, como c5> p → no se realiza mutación.nº aleatorio (prob pareja) c6 = 0.781462, como c6> p → no se realiza mutación.

Hijos 3ª pareja

Page 5: Ejemplo resolución algoritmo genético

x1 x2 x3 x4 x5 x6 x7

c5 -3.17 +8.82 -7.44 -8.64 -1.43 -8.90 +4.90

c6 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25

nº aleatorio (prob pareja) c7 = 0.632389, como c7> p → no se realiza mutación.nº aleatorio (prob pareja) c8 = 0.173013, como c8< p → se realiza mutación. Intercambiar 7 y 4

Hijos 4ª pareja

x1 x2 x3 x4 x5 x6 x7

c7 +9.08 +3.49 +5.42 +7.97 +8.56 -5.49 -7.53

c8 +6.97 -3.65 +3.46 -6.75 +7.50 -7.82 +8.66

Al usar una estrategia elitista nos quedamos con el individuo con mejor adecuación de entre los padres, en este caso el 7. Así la nueva generación está formada por:

f. adecuación

x1 x2 x3 x4 x5 x6 x7

+1.17 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31 1.617830

-8.59 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31 0.630538

-5.87 +1.17 -9.28 -6.99 +11.59 +1.91 -4.25 0.562378

+6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 0.865700

+6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 0.865700

-3.17 +8.82 -7.44 -8.64 -1.43 -8.90 +4.90 0.538443

-8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25 0.709982

+9.08 +3.49 +5.42 +7.97 +8.56 -5.49 -7.53 0.569081

+6.97 -3.65 +3.46 +8.66 +7.50 -7.82 -6.75 0.762807

total 7.122459

mayor 1.617830

menor 0.538443

media 0.791385

Page 6: Ejemplo resolución algoritmo genético

Variante 2

El método de sustitución que se utiliza es de estado estable con n = 4 individuos.La selección es por torneo binario y por cada torneo se elige un individuo, al de mayor función de adecuación, Así que es necesario elegir 8 individuos de la población inicial con reemplazamiento.Los números aleatorios que utilizo son los de la columna M, [1-9].

Torneos

Los dos primeros números aleatorios de la columna son 4 y 6, que serán los individuos que competirán.

f. adecuación ganador

Individuo i

4 0.709982 4

6 0.113377

Los siguientes dos individuos serán 2 y 2

f. adecuación ganador

Individuo i

2 0.865700 4

2 0.865700

Los siguientes dos son 9 y 4

f. adecuación ganador

Individuo i

Page 7: Ejemplo resolución algoritmo genético

4 0.709982 4

9 0.538443

Los últimos dos son 8 y 7

f. adecuación ganador

Individuo i

8 0.727677 7

7 1.617830

muestreo

i x1 x2 x3 x4 x5 x6 x7

4 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25

2 +6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53

4 -8.59 -5.87 -9.28 -6.99 +11.59 +1.91 -4.25

7 +1.17 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31

Cruce Aritmético

Utilizo los números aleatorios de la columna L, [0-1]

1ª Pareja 4 y 2. k1 = 0.361428k2 = 1 - k1= 0.638572

2ª pareja 9 y 4k3 = 0.644376k4 = 1 – K3 = 0.355624

La probabilidad de cruce es p=0.45Extraigo otro número aleatorio para ver si la primera pareja debe cruzarse, s = 0.195519, s < pLa pareja debe cruzarse, utilizando cruce aritmético y con k1 = 0.361428 y k2 0.638572Cada componente se calcula como:

para c1: k1*c1j+k2*c2j con j=1...7para c2: k2*c1j+k1*c2j con j=1...7

Hijos 1ª x1 x2 x3 x4 x5 x6 x7

c1 +1.35 -4.45 -1.14 +2.56 +9.65 -2.81 -6.34

c2 -2.97 -5.07 -4.68 -1.58 +10.49 -0.76 -5.43

Extraigo otro número aleatorio para ver si la primera pareja debe cruzarse, s = 0.130596, s < pLa pareja debe cruzarse, utilizando cruce aritmético y con k3 = 0.644376 y k4 = 0.355624Cada componente se calcula como:

Page 8: Ejemplo resolución algoritmo genético

para c3: k3*c1j+k4*c2j con j=1...7para c4: k4*c1j+k3*c2j con j=1...7

Hijos 2ª x1 x2 x3 x4 x5 x6 x7

c3 -5.12 -7.33 -5.89 -1.24 +10.43 +2.38 -6.05

c4 -2.30 -8.52 -3.14 +3.44 +9.50 +2.76 -7.51

Mutaciones

probabilidad de mutación p = 0.25

Con c1 extraigo un número aleatorio de la columna para ver si debe mutar, s = 0.928964, s > p, c1 no debe mutar. Al ser una mutación por intercambio mínimo habría que extraer de la columna O dosnúmeros del 1 al 7 que se intercambiarían de posición.

Con c2 hacemos lo mismo, s = 0.433523, s > p entonces no hay mutación.

Con c3 hacemos lo mismo, s = 0.850961, s > p entonces no hay mutación.

Con c3 hacemos lo mismo, s = 0.751477, s > p entonces no hay mutación.

Al final los hijos serán:

x1 x2 x3 x4 x5 x6 x7

+1.35 -4.45 -1.14 +2.56 +9.65 -2.81 -6.34

-2.97 -5.07 -4.68 -1.58 +10.49 -0.76 -5.43

-5.12 -7.33 -5.89 -1.24 +10.43 +2.38 -6.05

-2.30 -8.52 -3.14 +3.44 +9.50 +2.76 -7.51

La sustitución es por estado estable con n = 4 así que ordenamos la población inicial por su función de adecuación y eliminamos los cuatro peores que sustituiremos por los 4 hijos generados, para tener nuevamente una población de 9 individuos.

Ranking población inicial:

6 9 4 3 8 5 1 2 7

Descartamos los individuos 6, 9,4 y 3.Así la población final será:

F. adecuación

Page 9: Ejemplo resolución algoritmo genético

x1 x2 x3 x4 x5 x6 x7

+1.35 -4.45 -1.14 +2.56 +9.65 -2.81 -6.34 0.428677

-2.97 -5.07 -4.68 -1.58 +10.49 -0.76 -5.43 0.386410

-5.12 -7.33 -5.89 -1.24 +10.43 +2.38 -6.05 1.245189

-2.30 -8.52 -3.14 +3.44 +9.50 +2.76 -7.51 1.155157

+1.17 -9.99 +0.25 +9.19 +8.34 +3.23 -9.31 1.617830

+6.97 -3.65 +3.46 +7.97 +8.56 -5.49 -7.53 0.865700

+9.08 +3.49 +5.42 +8.66 +7.50 -7.82 -6.75 0.727677

+5.33 +5.40 -2.68 0.84 +3.14 +8.41 +2.60 0.753913

-4.39 -7.66 -5.20 +4.59 +7.19 -3.06 -9.59 0.784715

total 7.965268

mayor 1.617830

menor 0.386410

media 0.885030.Entorno:

Windows 7Open Office 4.41calculadora

Opiniones:

Algunos temas no están claros en el texto de estudio así que debí buscarlas en otras fuentes. Por lo demás se comprende y es interesante el tema de los algorítmos genéticos.A lo largo de la carrera hemos escuchado de ellos pero es ahora cuando los vemos con detenimiento.

Fuentes:

http://sedici.unlp.edu.ar/bitstream/handle/10915/4059/6__Algoritmos_evolutivos_avanzados_para_TSP.pdf?sequence=9

http://jarroba.com/algoritmos-geneticos-ejemplo/

http://www.geatbx.com/docu/algindex-02.html#P416_20744