Está en la página 1de 65

ndice de Contenido

Resumen................................................................................................................................... 4
CAPTULO 1. Introduccin ......................................................................................................... 5
1.1

Objetivos ................................................................................................................... 5

1.2

Antecedentes ............................................................................................................ 5

1.3

Una aplicacin real de la teora de bsqueda ............................................................. 6

1.4

Revisin Histrica ...................................................................................................... 7

1.5

Planteamiento del problema ..................................................................................... 8

CAPTULO 2. Programacin gentica ....................................................................................... 10


2.1

Conceptos bsicos en la PG...................................................................................... 11

2.2

Representacin, inicializacin y operaciones en GP ................................................. 12

2.2.1

Representacin ................................................................................................ 12

2.2.2

Inicializacin .................................................................................................... 13

2.2.3

Operaciones en GP........................................................................................... 13

2.3

2.2.3.1

Seleccin ...................................................................................................... 13

2.2.3.2

Cruce ....................................................................................................... 1413

2.2.3.3

Mutacin ................................................................................................. 1514

PG basada en gramticas ..................................................................................... 1514

2.3.1

Gramticas Libres de Contexto (GLC) ............................................................... 15

2.3.2

Gramticas libres de contexto y PG .............................................................. 1615

2.3.3

Notacin de las GLC en la Forma de Backus Nahur (BNF).................................. 16

2.4

Sistema Jeco: Herramienta Java de PG ..................................................................... 16

CAPTULO 3. Representacin del problema de bsqueda en tiempo mnimo mediante PG.. 1817
3.1

Definicin de la gramtica ................................................................................... 1817

3.1.1

Hiptesis sobre la estructura de los programas generados por PG............... 1918

3.1.2

Tipos de movimientos simples ..................................................................... 2019

3.1.2.1

Movimiento Axial Local (MoveLocalAxial)................................................. 2119

3.1.2.2

Movimiento Axial Global (MoveAxial)...................................................... 2120

3.1.2.3

Movimiento por Cuadrantes Local (MoveByLocaLQ) ................................ 2220

3.1.2.4

Movimiento por Cuadrantes Global (MoveByGlobalQ) ............................. 2321

3.1.2.5

Movimiento por filas y columnas (MoveByRowCol) .................................. 2322

3.1.2.6

Movimiento en L a Derechas o Izquirdas (LRight y LLeft) .......................... 2423

3.1.2.7

Movimientos MoveMostImportantCell y MoveMostProbZone ................. 2524

3.1.3

Tipos de Condiciones ................................................................................... 2624

3.1.3.1

Condicin xxxxxxxxx (CondLocalGlobal) .................................................... 2724

3.1.3.2

Condicin CondSAroundGlobal................................................................. 2724

3.1.3.3

Condicin CondBestIncDec....................................................................... 2725

3.1.3.4

Condicin CondBestLet ............................................................................ 2825

3.1.3.5

Movimiento CondBestIncByCell ............................................................... 2926

3.1.3.6

Condicin CondMoveCov ......................................................................... 3027

3.1.4

3.2

Gramtica para generar el programa controlador. ....................................... 3128

3.1.4.1

Elementos Terminales .............................................................................. 3229

3.1.4.2

Funciones................................................................................................. 3330

Clculo de la aptitud de los individuos o programas ............................................. 3531

CAPTULO 4. Resultados ...................................................................................................... 5333


4.1.1

Conjunto de Datos ....................................................................................... 5333

4.2

Pruebas con la primera gramtica........................................................................ 5333

4.3

Pruebas con la segunda Gramtica ...................................................................... 5534

4.4
Pruebas aplicando PG a cada tipo de mapa buscando una nica solucin por tipo de
mapa 5635
4.4.1

Mapas de Tipo 1, TwoGaussStatic ................................................................ 5636

4.4.2

Mapas de Tipo 2, SeveralGaussStatic ........................................................... 5736

4.4.3

Mapas de Tipo 3, OneARandomStatic .......................................................... 5737

4.5
Pruebas aplicando PG para clasificar los tipos de movimientos en funcin de las
condiciones. .................................................................................................................... 5837
CAPTULO 5. Conclusiones y trabajo futuro ......................................................................... 6141
Bibliografa ......................................................................................................................... 6242

ndice de Figuras
Ilustracin 1Representacin de max(x*x,x+3y) en un rbol Sintctico ................................. 1210
Ilustracin 2Cruce de subrbol ............................................................................................ 1412
Ilustracin 3 MovimientoLocalAxial ..................................................................................... 2118
Ilustracin 4 Movimiento MoveByLocalQ ............................................................................ 2219
Ilustracin 5 Movimiento MoveByGlobalQ .......................................................................... 2321
Ilustracin 6 Movimiento MoveByRowCol ........................................................................... 2422
Ilustracin 7 Dimensiones de la L ........................................................................................ 2423
Ilustracin 8 Movimiento L Derecha en las 8 direcciones cardinales .................................... 2524
Ilustracin 9 Condicin CondBestIncDec ............................................................................. 2826

Ilustracin 10 Condicin CondBestIncByCell ........................................................................ 2928


Ilustracin 11 Condicin CondMoveCov .............................................................................. 3129

Resumen
En el marco de las investigaciones de la teora de bsqueda de objetivos bajo incertidumbre se
han desarrollado diferentes modelos capaces de determinar rutas ptimas desde los agentes
encargados de la bsqueda hacia los objetivos a detectar, bien sea maximizando la
probabilidad de deteccin o minimizando el tiempo de bsqueda, siendo la combinacin de
ambos objetivos muy compleja.
En estos problemas no se conoce la posicin exacta de los objetivos (existe incertidumbre) por
lo que se divide la regin de bsqueda, o mapa, en celdas a las que se asigna una probabilidad
de que un objetivo se encuentre en ellas. Esta probabilidad se obtiene de estudios sobre el
rea de bsqueda, los factores fsicos que puedan afectar a la posicin del objetivo como
puedan ser corrientes en zonas marinas o vientos, indicaciones de testigos que vieron
desaparecer el objeto que se busca, u otro tipo de informaciones de las que obtener
probabilidades. En el caso de usar sensores ideales para detectar los objetos, la probabilidad
de las celdas visitadas se anula mientras los agentes no finalizan la bsqueda, al ser
directamente observadas por un agente que an no ha detectado el objetivo. En el caso de
usar sensores reales, la incertidumbre asociada a los sensores hace que la probabilidad de las
celdas se modifique paulativamente, segn las celdas son observadas en repetidas ocasiones.
Diferentes tcnicas se han venido aplicando para solucionar este tipo de problemas basadas en
el tratamiento de estas probabilidades, entre las que se encuentran heursticos bayesianos,
algoritmos estocsticos como el de Entropa Cruzada, entrenamiento de redes neuronales, y
otras tcnicas de aprendizaje. En el presente trabajo se analiza la viabilidad de utilizar
Programacin Gentica (PG) para resolver el problema, de tal forma que se obtenga un
programa que genere rutas sub-ptimas en tiempo mnimo, para conseguir as las seales de
control de un controlador que gue a los agentes hacia los objetivos.
La PG generar un programa formado por diferentes elementos condicionales que realicen
clculos sobre el mapa de probabilidad y por diferentes tipos de movimientos bsicos que
ejecute el agente en funcin de los valores obtenidos por los elementos condicionales. Dicho
de otra forma, la PG combinar un conjunto de condiciones y movimientos, especialmente
definidos para el problema de bsqueda en este este trabajo, en un programa que, al ser
ejecutado, generar las rdenes de control que gue a los agentes durante la bsqueda.
Finalmente, para analizar la viabilidad del uso de la PG para el problema de la bsqueda, se
realizar un estudio estadstico del uso de las condiciones y movimientos propuestos en el
trabajo y se compararn las rutas generadas con los programas obtenidos mediante PG con los
resultados obtenidos por otros mtodos.

CAPTULO 1. Introduccin
En el Departamento de Arquitectura de Computadores y Automtica de la Universidad
Complutense se han desarrollado diferentes trabajos que abordan el problema de bsqueda
en tiempo mnimo, desarrollndose un sistema de control multiagente que genera las acciones
que guan a vehculos no tripulados con el objetivo de encontrar nufragos. La tesis de Pablo
Lanillos (Lanillos Pradas, 2013) disea un sistema completo a partir del planteamiento de un
algoritmo basado en optimizacin de Entropa Cruzada (proceso iterativo de aprendizaje
donde, en vez de calcular las mejores acciones directamente, se aprende la mejor distribucin
de las mismas de la que se obtienen muestras sub-ptimas). En el trabajo fin de mster de
Judith Mans (Mans xxxxx, 2013 (Vergara, 2013)), en un escenario simplificado con un mapa
de probabilidades esttico (las probabilidades solo se actualizan por la deteccin o no del
objetivo al llegar el agente a la celda sin considerar los cambios en las condiciones fsicas del
entorno) y un agente, se entrena una red neuronal con las rutas sub-optimas obtenidas por el
algoritmo de optimizacin de entropa cruzada (Cross Entropy Optimization, CEO) propuesto
en la tesis de Pablo Lanillos (Lanillos Pradas, 2013), sobre diferentes tipologas de mapa.
Buscando una alternativa a estos trabajos, y con el fin de mejorar el controlador de bsqueda,
el presente trabajo es un intento de producir, en las mismas condiciones de aprendizaje que el
Trabajo Fin de Master de Judith Manso (Mans xxxxx, 2013 (Vergara, 2013)), las seales de
control sub-ptimas a partir de las rutas obtenidas por un programa generado mediante PG.
La ventaja de utilizar un programa para la generacin de rutas es que su ejecucin es rpida,
puesto que una vez obtenido el cdigo, tras el proceso evolutivo de entreno con mapas, solo
hay que ejecutar dicho programa suministrndole como entrada el mapa de probabilidades y
la posicin del agente. Al no existir un proceso de aprendizaje, sino que simplemente se
ejecuta un cdigo, el proceso ser bastante rpido.

1.1 Objetivos
El objetivo es introducir la PG en la metodologa de bsqueda de rutas sub-ptimas valorando
las dificultades encontradas, los retos, y la calidad de los resultados obtenidos en comparacin
con otros mtodos empleados en los trabajos ya comentados del Departamento de
Arquitectura de Computadores y Automtica. Tambin se utilizarn los mismos datos que en
esos trabajos para el proceso de aprendizaje de la Programacin Gentica. En definitiva, se
trata de comprobar la viabilidad del uso de PG como un heurstico til en problemas de
bsqueda.
Adems, la evaluacin del objetivo tendr que ser realizado sobre las mismas condiciones que
en los trabajos anteriormente mencionados. Por lo tanto, los datos de aprendizaje sern
mapas de probabilidad en un con un nmero de celdas limitado por el horizonte de decisin
del agente.

1.2 Antecedentes
La Teora de Bsqueda trata de cmo distribuir los recursos de la forma ms eficaz con el fin de
encontrar algo que se desconoce dnde est, pero de lo que se tiene una idea acerca de dnde
5

podra estar y de cmo se mueve (Charles Twardy, xxxx (Beckhusen, 2013)). La teora funciona
siempre de la misma manera, y da igual lo que se est buscando, como pueda ser encontrar un
submarino en el Pacfico, un misil Scud en el desierto, un artefacto explosivo improvisado en
una carretera, las llaves del coche en un estacionamiento gigante, o un paciente de Alzheimer
perdido en el bosque. Aun as, la mayora de las bsquedas dependen en gran medida de la
suerte y del nmero de buscadores que puedan rastrear el territorio, puesto que tratar de
cubrir un amplio territorio con un nmero pequeo de bsquedas reduce la probabilidad de
xito. En (Beckhusen, 2013)(http://www.defensenews.com/, 2013) puede encontrarse una
revisin histrica de la teora de bsqueda que nacinacida en la Segunda Guerra mundial con
el objetivo de detectar submarinos alemanes que causaban grandes prdidas. Se comenz
refinando algunas tcnicas matemticas, sobre todo probabilsticas, comprobndose desde el
principio la dificultad del problema al que hubo que imponer restricciones, junto con las
limitaciones en la capacidad de computacin disponible en las primeras dcadas de la teora.
Se revisan algunos hitos de bsquedas que impulsaron el avance en los mtodos empleados ,
comenzando a utilizarse tcnicas probabilsticas bayesianas, hasta hoy en dala actualidad
donde la teora aparece que entra es empleada a formar parte en diferentes tipos de
problemas como el tratamiento de grandes volmenes de datos (Big Data), la bsqueda de
terroristas insurgentes, o los restos de accidentes en el ocano.

Comment [EBP1]: No est en las referencias.

Comment [F2]: Copiado, de la referencia de


Beckhusen ,cuando habla de buscar pequeos
objetivos en grandes espacios. No tiene que ver, l
quito.

Comment [EBP3]: Agentes?


No se exactamente que quieres decir. Desde un
punto de vista conceptual solo se realiza una
bsqueda. Asi que supongo que lo que quieres es
limitar el nmero de agentes o el nmero de
movimientos?

Comment [F4]: Lo quito (desde aqu al final)?


no aporta nada.
Field Code Changed

Comment [j5]: Mal redactado.

1.3 Una aplicacin real de la teora de bsqueda


El 1 de Junio de 2009 el avin AF 447 de las lnea Air France, con 228 ocupantes incluyendo
pasajeros y tripulacin, desapareci durante una tormenta sobre el Atlntico en un vuelo
desde Ro de Janeiro a Paris ( (Lawerence D. Stone, 2011)REFERENCIA). El BEA (French Bureau
d'Enqutes et d'Analyses) organiz una bsqueda internacional por aire y con barcos de
superficie buscando seales acsticas del avin y posibles supervivientes. Sin embargo la
bsqueda no tuvo xito, por lo que se comision a un grupo de expertos oceangrafos de
Metron Inc. en Reston ( (Lawerence D. Stone, 2011) (Lawerence D. Stone, Search Analysis for
the Location of the 447 Underwater Wreckage, 2011)REFERENCIA)) para que estimaran las
corrientes en el rea en el momento del accidente, junto con la informacin de las
localizaciones donde haban aparecido restos y algunos cuerpos, o los mensajes recibidos del
avin va satlite antes del accidente.
Los analistas de Metron Inc. en Reston comenzaron su bsqueda incorporando todo lo que se
conoca antes del accidente: dinmica de vuelo del avin, los vientos y las corrientes de la zona
y otros accidentes de aviacin con prdida de control, asignando un 70% de probabilidad a
estos datos por la credibilidad que se les conceda. Con las corrientes en el momento del
estudio, estimaron las que existan al ocurrir el desastre, realizando una simulacin hacia atrs
para producir un nmero de trayectorias que terminaba cada una de ellas en una localizacin
estimada del accidente. De ellas se eliminaron las que se consideraban atpicas. Tambin se
incorporaron a estas probabilidades las posiciones y los tiempos de recuperacin de cuerpos
que se encuentran a la deriva en la superficie del ocano, pero a estos datos se les asign slo
un 30% de probabilidad debido a las turbulencias de las aguas ecuatoriales.
Estimaron un error normal bidimensional de cada estimacin residual de la localizacin del
accidente, obteniendo una media y una distribucin normal del error. Con esta distribucin se
obtuvo un rectngulo centrado en la media con el 95% de probabilidad de contener la
6

Formatted: Highlight
Formatted: Do not check spelling or
grammar, Highlight
Formatted: Highlight
Field Code Changed

localizacin de los restos. Sin embargo, la bsqueda con vehculos submarinos en el


rectngulo, extendida luego hacia el sur y el este del mismo, fue infructuosa. Se realiz una
cuidadosa y metdica consideracin de todos los datos disponibles con sus incertidumbres,
para formar reas de alta probabilidad, y se consider la informacin inconsistente, subjetiva,
produciendo finalmente una distribucin bayesiana.
A partir de aqu se utiliz el sistema SAROPS (Search And Rescue Optimal Planning System,
(Kratzke, 2010)REFERENCIA?), utilizando la regla de Bayes para ir actualizando la informacin
previa a la bsqueda con los datos que se iban obteniendo. De este modo se construy una
ruta de bsqueda que comenzaba en el punto de mayor probabilidad seguida de exploraciones
sobre las zonas de alta probabilidad, luego las zonas de probabilidades intermedias, y por
ltimo por las reas de baja probabilidad. Los restos se localizaron un ao despus a 14000
pies de profundidad. Evidentemente el objetivo de esta bsqueda no era encontrar las
soluciones en tiempo mnimo, sino la de generar caminos que maximicen la probabilidad de
deteccin del objetivo.

1.4 Revisin HistricaHistrica


Resumiendo la revisin recogida en (Lanillos Pradas, 2013), se pueden destacar tres perodos
en la teora de bsqueda. En el primero se empleaba conjuntamente la teora probabilstica
bayesiana, la teora algortmica y una nueva disciplina desarrollada en la segunda guerra
mundial conocida como investigacin operacional, utilizada en la toma de decisiones con
mtodos matemticos. Se desarrollaron modelos matemticos y algoritmos siendo Stone la
figura ms destacada del perodo inicial.
Posteriormente algunos autores se dieron cuenta de que la bsqueda era un subproblema de
otro ms general conocido como Procesos de Decisin Parcialmente Observables de Markov
(POMDPPDPOM), puesto que en realidad lo que se est realizando es una observacin parcial
de un estado desconocido. Sin embargo apareci el problema de la maldicin de la
dimensionalidad debida a la explosin del nmero de estados. Por otro lado, Eagle descubri
que los mtodos de Stone no funcionaban si se introducan restricciones en los caminos.
Tampoco la capacidad de computacin era potente por aquella poca y se lleg a concluir que
no se conoca ningn algoritmo que resolviera el problema de generar caminos ptimos de
bsqueda.

Comment [EBP6]: Jose Antonio dice que


quitara esto. Pero yo creo que es bueno ponerlo,
porque as dices claramente de donde has sacado
que viene a continuacin. Y eso te cubre las
espaldas

