web-dev-qa-db-ja.com

マルチエージェントゲームのためのOpenaiジム環境

マルチエージェントゲームに openaiジム環境 を使用することは可能ですか?具体的には、4人のプレイヤー(エージェント)がいるカードゲームをモデル化したいと思います。ターンを獲得したプレイヤーは、次のターンを開始します。プレイヤー間の必要な調整をどのようにモデル化しますか(たとえば、次は誰の番ですか)?最終的には、互いに対戦する4つのエージェントで強化学習を使用したいと思います。

13
Martin Studer

はい、マルチエージェントゲームにOpenAIジム環境を使用することは可能です。 OpenAIジムコミュニティでは 標準化されたインターフェイスはありません マルチエージェント環境の場合ですが、これをサポートするOpenAIジムを構築するのは簡単です。たとえば、OpenAIの 最近の作業 マルチエージェントパーティクル環境で マルチエージェント環境を作成します これはgym.Envから継承します。これは次の形式を取ります。

class MultiAgentEnv(gym.Env):

    def step(self, action_n):
        obs_n    = list()
        reward_n = list()
        done_n   = list()
        info_n   = {'n': []}
        # ...
        return obs_n, reward_n, done_n, info_n

step関数がアクションのリスト(エージェントごとに1つ)を取り、環境を前進させながら、観測のリスト、報酬のリスト、完了のリストを返すことがわかります。このインターフェースは マルコフゲーム を表しており、すべてのエージェントが同時にアクションを実行し、それぞれが独自の後続の観察、報酬を観察します。

ただし、この種のマルコフゲームインターフェイスは、すべてのマルチエージェント環境に適しているとは限りません。特に、ターンベースのゲーム(カードゲームなど)は、エージェントがターンを行う交互マルコフゲームとしてキャストする方がよい場合があります。 (つまりアクション)一度に1つずつ。この種の環境では、状態の表現にどのエージェントの順番を含める必要がある場合があります。そうすると、ステップ関数は1つのアクションを実行し、1つの観測、報酬、および完了を返します。

1
Jon Deaton

マルチエージェントの深い決定論的ポリシー勾配がありますMADDPGアプローチはOpenAIチームによって実装されています。

これは、開始するためのリポジトリです。 https://github.com/openai/multiagent-particle-envs

強化学習のための特定のマルチエージェント環境があります ここ 。これは、任意のプログラミング言語で記述された任意の数のエージェントをサポートします。たまたまカードゲームであるサンプルゲームがすでに実装されています。

0
CodeKid