Sie sind auf Seite 1von 5

Entorno y Estrategias de Combate

Introduccin al Entorno de Robocode y Estrategias de Combate Inteligencia en Redes de Comunicaciones 1. Introduccin 2. Proceso de Diseo e Implementacin 2.1 Lucha Uno vs. Uno y Mele: Dr. Jekyll and Mr. Hyde 2.2 Lucha de Equipos: Hormiguero 3 Conclusiones

1. Introduccin En esta prctica se nos plantea el diseo y la implementacin de un robot que sea capaz de ganar al resto de robots, es decir, que no encontramos ante el punto de desarrollo de agentes inteligentes, como sistemas autnomos dotados de ciertas capacidades. Todo esto se desarrolla bajo un entorno de simulacin de guerras de robots, llamado Robocode. En el que nuestro tanque debe estar programado en Java para poder pelear en el campo de batalla contra tanques programados por otros jugadores, ganando el ltimo que quede vivo. Al comienzo del juego se empieza con una determinada vida, que se mide en energa que posee el tanque y de ah en adelante va variando la energa y mueres cuando te quedas sin energa. Como se ve las causas de la variacin de la energa son muy importantes as que vamos a entrar un poco en ello para comprender posteriormente mejor el desarrollo de nuestro robot. Las variaciones de la energa se deben a las siguientes situaciones: Al producir un disparo, cuando se dispara se te penaliza quitndote una determinada energa dependiendo de cuanta energa hayas empleado en el disparo. Chocarte contra un robot. Si durante el transcurso de la batalla te chocas con algn robot pierdes una cierta cantidad de energa. Recibir un impacto. Si eres dado por una bala (enemiga o amiga) se quita una cantidad importante de energa. Esta es la mayor penalizacin que se tiene. Utilizacin intensiva del radar. Si pasa mucho tiempo y no se produce ninguna accin se sufre una penalizacin de energa disminuyendo sta segn transcurre el tiempo. Si una bala tuya acierta sobre un tanque enemigo se te suma una cantidad de energa. El escenario de batallas que se nos plantea, en nuestra competicin interna es de tres tipos: a) Uno contra uno: En este tipo de contienda deberemos enfrentarnos slo a un nico tanque oponente y destruirlo antes de que nos destruya l. b) Mele: Todos contra todos, en esta situacin estamos rodeados de enemigos y mis enemigos son enemigos del resto de los enemigos, esta es una situacin de la que nos deberemos aprovechar. c) Lucha de equipos: Ahora se tendr que trabajar en colaboracin con otros tanques para destruir a uno o varios tanques enemigos. En nuestro caso va a ser otro equipo formado por 5 tanques. Ya que conocemos el escenario en el que tenemos que desarrollar y los tipos de batalla en los que vamos a luchar estamos en condiciones de pasar al siguiente punto que va a ser el diseo de

nuestros tanques. 2. Proceso de Diseo e Implementacin Para disear nuestros tanques partimos de una idea general, que la historia nos ha demostrado en infinitas ocasiones, la adaptabilidad. Realmente como se puede de ver en los campos de batalla o en la naturaleza (que se puede entender como la lucha por la supervivencia) gana siempre el que esta mejor adaptado. Un individuo que est adaptado a la nieve no debera tener ningn problema de encontrar alimento y soportar temperaturas bajas, sobreviviendo sin problemas. Como nos encontramos ante una situacin de incertidumbre, ya que no sabemos como va a ser nuestro contrincante no sabemos como debemos estar adaptados, siguiendo con el ejemplo de la naturaleza no se si voy a vivir en la nieve o en el desierto, ya que puede que mi contrincante me evite o vaya a un enfrentamiento directo para el cual yo no estoy preparado. Lo primero que cabra pensar es estar preparado para todo, pero estando preparado para todo puedes fcilmente caer en no estar preparado para nada y un enemigo bien preparado en un determinando elemento nos podra derrotar con cierta facilidad. As que nuestra idea fue desarrollar distintas estrategias, para la lucha en nieve y para la lucha en el desierto e ir cambiando a ellas segn la situacin que nos encontrramos. Evidentemente el desarrollo de una multitud de estrategia es una cantidad ingente de trabajo, as que lo que hicimos fue aprovechar el cdigo ya escrito en foros de Robocode1 y desarrollar una estrategia de control que establezca cul es el escenario en que nos encontramos, haciendo evaluaciones peridicas o en situaciones que consideremos que debemos de cambiar. Viendo la idea fundamental sobre la que hemos intentado desarrollar nuestros robots vamos a pasar a ver como la podemos implementar en cada caso y los problemas que nos hemos encontrado al intentar desarrollarla. 2.1 Lucha Uno vs. Uno y Mele: Dr. Jekyll and Mr. Hyde Como el titulo de la novela, vamos a tener diferentes personalidades, pero a diferencia de sta en todas ellas trataremos de destruir a nuestros enemigos, aunque en una de las personalidades de una forma ms activa (Mr. Hyde) y en otra estaremos ms preocupados en que no nos destruyan (Dr. Jekyll). Tendremos una estrategia de control que nos va a ir diciendo qu personalidad debemos de trabajar y si en esa personalidad no estamos cmodos (estn apunto de matarnos) cambiaremos de personalidad. La idea es ir pasando por una serie de estados (distintas personalidades) el paso de estados esta regido por una estrategia de control que utiliza unas reglas para pasar entre personalidades hasta llegar al estado final que es la victoria La idea inicial era haber tenido tres o cuatro personalidades, y la estrategia de control haber tenido las siguientes variables: Energa que tuviramos(vida), Nmero de oponentes que hubiera en la batalla. Disparos acertados Disparos fallados Disparos recibidos.