Comment [F7]: De acuerdo, me parece que ha


habido que leer mucho para hacer un resumen
como el que hace Pablo, hay que jugar con mucha
muchas referencias (l es el maestro, no he
encontrado otro resumen como el suyo)

A finales de la dcada de los 90 se disean algoritmos de ramificacin y poda y aparece una


idea fundamental en la teora: hasta que no se encuentre el objetivo todas las observaciones
son de no deteccin. Por tanto, el problema es un problema de optimizacin determinista con
una sola observacin: no hay deteccin.
Al comienzo del siglo XXI se reactiv la investigacin de bsqueda ptima desde la perspectiva
de la fusin sensorial. Las lneas de investigacin, que se centraron en aplicaciones reales y
configuraciones multiagente (lo que aumentaba la complejidad), se dividieron en tres
perspectivas:
1. Se continu con los algoritmos PDPOMPMPDP, pese a que presentaban ciertas
desventajas.
7

Comment [j8]: POMDP

2. Apareci una aproximacin discreta al problema de bsqueda junto con la apertura de


la metodologa a problemas ms generales.
3. Se desarroll una aproximacin continua con fuerte base en la teora de fusin
sensorial.
El problema resultaba muy complejo y la respuesta deba obtenerse en un tiempo de
computacin razonable, de modo que deba restringirse utilizando aproximaciones y
suposiciones. Entre ellas, la restriccin ms importante consiste en reducir el horizonte del
agente o la ventana de decisin, con lo que su visin global del escenario desaparece. Este
hecho hace que se corra el riesgo de tomar decisiones sesgadas con el peligro de caer en
ptimos locales. Sin embargo, al ser la informacin incierta esta puede llegar a perder valor en
el futuro. Otra alternativa consiste en dividir el sistema de bsqueda en un proceso de fusin
sensorial y un controlador que gua los agentes. Para simplificar la toma de decisiones del
controlador se asume que la informacin sobre la posicin del objetivo entre los agentes se
sincroniza.
En la mayora de los casos, los investigadores han abandonado el objetivo original de
minimizar el tiempo para encontrar el objetivo y se han centrado en maximizar la probabilidad
de detectarlo. Sin embargo, en la la tesis de Pablo Lanillos (Lanillos Pradas, 2013) se propone
una solucin al problema de la bsqueda en tiempo mnimo (Minimum Time Search, MTS)
como un proceso de decisin donde: 1) cada vez que se realiza una accin se produce una
nueva observacin que cambia la creencia sobre la posicin del objetivo; 2) la el orden en el
que se ejecutan las acciones y se visitan las celdas es importante; y 3) el proceso termina
cuando el objetivo se detecta. Finalmente, las acciones obtenidas por el proceso de decisin
de Pablo Lanillos son utilizadas en el trabajo de Judith Mans (Mans Vergara, 2013) para
entrenar una red neuronal que genere directamente las acciones que optimicen el tiempo de
bsqueda as como en el que se est presentando.

1.5 Planteamiento del problema


Como se ha comentado se va utilizar PG para obtener un programa que, manteniendo las
mismas premisas y funcin de optimizacin que da soporte al proceso de decisin de Pablo
Lanillos (Lanillos Prada, 2013), genere la trayectoria de bsqueda de tiempo mnimo de un
nico agente para un mapa probabilstico dado. El mapa, desde la perspectiva del agente, es el
mundo, y consiste en un enrejado de celdas a las que se les ha asignado una probabilidad de
localizacin del objetivo a partir del conocimiento previo del mundo. La suma de todas las
probabilidades ser 1, es decir, la certeza de localizar el objetivo est distribuida entre todas
las celdas del mapa.
La bsqueda ser realizada por un cuatrirrotor, el agente, guiado en su movimiento por la
secuencia de seales generadas por el programa controlador obtenido mediante PG. La
secuencia de seales se proporciona como un array de movimientos individuales codificados
segn el ngulo de desplazamiento entre las cuadrculas, en una de las 8 orientaciones
cardinales.
El nmero de seales en la secuencia de control ser N=10, ya que con este valor se consigue
un avance significativo en la trayectoria del cuatrirrotor, tras el cual el agente puede volver a
8

tomar tomar usar las probabilidades de su entorno, actualizadas con las medidas de su sensor,
y calcular una nueva secuencia.
Como se coment, la bsqueda se va a restringir a objetivos estticos, pues el mapa de
probabilidades no se ver modificado por el movimiento del objetivo aunque s por las
observaciones realizadas por el agente. Se considera que el agente no detecta al objeto hasta
que finaliza la bsqueda. El comportamiento del sensor es ideal, de manera que la
probabilidad de una celda observada por el agente en la que no se detecta el objeto pasa a
tener valor nulo.

1.6 Organizacin de la memoria

Comment [EBP9]: Tienes que contar de que s


habla en cada captulo

TODO
El presente trabajo est estructurado con el objetivo de encontrar una gramtica en PG til
para obtener controladores que generen rutas ptimas para mapas de diferentes topologas.
Se realiza una revisin terica de la PG, centrndose en la basada en gramtica, para
posteriormente plantear los elementos de la gramtica que puedan resolver el problema MTS.
Se comentan las pruebas realizadas con la gramtica obtenida sobre diferentes mapas y, por
ltimo, se resume y valora el trabajo en las conclusiones.
El captulo 2 se centra en la exposicin de la PG, repasando los conceptos fundamentales y la
modalidad cuando se utiliza con gramtica. Se comentan los dos aspectos ms importantes a
los que se enfrentan los sistemas de PG, el de cierre y el de suficiencia. Por un lado, debe
mantenerse la coherencia entre los parmetros y valores devueltos por las funciones que
forman parta de la gramtica la gramtica y, por otro lado, que la gramtica o genotipo que
genera los programas debe contener, al menos, los elementos necesarios para resolver el
problema.
En el captulo 3 se definen los elementos de la gramtica propuestos para el problema MTS,
siendo estos los tipos de movimientos que pueden realizar los agentes y las condiciones que
determinarn cul de esos movimientos aplicar en funcin de ciertos clculos realizados sobre
la probabilidad. Se plantea la gramtica utilizada desde los nodos terminales hacia los nodos
internos y los elementos que los agrupan, y se define la funcin de aptitud que valora la
calidad de los programas o controladores obtenidos.
El captulo 4 hace referencia a los resultados (TODO), comparndolos con los obtenidos en
el sistema CEO. La conclusin ms importante es que, si bien no se ha conseguido un
controlador por tipo de mapa, los resultados no se alejan demasiado de los obtenidos por CEO.
Existe un problema de suficiencia en las condiciones puesto que estas no discriminan
adecuadamente el tipo de movimiento a aplicar, por lo que no se han podido identificar que
combinacin de condiciones aconsejan un tipo de movimiento, para incluir dichas
combinaciones en la gramtica y obtener un controlador ajustado.

Comment [F10]: Hasta que no veamos los


comentarios, esto est pendiente.

CAPTULO 2. Programacin gentica


La programacin gentica (REFERENCIA BASICA (Riccardo Poli W. B., 2008)) es una
metodologa basada en algoritmos evolutivos para desarrollar automticamente programas de
computadoras que realicen una tarea definida por el usuario. Es una especializacin de los
algoritmos genticos donde cada individuo de la poblacin es un programa de computadora y
una tcnica de aprendizaje automtico utilizada para optimizar una conjunto de programas de
acuerdo a una funcin de ajuste o aptitud que evala la capacidad de cada individuo
(programa) para llevar a cabo una tarea determinada.
En (Weise, 2011) se especifican dos aspectos importantes de lo que es la programacin
gentica:
1) Algoritmos que evolucionan basados en poblacin, teniendo como genotipos
estructuras de datos construidas en forma rbol. Las estructuras en rbol son naturales en
programacin puesto que muchos compiladores las construyen al realizar el anlisis de los
programas. Ahora bien, estas estructuras en rbol son manejadas internamente por el sistema
que controla las operaciones evolutivas, ya que desde la perspectiva del usuario en PG se
resuelven automticamente los problemas sin requerir que el usuario conozca o especifique la
estructura o la forma de la solucin, siendo una tcnica sistemtica e independiente del
dominio (Riccardo Poli, 2008)(R. Poli, 2008). Pese a este desconocimiento, en (Koza, 1998) se
indica que los programas se encuentran entre las estructuras ms complejas creadas por el
hombre.
2) Engloba todos los algoritmos posibles que engendran programas. Si bien la
Inteligencia Artificial contiene mtodos de aprendizaje automtico como son las redes
neuronales, las gramticas formales, los rboles de decisin, las mquinas de soporte vectorial,
etctera, estos mtodos involucran estructuras especializadas para facilitar el hallazgo de la
solucin e incluso el anlisis matemtico. Sin embargo, estas estructuras no son naturales y
deben programarse explcitamente, lo que restringe la forma de resolver los problemas. Si un
humano programase con ese tipo de estructuras no lo hara de una forma natural ni dispondra
de la flexibilidad necesaria. Adems, en los lenguajes de programacin se pueden realizar
operaciones de forma jerrquica, emplear iteraciones y recurrencias, realizar clculos sobre
variables de diferentes tipos, o crear variables intermedias y subprogramas reutilizables (Koza,
1998), y todos estos aspectos aumentan tanto su potencial como su "compresibilidad" para
los humanos.
Las caractersticas ms importantes de la PG son:

Material Gentico no lineal y generalmente estructurado en rbol (histricamente se


han utilizado otro tipo de representaciones que en el fondo son trasladables a rboles
utilizando "mapeos" genotipo-fenotipo, como es el caso de la representacin en LISP,
en forma de una cadena de elementos representables en forma de rbol)
Material Gentico de longitud variable, si bien se imponen ciertas limitaciones al
tamao del rbol para evitar el problema del crecimiento incontrolado, ya que a
medida que avanzan las generaciones el tamao de los individuos crece sin que
10

Comment [EBP11]: He modificado un poco lo


que pone para que no sea idntico a lo de la
wikipedia. Aunque la definicin de la wiki era bue
no es conveniente incluir en un trabajo de
investigacin la wiki como fuente de estudio.
Resulta poco profesional. Asi que la he resumid
un poco. En la referencia busca una referencia
genrica clsica de GP y con eso llega.

Comment [EBP12]: He reorganizado el texto


con 1) y 2) en dos prrafos. Lo que no tengo claro
que tu quisieses que fuese as, porque no le habia
dado formato. Pero como pareca tener sentido, t
lo he puesto as.

Comment [F13]: OK. Al principio era un texto


corto que fue creciendo y no lo separ.

Comment [EBP14]: Por que est se llama R.


Poli, con la inicial, cuando los otros se referencian
solo con el apellido?
Field Code Changed

necesariamente mejore la aptitud. De hecho, habitualmente comienza a haber


programas ms grandes con la misma aptitud que otros de menor tamao. Adems, se
trata de un crecimiento rpido, prcticamente exponencial. Este problema se debe a
que el operador de cruce permite que los hijos sean ms profundos que los padres. A
pesar de esta problemtica, el que la estructura arbrea pueda crecer de manera
considerable, posibilita una bsqueda ms amplia en el espacio de soluciones.
Material Gentico Ejecutable. Las estructuras son interpretadas, bien sea por un
lenguaje de computacin existente o por un lenguaje diseado especficamente para
el problema.
Cruce Gentico que preserva la sintaxis. El cruce es la operacin gentica ms
importante en PG, a la vez que la ms arriesgada puesto que un nodo del rbol de una
estructura, a cualquier nivel, es sustituido por otro nodo de otra estructura y no
necesariamente en el mismo nivel. Realizada esta operacin el programa resultante
debe ser correcto. Si hay implicadas funciones con un determinado nmero de
argumentos, o aridad, y esos argumentos proceden de cruces con otros nodos, la
consistencia entre parmetros de funciones y valores devueltos por las mismas debe
preservarse, es decir, el nmero de parmetros que reciben debe ser constante, y los
valores devueltos pueden utilizarse como parmetros. Como se comentar esta
propiedad se llama Cierre y existen tcnicas para preservarla.

2.1 Conceptos bsicos en la PG


Cmo se organiza la informacin para que un ordenador programe sin decirle exactamente
qu hacer? En PG la creacin de programas es aleatoria y se llega a la solucin partiendo de un
estado inicial y aplicando mecanismos de seleccin a las estructuras intermedias que se van
encontrando. Segn (Koza, 1998), el programa emerge como consecuencia de la aptitud, ya
que es la responsable de generar la estructura del programa necesaria para resolver el
problema en cuestin. Adems, son muchos los tipos de problemas (control, planificacin,
estrategias de juego, etctera) que pueden reformularse para ser resueltos en PG. Para que
esta creacin de programas ocurra deben definirse cinco puntos importantes:
1. Conjunto de Terminales, o las hojas de los rboles. Tpicamente son variables atmicas
(entradas, sensores, detectores, variables de estado) o constantes atmicas (un
nmero, un valor booleano, null). Ocasionalmente pueden ser funciones sin
argumentos que producen efectos sobre el estado del sistema.
2. Funciones que reciben un nmero de parmetros y devuelven un tipo de datos
(entradas y salidas compuestas por elementos Terminales, o incluso por otras
funciones).
Formatted: Indent: Left: 0.25"

El conjunto de Terminales y Funciones deben atenerse al principio de Cierre: cada funcin


debe aceptar como argumento cualquier valor y tipo de datos, posiblemente devuelto por
alguna otra funcin, as como utilizar como elementos terminales los retornos de
funciones. Existen tcnicas para mantener esta propiedad de cierre, que se aplicarn en la
operacin de cruce de individuos, como por ejemplo incluir en las funciones cdigo de
salvaguarda para los casos en los que falta algn parmetro.

11

Comment [EBP15]: Le he puesto un enter. Y


gustara que no apareciese el tabulador inicial. Pe
ahora mismo no lo consigo. Eso si, no quiero que
numere. Si no que aparezca aparte del 2, porque
comentario atae a los puntos 1 y 2.

Comment [EBP16]: Lo eliminamos porque


todava no has dicho que es una gramatica y para
que se utiliza

3. La forma de medir el comportamiento del programa se lleva a cabo por la medida de


aptitud y el tipo de medida utilizado depende de la naturaleza del problema
(ponderando un error, minimizando el tiempo en control ptimo, por una combinacin
de aciertos positivos y negativos y falsos positivos en reconocimiento de patrones, etc)
En el problema que se trata de resolver ser un parmetro relacionado con la
generacin de rutas sub-ptimas en tiempo mnimo.
4. La manera de efectuar operaciones genticas sobre la poblacin actual en base a la
aptitud. Existen parmetros de control de la ejecucin, siendo el ms importante el
tamao de la poblacin, as como las probabilidades asignadas a las operaciones
genticas (cruce, mutacin), la estrategia de seleccin de individuo que pasa a la
siguiente generacin, y el tamao mximo de los programas obtenidos o individuos.
5. El criterio de finalizacin y la seleccin del programa resultado. Habitualmente, la
ejecucin finaliza tras un nmero mximo de generaciones y el programa elegido es el
mejor individuo encontrado a lo largo de todas las iteraciones del algoritmo de PG.
Finalmente, es importante destacar que el conjunto de todas las funciones y terminales
forman lo que se denomina primitivas del sistema PG. Estas primitivas tienen que ser
suficientes, pudindose expresar el problema mediante su combinacin (el conjunto de todas
las posibles composiciones recursivas de las primitivas debe incluir al menos una solucin).
Desafortunadamente la suficiencia no puede garantizarse en algunos problemas, y hay que
recurrir a alguna teora sobre el problema o a experiencias realizadas con otros mtodos para
entender qu tipo de primitivas podran utilizarse.

2.2 Representacin, inicializacin y operaciones en GPPG

Comment [EBP17]: Ojo. En unas partes pone


GP y en otras PG. Creo que deberas poner siemp
lo mismo (PG, ya que es la versin espaola)

A continuacin se describen las caractersticas de los elementos ms relevantes de la PG.


2.2.1 Representacin
Como se ha comentado, para la representacin de los individuos o programas no se utilizan
lneas de cdigo sino rboles sintcticos. Por ejemplo, si un programa tuviera como cdigo la
lnea max(x*x,x+3y), (Riccardo Poli W. B., 2007)(Polu, Willian B., Nicholas F., & John R., 2007),
los elementos terminales seran las variables x e y, junto con la constante 3, y los nodos
internos o funciones, son los operadores +,* y max. Su representacin en rbol se muestra en
la Ilustracin 1. Representacin de max(x*x,x+3y) en un rbol Sintctico Figura xxxx.

Ilustracin 1. Representacin de max(x*x,x+3y) en un rbol Sintctico

12

Comment [EBP18]: Formato de esta referenc


tambin es diferente. Unificar
Field Code Changed

Comment [EBP19]: Enlazalo con el nmero d


la Figura

Existen formas de representacin ms complejas, como en el caso de agrupar ramas (ramas


rbol). Es decir un conjunto de nodos se agrupan como una estructura o componente que
puede incluirse en cualquier lugar de un nodo en la estructura. Diseos ms complejos
permiten pasar como parmetros funciones, o agrupaciones a partir de un nodo, como son las
expresiones lambda. Sin embargo en el anlisis presente no se han utilizado.
Se pueden definir funciones, que son partes del subrboles que nacen a partir de un nodo y
que realizan alguna operacin de utilidad. La estructura de la funcin en conjunto se
reproduce como lo hacera un nodo simple y no ser modificada en las operaciones genticas.
De este modo la funcin puede distribuirse por el rbol en los individuos descendientes. Se
pueden agrupar nodos en lo que se denominan AFD (Automatically defined functions), es
decir, porciones de cdigo (nodos a partir de uno raz), que se han demostrado tiles y que no
se desea evolucionar, por lo que permanecen fijos y no evolucionan. Sus parmetros son
siempre valores. Si la funcin contiene en alguno de sus parmetros otras funciones, se
denomina Macro. De igual modo pueden definirse ADM (Macros), iguales a los anteriores, solo
que sus parmetros pueden ser expresiones de cdigo.
2.2.2 Inicializacin
La inicializacin es aleatoria, sin embargo, existen tres modos bsicos de realizarla:

Completa. Genera rboles de un tamao y forma predeterminado. Se escogen nodos


de tipo funcin hasta que se ha alcanzado la profundidad mxima, y ms all de dicha
profundidad solo se escogen nodos terminales.
Creciente. Permite crear rboles de forma y tamao variados. Se cogen nodos
funciones y terminales hasta alcanzar la profundidad mxima, momento a partir del
cual solo se escogen nodos terminales.
Mixta con rangos. La mitad de la poblacin inicial es construida de forma completa y
la otra mitad con el mtodo creciente. Adems, utiliza un rango para los lmites de
profundidad, asegurando una variedad de formas y tamaos.

En los dos primeros mtodos el tamao y la forma son muy dependientes de la profundidad
escogida. El mtodo de crecimiento genera rboles muy cortos y en el caso de que haya
muchas ms funciones que terminales es similar al mtodo completo. Adems, cambios en el
nmero de funciones o terminales afectan a las formas de los rboles. El tercer mtodo
permite generar un amplio rango de programas con diferentes caractersticas. En todo caso se
debe procurar preservar la diversidad en las siguientes generaciones, consiguiendo que la
ramificacin y profundidad del rbol inicial tenga la suficiente variedady que la segunda
generacin no sea dominada por un descendiente.
2.2.3

Operaciones en GP

2.2.3.1 Seleccin
Determinados individuos o programas se seleccionan para la siguiente generacin en base a su
aptitud, de modo que los ms aptos tengan mayor probabilidad de ser seleccionados. El
mtodo ms habitual es la seleccin por torneo, as como la seleccin proporcional a la
aptitud.

13

Comment [EBP20]: ADM son las siglas de que


Solo de Macros? Supongo que habr otras dos
palabras

Comment [F21]: No las utilizo porque no las h


encontrado. La idea hubiera sido que, al probar p
tipo de Mapa, se encontraran estructuras de cdi
diferenciadas en la solucin de cada tipo, y que
hubieran podido incorporarse a la gramtica.

Comment [EBP22]: Utilizas alguno de estos


tipos complejos? Si no es as resume un poco esto
Si si lo utilizas, mira como lo reescribes porque
realmente, yo no he entendido mucho

Comment [F23]: Ahora no encuentro la


referencia donde le estopero no pierdo tiempo

Comment [EBP24]: Esto no tengo claro que


vaya aqu. Ser en alguna parte de la seccin de la
operaciones? Lo digo, porque en esta seccin hab
de la generacin, y la preservacin ocurre a
posteriori.

Comment [EBP25]: Esto habr que comentar


en la zona de JECO

2.2.3.2 Cruce
La forma ms habitual de realizar el cruce es mediante la combinacin de subrbol. Dados dos
padres, se selecciona aleatoriamente un nodo como punto de cruce en ambos cada uno de los
rboles. La seleccin de los nodos es aleatoria y no tienen por qu encontrarse al mismo nivel
del rbol. El descendiente se crea reemplazando el sub-rbol encabezado en el punto de cruce
de una copia del primer padre con una copia del sub-rbol encabezado en el punto de cruce en
el segundo padre:

Comment [F26]: Totalmente de acuerdo

Comment [EBP27]: No entiendo el dibujo.


Tienes que mejorarlo o eliminarlo, ya que por lo
menos para mi, no aclara nada. Podrias poner pad
1 y padre 2 al lado de donde son los padres, e hijo
donde estn los hijos. No se si los dos padres est
en la misma fila o en la misma columna. Sospecho
que van por filas pero me lo tengo que imagina
Ademas podrias usar colores diferentes para cado
padre, y luego usar los colores para que se vea el
pedazo de cada padre en el hijo. Ademas, como e
hijo es de los dos padres, porque no lo pones ent
los dos padres (si es debajo,debajo en medio de lo
dos padres) . Con los colores podrias tambin
ahorarte las lneas punteadas. Piensalo un poco.

Ilustracin 2. Cruce de subrbol

Tambin puede seleccionarse un punto de cruce comn de los padres y realizar el cruce, cruce
de un punto, intercambiando los correspondientes sub-rboles. Con el fin de mantener la
diversidad estructural y tras realizar un anlisis de los rboles, se seleccionan solo partes de los
rboles, o regiones comunes. La nocin de regin tiene que ver con el concepto de homologa,
es decir, un proceso de equivalencia entre los rboles de los padres, en el que es posible que
se produzca una transferencia de las caractersticas. En el cruce con preservacin del contexto
los puntos de cruce se restringen a los que tengan las mismas coordenadas. En el cruce de
tamao imparcial, el primer punto de cruce se selecciona aleatoriamente como en un cruce
estndar. Luego se calcula el tamao del subrbol del primer padre a ser escindido de tal
modo que la seleccin del segundo punto de corte no seccione un subrbol demasiado grande.

14

2.2.3.3 Mutacin
Para el caso de la mutacin, la forma ms habitual es la seleccin aleatoria de un punto de
mutacin y la sustitucin del sub-rbol por otro generado aleatoriamente. Tambin puede
realizarse como el cruce de un programa con otro generado aleatoriamente. En la mutacin de
punto, se selecciona aleatoriamente un nodo y la primitiva almacenada all se reemplaza por
otra generada aleatoriamente con la misma aridad. Si no hay otras primitivas de esa aridad, no
ocurre nada.

2.3 PG basada en gramticas


En la Programacin Gentica basada en gramtica (PGBG) el genotipo y el fenotipo son
entidades separadas: el genotipo se ha de trasladar a un programa y la gramtica asegura que
el resultado de la traslacin produzca un programa sintcticamente correcto. La PGBG no
impone restricciones sobre la operacin gentica de cruce, siendo ahora esta operacin similar
a la realizada en los Algoritmos Genticos, es decir, el cruce puede ocurrir en cualquier lugar
del genotipo. La gramtica tambin permite expresar restricciones, cumplindose la propiedad
de cierre de una forma natural, con lo que queda asegurado que las funciones reciban los
argumentos correctos y sus retornos puedan pasarse a otras funciones o utilizarse como
elementos terminales.
Una gramtica est constituida por elementos no terminales, elementos terminales y reglas de
produccin. Los elementos terminales y no-terminales son del mismo tipo que las funciones
en PG. La diferencia entre PG y PGBG aparece por las reglas de produccin, puesto que las
reglas de produccin se encargan del cumplimiento de la sintaxis.
Para ilustrar el funcionamiento de las reglas presentamos el siguiente ejemplo, en el que
puede verse como cada una de las lneas de la gramtica se corresponde con una regla de
produccin. Cada regla est formada por la parte izquierda que identifica el elemento de la
gramtica, una flecha que indica que se trata de una produccin, y una parte derecha con
todos los elementos terminales y no terminales de la gramtica que pueden elegirse en la
regla, separados por una barra vertical (smbolo de disyuncin).
SB
B and BB | or BB | not B | if B B B | T
T a0 | a1 | d0 | d1 | d2 | d3
2.3.1 Gramticas Libres de Contexto (GLC)
En estas gramticas la parte izquierda de las producciones slo puede tener un smbolo no
terminal. Una gramtica libre de contexto est constituida por la tupla (N,,P,S), donde N es el
alfabeto no terminal(tambin denominado variable), es el alfabeto terminal (los smbolos del
lenguaje que se est definiendo), P es el conjunto de producciones, y S es el smbolo designado
como inicio (Whigham, 1995). Las producciones son de la forma: x y, x z e x y | z
donde N, y, z { U N}, z ???indicando la primera regla que dado x se produce y, la
segunda que dado x puede producirse tambin z, y la tercera regla aglutina ambas
producciones y mediante |, es el smbolo de disyuncin. Por tanto, los terminales tienen la
forma variable cadena de variables y terminales y las ideas bsicas de las GLC son:
15

Comment [EBP28]: Que es z en la regla x->z?

Formatted: Font: Bold

1) Utilizar variables para generar conjuntos de cadenas (como las de los lenguajes expresables
por GLC)
2) Definir estas variables recursivamente en trminos de otras variables
3) Definir reglas recursivas (o producciones) que suponen una concatenacin de las cadenas de
variables.
Por lo tanto, la cadena se va produciendo con varias aplicaciones de las reglas y, cada vez que
se aplica el smbolo se produce un paso de derivacin, una transformacin de la
cadena.
El trmino libre de contexto se refiere al hecho de que el elemento no terminal, x, puede ser
sustituido por y o z sin tener en cuenta el contexto en el que ocurra.
2.3.2 Gramticas libres de contexto y PG
De (Whigham, 1995) se pueden sacar las siguientes conclusiones respecto de la adaptacin de
las GLC a la PG:

Para generar los individuos de la poblacin inicial se utilizan las reglas de manera
aleatoria.
Resulta ms complicado generar individuos de una longitud prefijada puesto que es
ms difcil utilizar el mtodo mixto por rangos, al tener que considerar la profundidad
del rbol.
En la operacin de cruce, para generar individuos correctos se eligen dos puntos de
cruce que puedan ser generados por la misma regla.
Es necesario especificar cuntas veces se puede utilizar una regla para limitar el
tamao final del rbol.

2.3.3 Notacin de las GLC en la Forma de Backus Nahur (BNF)


Una notacin habitual de especificar las gramticas en PG, y que es la utilizada en la
herramienta de PG con la que se obtienen los programas controladores de este trabajo, es la
Forma de BNF, un metalenguaje usado para expresar gramticas libres de contexto.
Una especificacin en BNF consiste en un sistema de reglas de derivacin escrito como un
conjunto de expresiones del tipo:

Comment [j29]: Es la primera vez que se dice


que se va a utilizar Jeco, no se dice qu siglas son
qu es. Antes apareci y no se referenci. Quizas
habra que a ver dicho el uso de Jeco en los
objetivos o en el planteamiento del trabajo.

Comment [F30]: Ahora en el apartado de Jeco


se dice que la forma de la gramtica es BNF

<simbolo> ::= <expresin con smbolos>


donde "smbolo" es un elemento no terminal y "expresin con smbolos" una secuencia de
smbolos u otras secuencias, cada opcin separada por la barra vertical (operador de
disyuncin '|'), constituyendo as el conjunto de posibles sustituciones posibles a asignar al
smbolo a la izquierda. Los smbolos que nunca aparecen en el lado izquierdo de las
expresiones son los elementos terminales.

2.4 Sistema Jeco: Herramienta Java de PG


Comment [j31]: Hay que hacerlo.

TODO

Comment [F32]: Ya no est disponible


https://code.google.com/p/paba/ No encuentro
nadalo quitamos?

16

Jeco es una librera de Computacin Evolutiva construida en Java. Jeco funciona a partir de una
gramtica definida en la forma BNF. Desde el punto de vista de la programacin, los elementos
que debe facilitar son:
1. El fichero con la gramtica.
2. El tamao de la poblacin para la evolucin gentica.
3. El nmero de generaciones en las que se aplicar la evolucin. Una vez alcanzado este
nmero, Jeco terminar la optimizacin y devolver el conjunto de mejores soluciones
encontradas.

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"

La librera suministrar en cada generacin un programa evolucionado de la gramtica en


forma de cadena de caracteres. Este programa se prueba para valorar su aptitud, que ser
devuelta a Jeco para que valore las mejores soluciones. Adicionalmente se le puede indicar a
Jeco el nmero de errores, si en el problema que se est optimizando se pueden cuantificar los
errores que comete el programa.
Como se comentar en PG con gramtica la inicializacin tiene sus peculiaridades, aunque ser
transparente en el presente trabajo puesto que no se est diseando la herramienta que
realiza la evolucin, tratndose del entorno Jeco.

Comment [EBP33]: Lo he recortado de otra


parte (mtodo de inicializacin), porque esto se
comentar aqu
Comment [j34]: Referencia?

Comment [F35]: Respecto a cmo realiza Jeco


evolucin del rbolno tengo referencias.

17

CAPTULO 3. Representacin del problema de bsqueda en


tiempo mnimo mediante PG
En este captulo se describe la gramtica elegida para obtener un programa controlador que
minimice el tiempo de bsqueda de un objetivo por un agente. Es decir, se se presentan los
elementos terminales y no terminales de la gramtica, as como las estructuras que se
incluirn en el programa controlador (bucles, reglas if then else, funciones y subrutinas), que
han sido definidos teniendo en cuenta las caractersticas del problema. Adems, tTambin se
especifica la funcin objetivo elegida para medir la aptitud de los individuos o programas
controladores generados por la herramienta de PG.

3.1 Definicin de la gramtica


A la hora de elegir las funciones del problema de bsqueda en tiempo mnimo se tiene en
cuenta que, segn (Koza, 1998), las estructuras posibles en PG son todas las posibles funciones
que resultan de combinar recursivamente el conjunto de funciones F = {f1,f2,...,fNfunc} y el
conjunto de terminales de T = {a1,a2,...,aNterm}. Adems, cada funcin fi tendr una aridad (es
decir fi(z1,,zL) tomar como argumentos a z1,,zL) prefijada y ser definida bien como una:

Operacin aritmticas (+, -, *, etc).


Funcin matemtica (sin, cos, exp, log, etc.).
Operador booleano (AND, OR, NOT, etc).
Operador condicional (como if-Then-Else).
Funcin que cause iteracin (como while).
Funcin que cause recursin
Funcin propia del problema que se desea resolver. stas ltimas son las ms
importantes, ya que permite definir los comportamientos bsicos del agente, que
sern combinados por la herramienta de PG para obtener el programa controlador
buscado.

Adems, hay que tener en cuenta que el conjunto de elementos terminales y funciones
primitivas debe ser suficiente para expresar la solucin del problema, siendo necesario
detectar que variables tienen el suficiente poder explicativo. Conseguir esta identificacin de
variables no siempre es evidente y puede requerir cierta perspicacia o conocimiento del
problema (hecho que tambin ocurre con otros paradigmas del aprendizaje automtico).
Adems, la eleccin del conjunto de funciones y terminales afecta directamente al carcter y a
la forma que tomarn las soluciones. Para la mayora de problemas, el conjunto de funciones
no incluir nicamente el mnimo suficiente que se empleara al resolver el problema a mano,
pues ante un proceso de aprendizaje pueden incluirse funciones "extraas/ajenas" al mismo.
El efecto en el funcionamiento de estas funciones es complejo, pero por norma general, el
tener numerosas funciones extraas/ajenas degrada el rendimiento de la PG aunque el
problema siga resolvindose. Sin embargo, la existencia de alguna funcin extraa puede
incorporar un comportamiento adicional que por s misma mejore considerablemente el
rendimiento de la PG (Koza, 1998). Es decir, incluir funciones extraas adicionales no impide
que se obtenga un programa solucin, aunque es conveniente aproximarse al conjunto
mnimo de funciones adicionales suficientes.
18

En los siguientes apartados se recogen las hiptesis utilizadas para definir la estructura de los
programas controladores, se definen las funciones y terminales de este problema, y se
presentan las gramticas utilizadas para resolverlo.
3.1.1

Hiptesis sobre la estructura de los programas generados por PG

Recordemos que el entorno del agente consiste en un conjunto de casillas, formando un


enrejado cuadrado con un nmero finito celdas y que cada celda tendr asociada una
probabilidad de que un objetivo se encuentre localizado sobre ella. El tamao del enrejado es
de 20x20 celdas y queda determinado con las celdas accesibles por las 10 acciones de control
consecutivas que tiene que determinar el programa controlador sobre cada mapa de
probabilidad. El nmero de 10 movimientos consecutivos del agente se ha prefijado, al igual
que en el Trabajo Fin de Master de Judith Mans (Mans Vergara, 2013) con el fin de que el
controlador tenga un entorno lo suficientemente amplio para tomar las decisiones y lo
suficientemente pequeo para que el mapa de probabilidades sea fcilmente manejable por el
programa controlador. El mapa de probabilidad se obtiene de las condiciones iniciales del
entorno y se actualiza por el movimiento y las observaciones del agente. Finalmente, si se
considera que el sensor es ideal, una vez el agente alcanza una celda se anular su
probabilidad mientras no se detecte el objetivo.
Por consiguiente,Recordemos que el agente habita en un entorno de probabilidad sobre el
que se podrn calcular ciertas condiciones, como sean estas valores de medias, varianzas,
gradientes, u otros clculos, y estar situado en una determinada celda desde la que podr
realizar algn tipo de movimiento.
Se plantea la hiptesis de que el movimiento completo del agente ser el resultado de la
composicin de movimientos simples que se irn concatenando a partir de las condiciones de
probabilidad que encuentre el agente al alcanzar cada celda. Por una parte, estos movimientos
simples, realizables desde cualquier celda durante un determinado nmero de casillas y
definidos en la seccin 3.1.2, pueden consistir, por ejemplo, en avanzar en direccin axial (en
una de las ocho direcciones cardinales), realizar una L (con un tamao base y altura
determinado), ir hacia la celda de ms probabilidad de una determinada fila o columna. La
concatenacin de estos movimientos simples construir la ruta completa. Por otra, las
condiciones de probabilidad que se comprueban tras alcanzar una celda pueden dar como
resultado continuar con el movimiento simple anterior o comenzar uno diferente. Finalmente,
los movimientos simples sern los nodos terminales de la gramtica Y las las condiciones de
probabilidad sus funciones propias.
Al desconocer a priori que tipo de nodes nodos terminales y funciones van a resultar ms
tiles, se ha diseado una gramatica gramtica en la que tanto los movimientos simples como
las condiciones pueden tener dos naturalezas diferentes:
a) Local o cercana, en la que solo se consideran las celdas ms cercanas a aquellas donde se
encuentra el agente.
b) Ms genrica, en la que se considera el conjunto total de celdas del enrejado de 20 x 20, y
no slo las celdas cercanas, con el fin de evitar centrarse en probabilidades cercanas.

