Está en la página 1de 21

Programacin Gentica

Programaci on Gen etica consiste en la evoluci on autom atica de programas usando ideas basadas en la selecci on natural (Darwin). No s olo se ha utilizado para generar programas, sino que cualquier otro tipo de soluciones cuya estructura sea similar a la de un programa. Por ejemplo, f ormulas matem aticas, circuitos electr onicos. La evoluci on se produce en la naturaleza gracias a que: Existe reproducci on entre individuos de una poblaci on . Las caracter sticas de los individuos afectan su probabilidad de supervivencia. Existe herencia . Existen recursos nitos, que ocasiona competencia .

En programaci on gen etica se busca que poblaciones de programas evolucionen, transmitiendo su herencia de manera que se adapten mejor al medio. Los mejores individuos tienen mayores probabilidades de reproducirse. La medida de calidad del individuo depender a del tipo de problema.
Jorge Baier Aranda, PUC 17

Una mirada general


Un algoritmo de programaci on gen etica sigue el siguiente esquema: 1. Genera una poblaci on inicial. 2. Mientras no se cumple el criterio de terminaci on: a ) Seleccionar individuos (para reproducci on y eliminaci on), considerando su calidad. b ) Combinar y/o variar individuos nuevos. c ) Agregar y eliminar individuos.

Jorge Baier Aranda, PUC

18

Representacin
En programaci on gen etica, los programas (o individuos) se representan como arboles. Es as como el segmento de c odigo while (a<10) { print(a); a++ } puede representarse por el arbol
while

<

print

10

Jorge Baier Aranda, PUC

19

Terminales y Funciones
El conjunto de terminales est a compuesto por las entradas posibles al individuo, constantes y funciones de aridad 0. El conjunto de funciones est a compuesto por los operadores constructos y funciones que pueden componer a un individuo. Ejemplos: Funciones booleanas: AND, OR, NOT, XOR. Funciones aritm eticas: PLUS, MINUS, MULT, DIV. Sentencias condicionales: IF, THEN, ELSE, CASE, SWITCH Sentencias para iteraciones: WHILE, FOR, REPEAT..UNTIL El conjunto de terminales y funciones elegidos para resolver un problema particular debe ser, obviamente, suciente para representar una soluci on al problema. Por otro lado, no es conveniente usar un n umero grande de funciones, debido a que esto aumenta el tama no del espacio de b usqueda (principio de parsimonia ). Adem as es deseable las funciones puedan manejar todos los argumentos que eventualmente podr an llegar a tener.
Jorge Baier Aranda, PUC 20

Inicializacin
El primer paso en programaci on gen etica consiste en formar la poblaci on inicial de individuos. Uno de los par ametros principales para un algoritmo gen etico es el tama no m aximo de un programa. Este l mite puede estar impuesto sobre el n umero de nodos o sobre la profundidad del arbol. Usualmente, se utilizan dos m etodos para generar esta poblaci on, el m etodo de grow y el full .

Jorge Baier Aranda, PUC

21

El mtodo grow
Sea T el conjunto de terminales y F el conjunto de funciones. Se elige aleatoriamente un elemento de F para que conforme la ra z del arbol. El contenido de los nodos hijos de la ra z se elige desde F T . Si el valor elegido es una funci on, se repite este procedimiento con los hijos. (si el valor elegido es una constante, se termina esa rama del arbol.)

Jorge Baier Aranda, PUC

22

El mtodo full
El m etodo full hace crecer el arbol en forma similar al m etodo grow , pero siempre se eligen elementos del conjunto de funciones, a menos que el nodo est e a profundidad m axima, en cuyo caso s olo se eligen elementos de T . El resultado de este m etodo son siempre arboles balanceados de profundidad m axima. Si se usa el n umero de nodos como l mite de tama no, el crecimiento se termina cuando el tama no arbol ha alcanzado el l mite.

Jorge Baier Aranda, PUC

23

Operadores Genticos
Los operadores b asicos de programaci on gen etica son: Crossover . Mutaci on. Reproducci on.

Jorge Baier Aranda, PUC

24

Crossover
El operador de cruza (crossover ) combina el material gen etico de individuos intercambiando pedazos dos progenitores para producir dos descendientes. Si los individuos se representan como arboles, se elige al azar un nodo de cada arbol y luego se intercambian los sub arboles bajo estos nodos. El intercambio se muestra en la siguiente gura:

Jorge Baier Aranda, PUC

25

Padres
AND OR

e AND OR

AND

n ne n e ne

NOT

sw

Descendientes
AND OR

e AND OR

AND

ne n NOT e ne

sw

Jorge Baier Aranda, PUC

26

Mutacin
Act ua sobre un solo individuo, generalmente, uno resultante de un crossover . La mutaci on act ua con una probabilidad, en general, muy baja y que es un par ametro del algoritmo de programaci on gen etica. Un tipo de mutaci on consiste en escoger en forma aleatoria un nodo del arbol y generar bajo este otro sub arbol (por ejemplo, usando el m etodo grow ). En la siguiente tabla se muestran otros tipos de mutaci on:
Nombre del operador Mutaci on puntual Permutaci on Levantamiento Expansi on Colapso Mutaci on de Sub arbol Duplicaci on de Gen Descripci on del efecto Un solo nodo es intercambiado por otro de la misma clase Los argumentos de un nodo son permutados Nuevo individuo es generado a partir de un sub arbol Un terminal es cambiado por un arbol generado al azar Sub arbol es intercambiado por un terminal Sub arbol es reemplazado por otro generado al azar. Sub arbol es reemplazado por un terminal al azar.