Empezar con una personalidad medianamente ofensiva ya que empezamos con bastante vida y segn estos datos variar a una ms ofensiva u otra ms defensiva segn como estuviramos nosotros de energa. Tambin habamos pensado utilizar algn mtodo de entrenamiento para hallar los umbrales del algoritmo de evaluacin ya que Robocode te da estadsticas y tiene ejemplos de

estrategias muy puras donde se puede evaluar tu robot. El diagrama de flujo sera del estilo del siguiente:

Para realizar esto nos hemos encontrado ante dos grandes problemas, el primero fue que al intentar adaptar los cdigos de distintos robots hemos tenido que rechazar muchos candidatos porque no podamos juntarlos o al juntarlos daban muchos problemas que solo podamos solucionar con grandes dificultades. Este problema ha derivado en el segundo: nos hemos quedado sin tiempo y lo peor ha sido que acuciaba el primer problema ya que no podamos dedicar ms tiempo adaptando el cdigo o mejorando el algoritmo de evaluacin. As que se ha quedado en este algoritmo de evaluacin:

Se evala cada cierto tiempo o si la situacin de vida corre peligro o si estamos en una situacin muy buena para entrar en una confrontacin directa. En este ltimo caso si estamos en un estado defensivo cambiamos a ofensivo. As que tenemos que decidir entre dos estados: Mr. Hyde Es una estrategia de ariete, que es la ms agresiva que hay. Consiste en ir contra el robot enemigo o perseguirle en su caso. De esta manera es muy difcil fallar, disparando con toda la fuerza que se puede (pierdes mas energa) pero tambin es fcil que te den, as que lo que se hace es entrar en este estado solo cuando tu nivel de energa es lo suficientemente bueno para en una confrontacin directa tener muchas posibilidades de ganar. Dr. Jekyll: Esta no es una estrategia puramente defensiva (a estas se la conocen como evitadotes y consiste en moverse perpendicularmente al can del enemigo). Es una estrategia un poco ms agresiva de lo que nos hubiera gustado poner, tiene clculo de trayectorias y tambin evita recibir muchos impactos al intentar moverse perpendicularmente al eje que nos une con el enemigo, aunque quizs lo haga demasiado cerca del enemigo. 2.2 Lucha de Equipos: Hormiguero La lucha de equipo, vara mucho con el caso anterior, ya que los robots no pueden hacer cosas que antes podan (los droides no pueden escanear por ejemplo) y tienen cosas nuevas como: Paso de mensajes. Mayor cantidad de energa.

Aqu hemos optado por una bsqueda heurstica, gracias a la experiencia que habamos adquirido en la lucha en Mel intentando tambin aprovechar las nuevas oportunidades que nos dan el trabajar en equipo como: Evitar que te den, cosa muy fcil cuando hay muchos tanques disparando.

Movindote evitas que te disparen directamente. Estando quietos dispara mucho mejor.

Nos basamos en la idea de un hormiguero o una colmena en la que hay una reina que es la que manda y un montn de hormigas que contribuyen a la comunidad. La reina, en nuestro caso, slo tiene la misin de buscar enemigos y evitar morir. Para ello evita gastar energa disparando y evita que la den movindose constantemente. Cuando localiza un enemigo calcula la posicin de dicho enemigo y se las pasa a sus hormigas obreras para que lo intenten eliminar. Tambin en el caso de morir se lo comunica a sus sbditos. Las hormigas, lo primero que hacen es colocarse en una posicin defensiva es decir al lado de las paredes para reducir el ngulo por donde pueden ser alcanzadas. Una vez all esperan que la reina le comunique la posicin de los enemigos y empiezan a disparar. En el caso de ser alcanzadas por un proyectil varan un poco su posicin y si la reina llega a morir, empiezan a disparar aleatoriamente, pero nunca repiten la direccin del disparo, ya que gira el can en un ngulo no divisor de 360, tratando en un intento desesperado de alcanzar al enemigo. 3 Conclusiones La principal conclusin que hemos llegado es la importancia de dar una respuesta adecuada a la situacin. Para eso hay que evaluar peridicamente, poniendo sensores que nos avisen si estamos en una situacin de alarma, eligiendo la respuesta que ofrecemos al entorno. Aprovechar el escenario. Por ejemplo en el caso de la Mel es mejor intentar pasar desapercibido yndote a una esquina y espera a que el resto se mate para luego entrar ya en la batalla. Aqu nos volvemos a encontrar con una situacin de evaluacin y otra de decisin. En una situacin colaborativa es fundamental una labor de coordinacin, para evitar que se entorpezcan entre los miembros de un equipo, como que un tanque se encuentre en una trayectoria de tiro. Gracias a estos alumnos por ayudarnos a comprender ms este programa. Grupo DB2 UG Nea Argentina Autores: Carlos Rubio Prieto Juan Santaella Vallejo