2011-03-07 5 views
8

Todos los algoritmos reinforcement learning que he leído se suelen aplicar a un único agente que tiene un número fijo de acciones. ¿Existen algoritmos de aprendizaje de refuerzo para tomar una decisión teniendo en cuenta un número variable de acciones? Por ejemplo, ¿cómo aplicarías un algoritmo RL en un juego de computadora donde un jugador controla N soldados, y cada soldado tiene un número aleatorio de acciones según su condición? No se puede formular un número fijo de acciones para un responsable de toma de decisiones global (es decir, "el general") porque las acciones disponibles cambian continuamente a medida que los soldados son creados y asesinados. Y no puede formular una cantidad fija de acciones a nivel de soldado, ya que las acciones del soldado son condicionales en función de su entorno inmediato. Si un soldado no ve oponentes, entonces solo podría caminar, mientras que si ve 10 oponentes, entonces tiene 10 nuevas acciones posibles, atacando a 1 de los 10 oponentes.Aprendizaje de refuerzo con acciones variables

Respuesta

4

Lo que describes no es nada inusual. El aprendizaje de refuerzo es una forma de encontrar la función de valor de un Markov Decision Process. En un MDP, cada estado tiene su propio conjunto de acciones. Para continuar con la aplicación de aprendizaje de refuerzo, debe definir claramente cuáles son los estados, acciones y recompensas en su problema.

0

Si tiene varias acciones para cada soldado que están disponibles o no según algunas condiciones, puede modelar esto como una selección de un conjunto de acciones fijas. Por ejemplo:

  • crear un "valor de uso" para cada uno de todo el conjunto de acciones para cada soldado
  • elegir la más alta acción valorada, haciendo caso omiso de esas acciones que no están disponibles en un momento dado

Si tiene múltiples objetivos posibles, se aplica el mismo principio, excepto que esta vez modela su función de utilidad para tomar la designación de destino como un parámetro adicional y ejecutar la función de evaluación varias veces (una para cada objetivo). Usted elige el objetivo que tiene la "utilidad de ataque" más alta.

+0

Como dije, los soldados tienen un número variable de acciones también. ¿Qué quieres decir con hacer que el objetivo de ataque sea un parámetro? – Cerin

+0

Es decir: haga que el algoritmo RL tome cierta información sobre el objetivo o acción específica que está considerando como una entrada adicional. Luego puede aplicarlo a múltiples objetivos y/o acciones según sea necesario. Simplemente vuelve a ejecutar el algoritmo con diferentes objetivos y/o información de acción para cada uno que esté considerando. – mikera