Jorge Baier Aranda, PUC

27

Reproduccin
Es el operador m as simple de todos. Se selecciona un individuo y se lo duplica, quedando dos copias dentro de la poblaci on.

Jorge Baier Aranda, PUC

28

Funcin de Calidad
La calidad es la medida usada por el algoritmo de programaci on gen etica durante la evoluci on simulada para medir qu e tan buena es una soluci on. Una funci on de calidad se dice estandarizada positiva si es que siempre asigna el valor 0 al individuo que es mejor soluci on para el problema. Una funci on de calidad se dice normalizada si es que siempre asigna el valores entre 0 y 1.
1 on normalizada Si f es una funci on estandarizada, entonces g = 1+ f es una funci que asigna valor 1 al individuo de mayor calidad.

Si el objetivo de la PG es aprender una funci on matem atica g , entonces una medida de calidad puede ser el error cuadr atico medio. As , I es un conjunto de entradas y g (i) = oi es la salida para una entrada i,
Jorge Baier Aranda, PUC 29

entonces podemos medir la calidad de un programa p por fp =


iI

(pi oi)2,

donde pi es la salida del programa ante la entrada i. La funci on de calidad depende claramente del tipo de problema. Por ejemplo, en un problema de clasicaci on en bases de datos, la calidad puede estar medida por el n umero de ejemplos bien clasicados.

Jorge Baier Aranda, PUC

30

Seleccin
La selecci on es el proceso por el cual se transmiten individuos de una generaci on a otra. Hay distintos tipos de selecci on tipos de selecci on. El primero de ellos se basa en algoritmos gen eticos. Para una poblaci on de N individuos: 1. Elegir a dos individuos progenitores, privilegiando los con mejor calidad. Esto se hace eligiendo al individuo i con probabilidad. P r(i) = f (i) i f (i)

Donde f (i) es la medida de calidad1 2. Aplicar crossover (si corresponde, probabil sticamente). 3. Aplicar mutaci on (si corresponde, probabil sticamente).
1

N otese que para que esto funcione puede ser necesario normalizar la funci on antes de hacer este c alculo
31

Jorge Baier Aranda, PUC

4. Reproducir. 5. Repetir hasta completar una nueva generaci on de N individuos. Otra t ecnica consiste en efectuar torneos : 1. Elegir dos grupos de n individuos aleatoriamente desde la poblaci on. 2. Seleccionar al mejor elemento del primer grupo (padre), y al mejor elemento del segundo (madre). 3. Aplicar crossover (si corresponde, probabil sticamente). 4. Aplicar mutaci on (si corresponde, probabil sticamente). 5. Los dos nuevos individuos reemplazan a los peores de cada uno de los grupos. Esta u ltima t ecnica es generalmente preferida por razones de eciencia.

Jorge Baier Aranda, PUC

32

Condicin de Trmino
Hasta el momento hemos visto que para hacer evolucionar una poblaci on es necesario: Generar una poblaci on inicial. Seleccionar individuos para producir nuevas generaciones. Cuando nos detenemos? Depende de lo que queramos, pero en general cuando el mejor individuo de la poblaci on tiene una calidad aceptable.

Jorge Baier Aranda, PUC

33

Resumen
En resumen, antes un problema con programaci on gen etica, es necesario: 1. 2. 3. 4. Denir el conjunto de terminales. Denir el conjunto de funciones. Denir la funci on de calidad. Denir par ametros tales como tama no de la poblaci on, tama no m aximo de un individuo, probabilidad de cruza, m etodo de selecci on y criterio de terminaci on.

Jorge Baier Aranda, PUC

34

Ejemplo
Supongamos que se quiere obtener una funci on matem atica que se ajuste al conjunto de 10 ejemplos:
Entrada 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 Salida 0 0.005 0.02 0.045 0.08 0.125 0.18 0.245 0.32 0.405

Conjunto de terminales: una variable (para la entrada), y los terminales 5 . . . + 5 Conjunto de funciones: +, -, *, %. Funci on de calidad: Error cuadr atico medio sobre los 10 ejemplos.
Jorge Baier Aranda, PUC 35

Otros par ametros:


Tama no Poblaci on Prob. cruza Prob. mutaci on Selecci on Criterio terminaci on M aximo de generaciones M aximo prof. arbol despu es de cruza M axima prof. mutaci on Alg. inicializaci on 600 90 % 5% Torneo, tama no 4 ninguno 100 200 4 grow

Jorge Baier Aranda, PUC

36

Resultados
Las funciones de mejor calidad en las generaciones 0, 1, 2 y 3 se muetran a continuaci on: f0(x) = f1(x) = f2(x) = x2 f3(x) = 2 x 3 x 6 3x x x(x 4) 1 +
4 x

9(x+1) 5x +x

63x

(calidad 0!)

Las generaciones posteriores muestran siempre individuos de calidad 0, pero su tama no crece.

Jorge Baier Aranda, PUC

37

También podría gustarte