robocode

Anuncio
ROBOCODE
Marcelo Pistarelli
Ariel Vazquez
El proyecto de IA de la facultad de ingeniería de san Carlos de Guatemala realizado en junio
del 2009, consistió en la realización de un robot en robocode que utilice la mejor estrategia
para ganar la batalla.
¿Qué es robocode?,ROBOCODE es un simulador de combate entre tanques desarrollado por
IBM ALPHAWORKS escrito en lenguaje java.
Este simulador permite programar tu tanque, debiendo así el jugador obtener la mejor estrategia
para controlar el tanke y ganar la batalla. RoboCode recoge algunos aspectos de la realidad,
pero obvia otros.
ASPECTOS RECOGIDOS:
• Las actuaciones llevan tiempo
• Las balas tardan en llegar.
• El sensor unidireccional debe apuntar al adversario para verlo.
• El cañón se calienta al disparar y debe enfriarse antes del próximo disparo.
• Chocar contra los obstáculos debilita
ASPECTOS NO REALISTAS:
• Los sensores y el resto de los componentes son silenciosos.
• Los sensores detectan velocidad, posición, orientación y energía restante.
• Los combates tienen lugar en un entorno plano (2D) y cerrado.
Como lo programo, existen algoritmos y estrategias relacionadas con el campo IA que pueden
ser utilizados en la programación y creación de robots en robocode, como las redes neuronales,
algoritmos genéticos (K-NN) es uno de los mas simples de todos los algoritmos de aprendizaje
para las maquinas, árboles de decisión, etc.
CONCLUSION
Luego de realizar varias batallas de prueba con los robots de ejemplo incluidos en robocode y
de algunos mas avanzados descargados de Internet, se obtuvieron las siguientes observaciones
para el diseño de la estrategia:



Al iniciar una batalla con gran cantidad de enemigos, es mejor alejarse y mantenerse en
movimiento. Debido a la gran cantidad de robots en la arena, mientras nos mantengamos
en movimiento constante, esperamos a que los demás robots se eliminen entre ellos.
la energía de los disparos es constante, por lo que se debe de calcular la distancia al robot
que se dispara mientras se encuentra detenido en una esquina. Dependiendo de la
distancia al enemigo, aplicar distintas potencias al disparo
Si la cantidad de robots es de alrededor de 3 o en una batalla uno a uno, si el oponente no
posee buenos mecanismos de apuntamiento, por lo que al haber pocos enemigos, escoger
una estrategia de búsqueda a un enemigo especifico. Dependiendo de la distancia al
enemigo, disparar con distintas potencias (mientras mas cerca estamos, mas potencia).



Si alguno de los demás robots de la arena nos ataca y acierta cierto número de balas,
cambiar al enemigo actual, alejarse y atacar de nuevo.
El uso de redes neuronales en los robots de robocode permite que estos aprendan y logren
decidir la mejor estrategia de ataque
El robocode JGAP permite evolucionar robots en robocode por medio de programación
de algoritmos genéticos. Esta técnica permite obtener mejores robots a través de
mecanismos de evolución
Nos pareció interesante este proyecto ya que explica con ejemplos claros y sencillos de algoritmos
y estrategias relacionadas con IA, que abordaremos en la cátedra a lo largo del semestre, pudiendo
así comprender mejor estos temas.
Bibliografía:
http://blogdejuls.blogspot.com/2009/07/robocode.html
http://www.robocode-argentina.com.ar/
http://en.wikipedia.org/wiki/Robocode
Descargar