• No se han encontrado resultados

Diseño de un algoritmo de arrecifes de corales para la resolución de pantallas del videojuego Lemmings

N/A
N/A
Protected

Academic year: 2022

Share "Diseño de un algoritmo de arrecifes de corales para la resolución de pantallas del videojuego Lemmings"

Copied!
59
0
0

Texto completo

(1)

Universidad Aut´ onoma de Madrid

Escuela Polit´ecnica Superior

Proyecto fin de carrera

DISE ˜ NO DE UN ALGORITMO DE ARRECIFES DE CORALES PARA

LA RESOLUCI ´ ON DE

PANTALLAS DEL VIDEOJUEGO LEMMINGS

Grado en Ingenier´ıa Inform´ atica

(2)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Alejandro Ortiz Martin Abril 2014

2

(3)

DISE ˜ NO DE UN ALGORITMO DE ARRECIFES DE CORALES PARA

LA RESOLUCI ´ ON DE

PANTALLAS DEL VIDEOJUEGO LEMMINGS

AUTOR: Alejandro Ortiz Martin TUTOR: Antonio Gonz´alez Pardo Co-Tutor: David Camacho Fern´andez

i

(4)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Grupo de la EPS: AIDA Dpto. de Ingenier´ıa Inform´atica

Escuela Polit´ecnica Superior Universidad Aut´onoma de Madrid

Abril 2014

ii

(5)

Resumen

Resumen

El videojuego de los Lemmings fue desarrollado en 1991 y alcanz´o gran popularidad durante esa d´ecada. En el juego, una poblaci´on de Lemmings entra al nivel por un punto espec´ıfico y un n´umero determinado de ellos deben alcanzar la salida. Para ello, el jugador dispone de un conjunto de habilidades que puede asignar un n´umero determinado de veces a diferentes Lem- mings. Con estas acciones los Lemmings modifican el entorno de la pantalla (creando puentes, excavando, trepando paredes, etc) y construyen un camino seguro desde el punto de entrada hasta la salida de la pantalla.

Se ha demostrado que este videojuego tiene una complejidad NP-Completa. En cuanto a m´etodos de Inteligencia Artificial para la resoluci´on de pantallas, lo m´as com´un es la utilizaci´on de algoritmos gen´eticos y algoritmos de colonias de hormigas. Estos algoritmos de Inteligencia Computacional proporcionan buenos resultados debido a su componente estoc´astica.

Recientemente, se ha desarrollado un nuevo algoritmo bio-inspirado llamado Coral Reef Optimization. Este nuevo algoritmo se basa en la competici´on entre corales por un espacio dentro del arrecife. Este algoritmo se ha aplicado satisfactoriamente en la optimizaci´on de diversos problemas num´ericos.

En este Trabajo Fin de Grado se propone en el desarrollo y an´alisis de un algoritmo de coral para la resoluci´on de pantallas del videojuego Lemmings.

Figura 1: Pantalla de Lemmings

Palabras Clave

Lemmings, Coral Reef Optimization, Algorimos Evolutivos, resoluci´on de videojuegos.

iii

(6)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Abstract

The game of Lemmings was developed in 1991 and achieved great popularity during that decade. In the game, a population of Lemmings enters the level at a specific point and a number of them must reach the exit. To do this, the player has a set of skills that can be assigned a given number of times at different Lemmings. With these actions Lemmings change the environment of the screen (building bridges, digging, climbing walls, etc. ) and build a safe path from the starting point to the exit of the screen.

It has been proved that this game has a NP-Complete complexity. Regarding methods of Artificial Intelligence for screen resolution, the most common is the use of genetic algorithms and algorithms colonies ant. These Computational Intelligence algorithms provide good results because of their stochastic component.

Recently, a new algorithm has been developed called bio-inspired Coral Reef Optimization.

This new algorithm is based on the competition between corals by a space inside the reef. This algorithm has been applied successfully in various numerical optimization problems.

In this Bachelor Thesis is proposed in the development and analysis of an coral algorithm for resolution of screens of the videogame Lemmings.

Figura 2: Lemmings screen

Key words

Lemmings, Coral Reef Optimization, Evolutionary Algorithm, video game resolution.

iv

(7)

Agradecimientos

Quiero agradecer a mi tutor, Antonio Gonzalez, que me haya guiado durante todo el proceso de creaci´on de este trabajo.

Tambi´en quiero agradecer a mi co-tutor, David Camacho, que me haya permitido colaborar en su grupo de investigaci´on.

Y a mi novia, Tatiana Melissa Naranjo, por estar siempre ah´ı.

v

(8)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

vi

(9)

´Indice general

´Indice de figuras IX

´Indice de tablas XI

1. Introducci´on 1

2. Estado del arte 3

2.1. Computaci´on bioinspirada . . . 3

2.1.1. Computaci´on evolutiva: algoritmos gen´eticos . . . 4

2.1.2. Inteligencia de enjambre: Ant Colony Optimization . . . 5

2.2. ¿Por qu´e el videojuego Lemmings? . . . 8

3. El algoritmo de Optimizaci´on por Arrecife de Coral 13 4. Implementaci´on de CRO para Lemmings 17 4.1. Inicializaci´on del arrecife . . . 17

4.2. Fase de formaci´on y operadores . . . 17

4.2.1. Broadcast spawning . . . 18

4.2.2. Brooding . . . 18

4.2.3. Reproducci´on asexual . . . 19

4.2.4. Larvae Setting . . . 19

4.2.5. Depredaci´on . . . 19

4.3. Adaptaci´on a resoluci´on de Lemmings . . . 19

4.3.1. Genotipo de los corales . . . 19

4.3.2. Adaptaci´on de los operadores . . . 20

4.3.3. Funci´on de fitness . . . 21

4.4. An´alisis de los par´ametros . . . 22

5. Pruebas 25 5.1. Pruebas de implementaci´on . . . 25

5.2. Comparaci´on con GA y ACO . . . 26

5.2.1. Configuraci´on del experimento . . . 26 vii

(10)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

5.2.2. An´alisis de los resultados iniciales . . . 28 5.2.3. Rectificaci´on del fitness . . . 28 5.2.4. An´alisis de los resultados con funci´on de fitness heur´ıstica . . . 34

6. Conclusiones y trabajo futuro 35

A. Niveles analizados 37

viii ´INDICE GENERAL

(11)

´Indice de figuras

1. Pantalla de Lemmings . . . iii

2. Lemmings screen . . . iv

2.1. Esquema gen´erico de un algoritmo gen´etico. . . 4

2.2. Ejemplo de crossover en un punto. . . 5

2.3. Ejemplo de mutaci´on. . . 5

2.4. Estados iniciales del algoritmo ACO. Las zonas marrones representan materiales no atravesables, el punto rojo de la zona superior izquierda representa el objetivo y el punto de la zona inferior derecha representa el nido. Los puntos negros re- presentan las hormigas, marcando las zonas que recorren en distintas tonalidades de verde seg´un la frecuencia. . . 7

2.5. Estados intermedios del algoritmo ACO. Las feromonas depositadas por las hor- migas al encontrar el objetivo se representan en distintas tonalidades de azul seg´un su intensidad. . . 7

2.6. Estados finales del algoritmo ACO. . . 8

2.7. Ejemplo de grafo derivado del juego Lemmings. . . 9

2.8. Imagen frontal del videojuego Lemmings . . . 9

2.9. Ejemplo de puente construido por un Builder. En el centro del escenario se puede observar una escalera de color m´as claro colocada por un Builder que ya ha abandonado el nivel. . . 10

2.10. Ejemplo de nivel de dificultad f´acil. . . 11

2.11. Ejemplo de nivel de dificultad dif´ıcil. . . 11

2.12. Ejemplo de nivel de dificultad media. . . 11

3.1. Desove de los corales. . . 13

3.2. Inicializaci´on de un arrecife de 100 posibles corales aleatoriamente al 60 % de ca- pacidad. Las casillas negras representan posiciones ocupadas por corales, mientras que las vac´ıas son huecos a disposici´on de siguientes generaciones. Tras la primera generaci´on se puede apreciar que adem´as de crecer nuevos corales, algunos han desaparecido por depredaci´on. . . 14

4.1. Ejemplo de reproducci´on sexual externa. . . 18

4.2. Ejemplo de reproducci´on sexual interna. . . 19

4.3. Estructura del genotipo de un coral. . . 21

4.4. Ejemplo de punto de corte correcto e incorrecto en la reproducci´on sexual externa de CRO. . . 21

ix

(12)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

4.5. Ejemplo de mutaci´on variando un step o variando una acci´on en la reproducci´on sexual interna de CRO. . . 21 4.6. Representaci´on de mejor fitness y del fitness medio de un arrecife de coral respecto

