本ライブラリはpython uvを使って依存関係を管理しています。
-
uv {仮想環境名(なんでもよい、venvなど)}として仮想環境を作り, その中に入る -
uv syncで必要なパッケージをインストール -
使用するアルゴリズムのハイパーパラメータを調整。つまり、
config/{使用するアルゴリズム名}.yamlのdefault部分を変更してください。 -
uv run main.py --algorithm_name "使用するアルゴリズム名"で学習を実行します.--algorithm_name には MAT,RMAPPO,IPPO,HAPPO,QMIX,VDN のいずれかを指定できます。
▼ コマンド入力例
uv run main.py --algorithm_name MAT
以下のパラメータは,コマンドライン引数(--)で指定できます.
--num_rollout_threads: 並列環境数--episode_length: エピソード長--num_agents: エージェント数--num_env_steps: 訓練する総ステップ数--use_env: 使用する環境名--log_interval: ログを表示するインターバル--user_name: ユーザー名(WandB等のログ用)
▼ コマンド入力例
uv run main.py --algorithm_name MAT --num_rollout_threads 32 --episode_length 50 --num_agents 4 --num_env_steps 10000000 --log_interval 1000 --user_name "DemoUser"使い方の例を示す。Demo Userのタスクとしてマルチエージェント経路計画を用意してある。
- オレンジ、紫、赤、緑のエージェントは必ず決まった位置(赤=(0, 0), 緑=(5, 0), 紫=(5, 5), オレンジ=(0, 5))からスタートする。
- エージェントは前後左右にしか動けない。
- 黒色のマスには移動できない。枠の外に出ようとしたら、そのままとどまる。同じマス目に移動しようとしたら、オレンジ、紫、赤、緑の優先順で移動する。
- ゴールに到達したら+1
- 観測は [オレンジの(x,y), オレンジのゴール(x,y)] + [紫の(x,y), 紫のゴール(x,y)] + [赤の(x,y), 赤のゴール(x,y)] + [緑の(x,y), 緑のゴール(x,y)] [自分の色インデックス(オレンジなら0、紫なら1、赤なら2、緑なら3)]
JAXベースのマルチエージェント深層強化学習ライブラリがある。汎用型ではないと思うが、主要なライブラリを抑えているので今後の参考にする。


