/// ADRESAROVA STRUKTURA ///////////////////////////////////////

./route_design_app/
│   learn.py
│   optimal_path.py
│   vysledky.zip
│
├───envs/
│   │   CGraph.py
│   │   GraphEnv.py
│   │   __init__.py
│
├───graphs/
│       suche_vrbne.csv
│
└───logs/

/// SOUBORY ///////////////////////////////////////////////////
learn.py - ucici skript, definovani typu agenta a delky uceni, vypis pro uzivatele a do csv
optimal_path.py - skript pro nalezeni optimalni trasy v grafu
vysledky.zip - soubor vysledku v csv souborech. Jmeno csv je ve formatu

'model-strategie-pocet kroku-pocet epizod-delka behu v sekundach-nejkratsi trasa-nejdelsi trasa-cas ulozeni souboru'

sloupce csv souboru:
episodes - cislo epizody
step_cnt - pocet kroku ubehlych za epizodu
step_cnt_total - kumulativni soucet ubehlych kroku
reward_ep - odmena ziskana za epizodu
reward_total - kumulativni odmena
hops_ep - pocet prechodu mezi uzly za epizodu
hops_total - kumulativni pocet prechodu mezi uzly
final_path_hops - pocet prechodu mezi uzly ve vysledne trase
final_path_dist - delka vysledne navrzene trasy
final_path - vysledna navrzena trasa
path_ep_len - delka cele trasy, kterou agent prosel behem epizody
path_ep - trasa, kterou agent prosel behem epizody


envs/CGraph.py - trida pro grafovou reprezentaci silnicni site
envs/GraphEnv.py - prostredi pro agenta; pridelovani odmen; navrh finalni trasy; logovani
__init__.py - pro ucely importovani ze souboru v adresari

graphs/*.csv - soubor definujici graf silnicni site. CSV je ve formatu
'pocatecni uzel hrany, koncovy uzel hrany, delka hrany'

logs/ - adresar pro ukladani logu

/// POZADAVKY PRO SPUSTENI APLIKACE //////////////////////////
python 3.7+ and PyTorch >= 1.11
nainstalovana knihovna numpy
nainstalovana knihovna scikit-learn
nainstalovana knihovna networkx
nainstalovana knihovna Stable Baselines3 vcetne contrib modulu

/// SPUSTENI APLIKACE /////////////////////////////////////////
prikaz pro spusteni:
   python learn.py <graf> <model> <pocet kroku>
kde 
   <graf> je cesta k csv grafu, napr. "graphs/suche_vrbne.csv"
   <model> je "DQN", "A2C", "PPO" nebo "MPPO"
   <pocet kroku> je pocet kroku v tisicich