19

Comment [F36]: Cierto!!!...a la porr

Comment [EBP37]: Fernando, este prrafo


combina la informacin que tenias en un prrafo
que corte de alguna seccin anterior y un prrafo
que tenias escrito por aqu.

Muchos movimientos tendrn parmetros o atributos, como por ejemplo, el tamao en


nmero de celdas del movimiento. Estos parmetros dependern de las condiciones de
probabilidad de la celda donde se evalen y, por tanto, estarn parametrizados en la
gramtica. Es decir, la PG deber resolver el valor correcto del parmetro en cada caso. Esto
ampla el espaci de bsqueda de soluciones, lo que ralentiza el procesamiento y puede
requerir un tamao de poblacin mayor durante la ejecucin de Jeco.
En principio se desconoce qu tipo de movimiento es el adecuado para cada mapa, incluso qu
condiciones se deben definir para resolver el problema. Durante las pruebas ciertos tipos de
movimientos y sobre todo de condiciones se han descartado porque no aportan conocimiento
al problema (los valores que devuelven las condiciones no varan prcticamente al ser
evaluadas y no son tiles para discriminar). De hecho, a la hora de plantear el problema, se
desconoce si la hiptesis de componer la ruta con movimientos simples y condiciones es
cierta.
3.1.2 Tipos de movimientos simples
La trayectoria total del agente tendr un total de 10 movimientos de casilla y estar
constituida por movimientos simples, que sern de un tamao menor de 10, es decir, de ncasillas. Cuando en una casilla se prueba un movimiento simple, su tamao n o bien est
implcito en el movimiento, o es asignado por la gramtica. Por otra parte, muchos de los
movimientos simples pueden realizarse en una de las 8 orientaciones cardinales. Para
determinar cul es la mejor, se prueba el movimiento simple de tamao n en cada una de esas
orientaciones y se escoge la que obtenga mejor LET.
Sin embargo puede haber empates en algunos LETs de las orientaciones y, en ese caso, se elige
la orientacin que contine con el movimiento anterior, es decir, la orientacin que tenga
alguna componente igual al movimiento anterior. Por ejemplo, si el movimiento anterior era
norte, otro movimiento norte continuara el movimiento, pero si este no tiene mejor LET, se
escogera entre los movimientos nor-este y nor-oeste. Si estos tampoco tuvieran mejor LET, se
preferiran los movimientos este, oeste a los que tengan alguna componente sur.
Los movimientos simples se movern en n-casillas (siendo n menor a 10) a partir de la casilla
actual y se calcular el LET de los n movimientos. Se calcula el LET de esos n movimientos, y la
eleccin del mejor movimiento se realizar por el que tenga el LET menor. En caso de empate
en LET, se continuar con el tipo de movimiento anterior, o el movimiento "ms cercano" al
anterior, es decir, si un movimiento anterior fue hacia el norte, los movimientos hacia el noreste o nor-oeste sern ms cercanos que los de las direcciones este u oeste, siendo los ms
lejanos los que tengan alguna componente hacia el sur.
Si la casilla donde se encuentra el agente se encuentra cercana a los bordes del mapa de
probabilidades de 20x20 celdas, quizs no puedan considerarse los n movimientos en todas las
direcciones. Esto implica que las comparaciones por LET no tendran el mismo nmero de
casillas, con lo que:

Si N=0 en una direccin no se considera la direccin


Se reduce la comparacin a la direccin con el mnimo nmero de casillas.

20

Comment [EBP38]: No acabo de enteder que


quieres decir. Redactalo de nuevo

No se ha planteado normalizar el LET dividiendo por el nmero de movimientos puesto que si


hay mucha diferencia en el nmero n no seran comparables.
3.1.2.1 Movimiento Axial Local (MoveLocalAxial)
Este movimiento parte de la casilla actual y se mueve consecutivamente N-pasos en alguna de
las 8 direcciones correspondientes a los puntos cardinales: norte, sur, este, oeste, noreste,
noroeste, sureste, suroeste.
En la figura 3, Ilustracin. 3 Movimiento Axial Local, como ejemplo, se muestran estas
posibilidades para un movimiento de tamao n=3. Como se observa, desde la casilla donde se
encuentra el agente se valorarn 8 rutas de tres casillas en cada una de las 8 direcciones
cardinales, calculando el LET de cada una.

Ilustracin. 3 Movimiento Axial Local

Se elegir la direccin con menor LET (resolviendondo los empates como se coment
anteriormente). A la ruta total que se est componiendo se le aadiran las tres casillas que se
han seleccionado.
En la gramtica el tamao n del movimiento est parametrizado pues, segn el mapa de
probabilidad y la posicin actual del agente, el tamao ptimo del movimiento axial podra ser
diferente.
3.1.2.2 Movimiento Axial Global (MoveAxial)
Este movimiento es idntico al anterior, solo que el tamao del movimiento es el mximo
posible desde la casilla, es decir, hasta los bordes (en realidad n sera la distancia al borde ms
cercano). Si la celda donde est el agente est cerca de los bordes es similar a MoveLocaLAxial,
puesto que n ser pequeo. Si no est cerca de los bordes, tendr en cuenta muchas casillas,
respondiendo as a situaciones en las que el agente se encuentre en zonas de poca
probabilidad con la necesidad de encontrar mejores regiones.

21

Comment [EBP39]: Enlazalo automticamen


tal y como te ense Jose Antonio

3.1.2.3 Movimiento por Cuadrantes Local (MoveByLocaLQ)


A partir de la casilla actual se construyen cuatro cuadrados de un tamao determinado (en la
figura xxx Ilustracin 4 Movimiento por cuadrantes local se muestran los cuadrados con
tamao 3). Si un cuadrado tiene una media de probabilidad mayor que los otros, se escoge en
dicho recuadro la casilla con mayor probabilidad. Si existe ms de una casilla con igual
probabilidad a la mxima, se escoge la de mnima distancia (se entiende como distancia entre
dos casillas el nmero de casillas que las separan) y, si hay varias, se escoge aquella que, al
dirigirse hacia ella, se obtenga como primer movimiento el ms parecido al movimiento
anterior.

Ilustracin 4 Movimiento por cuadrantes local

El problema principal de este procedimiento es que pueden aparecer bastantes empates, caso
en el que se procede del siguiente modo:
1. Establecer el tamao de los cuadrados a un tamao mnimo (comenzando por 2, pues
se incluye la celda actual como un vrtice de todos los cuadrados). Se ha comprobado
que si el tamao de los cuadrados es muy pequeo el mtodo resulta "demasiado
local" y el comportamiento del agente se vuelve muy miope.
2. Calcular, si existe, un cuadrado dominante de los cuatro en media de probabilidad. De
existir, componer la ruta a la casilla de mxima probabilidad de dicho cuadrante.
3. En caso de que haya ms de un cuadrado dominante, aumentar en uno el tamao de
los cuadrados y repetir consecutivamente los pasos 1 y 2 hasta encontrar uno que
domine (al incluir ms casillas, y por tanto ms valores para obtener la media de
probabilidad, es esperable que aumente la diferencia en las medias de probabilidad de
los cuadrados)
4. Si el tamao de los cuadrados alcanza el mximo de casillas horizontales o verticales y
no se ha encontrado un cuadrado dominante, se vuelve a establecer el tamao al
inicial, se calculan los cuadrantes dominantes, sus casillas de mxima probabilidad, y
se escoge las casillas de mxima probabilidad dominantes.
22

Formatted: Left

3.1.2.4 Movimiento por Cuadrantes Global (MoveByGlobalQ)


Desde la casilla actual se divide toda la cuadrcula 20 x20 en cuatro cuadrados, hasta las casillas
extremas, y se calcula la media de probabilidad de cada uno de esos cuadrados. A partir de ah,
el proceso de seleccin es idntico al del caso anterior, es decir, se escoge como destino la
casilla de mayor probabilidad, y se compone una ruta de mnimo LET hacia ella. El tratamiento
de empates tambin se realiza como en el caso anterior.

Ilustracin 5 Movimientos por cuadrantes global

3.1.2.5 Movimiento por filas y columnas (MoveByRowCol)


