• No results found

3. Theoretical framework

4.2 The sample

gramaci´on gen´etica

Los cinco pasos principales para la definici´on de un planteamiento basado en PG se muestran en la figura 4.2 (Koza, 1992). Los pasos preparatorios (mostrados en la parte superior de la figura) son las entradas prove´ıdas por el dise˜nador del algoritmo al sistema de PG, mientras que el programa computacional, que se muestra en la parte inferior de la figura, corresponde a la salida de dicho sistema.

El primer paso consiste en identificar el conjunto de terminales para el problema. Dicho conjunto es representado por la letraT. Las terminales corresponden a las varia- bles y las constantes de entrada del programa, as´ı como las variables y las constantes que ser´an encontradas por el PG durante el m´etodo de b´usqueda. Dentro de este conjunto tambi´en se encuentran funciones que utilizan cero argumentos. Las constantes que utiliza la PG en el conjunto T son denominadas como constantes ef´ımeras aleatorias y se representan con la letraℜ.

Figura 4.2: Los cinco pasos escenciales para la creaci´on de un algoritmo de PG.

Despu´es de especificar el conjunto de terminales debe definirse el conjunto de fun- ciones (F), las cuales pueden ser operaciones aritm´eticas (suma, resta, multiplicaci´on), operadores l´ogicos (and, or, not), funciones trigonom´etricas (seno, coseno, tangente), condicionales (if, else, case), ciclos (do, while, for) o a´un subrutinas predefinidas (move, readSensor, sort). Estas funciones toman como par´ametro uno o m´as de los elementos del conjunto de terminales o de los valores regresados por otras funciones, retornando a su vez alg´un valor como resultado o realizando alguna modificaci´on en el ambiente del problema que se est´a resolviendo. El n´umero de argumentos que recibe una funci´on es denominada como la aridad de esa funci´on.

Para la definici´on del conjunto T y el conjunto F, Banzhaf y Francone(1998) aconsejan que en el principio de un proyecto de PG no se debe invertir mucho tiem- po dise˜nando funciones y terminales complejas para que est´en perfectamente acondi- cionadas con el problema. La PG resulta una t´ecnica lo suficientemente creativa para tomar funciones simples y combinarlas para obtener buenos resultados. De hecho, la PG frecuentemente ignora las funciones m´as sofisticadas en favor de las funciones m´as primitivas durante el proceso de evoluci´on. Hasta el momento que la experimentaci´on demuestre que el conjunto de funciones y de terminales m´as simples no est´an dando buenos resultados, entonces es ah´ı cuando debe comenzarse a perfeccionar los elementos de los conjuntos T y F.

Dos condiciones importantes que deben ser verificadas en la definici´on de T y

F es que cumplan con los requerimientos de suficiencia y de cerradura. La primera condici´on indica que los elementos de T y F son suficientes para encontrar una com- binaci´on que pueda expresar una soluci´on para el problema, mientras que la condici´on de cerradura indica que cada funci´on debe poder aceptar como argumento cualquiera de los valores entregados por los elementos del conjunto T o cualquiera de los posi-

bles valores regresados por cualquiera de las funciones definidas para el problema. Esta ´

ultima condici´on aunque deseable, no resulta absolutamente requerida. En caso de que en nuestro planteamiento no pueda asegurarse que se cumpla, entonces se pueden uti- lizar otras alternativas como el descartar a los individuos que violen dicha condici´on o asignarles alg´un tipo de penalizaci´on.

Los programas de PG se pueden expresar mediante ´arboles con nodos etiquedados siguiendo una estructura semejante a la de programaci´on en LISP. Los nodos internos representan funciones, predicados o acciones que requieren uno o m´as argumentos. Los nodos hojas representan constantes, acciones o funciones que no necesitan argumentos. Debido a esto ´ultimo es que este tipo de argumentos reciben el nombre de terminales porque representan los nodos finales de la estructura del ´arbol. En la figura 4.3 puede verse la representaci´on de una expresi´on en LISP mediante un ´arbol de PG.

Figura 4.3: Arbol que representa la expresi´on (+ (* 3 a) (- b (* 2 c))).

Determinar la funci´on objetivo o de aptitud es el tercer paso para la definici´on de un planteamiento basado en PG. Esta funci´on eval´ua que tan bien se desempe˜na un programa computacional con relaci´on al ambiente definido por el problema. Una funci´on objetivo debe cumplir con el requerimiento de estar completamente definida, es decir, que puede evaluar cualquiera de los programas que pueden ser encontrados en cualquier generaci´on de la poblaci´on de soluciones. Para hacer esta evaluaci´on en algunos casos se pretende que cada programa sea evaluado por una variedad de instancias seleccionadas y que a partir de estos valores pueda obtenerse un promedio como funci´on de aptitud, mientras que en otros casos es sola una instancia sobre la que se est´a trabajando y el resultado final para cada programa corresponde al valor de la funci´on de aptitud.

