Платформа для изучения алгоритмов обучения с подкреплением
Сценарий simple_2Av3K:
Сценарий 4_rooms_2W:
Сценарий 2_forts_2Av3K со старым багом, когда агенты могли занимать одну клетку
Скачиваем git-репозиторий (следующие команды вводятся в терминале):
# Клонируем репозиторий
git clone https://github.com/Zhurik/nano_rts.git
# Переходим в папку репозитория
cd nano_rts
# Устанавливаем зависимости
pip install -r requirements.txt
# Проверяем работу модуля
python nanoRTS/nanoRTS.py
Если все установлено правильно, то будет выведена текстовая информация о среде в терминал и появится графическое отображение среды.
В репозитории есть пример обычного Q-learning. Для его запуска необходимо запустить файл Q_learning.py
:
python Q_learning.py
По умолчанию обучение будет производиться в сценарии, который указана в переменной DEFAULT_FILE
в Q_learning.py
.
Можно точно передать карту, на которой будет проходить обучение, к примеру:
python Q_learning.py ./scenarios/4_rooms_2W.json
В результате будет создан pickle файл с весами Q-таблицы и txt файл с результатами обучения: винрейт, количестов шагов, длительность и тп.
Скоро будет...
В рерозитории есть пример для ручного управления агентами. Для его запуска необходимо запустить файл manual.py
python manual.py
По умолчанию будет запущена карта, указанная в переменной DEFAULT_FILE
.
Можно передать карту, на котрой будем играть, к примеру:
python manual.py ./scenarios/9_rooms_2W.json
Управление осуществляется путем ввода кодов команд в терминале, к примеру
r a
заставит первого агента шагнуть вправо, а второго - атаковать.
Допускается вводить строчные и заглавные буквы.
R
- шаг вправоL
- шаг влевоU
- шаг вверхD
- шаг вниз
- Все команды из предыдущего пункта
A
- атаковать
- Все команды из предыдущих пунктов
UR
- шаг по диагонали вверх и вправоDR
- шаг по диагонали вниз и вправоUL
- шаг по диагонали вверх и влевоDL
- шаг по диагонали вниз и влевоUU
- скачок на два шага вверхRR
- скачок на два шага вправоDD
- скачок на два шага внизLL
- скачок на два шага влево