Es similar al movimiento por cuadrante local (moveByLocalQ, en el que se rodeaba a la casilla
actual con cuadrados, de los que se calculaba la probabilidad media, escogiendo la casilla de
mxima probabilidad del cuadrado con mayor media. En este caso, en lugar de rodear a la
casilla actual con cuadrados, se la rodea con un permetro cuadrado de casillas. Entonces se
valora la probabilidad media de cada una de las aristas del permetro cuadrado, llamadas filas
si son horizontales y columnas si son verticales, y se escoge la casilla de mxima probabilidad
de la arista de mayor probabilidad media, tratando los empates y componiendo un camino de
mnimo LET hacia ella.

23

Comment [EBP40]: De este no hay versin lo


y global. Si es as deberan aparecer los dos. Y si n
sera bueno justificar porque solo hay uno de este
tpo

Formatted: Keep with next

Ilustracin 6. Movimiento por filas y columnas

Comment [EBP41]: No tiene el formato de lo


otros

Ilustracin 6 Movimiento por filas y columnas


Como se coment con moveByLocalQMoveByLocalQ, se parte de un tamao inicial, en este
caso la distancia a la que estar el permetro (en la figura aparece a una distancia de 3 casillas)
y, si no se encuentra una arista del permetro dominante, se aumenta la distancia del
permetro para incluir ms casillas con las que calcular la probabilidad media. Los clculos se
realizan del mismo modo.
3.1.2.6 Movimiento en L a Derechas o Izquierdas (LRight y LLeft)
Este tipo de movimiento intenta componer una trayectoria en forma de L desde la casilla actual. La L se considera
actual. La L se considera formada por una base, una altura y un sentido de la L, hacia la izquierda o hacia la
izquierda o hacia la derecha (de ah que se haya dividido en dos tipos LRight y LLeft), as como la orientacin hacia
la orientacin hacia una de las 8 orientaciones cardinales. Al calcular el LET parara las 8 orientaciones, el conjunto

24

orientaciones, el conjunto de casillas que en conjunto evaluar el mtodo se aproximar a un crculo en torno a la

casilla actual (ver

Ilustracin 8 Movimiento L Derecha en las 8 direcciones cardinalesIlustracin 8 Movimiento L


Derecha en las 8 direcciones cardinales). En la siguiente figura se muestran las dimensiones de
la L:

altura

base

Ilustracin 7 Dimensiones de la L

Los tamaos en nmero de casillas que puedan darse a la altura y la base pueden variar y
estn parametrizados en la gramtica. Esto aumenta el espacio de bsqueda de las soluciones,
sin embargo es necesario, porque el comportamiento de este movimiento est muy influido
por estas dimensiones y en muchos mapas los programas generados presentan diferentes
combinaciones de las mismas. En la figura se muestra, para una L a derechas, los movimientos
en las ocho orientaciones.

25

Ilustracin 8 Movimiento L Derecha en las 8 direcciones cardinales

3.1.2.7 Movimientos
moverse
a
la
celda
con
mayor
probabilidad
(MoveMostImportantCell) y moverse al entorno de mayor probabilidad (
MostImportantRoundCell)MoveMostProbZone
Selecciona la casilla de mxima probabilidad y compone un movimiento de mnimo LET hacia
ella. Si hay varias casillas empatadas en probabilidad mxima se escoge la ms cercana y si
persiste el empate, se opera como en cualquier empate. En la Ilustracin 9. Moverse a la celda
de mxima probabilidad (MoveMostImportantCell) se observa una ruta desde la celda del
agente hacia la celda de mxima probabilidad. Dado que el mtodo MoveLocalAxial[1]
aprovecha el moverse por la mxima probabilidad que rodea la celda, es el que se utiliza para
obtener una trayectoria entre las dos celdas (si se construyera una ruta por la mnima distancia
entre ambas celdas, no se asegurara que se pasase por zonas de buena probabilidad).

26

Comment [EBP42]: Si puedes, estos mtodos


tambin deberan de tener una figura

Formatted: Centered, Keep with next

Ilustracin 9. Moverse a la celda de mxima probabilidad (MoveMostImportantCell)

Formatted: Caption, Centered

Como basar el mtodo en una nica casilla puede no ser representativo de una regin de
probabilidad, el mtodo MoveMotImportantRoundCell considera un cuadrado de un
determinado tamao en torno a la celda de mxima probabilidad, y las operaciones para
detectar la celda destino se realizan de igual modo pero considerando con la media de
probabilidad de las esas casillas, en lugar del valor de probabilidad de una nica celda.

Comment [EBP43]: Este nombre es diferente


los que has puesto arriba. Asi que no se si faltan
mtodos

Formatted: Centered, Keep with next

Ilustracin 10. Movimiento moverse al entorno de mayor probabilidad (MoveMostImportantRoundCell)

Formatted: Caption, Centered

3.1.3 Tipos de Condiciones


Las condiciones realizarn operaciones sobre las probabilidades de las casillas devolviendo un
valor que se tendr en cuenta en las condiciones lgicas que se incluyan en la gramtica. La
idea es que las decisiones sobre el tipo de movimiento simple a ejecutar se realicen a partir de
los valores devueltos por estas condiciones.

27

Como se ha comprobado con los movimientos, y de forma ms evidente con las condiciones,
se trata de mtodos inventados bajos ciertas intuiciones que deben confirmarse en las
pruebas. Es claro que existen muchas alternativas posibles que podran haberse planteado, y
que dar con ellas es clave para conseguir la suficiencia del problema. De hecho, creemos que
las condiciones van a ser la parte clave en la determinacin de la solucin y durante la fase de
diseo-analsis-modificacin de la grmatica se han descartado muchas condiciones. Las
condiciones devuelven un rango de valores y, durante las pruebas, se verific que algunas
condiciones devolvan prcticamente siempre el mismo valor de ese rango sin que aparecieran
otros valores, por lo que su capacidad discriminativa era escasa (por ejemplo, medias de
cuadrados de distinto tamao en torno a la celda, probabilidad an no recogida del mapa
comparada respecto a un determinado valor, rotar filas y columnas antes de aplicar
MoveLocalAxial, evaluar simetra en lneas que atraviesan la celda actual, estar a una
determinada distancia de una concentracin de probabilidad, determinando esa concentracin
por la agrupacin de probabilidad en torno a las celdas de mxima probablida, etc). al ver los
resultados que produccin no exista apenas variabilidad, lo que implicaba su escaso valor
discriminativo. Por otro lado, el exceso de condiciones, sobre todo cuando su rango de valores
devueltos es grandeestas devuelven un rango de valores elevados, amplia el espacio de
bsqueda, forzando en exceso a la generacin de la solucin en PG.
3.1.3.1 Condicin xxxxxxxxx media de probabilidad en torno a la celda respecto al
resto de probabilidad (CondLocalGlobal)
Se cogen las celdas que rodean en un cuadrado a la celda actual, y se calcula la probabilidad
media del cuadrado. Luego se calcula la probabilidad media del resto de las casillas no
incluidas en el cuadrado anterior, y se comparan las medias, con lo que los posibles valores
que se devuelven son:

Comment [EBP44]: No se que quieres decir

Comment [EBP45]: Buscale un nombre en


espaol a esta condicin y al resto, igual que yo h
hecho en los movimientos basicos

1. Si la probabilidad del cuadrado interior es mayor o igual al exterior, devuelve un 1


2. Si es menor, un 2.
Actualmente el tamao del cuadrado de 3 casillas se ha obtenido realizando pruebas y no se
ha parametrizado para evitar aumentar el espacio de bsqueda.
3.1.3.2 Condicin variabilidad de la probabilidad en torno a la celda respecto a la
variabilidad fuera de ese entorno (CondSAroundGlobal)
Desde la celda actual se componen 4 cuadrados teniendo como esquina la celda (ver

28

Formatted: Left

Ilustracin 4 Movimiento por cuadrantes localIlustracin 4 Movimiento MoveByLocalQ) y se


calcula la varianza de dichos cuadrados. Se devuelve el cuadrado de mayor varianza. Se
evalan los cuadrados por orden NE, NW, SW y SE, y no se tratan los empates, siendo el
primero que tenga mayor varianza es el que se devuelve.
3.1.3.3 Condicin celda con mayor incremento de probabilidad respecto a sus
vecinas situada en el permetro de distancia 1, 2 o 3 (CondBestIncDec)
De cada celda de la cuadrcula se calcula el incremento de probabilidad que se produce con
cada una de sus celdas vecinas en las 8 orientaciones, N, S, E, W, NE, NW, SE, SW.
Una vez que todas las celdas tienen calculados estos incrementos, de las celdas que componen los permetros
los permetros cuadrados que rodean a la celda actual a una distancia de 1, 2 y 3 celdas (ver
Formatted: Font: 9 pt, Bold, Font color:
Accent 1

Ilustracin 11 Condicin CondBestIncDecIlustracin 9 Condicin CondBestIncDec) se calcula el


mejor incremento en valor absoluto (incremento o decremento)

29

Formatted: Font: 9 pt, Bold, Font color:


Accent 1

Formatted: Font: 9 pt, Bold, Font color:


Accent 1

Ilustracin 119 Condicin CondBestIncDec

El mtodo devolver 1 si el mejor incremento-decremento se encuentra en una celda del


permetro a distancia 1, 2 si lo est en el permetro a distancia 2, y 3 si lo est en el de
distancia 3.
3.1.3.4 Condicin mejor tipo de movimiento simple mnimo en torno a la celda
(CondBestLet)
Probando los movimientos se ha comprobado que concatenando movimientos del tipo MoveLocalAxial de
MoveLocalAxial de tamao 1 (moverse una casilla), pueden obtenerse todas las rutas posibles. Un movimiento
Un movimiento LRight o LLeft de tamao 1 de base y cero de altura, sera equivalente al anterior. Si se combinan

30

Comment [EBP46]: No acabo de entender la


figura con la expilicacion que das. Asi que o mejo
la explicacin o mejora el esquema

anterior. Si se combinan tamaos de base y altura de la L se pueden hacer barridos de celdas en torno a la celda

local (ver

Ilustracin 8 Movimiento L Derecha en las 8 direcciones cardinalesIlustracin 8 Movimiento L


Derecha en las 8 direcciones cardinales). La idea es utilizar estos tipos de movimiento pero de
tamaos pequeos para explorar los alrededores de la celda.
Se simulan diferentes tipos de movimientos de pequeo alcance en torno a la celda actual, y se
comprueba cul de estos mini-movimientos da mejor resultado. Es como hacer muy miope la
bsqueda en torno a la celda actual. Los movimientos escogidos son:

MoveLocalAxial de tamao 1. Si fuera el mejor respecto de los dems se devolvera 1.


MovelLocalAxial de tamao 2. Idem, devolviendo 2.
LRight de base 1 y altura 1. Idem, devolviendo 3.
LLeft de base 1 y altura 1. Idem, devolviendo 4.
LRight de base 1 y altura 2. Idem, devolviendo 5.
LLeft de base 1 y altura 2. Idem, devolviendo 6.
LRight de base 1 y altura 1. Idem, devolviendo 7.
LLeft de base 2 y altura 1. Idem, devolviendo 8.

Las rutas que se obtienen en los mtodos anteriores tienen diferente tamao (MoveLocalAxial
contiene una casilla, LRight de base 1 y altura 2, contiene 3 casillas) por lo que para poder
comparar los LET se ha hecho una excepcin y se ha normalizado el LET dividiendo por el
nmero de casillas, puesto que el nmero de casillas es pequeo y no existe mucha diferencia.
3.1.3.5 Movimiento distancia entre las celdas que daran una mejor ruta de tamao
tres uniendo celdas vecinas de mxima probabilidad, situadas en los
permetros a distancia 1, 2 y 3 (CondBestIncByCell)
Puesto que se han calculado los incrementos de probabilidad de cada celda respecto de todas
sus celdas vecinas en las 8 orientaciones, se puede componer un movimiento de tamao 3 a
partir de cada celda que siga los mejores incrementos.

31

Los clculos se realizan para todas las celdas en los permetros a distancia 1, 2 y 3. Es decir,
para cada una de las celdas de esos permetros se calcula el LET de un tamao 3 obtenido
desde cada celda del permetro siguiendo la mejor vecina, tres veces. Se selecciona para cada
permetro la celda con el mejor LET.
Habr una mejor celda en LET del permetro a distancia 1, otra del permetro a distancia 2, y
otra del permetro 3 a distancia 3. Est condicin devuelve la distancia entre esas tres celdas.
En la figura se muestran tres celdas de ejemplo.

Ilustracin 1210 Condicin CondBestIncByCell

El porqu se devuelve la distancia, o la hiptesis que intenta sustentarse en esta condicin, es


que si la distancia entre las tres celdas es pequea (mnimo 3), las condiciones que dan rutas
ptimas sern consecutivas, muy cercanas, y un movimiento como MoveLocalAxial (que
avanza de celda en celda sin cambiar la direccin) podra componer esas rutas con facilidad. Si
la distancia es grande (1 + 3 + 5 como mximo), el intentar ir a la mejor celda vecina podra no
ser una buena solucin puesto que el agente podra estar alejndose de rutas ptimas mejores
posteriores, con lo que PG tendra que seleccionar otro tipo de movimientos para este caso.
3.1.3.6 Condicin orientacin con mayor covarianza (CondMoveCov)
Como se comenta en (Murphy, 2012), haciendo referencia a una figura que aparece en la wiki1,
los valores de las covarianzas sobre probabilidades conjuntas estn asociados a las diferentes
formas que pueden adoptar los valores de las posiciones (x,y), es decir, las formas de la
probabilidad, el perfil de como vara la probabilidad en torno a una celda (x,y). El perfil de
variacin de probabilidad sobre una celda puede influir en el tipo de movimiento que pueda
ser ptimo.
Se calculan covarianzas entre filas o columnas consecutivas de las que rodean a la fila actual.
Estas covarianzas se calculan para las 8 orientaciones. Puesto que se necesitan dos conjuntos
para calcular una covarianza, esta se calcula entre las celdas, de cada una de las 8
orientaciones, a una distancia 1-2 y distancia 2-3 de la celda actual. En la figura se ven todas
las situaciones (la celda actual se ha repetido en cuatro posiciones diferentes para dejar claro
1

http://en.wikipedia.org/wiki/File:Correlation_examples.png

32

con que celdas se calculan las covarianzas), no porque existan cuatro agentes. Por ejemplo, las
celdas para la covarianza norte a distancia 1-2 lo forman las tres celdas de la fila sobre la celda
actual junto con las otras tres celdas sobre esta misma fila. Para la covarianza a distancia 2-3,
lo mismo entre las filas de 3 celdas a una distancia norte de 2 y de 3. Equivalentemente se
calcularan para los conjuntos de tres celdas de todas las orientaciones mostradas en la figura.

U -

U -

Ilustracin 1311 Condicin CondMoveCov

Con el fin de realizar comparaciones las covarianzas se transforman en coeficientes de


correlacin que varan entre 1 y -1 (-1 para una correlacin negativa, lo que implica que si la
probabilidad sube en un conjunto bajara en el otro). Cuanto menores sean los coeficientes de
correlacin menor relacin existir entre los conjuntos comparados. La condicin calcular 8
coeficientes de correlacin para las 8 orientaciones de los conjuntos de tres celdas a distancias
1-2 y otros ocho a la distancia 2-3.
El valor devuelto por la condicin considera la diferencia entre coeficientes de correlacin de
distancia 1-2 y 2-3, para cada orientacin. Se restan, en cada orientacin, ambos coeficientes y
el que tenga mayor diferencia valor absoluto (que supondra un cambio de situacin de
probabilidad) es el que se considera.
El valor devuelto vara de uno a 8 conforme a la diferencia obtenida entre los coeficientes
estableciendo rangos de 0.25 (para cada incremento de 0.25 el valor devuelto se incrementa
en uno)
3.1.4 Gramtica para generar el programa controlador.
La estructura de la gramtica producir programas con movimientos simples en funcin de las
condiciones de probabilidad, de tal modo que las condiciones formarn parte de expresiones
con operadores lgicos, y los movimientos sern el resultado tras cumplirse una condicin.

33

Tanto las condiciones como los movimientos son funciones programadas en Java. Los
movimientos sern nodos terminales, puesto que aparecern como ltimo elemento de las
ramas del rbol. Las condiciones formarn parte de los nodos internos donde a partir de ellas,
nacern otros nodos como bloques de cdigos o terminales.
Ciertas condiciones y ciertos movimientos reciben parmetros, como es el tamao del
movimiento simple, o el tamao en celdas de la regin a considerar en la evaluacin de una
condicin. Se ha planteado que en ciertos casos estos parmetros los resuelva tambin la
gramtica pues, pese a aumentarse el espacio de bsqueda, los valores de estos parmetros
afectan a la solucin. Tambin forman parte de los elementos terminales los rangos entre los
que se mueven los valores de los parmetros.
La gramtica incluir reglas de tipo IF<antecedente> THEN <consecuente>, puesto que es una
estructura de programacin habitual, fcil de interpretar. . Tambin aparecern bucles "while"
y "for". Los bucles for se utilizarn para aplicar repetidamente el mismo tipo de movimiento un
nmero determinado de veces. El bucle while incluir bloques y estructuras, como por ejemplo
conjuntos de reglas a aplicar repetidamente hasta conseguir la trayectoria buscada.

En las siguientes tablas se exponen los elementos de la gramtica. La gramtica ha sufrido una
mejora en algunos de sus componentes para modificar la estructura del programa resultante,
si bien los componentes bsicos se mantuvieron en esta evolucin. Por tanto, se ir
presentado la gramtica desde sus elementos terminales y se comentarn los elementos de la
misma que posteriormente sufrieron algn cambio. Se presenta la gramtica en una versin
inicial puesto que, conforme a los resultados, las estructuras que la componen han sufrido
modificaciones.

Como se ver, la PG para el presente problema puede que contenga un problema de


clasificacin: qu tipo de movimiento simple aplicar en funcin de las condiciones de
probabilidad? o, lo que es lo mismo, qu combinacin de valores de las condiciones
(atributos) indican que tipo de movimiento debe aplicarse (clase a determinar)? En (Pedro G.
Espejo, 2008) se resumen mtodos para realizar este tipo de clasificaciones en PG, como es el
caso de los rboles de decisin, o las reglas de clasificacin. Tambin en (Hajira Jabeen, 2010)
se realiza una revisin de los mtodos de minera de datos en PG.

Comment [j47]: Porqu no poner la ltima?

Comment [EBP48]: Yo creo que aqu sera


conveniente presentar los elementos de la primer
gramtica en una subseccin (3.1.4.1 Gramatica
Bsica) y explicar los elementos adicionales en otr
(3.1.4.2. Gramatica Avanzada)

Comment [F49]: Mejor hacer una subseccin


explicando la clasificacin.

Comment [EBP50]: Esto no se donde va, si en


primera o en la segunda gramatica. Ademas, no s
debera haber alguna subseccin o algn
comentario a la particularidad de los problemas d
clasificacin en el captulo 2.

3.1.4.1 Elementos Terminales


RANGOS DE ATRIBUTOS
<digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
<range_1_2> ::= 1 | 2
<range_1_3> ::= 1 | 2 | 3
<range_1_4> ::= 1 | 2 | 3 | 4
<range_1_5> ::= 1 | 2 | 3 | 4 | 5
<range_1_8> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
34

OPERADORES LGICOS
<logical_operator> ::= <eq> | <neq> | <l> | <le> | <s> | <se>
<eq> ::= "=="
<neq> ::= "!="
<l> ::= ">"
<le> ::= ">="
<s> ::= "<"
<se> ::= "<="

ELEMENTOS TERMINALES TIPOS DE MOVIMIENTOS


<MoveAxial>
::= MoveAxial ";"
<MoveLocalAxial> ::= MoveLocalAxial [<digit>] ";"
<MoveByGlobalQ> ::= MoveByGlobalQ ";"
<MoveByLocalQ> ::= MoveByLocalQ [<range_1_3>] ";"
<MoveByRowCol> ::= MoveByRowCol ";"
<LRight>
::= LRight [<range_1_5>,<range_1_5>] ";"
<LLeft>
::= LLeft [<range_1_5>,<range_1_5>] ";"
<MostProbZone> ::= MostProbZone ";"
<MostImportantCell> ::= MostImportantCell ";"
<MostImportantRoundCell> ::= MostImportantRoundCell ";"
ELECCIN DEL TIPO DE MOVIMENTO DE LOS TERMINALES
<move_block> ::= "{" <moves> "}"
<moves> :: = <move_expression> ";"
| <move_block>
<move_expression> ::= <MoveByGlobalQ>
| <MoveByLocalQ>
| <MoveByRowCol>
| <LRight>
| <LLeft>
| <MoveLocalAxial>
| <MoveAxial>
| <MostProbZone>
| <MostImportantCell>
| <MostImportantRoundCell>

Se han indicado los movimientos terminales y los elementos que se utilizarn para
seleccionarlos, organizndolos en bloques con el fin de obtener movimientos consecutivos no
repetidos.
3.1.4.2 Funciones
CONDICIONES - FUNCIONES QUE DEVUELVEN UN VALOR A EVALUAR
<CondLocalGlobal> ::= CondLocalGlobal [<range_1_3>]
<CondSAroundSGlobal> ::= CondSAroundSGlobal
<CondBestLetMethod> ::= CondBestLetMethod
<CondBestIncDec> ::= CondBestIncDec
<CondDistCellsBestLet> ::= CondDistCellsBestLet
35

<CondMoveCov> ::= CondMoveCov


<CondBeWithinAGroup> ::= CondBeWithinAGroup

Operaciones lgicas con las condiciones.


COMPOSICIN DE CONDICIONES
<block_logical> ::= <conditional_expression>
| ( "!" <conditional_expression> )
| <or_conditional>
| <and_conditional>
| <block_logical>
<and_conditional> ::= ( <logical_expression> "&&" <logical_expression> )
<or_conditional> ::= ( <logical_expression> "||" <logical_expression> )
<conditional_expression> ::= (<CondLocalGlobal> <logical_oepartor_eq> <range_1_2>)
| (<CondBestLetMethod> <logical_operator> <range_1_8>)
| (<CondSAroundSGlobal> <logical_oepartor_eq> <range_1_4>)
| (<CondBestIncDec> <logical_operator> <range_1_3>)
| (<CondDistCellsBestLet> <logical_operator> <range_1_3>)
| (<CondMoveCov> <logical_operator> <range_1_8>)

En una La primera versin de la gramtica no inclua agrupaciones delas reglas a aplicar no


estaban anidades, simplemente se declaraban tipos de sentencias con condiciones lgicas.
SENTENCIAS POSIBLES EN JAVA
<while_statement> ::= "while " "(" <logical_expression> ")" <statement>
<if_statement> ::= " if " "(" <logical_expression> ")" <statement> " else " <statement>
<for_statement> ::= "for(" <logical_for> ")" <statement>
<logical_for> ::= "int ifor=0;ifor<" <upper_for_size> ";++ifor"

AGRUPACIN DE SENTENCIAS
# Tipos de Declaraciones
<statement> ::= <move_expression>
| <if_statement>
| <while_statement>
| <for_ifs_statement>

NODO RAZ
<program> ::= <statement>

Esta gramtica pretende agrupar movimientos en bloques, segn condiciones, sin utilizar
reglas anidadas, incluyendo estos bloques en bucles while con el fin de que puedan repetirse la
estructuras para conseguir N=10 movimientos .
.
36

3.2 Clculo de la aptitud de los individuos o programas

Cuando se ejecuta el programa resultado, se van encadenando movimientos, tras cada uno de
los cuales se actualiza la probabilidad y la posicin del agente. Existe una estructura esttica de
datos que ser recibida por todas las funciones para que recojan y actualicen esta informacin

El objetivo es que la ruta generada por el programa sea mnima en el tiempo para detectar un
objetivo. El parmetro utilizado es el mismo que en los proyectos del departamento ya
comentados: el Tiempo Local Esperado o LET. Este parmetro se calcula a partir de las
probabilidades de las celdas incluidas en la trayectoria generada.

Comment [EBP51]: Hay que reescribir la


seccin. Deberia explicar en dos subsecciones
separadas el caso de evaluacin de la gramtica
sobre un mapa o sobre mltiples mapas a la vez. D
hecho deberas escribir un prrafo justificando
porque se evalan de dos formas distintas (un ma
para ver si los elementos utilizados resuelven caso
particulares, mltiples mapas para ver si se
obtienen controladores), y luego las dos seccione
por separado.

Comment [EBP52]: Este prrafo estaba antes


en alguna parte de la definicin de la gramtica. A
mi me parece que est mas relacionado con la
evaluacin del LET. No lo tengo claro puede qu
no est en lo cierto.

Comment [F53]: No va aqu, habla de cmo s


pasan valores las funciones de la gramtica segn
ejecutan (actualizan una estructura comn y
recogen los valores de probabilidad de ella)

Puesto que el alcance de este estudio est limitado al caso esttico (los objetivos no se
mueven) con un sensor ideal, el clculo del LET puede realizarse a partir de las probabilidades
de las celdas por las que pasa el agente. Siendo as, el LET puede expresarse como la
probabilidad de no encontrar el agente en el primer paso, ms la probabilidad de no
encontrarlo en el segundo paso, y as hasta completar todas las celdas de la trayectoria. Si la
probabilidad de encontrar el agente es la de la celda, la de no encontrarlo es (1 - probabilidad
celda), lo que ser as en el primer paso, pero en los siguientes pasos ser (1 - probabilidad
acumulada de las celdas por las que ha pasado el agente), puesto que se est calculando la
probabilidad en la trayectoria de no encontrar el objetivo.
Los mejores LETs sern los que den valores ms bajos, es decir, acumulen poca probabilidad de
no encontrar el objetivo. Por tanto, se trata de un problema de minimizacin del LET. La
calidad de los LET se obtiene comparando su valor con el obtenido por el mtodo CEO que se
utiliza como referencia en el aprendizaje. Es decir, no basta con que PG escoja entre sus
programas el de menor LET, sino que ese LET sea prximo al que se obtendra por CEO.
Obtenido el programa ptimo y su LET, podr valorarse su calidad comparndolo
estadsticamente con los LETs obtenidos por otros mtodos como CEO, comprobando de este
modo si la PG con la gramtica planteada obtiene resultados de inters.
3.2.1 Aptitud por tipo de mapa.
La aptitud de un programa como LET mnimo es adecuada para encontrar el programa ptimo
por mapa: el programa que obtenga el menor LET para edel mapa gana. Sin embargo, puesto
que los mapas se ajustan a tipologas diferentes y el objetivo es encontrar un controlador
ptimo por tipo de mapa, se buscar un nico programa que optimice los mapas del mismo
tipo. Al probar el programa sobre cada mapa del mismo tipo, el let de cada mapa ser
diferente. Pero para optimizar el controlador sobre todos los lets devueltos de todos los
mapas, no sirve elegir el menor LET de todos los obtenidos, puesto que habr mapas que
tengan un valor de LET mayor que otros y que sin embargo sea un LET ptimo para ese mapa.
Es decir, el mnimo de todos los LETS de los mapas del mismo tipo no es el mejor, sino que el
mejor LET es el que menos se aleje del ptimo para cada mapa. Esto implica conocer cul sera
el LET ptimo en cada mapa, para lo que se utiliza como referencia el LET obtenido con CEO.
37

Formatted: Heading 3

En algunas pruebas se trata de obtener un mismo programa que aplicar sobre un conjunto de
mapas de parecidas caractersticas. El programa en cada mapa produce una trayectoria y por
tanto un LET, por lo que la valoracin conjunta puede realizarseSe proponen dos formas de
calcular el LET por tipo de mapas, siempre realizando los clculos con la diferencia entre el LET
del mapa devuelto por PG y el obtenido por CEO:

Por minimax, escogiendo el la menor de loas peores diferencias de LETs (el en este
caso, la peordiferencia mayor de LETs).
Sumando las diferencias. El programa que minimice estas diferencias ser el mejor
controlador. Esta ha sido la opcin elegida. de cada uno respecto al LET de referencia
de CEO pues, cuanto ms cercana est a cero esta diferencia ms se aproximaran los
LET generados por el programa a los obtenidos por CEO.

3.3 Formas de la Gramtica utilizadas

Comment [EBP54]: Recuerda que los dos


mtodos tienen que ser sobre las diferencias.
Formatted: Heading 2

Al describir la gramtica ya se ha comentado que en una primera versin se utiliz un conjunto


de condidiones if-else, incluidas en bloques de tipo while, for, siendo estos bloques los que
podan anidarse.
Tambin se ha probado otra versin de la gramtica en la que las condiciones if-else-then, se
han andidado dentro de otras condiciones if-else-then, obtenindose mejores resultados.
ESTA PARTE, EN PRINCIPIO, HAY QUE QUITARLA
Clasificacin con PG
Como se ha comentado, las condiciones sirven para discriminar el tipo de movimiento a
realizar por el agente, lo cual es equivalente a un problema de clasificacin donde las
condiciones seran los atributos por cuyos valores se va a clasificar, y el tipo de movimiento la
clase clasificada.
En (Marconi de Arruda Pereira, 2010) se comenta las formas de aplicar clasificacin en PG.
Resumiendo, estas formas son:
rbol de Decisin. Estos rboles estn constituidos de nodos internos y nodos hoja.
Los nodos internos contienen uno o ms nodos hijos, derivndose a cada uno de ellos
tras la evaluacin de alguna condicin. El hijo repite la operacin. Dado que se trata
de una estructura arbrea es inmediata su aplicacin en PG. Normalmente responde a
la estructura if-else-clase, es decir, cada nodo tendr una derivacin cuando se cumpla
la condicin del if, otra para el else, o puede devolver ya el tipo de clase clasificada.
Reglas. Una regla tiene un antecedente, que ser una combinacin de las condiciones
(atributos) mediante algn operador (normalmente lgico binario, pudiendo ser todo
lo complejo que se desee), y un consecuente, que ser la clase seleccionada. Al estar
utilizando una gramtica tambin resulta inmediata su aplicacin.
Funcin Discriminante. Aplicar diferentes operaciones matemticas y funciones a los
atributos para obtener una expresin matemtica a partir de cuyos valores se pueda
realizar la clasificacin.

38

En (Hitoshi Iba, Topon Kumar Paul, Yoshihiko Hasegawa, 2010) se comenta como se realiza la
aplicacin prctica de los mtodos comentados anteriormente. El problema de clasificacin
puede ser binario, donde el rbol dice si hay pertenencia o no a la clase determinada, o puede
ser multi-clase, cuando el rbol devuelve la clase a la que pertenece. Este ltimo caso resulta
ms complejo, puesto que en una nica regla se agrupan todas las condiciones para devolver
el tipo de clase clasificada concreto. En la clasificacin binaria, cada uno de los rboles de
decisin, tipo de movimiento, se aplicar sobre el mapa devolviendo si debe aplicarse o no
dicho tipo de movimiento. Si la clasificacin fuera perfecta slo uno de los clasificadores
devolvera la pertenencia a un tipo de movimiento que sera el elegido.
Cuando existen varios clasificadores, como es el caso binario, el conjunto de datos hay que
dividirlo para el aprendizaje en sub-conjuntos por tipo de clasificador (en teora de igual
tamao, o aplicando tcnicas que balanceen los datos). Las respuestas del clasificador se
compara con la respuesta correcta ocurriendo cuatro posibles situaciones:
True Positives, TP (Aciertos), el programa dice que pertenece a la clase y realmente
pertenece.
True Negatives, TN (Acierto), el programa dice que no pertenece cuando no pertenece.
False Positive, FP, el programa dice que pertenece a la clase cuando no pertenece.
False Negative, FN, el programa dice que no pertenece a la clase, cuando si pertenece.
A partir de estos valores puede crearse una Matriz de Confusin, matriz que contiene la
informacin acerca de las predicciones realizadas, con la que valorar la eficacia con la que est
funcionando el arbol:

Valor Real

Positivo
Negativo

Prediccin
Positivo
TP
FP

Negativo
FN
TN

Es con esta tabla con la que se puede obtener la funcin con la que evaluar la aptitud del
clasificador. Para lo cual se definen los siguientes valores:
Sensibilidad o Asertividad Positiva:

, aciertos en clasificar el objeto respecto de

todos los casos de clasificacin correctos.


Especificidad o Asertividad Negativa:

, aciertos en rechazar el objeto respecto de

todos los casos de clasificacin correctos.


Precisin:

, es decir todos los aciertos entre todos los casos.

Respecto de la aptitud, puede utilizarse el valor de la precisin como aptitud (esta es la que
maximiza dicha precisin). Sin embargo este valor se ve influido por el nmero de instancias de
los datos de prueba que pueden no estar balanceados (no todas las clases tienen el mismo
nmero de ocurrencias). Para solucionar este problema se puede utilizar un valor de aptitud
basado en la correlacin entre la prediccin y la realidad observada. Para un problema de
clasificacin binaria la correlacin no normalizada se define como:

39

C=(

) (

) (

) (

Cuando el denominador es cero, el conjunto es cero. Sin embargo, la aptitud normalizada se


calculara como:
C-normalizada =
Los rangos de C varan entre -1 y +1 y los de la aptitud normalizada entre 0 y +1. Puesto que la
aptitud en Jeco es manejada como un problema de minimizacin, se tomar el valor de aptitud
como: aptitid = 1 C-normalzada.
Se plantea por tanto obtener un rbol de derivacin binaria por tipo de movimiento,
compuesto por las condiciones y valorar los valores de TP FP TN y FN para comprobar la
utilidad de las condiciones al discriminar los movimientos.

40

Captulo 4. Resultados

Formatted: Heading 1

3.4 Ejemplo Ilustrativo


Se propone un ejemplo con el fin aclarar el tipo delas pruebas realizadas. Se describen los tipos
de mapa utilizados, las optimizaciones realizadasprobadas y como se determinan los
resultados.
3.4.1 Tipos de Mapa
Como se ha comentado, existen tres tipologas de mapa sobre las que se desea obtener un
controlador. Todos los mapas sern estticos, no variando la probabilidad de las celdas salvo
las de aquellas por las que pasa el agente, que se pondrn a probabilidad cero.
1. Mapas con una nica concentracin de probabilidad (OneRandomStatic). Este tipo de
mapas genera una distribucin de probabilidad en el enrejado 20x20 que la concentra
en una nica zona, aunque en ella puedan existir diferentes crestasvariaciones.

Formatted: Heading 3

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"
Formatted: Centered, Keep with next

Ilustracin 14. Mapa con una nica concentracin de Probabilidad (OneRandomStatic)

Formatted: Caption, Centered

2. Mapas con dos concentraciones de probabilidad (TwoGaussStatic). Estos mapas


presentan dos concentraciones de probabilidad segn una gaussiana.

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"
Formatted: Centered, Keep with next
Field Code Changed

Ilustracin 15. Mapa con dos concentraciones de probabilidad (TwoGaussStatic)

Formatted: Caption, Centered

41

3. Mapas con varias concentraciones de probabilidad (SeveralGaussStatic). Presentan


varias concentraciones de probabilidad segn una gaussiana:

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"
Formatted: Centered, Keep with next
Field Code Changed

Ilustracin 16. Mapas con varias concentraciones de probabilidad (SeveralGaussStatic)

Formatted: Caption, Centered

Para todos los mapas, la celda de posicin inicial del agente se genera aleatoriamente.
3.4.2 Clculo del LET sobre cada mapa.
La primera prueba consiste en realizar una optimizacin PG en cada uno de los tres mapas por
separado, lo que devolver un programa solucin y su LET por mapa.
1. Optimizacin PG para un mapa del tipo OneRamdonStatic. El programa obtenido con
unatras reailzar una optimizacin para ese mapa es:
while (true) {
if ((!(CondBestIncDec>3)))
for(int ifor=0;ifor<5;++ifor){
{MoveLocalAxial[1];;}}
else
if (((!(CondDistCellsBestLet==2))&&(!(CondBeWithinAGroup==1))))
for(int ifor=0;ifor<5;++ifor){
{LRight[3,1];;}}
else
for(int ifor=0;ifor<2;++ifor){
{{MoveByRowCol;;}}}}

Formatted: Heading 3

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"
Formatted Table

Formatted: English (U.S.)


Formatted: Indent: Left: 0.25"

AplicadoEjecutando el programa sobre el mapa se obtiene un LET de 9.046251197. Este let


coincide con el de CEO, tomado como referencia para evaluar los resultados, puesto que la
trayectoria obtenida por CEO y PG ha sido idntica. En la (Ilustracin 17) se muestra la
probabilidad
inicial
del
mapa
y
una
nica
trayectoria
([NE][NE][NE][E][NE][E][NE][NW][N][E]), igualidntica para CEO y PG, sobre la probabilidad
resultante tras pasar el agente.

42

Formatted: Centered, Keep with next

Example000 - OneRandomStatic. Probabilidad Inicial

0.035
0.03

Probabilidad de la Celda

0.025
0.02
0.015
0.01
0.005
0
20
15

20
15

10
10
5

5
0

Nmero de Celda Y

0
Nmero de Celda X

Mapa Example000 (OneRandomStatic) Trayectorias CEO y PG (coincidentes) y Probabilidad tras los Movimientos

0.05

Probabilidad

0.04

0.03

0.02

0.01

0
20

18

16

14

12

10

Nmero de Celda Y

10

12

14

16

18

20

Nmero de celda X

Ilustracin 17. OneRandomStatic, mapa y trayectoria resultado PG y CEO

Formatted: Caption, Centered


Formatted: Indent: Left: 0.25"

2. Optimizacin PG para el mapa TwoRamdonStatic. El programa obtenido es

Formatted: Indent: Left: 0.5", No bullets o


numbering

while (true) {

Formatted: English (U.S.)


Formatted Table

if ((CondMoveCov==3))
for(int ifor=0;ifor<5;++ifor){
{MostImportantRoundCell;;}}
else

Formatted: Space After: 0 pt, Line spacing


single

for(int ifor=0;ifor<2;++ifor){{{{
{MoveLocalAxial[1];;}}}}}}

Formatted: Normal, No bullets or numberin

Cuya solucinAnalizando el programa se observa que aplica el movimiento


MoveLocalAxial, con movimientos de tamao 1, diez veces y tambin se obtiene la
misma trayectoria para PG Y CEO ([SW][SW][SW][SW][W][W][W][W][W][W])

43

Formatted: Indent: Left: 0.49"

Formatted: Centered, Keep with next

Mapa Example001 - TwoGaussStatic. Probabilidad Inicial

0.035
0.03

Probabilidad

0.025
0.02
0.015
0.01
0.005
0
20

18

16

14

12

10

Nmero de Celda en Y

18

16

14

12

10

20

Nmero de Celda en X

Example001 (TwoGaussStatic) Movimientos CEO y PG, y Probabilidades resultantes.

0.05

Probabilidad

0.04

0.03

0.02

0.01

0
20

18

16

14

12

10

Nmero de Celda en Y

10

12

14

16

18

20

Nmero de Celda en X

Ilustracin 18. TwoGaussStatic, mapa y trayectoria para PG y CEO

Formatted: Caption, Centered, No bullets o


numbering

3. Optimizacin PG para los mapas SeveralRamdonStatic.


El programa obtenido es:
while (true) {
if
(((CondDistCellsBestLet>2)||((!(CondBeWithinAGroup<=2))&&((!(CondLocalGl
obal[1]==2))&&(!(CondBestIncDec>3))))))
for(int ifor=0;ifor<2;++ifor){{MostImportantRoundCell;;}}
else
for(int ifor=0;ifor<1;++ifor){{{MoveByLocalQ[3];;}}}

Formatted: List Paragraph, Numbered +


Level: 1 + Numbering Style: 1, 2, 3, + Sta
at: 1 + Alignment: Left + Aligned at: 0.25" +
Indent at: 0.5"
Formatted: List Paragraph

Formatted: Normal, Space After: 0 pt, Line


spacing: single

Formatted: English (U.S.)


Formatted: English (U.S.)

El programael movimiento En este caso el ltimo movimiento difiere entre PG y CEO,


siendo el Let de pg peor que el de CEO (8.89972 frente a 8.87834)

44

Formatted: List Paragraph

Formatted: List Paragraph, Centered

Example004 (SeveralGaussStatic). Probabilidad Inicial

0.025

Probabilidad

0.02

0.015

0.01

0.005

0
20

18

16
14

12

10

8
6

Nmero Celda en Y

16

14

12

10

18

20

Nmero Celda en X

Example004 (SeveralGaussStatic) Trayectoria CEO (rojo) y PG (verda), y Probabilidad Resultante

0.05

Probabilidad

0.04

0.03

0.02

0.01

0
20

18
16

14

12

10
8

Nmero Celda en X

10

12

14

16

18

20

Nmero Celda en X

Ilustracin 19. SeveralGaussStatic, mapa y trayctoria PG (verde) y CEO (rojo)

Como puede verse por cada optimizacin se obtiene un programa que suele repetir el mismo
tipo de movimiento hasta 10 veces.

Formatted: Normal, Left

3.4.3 Comparacin de las soluciones entre PG y CEO


Comparar PG y CEO con una nica optimizacin por mapa no es estadsticamente
representativo. Al realizar otrasnuevas optimizaciones sobre el mismo mapa podra ocurrir que
los resultados obtenidos en la optimizacin gentica fueran diferentes, lo que implicara que el
mtodo no concentra las soluciones. Se pueden obtener dos muestras de lets para cada tipo
de heurstico, PG y CEO, realizando varias optimizaciones seguidas sobre cada mapaSe deben
realizar varias optimizaciones sobre cada mapa, tanto para PG como para CEO, y valorar
estadsticamente los resultados, validando como son de diferentes los resultados de ambos
heursticos. Posteriormente, eEstas dos muestras se compararn con la prueba de Wilcoxon de
ordenacin de diferencias. Esta prueba no realiza ninguna hiptesis sobre la forma de las
distribuciones, es aplicacble a pocos datos, y permite determinar estadsticamente si la
mediana de las muestras es la misma o una es menor que la otra. Puesto que la mediana es el
valor del let en las posiciones centrales, si una de las dos muestras tiene menor mediana, la
distribucin estar centrada hacia un valor de let menor, y por tanto ser un resultado mejor.

Formatted: Heading 3

45

Se ha escogido realizar 20 optimizaciones seguidas tanto para PG como CEO. Por ejemplo, para
el primer mapa del tipo OneRandomStatic, los valores de los lets han sido:
Lets 20 optimizaciones sobre el mapa OneRandomStatic

Formatted: Font: Bold


Formatted: Font: Bold

Lets
PG

9.046251197,9.046251197,9.046251197,9.046251197,9.046251197,9.046251197,9.046251197
,9.046251197,9.046251197,9.046251197,9.046251197,9.046251197,9.049478911,9.04722303
7,9.046251197,9.046251197,9.046251197,9.046251197,9.046251197,9.046251197

Lets
CEO

9.046251,9.046251,9.046251,9.046251,9.046251,9.046251,9.047223,9.046251,9.046251,9.046
251,9.046251,9.046251,9.046251,9.046251,9.046251,9.046251,9.046251,9.046251,9.046251,9
.046251

Formatted: Font: Bold


Formatted Table
Formatted: Font: 9 pt
Formatted: Font: Bold
Formatted: Font: 9 pt

Formatted: List Paragraph

Si se aplica Wilcoxon a estas dos muestras, resulta que CEO obtiene mejor resultado (cuando
en principio con una nica optimizacin empataron) Por tanto, estadstiamente, CEO est
funcionando mejor que PG para este mapa.
La siguiente tabla resume los dastos de Wilcoxon para los tres mapas del ejemplo:
Gana CEO
X
X

OneRandomStatic
TwoGaussStatic
SeveralGaussStatic

Gana PG

Formatted: Centered, Space After: 0 pt, Li


spacing: single
Formatted: Font: Bold

Formatted: Centered, Space After: 0 pt, Li


spacing: single

Como puede verse, de tres mapas, CEO se muestra mejor que PG en dos que PG. Sin embargo,
las diferencias entre los lets obtenidos entre ambos mtodos son pequeas, por lo que PG se
muestra como un heurstico til para obtener un controlador que genere rutas para los mapas.

Formatted: Font: Bold

Formatted: Centered, Space After: 0 pt, Li


spacing: single

Formatted: Centered, Space After: 0 pt, Li


spacing: single
Formatted: Font: Bold

3.5 Resultados con la Gramtica inicial

Formatted: List Paragraph

Igual que en los ejemplos, se han realizado 20 optimizaciones para cada uno de los 400 mapas,
tanto con PG como para CEO, obtenindose 20 lets por mapa de CEO y 20 de PG. Si para cada
mapa, con los 20 y 20 resultados, se realiza la prueba de Wilcolxon, se obtienen los siguientes
resultados:
EMPATES
84

GANA PG
96

Formatted: Heading 2

GANA CEO
221

Como se observa, CEO se muestra considerablemente superior.

3.6 Resultados con la gramtica modificada

Formatted: Heading 2

La primera gramtica agrupaba los movimientos en condiciones lgicas, mediante ifelse,


que a su vez podan estar en bloques dentro de bucles de tipo for o while, con sus propias
condiciones, que a su vez podan anidarse.

46

La gramtica modificada incluye un nico bucle while externo, que se ejecutar hasta que se
produzcan 10 movimientos sobre el mapa (a los que est limitado este estudio) y dentro del
bucle while se incluye un bloque con reglas. Cada regla dentro del bloque tiene una tipologa
ifelse, y el contenido de cada if o else puede consistir en otra regla ifelseanidada hasta
terminar en un tipo de movimiento. Es decir, se estn agrupando reglas anidadas, anidacin
que termina con un movimiento final.
Repitiendo la prueba de Wilcolxon para 20 optimizaciones por mapa con esta nueva gramtica
y comparando con los resultados de CEO, ahora se obtiene los siguientes resultados:
EMPATES
69

GANA PG
183

GANA CEO
149

Como se observa, PG ha mejorado considerablemente los resultados, quedando en trminos


generales algo por encima de CEO. Sin embargo, este resultado se ha obtenido con una
optimizacin realizada mapa a mapa.

3.7 Genralizacin de Resultados. Bsqueda de un Controlador nico


por tipo de mapa o Gnerico.

Formatted: Heading 2

Hasta ahora las optimizaciones se han realizado mapa a mapa. Sin embargo, los mapas se han
generado con tres topologas diferentes y el objetivo es encontrar un controlador nico por
tipologa. Para realizar este tipo de optimizacin se procede del modo tradicional en
heursticas de aprendizaje, dividiendo el conjunto de mapas de cada tipo en dos subconjuntos,
uno para aprendizaje y otro para pruebas.
Sobre los mapas de aprendizaje se realizar una optimizacin conjunta, obtenida con un LET
modificado que agrupa en un valor los resultados del conjunto de mapas del mismo tipo. Se ha
utilizado MiniMax para obtener el Let-conjunto calculando por mapa la diferencia entre el let
obtenido por PG y el obtenido por Ceo, escogiendo como let del conjunto la peor de esas
diferencias, es decir la mayor diferencia.
Se han realizado 30 optimizaciones por tipo de mapa, para poder validar que no existe una
variabilidad en los resultados y que, los controladores obtenidos en cualquier optimizacin
ofrecen unos resultados con poca variabilidad. Se han utilizado 72 mapas de aprendizaje. En
cada una de las 30 optimizaciones que se ha realizado con ellos se obtiene un controlador
ptimo con el que se calculan los lets para los 72 mapas de prueba.
3.7.1 Aprendizaje del Controlador para los Tipos de Mapa
Durante el proceso de optimizacin, para cada una de las 250 generaciones con las que se
combinan los individuos hasta obtener una solucin, se han recogido los lets y los valores IGain
(la ganancia de probabilidad que se va acumulando con en cada uno de los 10 movimientos del
controlador). El objetivo es tener una imagen del proceso de optimizacin observando la
evolucin de los lets y los igain en el proceso que optimiza. Como se han realizado 30
optimizaciones, cada una con 250 generaciones o descendencias de individuos, se muestran
los valores medios, mximos y mnimos de los datos recogidos. En las figuras se muestran los
resultados para cada tipo de mapa.
47

Formatted: Heading 3

Formatted: Keep with next

Ilustracin 20. Variacin del Let en cada generacin (250) de las 30 optimizaciones de mapas tipo
OneRandomStatic

Formatted: Caption

Formatted: Keep with next

Ilustracin 21. Variacin del Let en cada generacin (250) de las 30 optimizaciones de mapas tipo TwoGaussStatic

Formatted: Caption
Formatted: Keep with next

Ilustracin 22. Variacin del Let en cada generacin (250) de las 30 optimizaciones de mapas tipo
SeveralGaussStatic

Respecto de los IGain:

48

Formatted: Caption

Formatted: Keep with next

Ilustracin 23. Variacin en media de IGain en cada uno de los 10 movimientos del controlador para mapas tipo
OneRandomStatic

Formatted: Caption

Formatted: Keep with next

Ilustracin 24. Variacin en media de IGain en cada uno de los 10 movimientos del controlador para mapas tipo
OneGaussStatic

Formatted: Caption

Formatted: Keep with next

Ilustracin 25. Variacin en media de IGain en cada uno de los 10 movimientos del controlador para mapas tipo
SeveralGaussStatic

En la figura se muestran los mejores lets para los 72 mapas de entre las 30 optimizaciones, y se
muestran tambin los lets calculados con CEO de dichos mapas.

49

Formatted: Caption

Formatted: Centered, Keep with next

Ilustracin . Comparacin LEts PG - CEO para optimizacin mapas Tipo OneRandomStatic

Formatted: Caption, Centered

Como se observa el ptimo calculado por PG, en azul, es peor que el de CEO. Existen mapas en
los que estn bastante igualados y otros en los que aumenta la diferencia. En la siguiente
figura se muestran estas diferencias de lets:
Formatted: Centered, Keep with next

Ilustracin 2620. Diferencias de lets entre PG y CEO para mapas de tipo OneRandomStatic

Formatted: Caption, Centered

Estas diferencias tienen los siguientes valores en media y varianza:


Media de diferencias
0.1991993215085652

Varianza
0.04657537435182276

La media de los lets calculados es 9.14, y una diferencia media de 0.199 (0.2) un 2,2%, lo cual
da una idea de que no existe demasiada diferencia. Sin embargo, el valor mximo de la
diferencia es 0.9119, un 4,2%.
Los resultados con otros mapas son similares. Se muestran en las siguientes figuras:

50

Formatted: Centered, Keep with next


Field Code Changed

Ilustracin 2721. Lets PG, CEO y Diferencia para Mapas de tipo TwoGaussStatic

Formatted: Caption, Centered

Las diferencias tienen una media de 0.199192 y una varianza de 0.0465753. Y para los mapas
de tipo SeveralGaussStatic:
Formatted: Centered, Keep with next
Field Code Changed

Ilustracin 2822. Lets PG, CEO y Diferencia para Mapas de Tipo SeveralGaussStatic

Formatted: Caption, Centered

Las diferencias tienen una media de 0.094845 y una varianza de 0.00781, que es la que mejor
se aproxima.
Se ha hecho la prueba de utilizar el programa del controlador obtenido para un tipo de mapas
en otro tipo de mapas, por ejemplo, utilizar el programa de mapas tipo OneRandomStatic para
mapas de tipo SeveralGaussStatic, y los resultados son muy parecidos a los que se obtendran
con el controlador propio asociado al tipo de mapa:

51

Formatted: Keep with next


Field Code Changed

Ilustracin 2923. LETs y Diferencias para Mapas Tipo SeveralGaussStatic con el controlador para
OneRandomStatic

Las diferencias tienen una media de 0.115113y varianza de 0.015392, es decir, unos resultados
parecidos a los anteriores.
Esto hace pensar que tal y como est planteada la resolucin del problema y la gramtica, las
topologas de los mapas se resuelven de forma genrica, pues en las condiciones que se
incluyen en la gramtica donde se realizan clculos sobre las probabilidades se est
abstrayendo la tipologa de estas probabilidades.
3.7.2 Aprendizaje de un nico controlador para todos los tipo de mapa
Puesto que en la gramtica se crea una estructura que aplica reglas con condiciones sobre la
probabilidad que, de cumplirse, aplican un tipo u otro de movimientos, hay que validar que
esas condiciones por si mismas sirvan para cualquier tipo de mapa y baste con buscar un nico
controlador para todos los tipos de mapa.
Con este fin se ha realizado la prueba de aprender este controlador con 72 mapas de tipo
OneRandomStaitc, 72 del tipo OneGaussStatic y otros 72 del tipo SeveralGaussStatic, para
obtener un nico controlador genrico y probar con otros tantos mapas de los tres tipos
anteriores.
En la siguiente figura se muestran los datos del proceso de una nica optimizacin.

52

Formatted: Caption

Ilustracin 3026. Variacin del Let durante las 250 generaciones de la optimizacin

Con el controlador obtenido se prueba para los distintos tipos de mapa y se obtienen los
siguientes valores. Para los mapas de tipo OneRandomStatic:
Formatted: Keep with next
Field Code Changed

Ilustracin 31. Lets de Prueba para mapas tipo OneRandomStatic con Optimizacin Global

Formatted: Caption

Las diferencias entre lets de PG y CEO tienen un valor de 0.039228 y una desviacin tpica de
0.0021.
Para los mapas de tipo OneGaussStatic:
Formatted: Keep with next
Field Code Changed

Ilustracin 32. Lets de Prueba para mapas tipo OneGaussStatic con Optimizacin Global

Formatted: Caption

53

Las diferencias entre lets de PG y CEO tienen un valor medio de 0.093296 y una desviacin
tpica de .02997.
Por ltimo, para mapas de tipo SeveralGaussStatic:
Field Code Changed

Las diferencias entre lets de PG y CEO tienen un valor medio de 0.1663217, y una desviacin
tpica de 0.02255.
Como se observa en todos los casos PG se aproxima bastante bien a CEO con muy poca
diferencia, incluso la aproximacin funciona en trminos generales tan bien o mejor que la de
realizar un controlador por tipo de mapa.
3.7.3

Consideraciones sobre la gramtica

Durante las pruebas se comprob que en algunos casos el programa resultante generado a
partir de la gramtica no produca movimientos sobre el mapa. La estructura de la gramtica
es un bloque de reglas que se evala consecutivamente hasta conseguir 10 movimientos. Las
reglas comienzan por unas condiciones y, en el caso de que ninguna se cumpla, no existir
movimiento. Con el fin de evitar este problema se ha aadido al final de la gramtica una
condicin que evala si se ha producido en esa pasada del bucle algn movimiento y, de no ser
as, se genera un nuevo bloque de condiciones finalizando con una re-evaluacin de si hubo
movimiento, y en caso de no producirse mover el agente eligiendo al azar entre tres tipos de
movimiento MoveLocalAxial, MoveByLocalQ, o MoveByRowCol (que son los movimientos que
ms aparecen en los programas generados)

54

Resultados

Comment [EBP55]: En esta seccin no voy a


hacer nada porque hay que reescribirla entera.
Formatted: Normal

3.2.13.7.4
Conjunto de Datos
Se ha utilizado un conjunto de mapas, 426429, de tres tipos diferentes segn como se ha
generado su probabilidad:

Dos Gaussianas estticas


Varias Gaussianas estticas
Probabilidad aleatoria esttica.

A priori, el objetivo es generar tres programas que funcionen ptimamente para cada una de
las tres configuraciones.

HASTA AQU POR AHORA.

Formatted: Normal

CAPTULO 4.
4.13.8

Pruebas con la primera gramtica.

La primera versin de la gramtica agrupaba en bloques movimientos, condiciones, if-thenelse, bucles while, etctera.
Los resultados, en lo que se refiere a una comparacin de lets absolutos con CEO, fueron los
siguientes:
Empates en LET

Gana CEO

Comment [EBP56]: Esto estaba en el capitulo


anterior. Lo he traido aqu, porque es en este
captulo donde tienes que explicar como son los
experimentos que vas a utilizar para evaluar la
gramtica

Gana PG
55

147

215

67

Comment [j57]: Ganan o pierden, por cunt

Se comentan los resultados:


1. Todas las soluciones PG consistan en 10 repeticiones del mismo tipo de movimiento
para cada mapa, es decir, no apareci ninguna estructura cuyas condiciones, evaluadas
tras cada movimiento de agente, cambiaran a otro movimiento diferente al anterior.
2. Las condiciones en el cdigo generado tienen un carcter muy genrico y, tras
simplificarse o revisarse, la mayora contenan redundancias, contradicciones o
situaciones que no podan producirse con los valores que contenan, lo que llevaba
siempre a que el cdigo siguiera la misma rama, como se acaba de comentar. De este
modo, el cdigo generado poda simplificarse hasta el punto de que en la mayora de
los casos servira con un bucle N=10 del mismo tipo de movimiento especfico para
cada mapa.
3. En muchos mapas varios tipos de movimientos, repetidos cada uno N=10 veces,
producen el mismo LET. Es decir, hay mapas que pueden resolverse por dos o incluso
tres tipos de movimientos repetidos N=10 veces.
4. CEO aparece como un mtodo notablemente superior.
5. Valores de LET. Un aspecto a valorar es que con 10 movimientos, si la zona donde se
mueve el agente es de poca probabilidad, la probabilidad acumulada ser pequea.
Esto hace que, aunque la ruta pueda ser ptima, el valor del LET puede estar cercano a
10 (que es el peor caso de LET para diez movimientos: no se ha encontrado
probabilidad en ninguna de las 10 casillas) Cuando se comparan LETs generados por
PG y por CEO, aunque la diferencia pueda ser muy pequea, habra que valorarla
respecto de la probabilidad acumulada (ptima), porque si esta es pequea tambin,
la diferencias de LETs, pese a que puedan estar distantes, tambin ser pequea.
Respecto al tiempo en generar la solucin fueron 4 horas 23 minutos, para un tamao del
fichero de 426 mapas.
Realizando pruebas manuales de cada tipo de movimiento repetido N=10 veces sobre los
mapas se comprob que, a excepcin del movimiento MostImportantRoundCell (que en
bastantes ocasiones evita una zona de probabilidad cercana por alcanzar otra zona con buena
probabilidad, pero demasiado alejada), los otros tipos de movimientos generan rutas que, si
bien pueden dar LETs inferiores a CEO, tienen valores bastante aceptables. Estos movimientos
son: MoveLocalAxial de tamao 1, MoveByLocalQ y MoveByRowCol.
Por otro lado, el mtodo LRight aparece en casos en que los mtodos anteriores produciran
LETs inferiores a CEO pero que podra mejorarse, es decir, es el mtodo que realiza algn tipo
de modificacin en la ruta no conseguido por los otros mtodos y que mejora el LET. El
problema de este mtodo es que tiene dos atributos base y altura que deben resolverse
tras el proceso de aprendizaje evolutivo. Si bien la combinacin LRight[2,1] suele aparecer en
un mayor nmero de ocasiones, no siempre son estos valores los mejores valores de base y
altura para algn mapa.

56

Comment [j58]: Todos a lavez?, cmo se ha


evaluado?.

4.23.9

Pruebas con la segunda Gramtica

Comment [j59]: Se tiene que explicar al


principio cuantas gramticas se han utilizado.

Con el fin de mejorar la estructura de los programas se modific la gramtica para que
incluyera reglas del tipo if-then-else anidadas, de tal modo que la gramtica generase un
bloque constituido por este tipo de reglas consecutivas de modo tal que, al cumplirse una de
ellas, se devolviera su tipo de movimiento.

Comment [EBP60]: Esto debera estar en la


seccin que explica la segunda gramtica. Y tamb
la justificacin de porque son necesarios los
elementos que se aaden. En resultados solo se
explican los experimentos como son, y se analizan
No se introducen elementos nuevos.

En la siguiente tabla se muestra la modificacin de la gramtica para incluir este tipo de reglas.
REGLAS IF-THEN-ELSE en la gramtica
<program> ::= <while_rule>
<while_rule> ::= "while (true) {" < if_else_rule > "}"
<if_else_rule> ::= " if " "(" <block_logical> ") " <if_or_return> " else " <if_or_return>
<if_or_return> ::= " if " "(" <block_logical> ") " <if_or_return> " else " <if_or_return>
| <recursive_move>
<block_next_rules> ::= <next_rule>
<return> ::= <statement>

Como puede comprobarse cada nodo if-else deriva en el if o en el else a otro nodo if-else o
devuelve un movimiento supuestas cumplidas las condiciones. El bucle while aparece para
conseguir los N=10 movimientos.
Un ejemplo de solucin con esta gramtica se muestra a continuacin. Pese a que hubiera sido
esperable que la gramtica profundizase anidando if-else dentro de if-else, con esta gramtica
la PG no crea estructuras MUY profundas, detenindose en apenas dos niveles de nodos en el
rbol. No es que no se generen estructuras ms anidadas, sino que se descartan. Como se
ver, probablemente las condiciones sean muy insuficientes en la resolucin del problema y
esto haga que el proceso prefiera alguna condicin muy genrica que le sirva para determinar
el tipo de movimiento que va bien para cada mapa en concreto.
while (true) {
if (((CondLocalGlobal[3]==1)&&(CondMoveCov>8)))
for(int ifor=0;ifor<5;++ifor){{{MostProbZone;;}}}
else
if ((!(CondBestIncDec==2)))
for(int ifor=0;ifor<1;++ifor){{MoveByRowCol;;}}
else for(int ifor=0;ifor<5;++ifor){{{LRight[1,1];;}}}}

Cuando para cada mapa se realiza todo el proceso de generacin de programas (obteniendo
un programa por mapa), los resultados son los siguientes:
Empates en LET
227

Gana CEO
82

Gana PG
120
57

Comment [j61]: Conclusiones y explicaciones


final del mtodo probado.

Los valores de LET variaron entre 8.27 y 9.27. La media de la diferencia de los LETs obtenidos
en PG y CEO fue 0.64 por ciento, muy pequea, con una varianza de 0.0027. Es decir, los
valores encontrados por CEO y PG son bastante prximos.
Respecto del tiempo en conseguir los resultados el programa se comport ms lentamente
tardando 6 horas 12 minutos.
Con esta gramtica se han mejorado los resultados respecto de las primeras pruebas, incluso
comportndose PG mejor que CEO en muchos casos. Sin embargo, el resto de resultados es
similar al anterior, esto es, por un lado se ha tenido que aplicar PG a cada mapa individual pues
no se han podido generalizar los resultados encontrando estructuras repetidas en las
soluciones y, por otro lado, las soluciones propuestas por PG, tras resolver las condiciones,
consisten en el mismo tipo de movimiento, diferente en cada mapa, repetido N=10 veces. El
proceso evolutivo mezcl las condiciones y, aunque las expresiones obtenidas no son
demasiado largas, una vez simplificadas es como si solo se aplicara una condicin que, adems,
tiene un carcter bastante genrico (por ejemplo((!(CondBestIncDec==2), que aporta poco
conocimiento) Evidentemente, no se est explorando adecuadamente el espacio de soluciones
y la cercana de los resultados a CEO se obtiene porque al aplicar todo el proceso evolutivo en
cada mapa s que se detecta el movimiento adecuado, pero sin que pueda generalizarse a
otros mapas.

4.33.10
Pruebas aplicando PG a cada tipo de mapa buscando una
nica solucin por tipo de mapa
Los mapas de prueba se han obtenido con tres funciones que generan probabilidad de tres
modos diferentes. De cada tipo de se han generado 142 mapas y, para un proceso de
aprendizaje, estos datos se han dividido en 71 mapas para aprender 71 para probar el
aprendizaje.
4.3.13.10.1 Mapas de Tipo 1, TwoGaussStatic
Cada programa obtenido se ha valorado para los 71 mapas, valorando el LET como el calculado
en cada mapa referido al LET CEO (diferencia de LETS, la peor diferencia de todos los mapas)
El programa obtenido se muestra a continuacin:
while (true) {
if ((!(CondMoveCov<=5)))
for(int ifor=0;ifor<5;++ifor){{{{MoveByRowCol;;}}}}
else
for(int ifor=0;ifor<5;++ifor){{LLeft[2,1];;}}}

Como se ve, la estructura es poco profunda con pocas condiciones muy genricas. En cuanto a
la comparacin con CEO los resultados fueron:
Empates en LET
11

Gana CEO
50

Gana PG
11

58

Comment [j62]: Interesante. Reescribirlo.

Comment [j63]: Hasta aqu son pruebas conu


nico mapa.

Se pierde efectividad respecto a la aplicacin de PG por mapa y, probablemente, los empates y


los casos en los que gana PG a CEO se produzcan porque el mtodo MoveByRowCol es muy til
en cualquier tipo de mapa.
Media LET
CEO
9.115153

Media
PG

LET Media
Diferencia
LETS
9.132010
0.01772919

Comment [j64]: ????

Varianza Diff MaxDiff LET


LETS
0.02269133

0.14434

Se ve que hay poca diferencia de LETs.


4.3.23.10.2 Mapas de Tipo 2, SeveralGaussStatic
El programa resultado, poco profundo y con condiciones muy genricas, es:
while (true) {
if (((CondLocalGlobal[3]==2)&&(CondBestLetMethod>3)))
for(int ifor=0;ifor<2;++ifor){{{{{MoveByLocalQ[3];;}}}}}
else
for(int ifor=0;ifor<3;++ifor){{MoveLocalAxial[1];;}}}

Comment [j65]: Los programas obtenidos se


mostraban antes?

La comparacin mejor/peor es:


Empates en LET
21

Gana CEO
33

Gana PG
18

En este tipo de mapas han mejorado los resultados, pero sigue predominando CEO
considerablemente. Y los datos referentes a los valores:
Media LET
CEO
9.202144

Media
PG

LET Media
Diferencia
LETS
9.212738
0.01059437

Varianza Diff MaxDiff LET


LETS
0.11175838

0.790479

4.3.33.10.3 Mapas de Tipo 3, OneARandomStatic


En este tipo mapas de generacin aleatoria de probabilidad, los resultados vuelven a ser
decepcionantes:
El programa obtenido, poco profundo y con condiciones muy genricas, es:
while (true) {
if ((!(CondMoveCov<3)))
for(int ifor=0;ifor<5;++ifor){{{MoveLocalAxial[1];;}}}
else
for(int ifor=0;ifor<1;++ifor){{{MostImportantCell;;}}}}

Los resultados mejor/peor:


59

Empates en LET
18

Gana CEO
45

Gana PG
9

Siendo mucha la diferencia con CEO, y los valores:


Media LET
CEO
8.94576373

Media
PG

LET Media
Diferencia
LETS
8.9647339
0.01897016

Varianza
Diferencia
LETS
0.0515568

MaxDiff LET

0.18997196

Como conclusin se puede decir que PG no est aprendiendo. De hecho los programas son
bastante reducidos, la gramtica no profundiza, y los resultados se apoyan en el hecho de que
hay mtodos que funcionan bien en cualquier mapa.

Comment [j66]: POR QU?

4.43.11
Pruebas aplicando PG para clasificar los tipos de
movimientos en funcin de las condiciones.
Una prueba interesante consiste en comprobar si las condiciones sirven realmente para
discriminar los movimientos. Responder a este interrogante puede plantearse de forma
equivalente a un problema de clasificacin donde las condiciones planteadas seran los
atributos y el tipo de movimiento que debe obtenerse sera la clase clasificada.
En (Marconi de Arruda Pereira, 2010) se comenta las formas de de aplicar clasificacin en PG.
Una forma sencilla de obtener clasificacin es mediante un rbol de derivacin, que encadena
jerarquas de nodos if-else-o clase, de tal modo que se van comprobando en cada nodo dos
condiciones de un atributo y se obtienen dos derivaciones a partir de esas condiciones. Dado
que se trata de una estructura arbrea, resulta interesante para ser aplicada en PG. Cuando se
est realizando una clasificacin de un objeto en una clase (movimiento), bajo ciertos atributos
(condiciones) la regla terminar devolviendo, en funcin de los atributos, la pertenencia o no a
dicha clase o tipo de movimiento. Para el aprendizaje se necesitan tener datos de pruebas que
relacionen Mapa-tipo de movimiento. Una vez conocido el movimiento adecuado a un mapa y
la respuesta dada por la regla generada por PG, ocurren cuatro situaciones posibles:

True Positives, TP (Aciertos), el programa dice que pertenece a la clase y realmente


pertenece.
True Negatives, TN (Acierto), el programa dice que no pertenece cuando no pertenece.
False Positive, FP, el programa dice que pertenece a la clase cuando no pertenece.
False Negative, FN, el programa dice que no pertenece a la clase, cuando si pertenece.

A partir de estos valores puede crearse una Matriz de Confusin, matriz que contiene la
informacin acerca de las predicciones realizadas, con la que valorar la eficacia de la regla:

Valor Real

Positivo
Negativo

Prediccin
Positivo
TP
FP

Negativo
FN
TN

60

Comment [j67]: Bien, pero reescribirlo.

Comment [EBP68]: El hecho de usar


clasificacin no puede ser introducido de repente
la seccin de resultados. De hecho las referencias
la parte ms terica de lo que cuentas va en la zo
de programacin gentica. Asi que mir que lleva
all y a donde.

A partir de estos valores se puede determinar una funcin para evaluar la aptitud del
clasificador. Para lo cual se definen los siguientes valores:

Sensibilidad o Asertividad Positiva:

, aciertos en clasificar el objeto respecto de

todos los casos de clasificacin correctos.

Especificidad o Asertividad Negativa:

, aciertos en rechazar el objeto respecto de

todos los casos de clasificacin correctos.

Precisin:

, es decir todos los aciertos entre todos los casos.

Se puede obtener un valor de la bondad de la clasificacin multiplicando la sensibilidad por la


especificidad, o mediante la frmula (existen otras frmulas propuestas en la literatura):

Comment [j69]: REFs

Comment [j70]: En espaol o poner esto en la


definiciones anteriores.

fScore = 2 * ((specificity*sensitivity)/(specificity+sensitivity));
Puesto que cuanto ms se aproxime el valor de fScore a 1 mejor ser la clasificacin y dado
que la forma de valorar la aptitud en PG va a ser mediante minimizacin, se ha dado a la
aptitud el valor de (1 fScore)..
En la siguiente tabla se muestra la regla obtenida con este tipo de aptitud y con una gramtica
que intenta generar el rbol de discriminacin encadenando condiciones if-else.
if ((CondLocalGlobal[2]==2))
if ((CondBestLetMethod==3))
if ((CondBestIncDec==1))
if ((CondDistCellsBestLet==3))
if ((CondMoveCov==5)) pd.returnValue="MA";
else pd.returnValue="LR";
else
if ((CondMoveCov==8)) pd.returnValue="MIC";
else pd.returnValue="MLA";
else
if ((CondDistCellsBestLet==3))
if ((CondMoveCov==4)) pd.returnValue="MA"; else pd.returnValue="LL";
else
if ((CondMoveCov==8)) pd.returnValue="MBLQ";
else pd.returnValue="MIC";
else
if ((CondBestIncDec==1))
if ((CondDistCellsBestLet==1))
if ((CondMoveCov==2)) pd.returnValue="MBLQ";
else pd.returnValue="MIC";
else
if ((CondMoveCov==5)) pd.returnValue="MBLQ";
else pd.returnValue="MIC";
else
if ((CondDistCellsBestLet==2))
if ((CondMoveCov==3)) pd.returnValue="MIC";
else pd.returnValue="MIC";
else
if ((CondMoveCov==2)) pd.returnValue="MVRC";
else pd.returnValue="MLA";
else
if ((CondBestLetMethod==4))
if ((CondBestIncDec==2))
if ((CondDistCellsBestLet==3))
if ((CondMoveCov==4)) pd.returnValue="MA";
else pd.returnValue="LL";
else
if ((CondMoveCov==6)) pd.returnValue="LL";
else pd.returnValue="MVRC";
else

61

if ((CondDistCellsBestLet==2))
if ((CondMoveCov==5)) pd.returnValue="MA";
else pd.returnValue="MVRC";
else
if ((CondMoveCov==2)) pd.returnValue="MBLQ";
else pd.returnValue="MIC";
else
if ((CondBestIncDec==1))
if ((CondDistCellsBestLet==3))
if ((CondMoveCov==6)) pd.returnValue="LL";
else pd.returnValue="MA";
else
if ((CondMoveCov==3)) pd.returnValue="MIC";
else pd.returnValue="MVRC";
else
if ((CondDistCellsBestLet==2))
if ((CondMoveCov==8)) pd.returnValue="MA";
else pd.returnValue="MVRC";
else
if ((CondMoveCov==8)) pd.returnValue="MA";
else pd.returnValue="MBLQ";

Se ha construido un fichero de prueba, a partir de la inspeccin manual de los resultados


anteriores y probando mtodo a mtodo (repetido con N=10 movimientos) el LET sobre cada
mapa. Este LET obtenido se ha comparado con el LET de CEO viendo qu tipo de movimiento
igualaba o mejoraba el LET de CEO. Escogiendo solo estos datos se ha construido un fichero de
300 casos. El contenido del dichero es Mapa-Tipo de Movimiento de mejor LET. Se han
utilizado 150 casos para aprender y 150 para probar.
Sin embargo los resultados son muy decepcionantes:

Comment [j71]: Bueno, no hay que exagerar.

ERRORES: 227 de 306 (74 % de errores)


Tambin se han realizado pruebas optimizando una regla por tipo de movimiento (la anterior
regla era un intento de clasificacin para todos los movimientos conforme a las condiciones).
Es decir, obtener una regla para cada tipo de movimiento que, teniendo como entrada un
mapa, decida si se aplica el tipo de movimiento o no. Sin embargo los resultados han sido muy
decepcionantes por la cantidad de falsos positivos que producen estas reglas:
Mtodo

TP

FP

TN

FN

MovelLocalAxial
MoveAxial
MoveByRowCol
MoveByLocalQ
MoveByGlobalQ
LRight
LLeft
MostImportantCell

37
7
84
46
10
26
34
61

225
245
214
233
263
247
243
235

14
53
8
27
33
33
29
10

0
1
0
0
0
0
0
0

Num Veces
Mtodo
37
8
84
46
10
26
34
61

Dado el alto valor de FP las reglas no son tiles, es como si dijera siempre si. Por lo que
parece las condiciones, como elementos terminales de la gramtica, no solo no son suficientes,
sino que probablemente son muy poco significativas.

62

Comment [j72]: Habra que buscar porque pa

CAPTULO 5. CAPTULO 4. Conclusiones y trabajo futuro


Se ha abordado el problema de obtener rutas ptimas en Tiempo Mnimo desde la perspectiva
de la PG a partir de una gramtica. Esto implica determinar que ingredientes formarn parte
de los programas: funciones y terminales.
Se ha propuesto que la gramtica tendr ciertos tipos de movimientos que se elegirn en
funcin de ciertas condiciones de probabilidad que puedan cumplirse en la posicin actual del
agente. La misin de la PG es conjugar esas condiciones para que cada combinacin de las
mismas indique el tipo de movimiento a aplicar.
Se ha definido una gramtica, cuya utilidad ha sido mayor cuando se ha planteado en forma de
reglas if-then-else con esos elementos y se ha aplicado mapa a mapa. En este caso, los
resultados son comparables a los obtenidos por otros mtodos como CEO.
Sin embargo, al tratar de generalizar y obtener programas que puedan aplicarse con
independencia del mapa, lo que sera el objetivo a obtener, se ha fracasado en el intento. Por
un lado las estructuras de los programas que se generan son poco profundas y con pocas
condiciones o muy genricas. Por otro lado, no parece que las condiciones elegidas como
elementos de la gramtica discriminen, es decir, no se cumple el principio de suficiencia en PG.
Pese a todo, el hecho de que PG, mapa a mapa, s que genere buenas soluciones hace pensar
que la forma y estructura de la PG propuesta no anda desencaminada, por lo que la tarea que
quedara por hacer es encontrar el conjunto suficiente de condiciones que sea discriminativo.
FRASES RECORTADAS PARA USAR EN LOS RESULTADOS:

Recortado del capitulo 2: condicin de suficiencia


Como se comentar seguramente no se haya resuelto en el presente trabajo el problema de
suficiencia al no encontrar todas las variables que definen el problema.

Comment [j73]: Esto aqu no

Recortado de la gramatica
Como se comentar en las pruebas, el problema no se ha conseguido resolver de una forma
genrica.

Movimiento por filas y columnas:

63

Comment [j74]: Esto no, aqu est la hiptesi


de partida, va en los resultados o en las
conclusiones.

Por pruebas, este mtodo es el que ms aparece junto con MoveLocalAxial, incluso, en
muchos casos producen el mismo LET, es decir, la misma ruta.

Metodo en L
Este mtodo aparece bastante menos en las soluciones de las pruebas, pero es clave en
muchas soluciones donde otros mtodos no predicen bien las trayectorias, al no considerar el
cambio de direccin que este tipo de movimiento contiene.

Comment [j75]: Iria en los resultados

Al hablar de las condiciones de forma genrica

Se han realizado pruebas en las que el mismo tipo de movimiento se repite 10 veces (el
tamao de la trayectoria objetivo), para cualquier mapa, consiguindose LETs adecuados,
incluso idnticos o mejores a los obtenidos por CEO.
Cortado de la seccin de gramticas:

La primera prueba realizada consisti en utilizar esta gramtica a todo el conjunto de mapas y
comparar los resultados con CEO.
La condicin de terminacin para las pruebas se ha determinado en 100 generaciones con una
poblacin de 250 individuos

Comment [j76]: Esto es resultados?

Comment [j77]:
Sobre qu tipo de mapas?

Comment [EBP78]: Esto lo he ido recortando


del texto y trayndolo aqu. Por si te resulta til. O
para que no se te olvide hablar de ello.

Bibliografa
Hajira Jabeen, A. R. (2010). Review of Classification Using Genetic. International Journal of
Engineering Science and Technology (pgs. 94-103). Islamabad, Pakistan: National
University of Computer and Emerging Sciences.
http://www.defensenews.com/. (5 de Julio de 2013). Recuperado el 23 de 08 de 2014, de
http://www.defensenews.com/article/20140325/C4ISRNET08/303250022/Applyingmath-sank-U-boats-today-s-intel-problems
Koza, J. R. (1998). Genetic Programming. On the Programming of Computers by Means of
Natural Selection. Cambridge: MIT Press.
Lanillos Pradas, P. (3 de Junio de 2013). Bsqueda de Objetivos Mviles en Tiempo Mnimo
sobre entornos con incertidumbre. Madrid, Madrid, Espaa.
Marconi de Arruda Pereira, C. A. (2010). A Niched Genetic Programming Algorithm for
Classification Rules Discovery in Geographic. SEAL, 260-269.
64

Comment [EBP79]: Ojo. Fijate que en el texto


yo a veces he escrito la referencia a mano, no
mediante el enlace. Arreglalo para que est bien.
Mete la referencia que echa en falta Jose Antonio
el TFM de Judith.
Field Code Changed

Formatted: Font: (Default) +Body (Calibri),


11 pt, Not Bold, Font color: Auto, Spanish
(International Sort)

Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. London, England:


Massachusetts Institute of Technology.
Pedro G. Espejo, S. V. (2008). A Survey on the Application of Genetic. Granada: IEEE
TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICSPART C: APPLICATIONS AND
REVIEWS, VOL. 40, NO. 2.
Peter C. Bell, R. I. (1998). COLUMBUS-AMERICA DISCOVERY GROUP and the SS CENTRAL
AMERICA. Oxford: Institute for Operations Research and Management Sciences.
Polu, R., Willian B., L., Nicholas F., M., & John R., K. (2007). Genetic Programming: an
Introduction: On the Automatic Evolition of Computer Programs and Its Applicatinos.
University of Essex: Technical Report.
R. Poli, W. B. (2008). A field guide to genetic programming. http://lulu.com and freely available
at http://www.gp-field-guide.org.uk.
Weise, T. (2011). Global Optimization Algorithms. Theory and Application. Kassel:
http://www.it-weise.de/projects/book.pdf.
Whigham, P. (1995). Grammatically-Based Genetic Programming. California, USA: Proceedings
of the Workshop on Genetic Programming: From Theory to Real World Applications.
Formatted: English (U.S.)

65

También podría gustarte