al n´umero de ´epocas. . . 23 5.1. Ejemplos de niveles de distinta dificultad. . . 25 5.2. Evoluci´on del fitness durante las primeras iteraciones del algoritmo. Se ha usado

el nivel 3, de dificultad f´acil. . . 27 5.3. Valores aproximados del fitness al quedar atrapados los lemmings en distintos

puntos del nivel. El n´umero en blanco representa el fitness aproximado de los lemmings que alcanzan la salida. . . 29 5.4. Valores aproximados del fitness al restar 0.5 al fitness de los atrapados. El n´umero

en blanco representa el fitness aproximado de los lemmings que alcanzan la salida. 30 5.5. Valores aproximados del fitness al aplicar una penalizaci´on en funci´on de la dis-

tancia a la salida. El n´umero en blanco representa el fitness aproximado de los lemmings que alcanzan la salida. . . 31 5.6. Valores aproximados del fitness al aplicar la f´ormula final. El n´umero en blanco

representa el fitness aproximado de los lemmings que alcanzan la salida. . . 32 5.7. Representaci´on de la funci´on y = exp(x − 0,85) − 0,161. Convierte un intervalo

[-1, 1] en un intervalo [0, 1] tratando de mantener la parte cercana a y = 1 lo m´as pegado a la funci´on y = x para no variar el comportamiento en arrecifes donde predominan los corales que alcanzan la salida. . . 32

x ´INDICE DE FIGURAS

(13)

´Indice de cuadros

5.1. Configuraci´on del experimento con CRO. . . 26

5.2. Configuraci´on del experimento con CRO. . . 27

5.3. Configuraci´on del experimento con GA. . . 27

5.4. Configuraci´on del experimento con ACO. . . 28

5.5. N´umero de soluciones distintas encontradas por los algoritmos descritos usando la funci´on de fitness original. . . 29

5.6. N´umero de soluciones distintas encontradas por los algoritmos descritos usando la nueva funci´on de fitness. . . 33

5.7. N´umero de soluciones distintas encontradas por GA y CRO con y sin fitness heur´ıstico. . . 33

xi

(14)
(15)

1

Introducci´ on

La computaci´on bioinspirada ha sido ampliamente usada en diferentes ´areas, desde opti- mizaci´on de problemas combinatorios hasta b´usqueda estoc´astica de soluciones en problemas complejos. Existe un gran n´umero de dominios en los que se puede usar la computaci´on bio- inspirada, desde dominios industriales o de ingenier´ıa, como la planificaci´on de proyectos o Project Scheduling Problem (PSP), hasta desarrollos te´oricos como el problema de las N-reinas.

Estos problemas se caracterizan por tener una complejidad NP-completa, lo que quiere decir que la cantidad de recursos necesarios para su resoluci´on incrementa mucho ante peque˜nos in- crementos en el tama˜no del problema. Por esta raz´on, los algoritmos de b´usqueda cl´asicos no son aplicables en estos dominios y se suele recurrir a algoritmos estoc´asticos como los de la computaci´on bioinspirada.

Del conjunto de diferentes algoritmos que se pueden considerar bioinspiradas (Redes neuro- nales artificiales, l´ogica difusa, computaci´on evolutiva e inteligencia de enjambre), este trabajo se centrara en un algoritmo evolutivo recientemente desarrollado y su aplicaci´on para resoluci´on de videojuegos: Coral Reef Optimization (CRO). Para comprobar su eficacia se comparar´a el rendimiento de CRO contra algoritmos representativos de distintos m´etodos de la computaci´on bioinspirada, como son los algoritmos gen´eticos (GA) y los algoritmos de colonias de hormigas (ACO). Genetic Algorithms (GA) ha sido seleccionado como representante de la computaci´on evolutiva, mientras que Ant Colony Optimization (ACO) se usar´a como ejemplo de inteligencia de enjambre.

Los tres algoritmos que compararemos tienen en com´un 2 caracter´ısticas principales. En primer lugar, todos trabajan con una poblaci´on de posibles soluciones que navega por el espacio de soluciones del problema. Por otro lado, todos necesitan una funci´on que indique c´omo de buena o mala es una soluci´on al problema, llamada funci´on de fitness o evaluaci´on. Esta funci´on ser´a utilizada para guiar a los algoritmos en la b´usqueda de la soluci´on optima.

Los algoritmos de inteligencia de enjambre, como ACO, se centran en el comportamiento co- lectivo de sistemas auto-organizativos donde las acciones individuales de cada individuo generan conocimiento colectivo basado en colonias sociales. Algunos ejemplos de estos algoritmos son particle swarm optimization (PSO), bee colony optimization, bird flocking o bacterial foraging.

En todos estos algoritmos la poblaci´on inicial no var´ıa, esto significa que no hay generaci´on de nuevos individuos. En lugar de eso, la poblaci´on viaja a trav´es del espacio de soluciones para encontrar la mejor soluci´on del problema. En estas aproximaciones, la funci´on de fitness no mide

1

(16)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

la calidad de la poblaci´on, sino la calidad de las soluciones encontradas por el enjambre. Los valores de fitness se usan para guiar a la poblaci´on total, o enjambre, a la soluci´on.

En el caso de GA, existe una poblaci´on de individuos y cada uno de ellos representa una posible soluci´on al problema modelado a trav´es de su genotipo. Estos individuos son evaluados por una funci´on que se llama funci´on de fitness y que permite comparar c´omo de bueno es un individuo, o lo que es lo mismo, c´omo de buena es una soluci´on. Los individuos con mejores fitness tendr´an una mayor probabilidad de ser seleccionados para la fase de reproducci´on. La operaci´on que permite la generaci´on de nuevos individuos a partir de los genes de los mejores se llama crossover. Con esta operaci´on, las caracter´ısticas de los nuevos individuos (es decir, el genotipo) se generan intercambiando diferentes partes de los genotipos de los padres. Por ´ultimo, una operaci´on de mutaci´on cambia aleatoriamente los valores de algunos genes de los nuevos individuos. Estas dos operaciones proporcionan los mecanismos necesarios para la explotaci´on y exploraci´on del espacio de soluciones del problema.

El algoritmo CRO se basa en la simulaci´on del proceso de formaci´on y reproducci´on de los arrecifes de coral. Cada coral representar´a una soluci´on al problema, de forma similar a los individuos de GA. El algoritmo CRO simula las distintas fases de la reproducci´on de los corales y la competici´on por el espacio en el arrecife, dando lugar a un algoritmo eficiente resolviendo problemas dif´ıciles de optimizaci´on.

El dominio de aplicaci´on de este TFG es el conocido videojuego de Los Lemmings. Este juego de tipo puzzle alcanz´o gran popularidad en la d´ecada de las 90. El objetivo b´asico de este juego es guiar a un grupo de lemmings a trav´es de una serie de obst´aculos hasta una salida designada. A pesar de la popularidad alcanzada y de que tiene una complejidad NP-completa, no se han realizado numerosos trabajos entorno a este juego.

El principal objetivo de este trabajo es desarrollar un algoritmo CRO que solucione pantallas de los lemmings, es decir que encuentre el camino que es capaz de llevar a los lemmings desde la entrada a la salida del nivel usando las acciones disponibles. Tras ello se comparar´a su eficacia con los algoritmos ya mencionados: Genetic Algorithm y Ant Colony Optimization.

Esta comparaci´on se har´a en base al n´umero de soluciones encontradas.

2 CAP´ITULO 1. INTRODUCCI ´ON

(17)

2

Estado del arte

Este cap´ıtulo tiene como objetivo exponer el estado del arte actual en las ´areas que este trabajo analiza. El apartado 2.1 proporciona una visi´on general de los algoritmos bioinspirados, centr´andose especialmente en los dos algoritmos con que compararemos coral reef optimization (CRO): algoritmos gen´eticos (GA) en la secci´on 2.1.1 y ant colony optimization (ACO) en la secci´on 2.1.2.

El apartado 2.2 tambi´en proporciona una descripci´on detallada del tipo de problemas que trataremos de solucionar con estos algoritmos, y de como se adapta el videojuego lemmings para cumplir las caracter´ısticas que los definen.

2.1. Computaci´ on bioinspirada

La inteligencia artificial surgi´o en 1955 como convergencia de diversos campos, incluyendo psicolog´ıa, ling¨u´ıstica, filosof´ıa, neurociencia y ciencias de la computaci´on. La definici´on del campo de la inteligencia artificial es, seg´un la mayor parte de investigadores, el estudio y dise˜no de agentes inteligentes. A trav´es de dicho estudio se pretenden lograr una serie de objetivos, entre los que se inclu´ıan representaci´on del conocimiento, planificaci´on, aprendizaje, y el que m´as nos ata˜ne: resoluci´on de problemas.

