Реализация алгоритма Q‑Learning для решения задачи CartPole‑v1 из библиотеки Gymnasium.
Проект реализует обучение агента методом Q‑Learning для управления системой «тележка‑маятник» (CartPole). Агент учится удерживать маятник в вертикальном положении, перемещая тележку влево/вправо.
- Дискретизация непрерывного пространства состояний
- ε‑жадная стратегия исследования
- Постепенное уменьшение параметра ε
- Визуализация прогресса обучения
- Сохранение моделей и логов обучения.
- Ранняя остановка при достижении целевой награды.
После 200 эпизодов агент достигает средней награды около 450, что соответствует успешному решению задачи.
- Обучение агента с визуализацией каждого 10‑го эпизода.
- Построение графиков прогресса обучения и изменения эпсилона.
- Сохранение Q‑таблицы в формате .npy.
- Логирование результатов в CSV‑файл.
- Чекпоинты моделей через заданные интервалы.
- Python 3.8+
- Зависимости из
requirements.txt
См. docs/installation.md.
См. docs/usage.md.
```text
CartPole-Q-Learning/
├── src/
│ ├── __init__.py
│ └── q_learning_cart_pole.py
├── data/
│ └── (здесь будут сохраняться q_table.npy и графики)
├── docs/
│ ├── README.md
│ ├── installation.md
│ └── usage.md
├── requirements.txt
├── .gitignore
└── LICENSE
MIT