Está en la página 1de 36

Algoritmos

Genticos

Ventajas

El primer y ms importante punto es


que los AG son intrnsecamente
paralelos.
Los AG funcionan particularmente bien
resolviendo problemas cuyo espacio
de soluciones potenciales es
realmente grande.

Ventajas

Otra ventaja notable de los AG es que se


desenvuelven bien en problemas con un
paisaje adaptativo complejo -aqullos en
los que la funcin objetivo es discontinua,
ruidosa, cambia con el tiempo, o tiene
muchos ptimos locales.
Trabajan con una codificacin de un
conjunto de parmetros, no con los
parmetros mismos.

Ventajas

Utilizan operadores probabilsticos, en


vez de los tpicos operadores
determinstico de las tcnicas
tradicionales.
Resulta sumamente fcil ejecutarlos
en las modernas arquitecturas
masivas en paralelo.

Ventajas

Cuando se usan para problemas de


optimizacin, resultan menos
afectados por los mximos locales que
las tcnicas tradicionales (i.e., son
mtodos robustos).
Otra rea en el que destacan los AG
es su habilidad para manipular
muchos parmetros simultneamente.

Desventajas

El lenguaje utilizado para especificar


soluciones candidatas debe ser robusto.
El problema de cmo escribir la funcin
objetivo debe considerarse
cuidadosamente para que se pueda
alcanzar una mayor aptitud y
verdaderamente signifique una solucin
mejor para el problema dado.

Desventaja

Tambin deben elegirse


cuidadosamente los otros parmetros
de un AG el tamao de la poblacin, el
ritmo de mutacin y cruzamiento, el
tipo y fuerza de la seleccin.
Un problema muy conocido que
puede surgir con un AG se conoce
como convergencia prematura

Diferencias entre AGs y los mtodos


tradicionales de bsqueda
1.- Trabajan con la codificacin del conjunto de
parmetros, no con los parmetros.
2.- Buscan a partir de una poblacin de puntos, no un
punto nico.
3.- Usan informacin de una funcin objetivo (o ms), no
derivadas u otro conocimiento adicional.
4.- Usan reglas de transicin probabilsticas, no reglas
determinsticas.

Cmo Saber si es Posible


usar un Algoritmo Gentico?

Su espacio de bsqueda (i.e., sus posibles


soluciones) debe de estar delimitado dentro
de un cierto rango.
Debe permitir definir una funcin de aptitud
que nos indique que tan buena o mala es
una cierta respuesta.
Las soluciones deben codificarse de una
forma que resulte relativamente fcil de
implementar en el computador.

Codificacin del problema

El conjunto de todos los parmetros


(genes en la terminologa de
Algoritmos Genticos) se codifica en
una cadena de valores denominada
cromosoma.
Cada uno de los bits pertenecientes a
un gen suele recibir el nombre de
alelo.

Algoritmo

Cmo funcionan?

Para resolver un problema usando AG


necesitamos:

Representar soluciones.

Tradicionalmente una cadena de bits.

Medir la calidad de cada solucin con


respecto al problema a resolver.

Se usa una funcin de Objetivo.


Penalizacin de resultados.

Cmo funcionan?

Esquema de funcionamiento de un AG:

Se crea una poblacin inicial generando individuos


aleatoriamente.
Repetimos hasta que se alcance el individuo ptimo o el
nmero mximo de generaciones:

Asignar un valor de supervivencia a cada miembro de la


poblacin.
Seleccionar a un conjunto de individuos que actuarn como
padres usando como criterio su probabilidad de
supervivencia.
Emparejar un grupo de padres para crear desdendencia.
Combinar la descendencia con la poblacin actual para crear
nueva poblacin.

Obtencin de generaciones

Una generacin se obtiene a partir de


la anterior por medio de los
operadores de reproduccin. Existen 2
tipos:
Cruce
Copia

Criterios de parada

Una vez generados los nuevos individuos


se realiza la mutacin con una
probabilidad Pm. La probabilidad de
mutacin suele ser muy baja, por lo
general entre el 0.5% y el 2%.
Se sale de este proceso cuando se
alcanza alguno de los criterios de parada
fijados. Los ms usuales suelen ser:

Los mejores individuos de la poblacin


representan soluciones
suficientemente buenas.
La poblacin ha convergido. Un gen ha
convergido cuando el 95% de la
poblacin tiene el mismo valor para l,
Se ha alcanzado el nmero de
generaciones mximo especificado.

Implementacin de los AG

Los AG se adaptan especficamente a


los problemas que van a resolver.
No hay un marco terico genrico para
aplicarlo a todos los problemas.
Es difcil establecer dicho marco.

Si es muy genrico, resulta trivial.


Si es muy especfico, no se puede
adaptar a todos los problemas.

Codificacin Binaria
Cromosoma (Genotipo)

Solucin Potencial (Fenotipo)


Problema 1: Maximizar una funcin f : [a,b] +
Nmero real x[a,b]
Problema 2: Organizar 8 trabajos en 2 Fases
S = {T1 F1, T2 F0, T3 F1, T4 F0, T5 F0, T6 F0, T7 F1, T8 F1}

Calidad de la Solucin Potencial (Fitness)


Problema 1: valor de f(x)
Problema 2: Medida del beneficio (inversa del coste) de S

Decodificacin de
Cromosomas

Es el clculo del Fenotipo


a partir del Genotipo

Muchas veces sirve algn


algoritmo voraz (p.e.
familia NP)

Es la operacin ms
costosa del AG