Muchas nuevas aproximaciones a la inteligencia artificial surgen de la idea de que la inteli- gencia surge tanto de las c´elulas, cuerpos y sociedades como de la evoluci´on, el desarrollo y el aprendizaje. Tradicionalmente, la inteligencia artificial ha tratado de reproducir las capacida- des del cerebro humano; nuevos enfoques se inspiran en un abanico m´as amplio de estructuras biol´ogicas que son capaces de auto-organizarse. Esto lleva directamente a la computaci´on bioins- pirada: el uso de ordenadores para modelizar fen´omenos vivientes, y al mismo tiempo analizar la vida para mejorar el uso de los ordenadores.

La computaci´on bioinspirada cubre numerosos campos, dependiendo de aquello de lo que hayan tomado inspiraci´on: las redes neuronales se inspiran en la estructura interna del cerebro humano, la inteligencia de enjambre se inspira en el comportamiento colectivo de hormigas, termitas o p´ajaros, los algoritmos gen´eticos se basan en la teor´ıa de la evoluci´on de Darwin...

Para este trabajo nos interesan especialmente los campos de la computaci´on evolutiva y la inteligencia de enjambre.

3

(18)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Poblaci´on Inicializaci´on

Fin del algoritmo

Progenitores

Sucesores

Recombinaci´on Mutaci´on

Selecci´on supervivientes

Selecci´on progenitores

Figura 2.1: Esquema gen´erico de un algoritmo gen´etico.

2.1.1. Computaci´on evolutiva: algoritmos gen´eticos

La computaci´on evolutiva[1, 2] se comenz´o a desarrollar bas´andose en las ideas de Darwin entre los a˜nos 1950 y 1970, y se centra en solucionar problemas de optimizaci´on a trav´es de dos m´etodos usados conjuntamente: metaheur´ısticas y optimizaci´on estoc´astica. Las metaheur´ısticas son procedimientos gen´ericos y abstractos aplicables a un conjunto de problemas que suelen abandonar alg´un objetivo menor para lograr alcanzar la soluci´on. Normalmente se usan cuando no se conoce un algoritmo que proporcione la soluci´on ´optima, o cuando el tiempo necesario para solucionar el problema mediante los algoritmos cl´asicos es inmanejable. Por otro lado, la optimizaci´on estoc´astica es un tipo de optimizaci´on que hace uso de un cierto grado de aleatoriedad, normalmente para evitar tener que explorar todo el espacio de soluciones.

La computaci´on evolutiva suele hacer uso de una poblaci´on sobre la que se aplica una progre- si´on iterativa, simulando un crecimiento o desarrollo. Estas iteraciones, tambi´en denominadas

´epocas, suelen ser inspiradas por mecanismos biol´ogicos de evoluci´on.

Los algoritmos gen´eticos son la rama m´as conocida de la computaci´on evolutiva y se inspiran en la teor´ıa de la selecci´on natural que Darwin propuso. La idea general de estos algoritmos es simular una poblaci´on donde cada individuo representa una soluci´on del problema a tratar.

Para ello es necesario tener una representaci´on gen´etica del dominio de soluciones (en forma de cadena de datos, simulando un genotipo) y una funci´on de fitness, tambi´en llamada funci´on de evaluaci´on, que sea capaz de evaluar cada una de las posibles representaciones. A lo largo de las iteraciones, la evoluci´on de la poblaci´on se produce al entremezclar los mejores individuos entre si, siguiendo el esquema 2.1. Las distintas implementaciones del algoritmo se caracterizan principalmente por los operadores escogidos.

El operador de recombinaci´on o crossover produce uno o dos sucesores a partir de dos progenitores. La versi´on del crossover m´as utilizada se denomina crossover en un punto, y consiste en cortar los genotipos de los progenitores por un punto aleatorio y formar los sucesores a partir de la combinaci´on de los trozos resultantes como muestra la figura 2.2.

El operador de mutaci´on modifica un sucesor generado por crossover. Para esta modificaci´on se escoge un gen del sucesor aleatoriamente y se modifica su valor, como se observa en la figura 2.3.

4 CAP´ITULO 2. ESTADO DEL ARTE

(19)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 2.2: Ejemplo de crossover en un punto.

Figura 2.3: Ejemplo de mutaci´on.

2.1.2. Inteligencia de enjambre: Ant Colony Optimization

El concepto de Swarm Intelligence (SI), o inteligencia de enjambre, surgi´o en 1989 en el contexto de la rob´otica. Aunque no hay una definici´on clara, la idea es imitar el comporta- miento de sistemas naturales como enjambres de insectos o bandadas de p´ajaros para obtener un comportamiento colectivo, descentralizado y auto-organizado de un conjunto de individuos.

Cualquier sistema multi-agente y auto-organizado que muestre un comportamiento inteligente podr´ıa considerarse SI.

Un sistema SI est´a formado por una poblaci´on de agentes simples que interact´uan local- mente entre si y con el entorno. Cada agente sigue reglas muy simples, y aunque no hay una estructura de control centralizada, las peque˜nas interacciones locales entre los agentes hacen surgir un comportamiento global ’inteligente’. Hay numerosos algoritmos que hacen uso de es- tos principios: Ant Colony Optimization, Particle Swarm Optimization, Grey Wolf Optimizer, River Formation Dynamics... En este trabajo nos centraremos en el primero de ellos, Ant Colony Optimization (ACO).

El algoritmo ACO[3, 4, 5, 6] imita el comportamiento de las colonias de hormigas. Las hormigas tratar´an de encontrar el camino m´as corto entre los nodos de un grafo, G=(V,E), donde V es el conjunto de nodos que conforman el grafo y los v´ertices, E, representan las conexiones entre los nodos.

Los v´ertices del grafo contienen las feromonas depositadas por las hormigas. La cantidad de feromona depositada en el v´ertice que conecta el nodo i con el nodo j en el step t se denomina τij(t) e inicialmente no hay ninguna feromona en el grafo.

En el primer step, N hormigas se encuentran en el nodo origen del grafo. Las hormigas se mueven a traves del mapa contruyendo un camino (su propia soluci´on). En cada nodo, la hormiga decide el siguiente nodo que ser´a visitado basandose en una probabilidad. En el step t, dad una hormiga (k) localizada en el nodo i, la probabilidad (pkij(t)) de moverse al nodo j se define por la ecuaci´on 2.1.

CAP´ITULO 2. ESTADO DEL ARTE 5

(20)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

pkij(t) =

τijα(t)ηβij(t) P

u∈N k i

τiuα(t)ηβiu(t) if j ∈ Nik

0 if j /∈ Nik

(2.1)

Donde Nik representa el conjunto de nodos viables conectados al nodo i, para la hormiga k comenzando en el nodo i, mientras que ηij representa el valor de la heur´ıstica al moverse del nodo i al nodo j. α es un par´ametro que controla la influencia de las concentraciones de feromonas y β es otro par´ametro que controla la influencia de la heur´ıstica. Estos dos par´ametros sirven para encontrar un balance entre la exploraci´on (encontrar m´as soluciones) y la explotaci´on (mejorar la soluciones encontradas) del algoritmo. P

u∈Nikτiuα(t) es el total de feronomas depositadas en todos los vertices que conectan el nodo i con el resto de nodos.

Cuando cualquier hormiga encuentra la comida (es decir, obtiene una soluci´on), deshace el camino de vuelta al nido depositando feromonas en el camino recorrido. La cantidad de feromo- nas depositadas depender´a de la calidad de la soluci´on encontrada. Esta calidad la determina una funci´on de fitness, que depende del problema a solucionar. Esto significa que mejores so- luciones se representan con valores de feromonas m´as altos y estas feromonas aumentar´an las probabilidades del camino se ser elegido por otras hormigas.

Por ultimo, la cantidad de feromonas contenida en cada vertice se calcula a˜nadiendo todas las cantidades depositadas por todas las hormigas (ver ecuaci´on 2.2).

τij(t + 1) = τij(t) +

N

X

k=1

△τijk(t) (2.2)

Donde △ τijk(t) es la variaci´on de las feromonas producida por la hormiga k.

Para permitir la exploraci´on de nuevas soluciones, las feromonas sufren un proceso de eva- poraci´on. En cada iteraci´on, las feromonas se evaporan de acuerdo a un ratio de evaporaci´on especifico. Esta evaporaci´on se puede entender como un descenso del valor de las feromonas y se calcula del siguiente modo: τij(t) = (1 − ρ)τij(t − 1). Por lo tanto, el par´ametro ρ, ρ ∈ [0, 1], permite controlar como de r´apido se evaporar´an las feromonas.

