Tento projekt je vyvíjen jako úkol do kurzu zaměřeného na Reinforcement Learning a tvorbu AI agentů. Agent simuluje a učí se vyplňovat registrační formulář pomocí Q-learningu v rámci virtuálního prostředí. Veškeré učení i vyplňování formuláře probíhá pouze v tomto izolovaném virtuálním prostředí (sandboxu), implementovaném třídou RegistrationEnvironment
, které modeluje stav formuláře a jeho reakce na akce agenta, bez reálného odesílání dat.
- 🕹️ Prostředí simulující registraci (
RegistrationEnvironment
) - 🧠 Q-learning agent (
QAgent
) - 💾 Ukládání a načítání Q-tabule pro učení mezi běhy
- 📊 Logování průběhu epizod do CSV souboru s přehlednými daty
- 📈 Vizualizace vývoje odměn během učení v grafu pomocí funkce
show_reward_plot()
- 🗂️ Automatické ukládání grafů s časovým razítkem do složky
graphs
-
Klonujte repozitář
-
Vytvořte a aktivujte virtuální prostředí:
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
-
Nainstalujte požadované knihovny:
pip install -r requirements.txt
Spusťte hlavní skript: python main.py
Agent provede zadaný počet epizod učení, uloží výsledky, vygeneruje a zobrazí graf odměn.
show_plot
.
Pokud je tento parametr nastaven na True
, graf se zobrazí ve zvláštním okně. Po zavření okna grafu se program ukončí.
Pokud graf zobrazovat nechcete, nastavte show_plot=False
při volání funkce show_reward_plot()
.
Program graf vygeneruje a uloží, ale automaticky nezobrazí. Po vygenerování a uložení grafu se program automaticky ukončí bez nutnosti ručního zavírání okna.
📁 logs/agent_log_YYYY-MM-DD.csv – CSV soubor s logy jednotlivých epizod
📁 graphs/reward_history_YYYY-MM-DD_HHMMSS.png – graf odměn uložený s časovým razítkem
💾 Q-tabule uložená v souboru (přes agent.save_q_table()
)
agent/ – moduly agenta, prostředí, konfigurace logs/ – logy epizod ve formátu CSV graphs/ – uložené grafy vývoje odměn
Python 3.8+ knihovny: matplotlib, další dle requirements.txt
Projekt umožňuje snadné rozšíření o jiné algoritmy RL. Logování v CSV usnadňuje analýzu a filtrování výsledků. Vizualizace pomáhá sledovat průběh učení agenta.