2011-03-07 4 views
8

Tous les algorithmes reinforcement learning que j'ai lus sont généralement appliqués à un seul agent ayant un nombre d'actions défini. Existe-t-il des algorithmes d'apprentissage par renforcement pour prendre une décision en tenant compte d'un nombre variable d'actions? Par exemple, comment appliqueriez-vous un algorithme RL dans un jeu informatique où un joueur contrôle N soldats, et chaque soldat a un nombre aléatoire d'actions en fonction de son état? Vous ne pouvez pas formuler un nombre fixe d'actions pour un décideur global (c'est-à-dire "le général") car les actions disponibles changent continuellement à mesure que les soldats sont créés et tués. Et vous ne pouvez pas formuler un nombre fixe d'actions au niveau du soldat, puisque les actions du soldat sont conditionnelles en fonction de son environnement immédiat. Si un soldat ne voit aucun adversaire, alors il peut seulement être capable de marcher, alors que s'il voit 10 adversaires, alors il a 10 nouvelles actions possibles, attaquant 1 des 10 adversaires.Apprentissage par renforcement avec des actions variables

Répondre

4

Ce que vous décrivez n'a rien d'inhabituel. L'apprentissage par renforcement est un moyen de trouver la fonction de valeur d'un Markov Decision Process. Dans un MDP, chaque état a son propre ensemble d'actions. Pour procéder à l'application d'apprentissage par renforcement, vous devez définir clairement les états, les actions et les récompenses dans votre problème.

0

Si vous avez un nombre d'actions disponibles ou non pour chaque soldat selon certaines conditions, vous pouvez toujours modéliser cette action en sélectionnant un ensemble d'actions défini. Par exemple:

  • Créer une « valeur d'utilité » pour chacun l'ensemble des actions pour chaque soldat
  • Choisissez l'action d'une valeur plus élevée, sans tenir compte des actions qui ne sont pas disponibles à un moment donné

Si vous avez plusieurs cibles possibles, le même principe s'applique, sauf que vous modélisez votre fonction d'utilité pour prendre la désignation de cible comme paramètre supplémentaire et exécutez la fonction d'évaluation plusieurs fois (une pour chaque cible). Vous choisissez la cible qui a le plus grand "utilitaire d'attaque".

+0

Comme je l'ai dit, les soldats ont aussi un nombre variable d'actions. Que voulez-vous dire en faisant de la cible de l'attaque un paramètre? – Cerin

+0

Je veux dire: faites en sorte que l'algorithme RL prenne des informations sur la cible ou l'action spécifique que vous considérez comme une entrée supplémentaire. Vous pouvez ensuite l'appliquer à plusieurs cibles et/ou actions si nécessaire. Vous venez de réexécuter l'algorithme avec différentes cibles et/ou informations d'action pour chacun de ceux que vous envisagez. – mikera

Questions connexes