Un ejemplo del funcionamiento del algoritmo se puede observar entre las figuras 2.4, 2.5 y 2.6. La figura 2.4a muestra el estado inicial de ACO. Las zonas marrones representan materiales no atravesables, el punto rojo en la zona superior izquierda representa el objetivo y el punto de la zona inferior derecha representa el nido, desde donde partir´an las hormigas (puntos negros) en su b´usqueda. En la figura 2.4b las hormigas han comenzado a explorar los alrededores del nido, se representan en distintas tonalidades de verde los caminos recorridos por las hormigas. Las hormigas contin´uan la b´usqueda hasta dar con una soluci´on, como se puede observar en 2.5a. El rastro de feromonas de vuelta al nido se representar´a en tonalidades de azul, seg´un su intensidad.

Al continuar la exploraci´on se acaban encontrando varios caminos al objetivo (figura 2.5b). Por

´

ultimo, las hormigas marcan los caminos encontrados, y se empiezan a centrar en el m´as eficiente de los dos, hasta encontrar la soluci´on ´optima (figuras 2.6a y 2.6b).

6 CAP´ITULO 2. ESTADO DEL ARTE

(21)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

(a) Estado inicial de ACO. (b) Exploraci´on inicial del entorno.

Figura 2.4: Estados iniciales del algoritmo ACO. Las zonas marrones representan materiales no atravesables, el punto rojo de la zona superior izquierda representa el objetivo y el punto de la zona inferior derecha representa el nido. Los puntos negros representan las hormigas, marcando las zonas que recorren en distintas tonalidades de verde seg´un la frecuencia.

(a) Se encuentra el objetivo por primera vez.

(b) Las hormigas encuentran varios cami- nos al objetivo.

Figura 2.5: Estados intermedios del algoritmo ACO. Las feromonas depositadas por las hormigas al encontrar el objetivo se representan en distintas tonalidades de azul seg´un su intensidad.

CAP´ITULO 2. ESTADO DEL ARTE 7

(22)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

(a) Se ’eval´uan’ los distintos caminos en- contrados.

(b) Las hormigas finalmente han encon- trado la soluci´on ´optima.

Figura 2.6: Estados finales del algoritmo ACO.

2.2. ¿Por qu´ e el videojuego Lemmings?

Tradicionalmente se han aplicado t´ecnicas de inteligencia artificial a juegos de mesa como el ajedrez, las damas o el kahala. Sin embargo, el impacto que han tenido los videojuegos ha generado un inter´es creciente en la utilizaci´on practica de t´ecnicas de AI sobre videojuegos comerciales. Actualmente hay un gran n´umero de conferencias internacionales que proponen diferentes competiciones o retos, cuyo principal objetivo es aplicar las t´ecnicas de AI para solucionar problemas como resoluci´on autom´atica de niveles, definici´on de bots aut´onomos o generaci´on autom´atica de niveles. En estas conferencias se han promovido especialmente las competiciones basadas en juegos populares como Mario Bros, Ms-Pacman o Starcraft, pero en ninguna ocasi´on se han llevado a cabo competiciones sobre el videojuego Lemmings. Esto provoca que existan numerosos trabajos y art´ıculos sobre estos primeros videojuegos, mientras que apenas hay estudios sobre Lemmings.

En 1998, John McCarthy, quien acu˜n´o el t´ermino de Artificial Intelligence (AI), afirm´o que el juego de los lemmings se puede considerar una Drosophila en la investigaci´on de este campo[7].

Esto es, un problema representativo de la inteligencia artificial, por lo que es especialmente interesante probar nuestros algoritmos en adaptaciones de este juego.

El principal uso de CRO, al igual que GA, es la resoluci´on de problemas de optimizaci´on.

Por otro lado ACO est´a especialmente dise˜nado para encontrar caminos ´optimos en grafos. Una correcta modelizaci´on del videojuego Lemmings permite convertirlo en una b´usqueda en grafo para ACO y un problema de optimizaci´on para GA y CRO.

En primer lugar, podr´ıamos interpretar una partida de lemmings como un grafo en que cada nodo corresponde a un estado del tablero y cada arista o decisi´on a las acciones disponibles dado un estado concreto, como muestra la figura 2.7. Cada nodo representa un paso concreto de la simulaci´on, y cada acci´on (o ausencia de ella) llevar´ıa al siguiente paso. Hay que tener en cuenta diversos factores como el limite de uso de las acciones y las condiciones de uso de las m´ısmas.

Por otro lado, introducir un genotipo (codificado como se indica m´as adelante, en el apar- tado 4.3.1) en el simulador del videojuego Lemmings proporciona una funci´on de fitness que permite convertir el videojuego en un problema de optimizaci´on adecuado para GA y CRO.

8 CAP´ITULO 2. ESTADO DEL ARTE

(23)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Estado inicial

Climber . . .

Floater . . .

Exploder . . .

Blocker . . .

Builder . . .

Basher . . .

Miner . . .

Digger . . .

Walker . . .

Figura 2.7: Ejemplo de grafo derivado del juego Lemmings.

El videojuego Lemmings es un juego de tipo puzzle-plataforma desarrollado en 1991, muy popular por su complejidad. Se despleg´o en numerosas plataformas, y se hicieron m´ultiples remakes y secuelas.

Figura 2.8: Imagen frontal del videojuego Lemmings

Los lemmings son criaturas que necesitan ser salvadas. En cada nivel, los lemmings comien- zan en un punto espec´ıfico del escenario y deben ser guiados al punto de salida por el jugador.

Viven en un mundo bidimensional compuesto de materiales modificables y no modificables, y les afecta la gravedad. Comenzar´an a andar en una direcci´on espec´ıfica hasta encontrarse un obst´aculo, en cuyo caso el lemming cambiar´a la direcci´on y continuar´a andando. En ning´un momento dejar´an de andar, a no ser que se alcance la salida. En el caso en que el lemming encuentre un agujero, caer´a. Hay dos modos en que un lemming puede morir, consideradas en este trabajo: cayendo desde una altura demasiado alta o cayendo m´as all´a del borde inferior de la pantalla. Hay que tener en cuenta que los otros bordes del escenario (los laterales y el superior) se cuentan como material impenetrable, por lo que los lemmings se dar´an media vuelta al topar con ellos, en vez de considerarse muertos al salir del mapa por esos extremos.

Para guiar a los lemmings hasta la salida, los jugadores tienen un conjunto de habilidades que deben asignar a los lemmings. Usando estas habilidades, los lemnings pueden modificar el entorno creando t´uneles, o puentes, y por lo tanto creando nuevos caminos para alcanzar la salida. Hay ocho habilidades distintas que pueden ser asignadas a los lemmings:

1. Climber : Un lemming al que se le proporciona la habilidad Climber puede escalar muros verticales. Esta habilidad se puede asignar en cualquier momento de la vida de un lemming y durar´a durante el resto de la partida, es decir, podr´a escalar verticalmente cualquier muro que se encuentre hasta que muera o encuentre la salida.

2. Floater : Esta habilidad permite al lemming abrir un parag¨uas si cae desde una gran

CAP´ITULO 2. ESTADO DEL ARTE 9

(24)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

distancia, evitando su muerte. Al igual que la habilidad anterior, una vez asignada se mantiene durante toda la partida. Un lemming con la habilidad Floater ser´a inmune a la muerte por ca´ıda desde una gran altura, sin embargo seguir´a podr´ıa al salir del escenario por el lado inferior.

3. Exploder : El lemming explotar´a tras un breve retraso. El lemming que use esta habi- lidad morir´a irremediablemente, llev´andose consigo parte de su entorno como material modificable, pero no otros lemmings.

4. Blocker : Usando esta habilidad, el lemming se parar´a en el sitio, impidiendo pasar al resto de lemmings. Los lemmings que se encuentren con un Blocker reaccionar´an como al toparse con terreno no atravesable e inmodificable, dando media vuelta. Esta habilidad juega un papel fundamental al guiar a los lemmings.

5. Builder : El lemming con esta habilidad comenzar´a a construir un puente y continuar´a has- ta que se le asigne otra acci´on o hasta alcanzar una determinada longitud. Este puente ir´a ascendiendo lentamente como muestra la figura 2.9, permitiendo a otros lemmings al- canzar lugares m´as altos sin necesidad de Climber o superar agujeros en el terreno. Una vez terminado el puente el lemming dejar´a su papel de Builder y comenzar´a a andar (nor- malmente cayendo por el borde del puente), aunque se puede volver a ejecutar la acci´on para que continue construyendo.

6. Basher : Permite crear t´uneles horizontales si el entorno lo permite. Esta acci´on permite atravesar muros o zonas de material modificable, pero no funcionar´a contra material no editable.

