2011-03-07 52 views
8

我讀過的所有reinforcement learning算法通常適用於具有固定數量的動作的單個代理。是否有任何強化學習算法用於在考慮可變數量的行爲的同時作出決定?例如,如何在電腦遊戲中應用RL算法,其中一名玩家控制N名士兵,每名士兵都會根據其條件採取隨機數量的動作?你不能爲全球決策者(即「將軍」)制定固定數量的行動,因爲隨着士兵的創建和死亡,可用行動不斷變化。而且你不能在士兵級別制定固定數量的行動,因爲士兵的行動是基於其直接環境的條件。如果士兵看不到對手,那麼它可能只能走路,而如果它看到10個對手,那麼它有10個新的可能動作,攻擊10個對手中的1個。強化學習與變量行動

回答

4

你描述的是沒有什麼不尋常的。強化學習是一種找到Markov Decision Process的價值函數的方法。在MDP中,每個州都有自己的一套行動。要進行強化學習應用程序,您必須清楚地定義您的問題中的狀態,行爲和獎勵。

0

如果你對每個士兵有一些可用或不可用的動作取決於某些條件,那麼你仍然可以將這個動作模型化爲一組固定的動作。例如:

  • 每個每個士兵
  • 的全套動作的創建一個「實用價值」選擇價值最高的動作,而忽略那些無法在給定時間
行動

如果您有多個可能的目標,則應用同樣的原則,但此時您將效用函數建模爲將目標指定作爲附加參數,並多次運行評估函數(每個目標一個)。您挑選具有最高「攻擊實用程序」的目標。

+0

就像我說的,士兵也有不同數量的動作。將攻擊目標設爲參數意味着什麼? – Cerin

+0

我的意思是:讓RL算法獲取有關目標或特定操作的信息,這些信息是您正在考慮的額外輸入。然後,您可以根據需要將其應用於多個目標和/或操作。您只需針對您正在考慮的每個目標和/或操作信息重新運行該算法。 – mikera