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