7. Miner : Esta habilidad es similar a la anterior, pero en este caso el t´unel se excava diago- nalmente, descendiendo a trav´es de materiales modificables.

8. Digger : El lemming cavar´a verticalmente hacia abajo hasta encontrar aire o un material s´olido. Al igual que las anteriores, no permite pasar a trav´es de Blockers.

Figura 2.9: Ejemplo de puente construido por un Builder. En el centro del escenario se puede observar una escalera de color m´as claro colocada por un Builder que ya ha abandonado el nivel.

En el mundo de los lemmings hay numerosos tipos de materiales, pero se pueden agrupar en 2 clases distintas: los que se pueden modificar (es decir, pueden ser excavados) y aquellos que no pueden ser alterados. En el primer tipo, las habilidades Basher, Miner y Digger est´an permitidas. En el caso en que un lemming este cavando y se encuentre un material que no puede ser excavado, el lemming parar´a de cavar y empezar´a a caminar. Dependiendo de los tipos de materiales, se han dise˜nado tres niveles diferentes de complejidad:

F´acil: Estos niveles usan los dos tipos de materiales, y las soluciones requieren caminos cortos con pocas acciones por parte de los lemmings para alcanzar la salida. Cuando se usan materiales no modificables, las colonias de lemmings son guiadas a la salida porque las habilidades relacionadas con excavar no pueden ser usadas (por tanto el espacio de b´usqueda se reduce). Figura 2.10 muestra un ejemplo de nivel f´acil.

10 CAP´ITULO 2. ESTADO DEL ARTE

(25)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 2.10: Ejemplo de nivel de dificultad f´acil.

Dif´ıcil: Este tipo de niveles usan solo materiales modificables, y la soluci´on para alcan- zar la salida necesita que un gran n´umero de habilidades y acciones sean elegidas. La ausencia de materiales no modificables aumenta las posibles ramificaciones del problema, aumentando considerablemente la complejidad y el espacio de b´usqueda de las soluciones.

Figura 2.11 muestra un ejemplo de nivel dif´ıcil.

Figura 2.11: Ejemplo de nivel de dificultad dif´ıcil.

Medio: Estos niveles usan una combinaci´on de los anteriores, como la figura 2.12 muestra.

En este tipo de niveles, ambos materiales pueden ser usados y la soluci´on puede ser un compuesto de acciones. En estos niveles, es posible encontrar partes donde se permite una mayor variedad de acciones a los lemmings y partes donde el n´umero de acciones posibles es reducido.

Figura 2.12: Ejemplo de nivel de dificultad media.

Adem´as, cada nivel tiene su propia configuraci´on de habilidades, donde cada habilidad puede ser usada (es decir, asignada) un n´umero m´aximo de veces. No es necesario usar todas las habilidades en cada nivel. El n´umero de veces que se puede usar una habilidad tambi´en puede ser un marcador de complejidad de un escenario, puesto que la ausencia de Builders o Bashers puede provocar que la b´usqueda de la soluci´on sea mucho mas larga y costosa. Sin embargo, en la mayor parte de los casos se gastan menos habilidades de las disponibles para su uso.

El juego de los lemmings puede ser considerado un problema interesante para investigar

CAP´ITULO 2. ESTADO DEL ARTE 11

(26)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

especialmente con algoritmos de optimizaci´on. Tres objetivos son necesarios para optimizar el juego: salvar el mayor n´umero de lemmings, minimizar el uso de habilidades necesarias para alcanzar la salida y encontrar el mejor camino que permite salvar el m´aximo n´umero de lemmings con el m´ınimo uso de habilidades. Estos objetivos se ver´an reflejados en la funci´on de evaluaci´on, y definir´an qu´e se est´a buscando en los distintos algoritmos de optimizaci´on.

12 CAP´ITULO 2. ESTADO DEL ARTE

(27)

3

El algoritmo de Optimizaci´ on por Arrecife de Coral

El algoritmo CRO simula en el ciclo de vida de los corales en los arrecifes coralinos. Los corales pueden reproducirse sexual y asexualmente. La reproducci´on asexual se produce cuando un coral concreto alcanza un cierto tama˜no y se divide, produciendo un segundo coral con com- posici´on gen´etica exactamente igual que se escinde del coral principal y tratar´a de establecerse como una nueva colonia.

Por otro lado, la mayor parte de los corales se reproducen sexualmente por desove (Broadcast spawning), soltando numerosos huevos y esperma al agua que forman unas nubes de larvas que posteriormente tratar´an de establecerse como nuevas colonias o corales.

Cada una de las nuevas larvas de coral que se intenten establecer en el arrecife tendr´a que competir con los corales existentes por el espacio disponible.

Figura 3.1: Desove de los corales.

CRO es una nueva aproximaci´on meta-heur´ıstica basada en la reproducci´on de los corales y la formaci´on de los arrecifes de coral, propuesto recientemente en [8] y [9]. B´asicamente, CRO se basa en una modelizaci´on artificial del arrecife de coral, consistiendo en una cuadricula de N × M que representa el arrecife donde se asentar´an los corales. Asumimos que cada posici´on de la cuadricula (i, j) es capaz de contener un coral, representando una soluci´on al problema de optimizaci´on dado. Estas soluciones se encuentran codificadas en una cadena de valores similar al genotipo de los algoritmos evolutivos.

Los corales competir´an por el espacio en el arrecife, y esta competici´on se realizar´a com- parando la calidad de los corales. Esta calidad se mide con una funci´on de fitness que eval´ua el genotipo del coral. En primer lugar se inicializa el arrecife en funci´on del tama˜no m´aximo disponible y la tasa de ocupaci´on inicial indicada. Se asignar´an N ∗ M ∗ o corales generados alea- toriamente, donde o es el porcentaje inicial de ocupaci´on, a casillas aleatorias de la cuadricula.

13

(28)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

(a) Arrecife inicial. (b) Arrecife tras una generaci´on.

Figura 3.2: Inicializaci´on de un arrecife de 100 posibles corales aleatoriamente al 60 % de capaci- dad. Las casillas negras representan posiciones ocupadas por corales, mientras que las vac´ıas son huecos a disposici´on de siguientes generaciones. Tras la primera generaci´on se puede apreciar que adem´as de crecer nuevos corales, algunos han desaparecido por depredaci´on.

Se mantienen el resto de casillas vac´ıas (como se observa en la figura 3.2a), dejando huecos en el arrecife que pueden ser usados por nuevos corales para instalarse y crecer en un futuro (v´ease figura 3.2b). La proporci´on entre casillas vac´ıas y ocupadas en este inicio del algoritmo es un par´ametro importante de CRO.

Cada coral tiene un valor de salud proporcionado por la funci´on de fitness en funci´on de su genotipo. Esta funci´on de fitness representa el objetivo del problema. CRO se basa en el hecho de que el arrecife progresar´a, puesto que los corales m´as saludables y fuertes (que representan mejores soluciones al problema) sobreviven, mientras que los menos saludables mueren.

Despu´es de la inicializaci´on mencionada anteriormente, una segunda fase de la formaci´on de los arrecifes se simula artificialmente: la simulaci´on de la reproducci´on de los corales se efect´ua aplicando secuencialmente una serie de operadores. Este conjunto secuencial se aplica repetida- mente a lo largo de una serie de ´epocas hasta que un criterio de parada se cumpla. Se definen varios operadores que imitan la reproducci´on de los corales, entre ellos: una modelizaci´on de la reproducci´on sexual (Broadcast Spawning y Brooding), una modelizaci´on de la reproducci´on asexual (Budding). Tras la reproducci´on sexual y asexual, el conjunto de larvas formadas tra- tar´an de encontrar un lugar donde establecerse y crecer en el arrecife. Puede ser en espacio libre, o en espacio ocupado, luchando contra el coral que ocupe la posici´on. Si las larvas no tienen ´exito encontrando un lugar en un n´umero dado de intentos, se consideran v´ıctimas de la depredaci´on. Por ultimo, se consideran posibles eventos catastr´oficos como depredaci´on por p´olipos, eliminando parte de los corales del arrecife. Esta segunda fase de CRO se puede detallar del siguiente modo:

1. Broadcast Spawning (reproduccion sexual externa): la modelizaci´on de la reproducci´on de los corales por broadcast spawning consiste en los siguientes casos:

a) En un paso k de la fase de formaci´on del arrecife, se selecciona una fracci´on aleatoria de los corales existentes para ser los broadcast spawners, aquellos que se reproducir´an por este m´etodo. La fracci´on con respecto a la cantidad total de corales existentes es un par´ametro del algoritmo y se denota como Fb. Los corales no seleccionados (i.e.

1 − Fb) son candidatos a reproducirse por brooding m´as adelante en el algoritmo.

