Friday, February 27, 2009

Algoritmo LMS - Oriam y su Huerto de Tomates

Breve descripción del medio ambiente.
En esta etapa de desarrollo, el medio ambiente es un mundo virtual en dos dimensiones, representando una cancha de futbol pero con las porterías en las esquinas. El juego cuenta con dos equipos, Rojos y Azules, ambos controlados por agentes. Cada escenario cuenta con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.

Descripción detallada de la acción a aprender por el agente.
 La acción que deben aprender los agentes es bloquear un ataque del equipo contrario. Los agentes deben ser capaces de observar el estado de su ambiente en el momento que el equipo contrario este atacando y aprender que acciones son las mejores dependiendo de la situación que este ocurriendo en ese momento, es decir, en el momento en que el equipo contrario tome la pelota, los agentes deben poder analizar el número de enemigos que protegen la pelota, el número de amigos que atacan a quien lleva la pelota y el número de amigos que atacan a quienes protegen la pelota e ir aprendiendo dependiendo de que tan bueno han resultado estos estados y adaptando las acciones que realizan al atacar, como atacar a quienes protegen la pelota, atacar a quien lleva la pelota, o bien incrementar su velocidad para llegar a la zona de tiro.

Solución planteada usando LMS
 Actividad T: Bloquear Ataques
 Desempeño P: % de ataques bloqueados
 Experiencia de entrenamiento E: partidos jugados contra si mismo.
 Feedback: indirecto.
 El agente selecciona una serie de estados y al final el ambiente le da un resultado.
 Entrenar contra si mismo.
 Función objetivo:
  V: B -> R
  V(b) = 6 -> Bloquear un ataque
  V(b) = 3 -> Mata a algún agente que no tenga la pelota
  V(b) = -3 -> Muere al intentar bloquear un ataque
  V(b) = -6 ->El equipo contrario anota
  V(b) = ^V(b)
  X1 = # de enemigos protegiendo a quien lleva la pelota
  X2 = # de amigos atacando a quien lleva la pelota
 X3 = # de amigos atacando a los enemigos que protegen a quien lleva la pelota
  ^V(b) = W0 + W1X1+ W2X2 + W3X3
  Wi <- Wi + n*(Vtrain(b) - ^V(b))*Xi   n = 0.1 Conclusiones después de la programación
 Fue interesante ver como cada agente cuando esta realizando la acción y al mismo tiempo aprendiendo como realizarla mejor según la retroalimentación que recibe, ya que cambia totalmente la forma en la que se desarrolla el juego, y aunque realmente no estamos enseñando a atacar, como se defiende mejor en cualquier zona, logra en todos los casos ganar los juegos. Creo que lo más difícil del algoritmo es realmente entender como aplicarlo al problema, ya que nos costo mucho ver cuales podrían ser los factores que realmente afectan y como decirle al agente si el estado es bueno o malo. Al final las funciones no resultaron complicadas, pero el darnos cuenta de cómo plantearlo fue lo más complicado.




Link:

http://www.youtube.com/watch?v=HQ_Q_Kd0fQI

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.