Los tipos de funci´on objetivo m´as conocidas son las denominadas como funci´on natural (raw fitness), funci´on estandarizada (standardized fitness), funci´on ajustada (adjusted fitness) y funci´on normalizada (normalized fitness).

4.2.1.

Par´ametros de control

Los ´ultimos dos pasos para la definici´on de un problema bas´andose en PG van m´as relacionados con el algoritmo en s´ı. El cuarto paso consiste en determinar los par´ametros o variables de control, como son M para definir el tama˜no de nuestra poblaci´on y G

para definir su n´umero m´aximo de generaciones. Koza (1992) ennumera 19 par´ametros de control para un algoritmo de PG. Estos par´ametros, as´ı como los valores default recomendados por Koza pueden verse en las tablas 4.1 y 4.2.

Tabla 4.1: Par´ametros num´ericos.

par´ametro s´ımbolo default

Tama˜no de la poblaci´on M 500

N´umero de generaciones G 51

Probabilidad de cruce pc 0.9

Probabilidad de reproducci´on pr 0.1

Probabilidad de usar puntos internos para el cruce pip 0.9

Profundidad m´axima de los ´arboles Dc 17

Profundidad m´axima de los ´arboles al momento de ser

generada la poblaci´on inicial Di 6

Probabilidad de mutaci´on pm 0

Probabilidad de permutaci´on pp 0

Frecuencia de edici´on fed 0

Probabilidad de encapsulamiento pen 0

Condici´on de invocaci´on de la operaci´on de estrago decimation N IL

Porcentaje de estrago pd 0

Tabla 4.2: Variables cualitativas.

par´ametro default

M´etodo de generaci´on de la poblaci´on inicial ramped half-and-half M´etodo de selecci´on para reproducci´on por torneo M´etodo de selecci´on para cruce por torneo Medici´on de aptitud ajustada

Uso de sobre-selecci´on para M > 1000 individuos Estrategia elitista no usada

La probabilidad de cruce, pc es tal que el que el n´umero de individuos producidos

en la siguiente generaci´on como resultado de la operaci´on de cruce corresponde al porcentaje equivalente al valor depc. Por ejemplo, si la poblaci´on de una generaci´on es

de 4000 y el valor de pc es de 0.9, entonces en la siguiente generaci´on 3600 individuos

son producidos como resultado de la operaci´on de cruce.

La probabilidad de reproducci´on, pr indica qu´e porcentaje de la poblaci´on van a

ser utilizados para ser copiados directamente en la siguiente generaci´on. Lo anterior quiere decir, que si la probabilidad de reproducci´on es de 0.1 en una poblaci´on de 4000 individuos, 400 van pasar directamente a la siguiente generaci´on mediante el proceso de reproducci´on.

Para escoger los puntos de cruce, usamos una distribuci´on de probabilidad basada en el par´ametro pip. Este par´ametro indica la probabilidad de seleccionar un nodo

interno del ´arbol para realizar el cruce. El complemento de dicha probabilidad es pep

y corresponde a que el nodo seleccionado sea un nodo externo o terminal. Este cruce tiene como restricci´on que si en uno de los individuos es seleccionado como punto de cruce el nodo ra´ız, en el otro individuo no puede ser seleccionado como punto de cruce un nodo terminal.

La profundidad de un nodo dentro de un ´arbol de PG consiste en el m´ınimo n´umero de nodos que son visitados para llegar desde el nodo ra´ız a dicho nodo. Los par´ametros de profundidad Dc y Di indican la profundidad m´axima que un nodo puede alcanzar

dentro de un individuo de la poblaci´on. Di corresponde a la profundidad m´axima de

los individuos de la poblaci´on inicial y Dc a la profundidad m´axima de los individuos

pertenecientes a todas las dem´as generaciones. Cuando se genera un individuo con una profundidad mayor a la permitida se inserta un nodo terminal que permita detener su crecimiento.

Adem´as de la operaci´on de cruce y reproducci´on, en PG tenemos las operaciones de mutaci´on (pm), permutaci´on (pp), edici´on (fed), encapsulamiento (pen) y porcentaje

de estrago o decimation (pd). Estos operadores fueron casi ignorados por Koza en sus

primeros trabajos de PG, sin embargo, en la actualidad, han recibido una mayor aten- ci´on para su aplicaci´on (Koza y Bennett, 1999). El resto de los par´ametros de control van a ser explicados m´as adelante en este mismo documento.

El ´ultimo paso en la definici´on del algoritmo de PG consiste en determinar el m´etodo de aceptaci´on de un individuo como resultado o criterio de terminaci´on de la corrida. Este criterio de terminaci´on puede ser por ejemplo un valor m´aximo o m´ınimo esperado para la soluci´on, un n´umero de generaciones para la corrida o un n´umero de iteraciones sin obtener un cambio significativo en la mejora de la soluci´on.

Related documents