b) Se seleccionan parejas del conjunto de broadcast spawners seleccionado en el paso k.

Cada una de estas parejas formar´a una larva de coral por crossover, que posterior- 14 CAP´ITULO 3. EL ALGORITMO DE OPTIMIZACI ´ON POR ARRECIFE DE CORAL

(29)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Algorithm 1: Algoritmo Coral Reef Optimization Gen´erico

1 iniciarArrecife(f)

2 while g < numGeneraciones do

3 lse ← reproduccionSexualExterna(f)

4 lsi ← reproduccionSexualInterna(f)

5 la← reproduccionAsexual(f)

6 larvaeSetting(lse, f)

7 larvaeSetting(lsi, f)

8 larvaeSetting(la, f)

9 depredacion(f)

10 g ← g + 1

11 end

12 devolver mejor coral de f

mente se tratar´an de asentarse por Larvae setting. Una vez que dos corales han sido seleccionados para ser progenitores, no podr´an volver a ser seleccionados en este paso k (i.e. dos corales solo pueden ser progenitores una vez en cada paso). Esta selecci´on se puede hacer aleatoriamente uniforme o proporcionalmente al fitness.

2. Brooding (reproducci´on sexual interna): como se ha mencionado antes, en cada paso k de la fase de formaci´on de CRO, la fracci´on de los corales existentes que se reproducir´a por brooding ser´a 1 − Fb. La modelizaci´on de esta reproducci´on sexual interna consistir´a en la formaci´on de una larva de coral mutando aleatoriamente el coral progenitor (auto- fertiliz´andose considerando corales hermafroditas). La larvas se tratar´an de asentar en la fase de Larvae setting junto con las larvas generadas en el paso anterior.

3. Reproducci´on asexual: en el modelo de reproducci´on asexual (budding o fragmentaci´on), el conjunto total de corales existentes en el arrecife se ordenan en funci´on de su salud, dada por la funci´on de fitness. Sobre el conjunto ordenado una fracci´on Fa (par´ametro del algoritmo) se duplica a si misma y trata de asentarse en un lugar distinto del arrecife siguiente el proceso de Larvae setting. N´otese que con este proceso el n´umero de corales id´enticos en el arrecife aumenta. Esto puede producir que el mismo coral (misma soluci´on) est´e poblando la mayor parte del arrecife, haciendo que el algoritmo converga a soluciones locales. Por este motivo es necesaria la utilizaci´on de procedimientos para el control de copias del arrecife. Este procedimiento se lleva a cabo durante la fase de Larvae setting, impidiendo asentarse a las larvas que representen soluciones repetidas.

4. Larvae setting: una vez que todo las larvas de las etapas anteriores se han formado, tra- tar´an de asentarse y crecer en el coral. En primer lugar se realizar´a el control de corales id´enticos: en caso de que la soluci´on que una larva representa se encuentre en el arrecife m´as de µ veces (par´ametro del algoritmo) la larva no se asentar´a. Tras ello se calculan los valores de salud de los nuevos corales usando la funci´on de fitness. Despu´es cada larva intentar´a establecerse en una casilla (i,j) aleatoria de la cuadr´ıcula que representa el coral.

Si la casilla est´a vac´ıa, el coral se asentar´a en dicha posici´on. Por otro lado, si alg´un coral est´a ocupando la casilla en cuesti´on, la nueva larva solo se asentar´a si el nuevo coral repre- senta una soluci´on mejor que aquella soluci´on representada por el coral que se encuentra en la posici´on del arrecife. La definici´on de ”mejor”soluci´on depender´a del objetivo que tenga el algoritmo (si se pretende maximizar o minimizar una funci´on objetivo). En el caso de que el nuevo coral sea peor que aquel que est´a asentado en el arrecife, el nuevo coral busca una nueva posici´on. Este proceso se puede repetir un n´umero determinado de veces que se especifica por el par´ametro κ. Si el coral agota todos estos intento y no ha CAP´ITULO 3. EL ALGORITMO DE OPTIMIZACI ´ON POR ARRECIFE DE CORAL 15

(30)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

encontrado un lugar donde asentarse, el nuevo coral muere.

5. Depredation in polyp phase: Los corales pueden morir durante la fase de formaci´on del algoritmo CRO. Al final de cada fase de reproducci´on k, un n´umero peque˜no de corales puede ser depredado, liberando espacio en el arrecife para la siguiente generaci´on de cora- les. El operador de depredaci´on ordena todos los corales del arrecife en funci´on de su valor de salud, y una fracci´on Fd (par´ametro del algoritmo) de los peores corales del arrecife son candidatos a morir. Esto candidatos morir´an con una probabilidad Pd (par´ametro del algoritmo). Para simplificar la configuraci´on de par´ametros del algoritmo, el valor de esta fracci´on puede asignarse como Fd=Fa. Cualquier otra asignaci´on que cumpla que Fd+ Fa≤ 1 tambi´en es v´alida.

16 CAP´ITULO 3. EL ALGORITMO DE OPTIMIZACI ´ON POR ARRECIFE DE CORAL

(31)

4

Implementaci´ on de CRO para Lemmings

Este cap´ıtulo se centrar´a en la implementaci´on de CRO que se ha llevado a cabo en este TFG.

En primer lugar explicar´e cada uno de los operadores y apartados del algoritmo, para despu´es explicar el algoritmo al completo. La codificaci´on del genotipo de los corales y la funci´on de fitness utilizada, al ser las partes que no son gen´ericas del algoritmo sino particulares al problema a solucionar, se dejar´an para el final.

4.1. Inicializaci´ on del arrecife

La parte central del algoritmo hace uso de un ´unico arrecife (un conjunto de corales o individuos), que se ir´a modificando a lo largo de las ´epocas de entrenamiento. Este arrecife se representa como un array que contendr´a tanto corales como espacios vac´ıos.

La inicializaci´on del arrecife consiste en rellenar el array de corales. Esta inicializaci´on tiene dos par´ametros, el tama˜no de la cuadr´ıcula y el porcentaje de ocupaci´on. Para rellenar el arrecife, insertamos N ∗ M ∗ o corales generados aleatoriamente (por el m´etodo explicado en el apartado 4.3.1) en el array en posiciones aleatorias hasta cubrir la proporci´on indicada.

4.2. Fase de formaci´ on y operadores

Tras inicializar el arrecife, viene la segunda fase del algoritmo: la fase de formaci´on. Esta fase itera una serie de operadores secuencialmente a lo largo de una serie de ´epocas. Las ´epocas de formaci´on se suceder´an hasta que se cumpla un criterio de parada. Este criterio de parada podr´ıa ser alcanzar una determinada calidad con el mejor coral, o pasar un determinado n´umero de ´epocas sin que el mejor coral mejore. Para prevenir que un resultado m´aximo local haga saltar esta segunda condici´on, por ejemplo estancando el mejor coral en un resultado no ´optimo durante demasiadas ´epocas, he escogido tener un n´umero de ´epocas fijo, independiente de la evoluci´on del arrecife. Esta elecci´on alarga algunas ejecuciones, pero en escenarios especialmente complejos es necesaria para obtener buenos resultados.

Cada una de estas ´epocas producir´a una cantidad fija de larvas por reproducci´on sexual (bien por Broadcast spawning o por Brooding) dependiente del par´ametro del algoritmo α y otra

17

(32)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 4.1: Ejemplo de reproducci´on sexual externa.

cantidad fija por reproducci´on asexual, dependiente del par´ametro Fa explicado m´as adelante.

Estas larvas tendr´an que luchar por ganar su posici´on en el arrecife. Por otro lado, una porci´on de los corales del arrecife tienen la posibilidad de ser depredados al finalizar cada ´epoca.

A continuaci´on se explicar´an detalladamente cada una de las partes de la fase de formaci´on.

4.2.1. Broadcast spawning

Al comienzo de la reproducci´on sexual se seleccionan aleatoriamente los corales que actuar´an como broadcast spawners. Como ya se indic´o en la descripci´on del algoritmo, ´esta fracci´on se denota como Fb.

A partir del conjunto seleccionado se seleccionan parejas que formar´an, por reproducci´on sexual externa, una larva cada una. Este operador selecciona aleatoriamente un punto de corte en cada progenitor e intercambia los bloques formados por la separaci´on resultante, tal y como muestra la figura 4.1.

Solo se podr´a ser progenitor una vez por ´epoca, es decir, que los corales que se seleccionen para formar parejas se extraer´an del conjunto antes de seleccionar m´as. La selecci´on de los progenitores es proporcional al fitness: los corales con mejor fitness, y por tanto las mejores soluciones al problema, tendr´an m´as posibilidades de ser seleccionados como progenitores.