El Fitness se calcula de
forma inmediata a partir del
Fenotipo

Genotipo

Datos
Problema

Algoritmo

Fenotipo

Representacin Binaria (Fenotipo)


Genotipo
8 bits

Fenotipo:
Entero
Real

Planificacin
...
Otros

Fenotipo de Tipo Entero

Genotipo:

Fenotipo:

= 163
1*27 + 0*26 + 1*25 + 0*24 + 0*23 + 0*22 + 1*21 + 1*20 =

128 + 32 + 2 + 1 = 163

Ejercicios 1

El problema original de ocho reinas


consista en intentar encontrar una
forma de colocar a ocho reinas en un
tablero de ajedrez de modo que dos
reinas no se atacaran la una a la otra.
Es decir, que en un tablero de 8 por 8,
ninguna de las reinas comparta una
fila, columna o diagonal.

Solucin

Ejercicio 2
Usar un algoritmo gentico para maximizar la funcin
f(x) = x2 en el rango x ={0, ..., 31}. (Supongamos que x
es entero). La funcin se muestra a continuacin:

Generacin de la poblacin inicial


Para usar un algoritmo gentico
primero debemos codificar las variables de decisin de nuestro problema en un conjunto de cadenas
de longitud finita. Hacemos esto
codificando la variable x en un
conjunto de 5 bits.
Generacin de la poblacin inicial
al azar: definimos cada bit en cuatro conjuntos de bits con probabilidad 0.5, por ej. lanzando una
moneda 20 veces y asociando cara
con 1 y cruz con 0

CADENA
NUMERO

POBLACION
INICIAL
(GENERADA
AL AZAR)

01101
11000
01000
10011

VALOR
DE X

Clculo de f(x)

CADENA
NUMERO

POBLACION
INICIAL
(GENERADA
AL AZAR)

VALOR
DE X

f(x)=x2

01101

13

169

11000

24

576

01000

64

10011

19

361
VALORES DE
APTITUD O
ADAPTACION

SUMA =

1170

Clculo del valor de ajuste


Luego debemos maximizar f(x).
Definimos: valor de aptitud = f(x) = x2
El valor de aptitud, tambin llamado funcin objetivo, en
este caso es uno solo. En la realidad, normalmente optimizamos una funcin multiobjetivo, o un vector de funciones objetivo.
Para poder realizar la reproduccin debemos calcular los
valores de probabilidad de seleccin.
Probab.selecc. =

Clculos resultantes
CADENA
NUMERO

POBLACION
INICIAL
(GENERADA
AL AZAR)

VALOR
DE X

VALORES DE
APTITUD

PROBAB. CANTIDAD
SELECC. ESPERADA

CANTIDAD.
REAL

f(x)=x2

fi/f

fi/fMEDIO

(usando
Roulette
Wheel)

01101

13

169

0.14

0.58

11000

24

576

0.49

1.97

01000

64

0.06

0.22

10011

19

361

0.31

1.23

1170

PROMEDIO =

293

0.25

MAXIMO =

576

0.49

1.97

SUMA =

Reproduccin
La siguiente generacin de cadenas se produce aplicando
primeramente el operador reproduccin.
Seleccionamos las cadenas de la generacin actual que
habrn de ser copiadas en el pool de la generacin prxima,usando reproduccin como proceso de multiplicacin.
Esto producir un pool de cadenas con altos valores de
aptitud.
Seleccionamos el pool de la prxima generacin haciendo girar cuatro veces la rueda de ruleta con zonas asignadas en proporcin a la aptitud de cada cadena.

Entrecruzamiento
Las cadenas del pool de apareamiento se aparearn al
aplicar este operador.
Un procedimiento posible es:
1.- Las cadenas se aparean al azar.
2.- Las parejas de cadenas apareadas se entrecruzan produciendo generalmente nuevas cadenas.
Usando un mtodo al azar de seleccin de parejas
seleccionamos: cadena 4 entrecruza con cadena 2 y
cadena 1 entrecruza con cadena 2.
Ahora debemos seleccionar la posicin de bit k donde
tendr lugar el entrecruzamiento. k se obtiene al azar.

Tabla de pares y entrecruzamiento


POOL DE
APAREAMIENTO
LUEGO DEL
ENTRECRUZAM.

PAREJA
SELECCIONADA
AL AZAR

POSICION DEL
ENTRECRUZAM.
(ELEGIDO AL
AZAR)

0110Z1

1100Z0

11Z000
10Z011
Z = posicin.

NUEVA
POBLACION

VALOR
DE X

VALORES DE
APTITUD

f(x)=x2

12

144

01100
11001

25

625

11011

27

729

10000

16

256

Suma =

1754

Max =

729

de entrecruz.

Nota
Ya podemos ver que luego de una iteracin parcial o en
medio del camino en la produccin de una generacin hemos incrementado la suma de las funciones objetivo de
1170 a 1754, y el valor mximo se ha incrementado de
576 a 729.
Hemos seleccionado un mejor conjunto de valores x, que
provee una aptitud maximizada f(x) = x2 mayor que nuestras 4 selecciones iniciales.

Conclusiones

El tiempo computacional est dominado por


la evaluacin del fitness incluyendo el
chequeo de validez de la nueva generacin
de soluciones
Los resultados no son tan buenos como
para el algoritmo no paralelo

La convergencia es mas lenta y hay muchos


casos en que no converge

La performance del algoritmo paralelo es


menos sensitiva al scaling factor que la
secuencial

FIN

También podría gustarte