Puesto que se deben formar α larvas por reproducci´on sexual, pero esta cantidad tambi´en debe incluir las formadas por Brooding, se formar´an un total de F b × α larvas por broadcast spawning.

4.2.2. Brooding

El conjunto de corales que no sea seleccionado para reproducci´on sexual externa (Broadcast spawning) ser´a seleccionado para la reproducci´on sexual interna o Brooding. Este conjunto corresponder´a a una proporci´on 1 − F b de los corales. La reproducci´on sexual interna consiste en aplicar al progenitor una modificaci´on aleatoria con una probabilidad γ.

Las variaciones m´as comunes son intercambiar distintas partes del genotipo o variar valores concretos. Se ha escogido la segunda opci´on: la reproducci´on sexual interna modifica aleato- riamente un elemento cualquiera del genotipo del coral. Cada coral del conjunto seleccionado liberar´a una larva con su mismo genotipo, y a esta larva se le aplicar´a la modificaci´on. El conjunto de larvas tendr´a tama˜no (1 − F b) × α, para complementar el conjunto formado por Broadcast spawning y obtener un total de α larvas por reproducci´on sexual.

18 CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS

(33)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 4.2: Ejemplo de reproducci´on sexual interna.

4.2.3. Reproducci´on asexual

El proceso de reproducci´on asexual, tambi´en conocido como budding o fragmentaci´on, con- siste en duplicar una serie de corales. Una fracci´on Fa de los corales seleccionados de entre los mejores del arrecife se duplica, dando lugar a larvas de igual genotipo, y se asentar´an por el m´etodo de Larvae Setting.

4.2.4. Larvae Setting

Una vez que las larvas han sido generadas a trav´es de los tres procesos anteriores, ´estas buscar´an su hueco en el arrecife. Puesto que se ha de limitar el n´umero de corales id´enticos, no se tratar´an de asentar los corales que superen la cantidad indicada de corales iguales. Cada una de las larvas tendr´a κ intentos para asentarse en el arrecife, si no lo logra ser´a descartada.

En cada intento seleccionar´a una casilla aleatoria del arrecife. Si la casilla est´a vac´ıa, el coral crecer´a en ella sin importar el valor de salud que tenga. Por otro lado, si alg´un coral esta ocupando la casilla en cuesti´on, la nueva larva solo se asentara si su funci´on de salud es mejor que la del coral existente. El algoritmo 2 muestra el pseudoc´odigo de este procedimiento.

4.2.5. Depredaci´on

El proceso de depredaci´on elimina corales d´ebiles, es decir que representen soluciones al algoritmo peores que el resto de corales del arrecife. Este m´etodo permite liberar espacio para albergar futuros corales. Para simular esto, se selecciona un subconjunto del arrecife formado por una fracci´on Fdde los corales con peor valor de salud. Cada uno de estos corales tendr´a una probabilidad muy baja, Pd, de ser eliminado del arrecife.

4.3. Adaptaci´ on a resoluci´ on de Lemmings

Hay dos partes fundamentales del algoritmo CRO que deben ser adaptadas al problema concreto a estudiar: la estructura de los corales (junto con las adaptaciones de los procedimientos de reproducci´on que esta conlleve) y la funci´on de fitness que lo evaluar´a. La combinaci´on de ambas ser´a crucial en la correcta aplicaci´on del algoritmo CRO al problema concreto a solucionar, en este caso la resoluci´on de pantallas del videojuego Lemmings.

4.3.1. Genotipo de los corales

Cada coral debe contener una posible soluci´on a un escenario de los lemmings, que se codi- ficar´a como un conjunto de pares paso-acci´on, tal y como muestra la figura 4.3, que indica que acci´on se ejecutar´a en que step concreto. Por ejemplo un par 3-Digger indicar´a que en el step CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS 19

(34)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Algorithm 2: Procedimiento de Larvae setting Data: Nc conjunto de nuevas larvas

1 foreach l ∈ Nc do

2 asentada ← false

3 t ← 0

4 if repeticionesEnArrecife(l) > µ then

5 Eliminar(l)

6 else

7 while asentada = false ∧ t < κ do

8 pos ← seleccionarPosicionAleatoria

9 C ← coralEnPosicion(pos)

10 if C = N U LL then

11 AsentarLarva(l, pos)

12 asentada ← true

13 else

14 if f (l) EsMejorQue f (C) then

15 Eliminar(C)

16 AsentarLarva(l, pos)

17 asentada ← true

18 else

19 t ← t + 1

20 end

21 end

22 end

23 if t = κ then

24 Eliminar(l)

25 end

26 end

27 end

3 de la simulaci´on se asignar´a la acci´on digger. Hay que tener en cuenta que esta codificaci´on no garantiza una soluci´on, sino que puede implicar que todos los lemmings queden atrapados o mueran.

La inicializaci´on de los corales se hace generando un n´umero aleatorio de estos pares, com- prendido entre 1 y la duraci´on estimada del escenario de los lemmings. El paso de cada par se calcula obteniendo un n´umero aleatorio entre 1 y la duraci´on estimada una vez m´as, de esta manera la poblaci´on inicial var´ıa entre ejecutar una acci´on en cada paso y ejecutar una ´unica acci´on en un paso aleatorio de la pantalla. La acci´on de cada par se escoge aleatoriamente tam- bi´en, pero teniendo en cuenta el n´umero de acciones disponibles en el escenario: la probabilidad de seleccionar una acci´on es directamente proporcional al n´umero de veces que puedes asignar dicha acci´on.

4.3.2. Adaptaci´on de los operadores

El operador reproducci´on sexual externa se aplica seleccionando un punto de corte que separe distintos pares sin llegar a dividir ning´un par por la mitad, de tal manera que el individuo hijo contendr´a las primeras acciones del primer progenitor y las ultimas acciones del segundo. La figura 4.4 muestra ejemplos de un punto de corte correcto y uno que no lo es.

20 CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS

(35)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 4.3: Estructura del genotipo de un coral.

Figura 4.4: Ejemplo de punto de corte correcto e incorrecto en la reproducci´on sexual externa de CRO.

El operador reproducci´on sexual interna se aplica independientemente en acciones y en pasos. Es decir, al reproducirse se decide modificar o una de las acciones o uno de los pasos (con probabilidad del 50 % de uno o otro). Una vez seleccionado el valor a modificar, se escoger´a uno nuevo seg´un los mismos criterios que durante la inicializaci´on: las acciones se encontrar´an entre las disponibles para el escenario y los pasos de entre los m´aximos de la pantalla. La figura 4.5 muestra un ejemplo de reproducci´on sexual externa.

4.3.3. Funci´on de fitness

La funci´on de fitness define la calidad de un genotipo y es una de las partes m´as importantes del algoritmo, pues le indica cual es su objetivo. Esta funci´on calcula la calidad de los corales y permite la comparaci´on de los mismo en los procesos de reproducci´on, larvae setting y el proceso de depredaci´on.

En el caso particular que nos ocupa, buscamos la mejor soluci´on a un escenario del videojuego Lemmings. El objetivo es maximizar el n´umero de lemmings que se salvan, minimizar el tiempo

Figura 4.5: Ejemplo de mutaci´on variando un step o variando una acci´on en la reproducci´on sexual interna de CRO.

CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS 21

(36)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

empleado en llegar a la salida (el n´umero de steps) y el n´umero de acciones usadas. Para ello se aplican las f´ormulas 4.1, 4.2, 4.3 y 4.4:

turnosRestantes = turnosT otales − turnosU sados (4.1)

accionesRestantes = accionesT otales − accionesU sadas (4.2)

lemmingsSalvados = lemmingsT otales − numBlockers − numExploders (4.3)

f itness = turnosRestantes + accionesRestantes + lemmingsSalvados

turnosT otales + accionesT otales + lemmingsT otales (4.4) Esta f´ormula proporciona un n´umero entre 0 y 1, teniendo en cuenta que en ning´un momento se alcanzar´a el m´aximo valor, pues siempre hay una serie de steps a dar antes de alcanzar la salida.

Las variaciones e interpretaciones de la f´ormula se analizar´an m´as detalladamente en el cap´ıtulo 5.

4.4. An´ alisis de los par´ ametros

El algoritmo CRO tiene numerosos par´ametros de configuraci´on que afectan a lo largo de todo su algoritmo, como ya hemos visto en este mismo cap´ıtulo. Los siguientes datos se han extra´ıdo a partir de datos te´oricos y pruebas efectuadas durante la fase de implementaci´on. A continuaci´on listaremos cada uno de estos par´ametros, mencionando su importancia e impacto, junto con los valores normalmente usados:

1. ´Epocas de entrenamiento: El n´umero de ´epocas de entrenamiento afecta directamente al n´umero de soluciones encontradas y la calidad de las mismas, puesto que representa el tiempo que se le concede al arrecife para encontrar tales soluciones. Como ya se ha mencionado antes, este n´umero no variar´a en caso de encontrar una soluci´on que supere determinada calidad o en caso de no encontrar mejores corales en un n´umero fijo de

´epocas: el n´umero de ´epocas siempre es el mismo. La gr´afica 4.6 muestra un ejemplo en que un n´umero de ´epocas fijo permite al algoritmo encontrar una soluci´on mejor: Se puede observar como limitando el n´umero de ´epocas en funci´on de las variaciones del mejor fitness hubiera parado el aprendizaje en torno a la ´epoca 200, en vez de alcanzar una soluci´on mejor.

2. Tama˜no del arrecife: El tama˜no del arrecife se ha de elegir teniendo en cuenta que afecta directamente al n´umero de soluciones obtenidas y a la calidad de las mismas, puesto que representa cuanto se explorar´a del espacio de soluciones. En la fase experimental se compar´a el comportamiento de CRO contra GA y ACO, por esa raz´on, el tama˜no del arrecife se fijar´a al tama˜no de la poblaci´on del GA y al n´umero de hormigas de ACO.

3. Ocupaci´on inicial: La ocupaci´on inicial define que proporci´on del arrecife que se ocu- par´a durante la fase de inicializaci´on. Este par´ametro influye en como de variado ser´a el arrecife base sobre el que se comenzar´a la b´usqueda. La mayor parte de los corales ge- nerados con la iteraci´on del algoritmo son combinaciones de los generados durante la 22 CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS

(37)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

Figura 4.6: Representaci´on de mejor fitness y del fitness medio de un arrecife de coral respecto al n´umero de ´epocas.

inicializaci´on, con lo que una alta ocupaci´on es de recomendable para mejorar los resul- tados del algoritmo. Puesto que tampoco queremos que los nuevos corales generados no tengan donde asentarse, las tasas optimas para este par´ametro observadas durante las fases de implementaci´on se encuentran en torno al 80 %.

4. N´umero de larvas por reproducci´on sexual (α): Este par´ametro es el principal al decidir cuantas larvas generaremos en cada ´epoca. El valor de α debe estar equilibrado con los par´ametros de la depredaci´on, puesto que entre los dos deben mantener la ocupaci´on del arrecife en torno al 80-90 %. Puesto que el tama˜no del arrecife puede variar, lo ideal es expresar este valor en funci´on del n´umero m´aximo de corales del arrecife. Teniendo en cuenta que no todas las larvas que se generen se asentar´an con ´exito, el valor de este par´ametro suele rondar el 5-10 % del tama˜no del arrecife.

5. Proporci´on de broadcast spawners (Fb): Este valor Fb determinar´a que proporci´on de las larvas de cada ´epoca se obtendr´a por reproducci´on sexual externa, es decir com- binando dos corales, y que proporci´on por reproducci´on sexual interna (1 − Fb). Por un lado, un Fb muy alto provocar´a que casi ning´un nuevo coral se obtenga modificando in- dividuos, ´unicamente combin´andolos, con lo que se explorar´a un espacio de soluciones m´as acotado. En problemas especialmente complicados al obtener una soluci´on, la falta de mutaci´on puede provocar que no solo no se encuentre una buena soluci´on, sino que no se encuentre ninguna. Por otro lado, un valor de Fb muy bajo provocar´a que el arrecife mute muy r´apidamente, con lo que no se conservar´a lo aprendido en generaciones ante- riores. Esto impedir´ıa que el conjunto de soluciones que los corales representan converja a una soluci´on: el algoritmo no funcionar´a. Un valor de 70 % en este par´ametro da lugar a buenos resultados, aunque en escenarios especialmente complicados es interesante tratar con valores menores hasta haber encontrado una soluci´on.

6. Probabilidad de mutaci´on (γ): Hay que tener en cuenta que no todo el conjunto de larvas formadas por Brooding est´an mutadas, ´unicamente una proporci´on muy baja. Se ha usado el valor m´as com´unmente usado para este par´ametro en algoritmos gen´eticos:

5 %.

CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS 23

(38)

Dise˜no de un algoritmo de arrecifes de corales para la resoluci´on de pantallas del videojuego Lemmings

7. Intentos de asentamiento (κ): Este par´ametro determina el n´umero de intentos m´axi- mo para asentarse que tiene una larva durante la fase de Larvae Setting. El n´umero de intentos influye directamente en la competitividad del arrecife. Un valor muy alto anu- lar´a el sistema de selecci´on natural que imita este algoritmo. En el otro extremo, un valor muy bajo impedir´a la exploraci´on de soluciones que peores que tengan el potencial de alcanzar la soluci´on optima, y eso no nos interesa. Tambi´en afecta indirectamente a la ocupaci´on del arrecife, puesto que un valor muy alto pr´acticamente garantiza un 100 % de ocupaci´on. En general, 7-10 intentos proporcionan la competencia adecuada para el correcto funcionamiento de CRO en las pruebas efectuadas.

8. Proporci´on de reproducci´on asexual (Fa): El objetivo de la reproducci´on asexual en CRO es aumentar las probabilidades de reproducci´on de los mejores corales haciendo que haya m´as de uno en el arrecife. Por desgracia esto puede provocar que se reproduzcan entre corales id´enticos, lo cual no nos interesa. Este hecho se controla tanto con Fa como con el n´umero m´aximo de corales id´enticos. Para evitarlo, se han de generar por reproducci´on sexual un n´umero de individuos muy bajo, menor del 1 % del tama˜no del arrecife.

9. Numero m´aximo de corales id´enticos: Este par´ametro ayuda a determinar la variedad del arrecife de forma secundaria. No nos interesa que se repitan demasiado los corales, puesto que limitan el espacio de b´usqueda doblemente: contienen informaci´on duplicada e impiden asentarse a otros corales. Adem´as la selecci´on proporcional al fitness produce que los corales id´enticos suelan encontrarse entre los mejores corales, que suelen ser los mejores por cruzarse entre ellos, con lo que es a´un m´as grave. Hay que ser especialmente estricto a la hora de escoger el valor de este par´ametro, pues dos corales se consideran id´enticos si los genotipos son id´enticos, pero eso no impide que una variaci´on que no tiene efecto en la calidad de la soluci´on produzca que no se consideren iguales. Por ejemplo, el efecto de la acci´on floater se mantiene durante todo el escenario, por lo que usarlo en el step 2 o en el 3 en muchos casos es equivalente. Dos corales con un genotipo id´entico excepto por el step de uso de floater se consideran distintos a pesar que aportan la misma informaci´on al arrecife en conjunto. El valor usado es 3, aunque se podr´ıa reducir a 2 perfectamente.

10. Proporci´on de depredaci´on (Fd): Los par´ametros de depredaci´on controlan la ocu- paci´on de la poblaci´on de manera directa junto con α. Este par´ametro determina que proporci´on de la poblaci´on puede ser depredada, teniendo en cuenta que se comienza la selecci´on desde los peores corales. Un valor muy alto provocar´a que se depreden corales con mejor salud, mientras que un valor muy bajo limitar´a la posible muerte a los peores corales del arrecife. Puesto que nos interesa deshacernos de los peores corales, este ba- jos rara vez supera el 15 %. Es decir, solo los 15 % peores corales son vulnerables a ser depredados.

11. Probabilidad de depredaci´on (Pd): Una vez seleccionado el conjunto de corales vul- nerables a depredaci´on con el par´ametro anterior (Fd), Pd determina que probabilidad tiene un coral concreto de ser eliminado del arrecife. Su valor se tiene que decidir conjun- tamente con Fd, pues la proporci´on de corales depredados se expresa como Fd∗ Pd. Para equilibrar las α larvas generadas, correspondientes a un 10 % de la poblaci´on, y teniendo en cuenta que no todas se asientan, suele bastar con un 5 % de depredaci´on conjunta para mantener la ocupaci´on m´as o menos constante. Este valor se podr´ıa obtener, por ejemplo, usando Fd = 50 % y Pd = 10 %, pero esto provocar´ıa que perdi´eramos corales con fitness demasiado altos. Tras hacer diversas pruebas, Fd = 10 % y Pd= 50 % suele proporcionar resultados adecuados.

24 CAP´ITULO 4. IMPLEMENTACI ´ON DE CRO PARA LEMMINGS

Referencias

Documento similar

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

El quincenario de los frailes de Filipinas, condena para el Archipiélago los propósitos de nivelación jurídica que para todo territorio español, peninsular o ultramarino, se