Difference between revisions of "POMDP - Drahomír Mrózek"
(→Obrázky) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
Pre tento účel som vytvoril javascriptovú aplikáciu - [http://www.st.fmph.uniba.sk/~mrozek2/POMDP/ aplikácia online]. | Pre tento účel som vytvoril javascriptovú aplikáciu - [http://www.st.fmph.uniba.sk/~mrozek2/POMDP/ aplikácia online]. | ||
Používa knižnice sigma (kreslenie grafov (vrcholy a uzly)) a plotly (kreslenie grafov (ten druhý význam)). | Používa knižnice sigma (kreslenie grafov (vrcholy a uzly)) a plotly (kreslenie grafov (ten druhý význam)). | ||
− | [[Image:POMDP_example1.png]] | + | ==Obrázky== |
+ | [[Image:POMDP_example1.png|x200px]] | ||
+ | [[Image:POMDP_menu.png|x300px]] | ||
+ | [[Image:POMDP_graph.png|x200px]] | ||
+ | [[Image:POMDP_simulation.png|x200px]] | ||
+ | |||
==Ako používať aplikáciu== | ==Ako používať aplikáciu== | ||
=== Výber počtu stavov === | === Výber počtu stavov === |
Latest revision as of 13:24, 30 June 2017
Contents
Cieľ projektu
Cieľom projektu je vytvoriť aplikáciu ktorá vizualizuje fungovanie POMDP, hlavne pre vzdelávacie účely.
POMDP wikipedia
Aplikácia
Pre tento účel som vytvoril javascriptovú aplikáciu - aplikácia online. Používa knižnice sigma (kreslenie grafov (vrcholy a uzly)) a plotly (kreslenie grafov (ten druhý význam)).
Obrázky
Ako používať aplikáciu
Výber počtu stavov
Počet stavov - N - je medzi 2 a 4. Stavy sú očíslované 0 - (N-1). Stav N označuje konečný stav.
Pridávanie a odstraňovanie akcií a meraní
1. Pridanie Akcie
Do tabuľky pravdepodobností na pozíciu [x][y] vložte pravdepodobnosť prechodu zo stavu x do stavu y. Do tabuľky odmien vložte na pozíciu [x][y] odmenu za prechod zo stavu x do stavu y. Kliknite na "Add action" Pravdepodobnosti sú pre každý riadok (východzí stav) normalizované aby sa rovnali 1.
2. Pridanie Pozorovania
Do tabuľky pravdepodobností merania na pozíciu [x] vložte pravdepodobnosť že meranie v stave x vráti 'true'. Do poľa ceny vložte cenu merania. Kliknite na "Add measurement".
3. Odstránenie Akcie/Pozorovania
Kliknite na tlačítko "Remove action/measurement (číslo akcie/merania)" - nachádza sa na spodku formulára.
Graf očakávaných hodnôt
1. Nastavte horizont
2. Nastavte vieru
Pre 2 stavy ktorých vieru chcete interpolovať nastavte vieru na "x" a "y". Pre ostatné stavy vyberte ako vieru konštantu. Súčet konštantných vier nesmie byť >1.
Pokiaľ žiadnu vieru nenastavíte ako "x" alebo "y", budú interpolované prvé dva stavy.
3. Kliknite na "Plot"
Simulácia
1. Nastavte horizont
2. Nastavte počiatočnú vieru robota
(viera bude normalizovaná aby sa jej súčet rovnal 1).
3. Nastavte počiatočný stav robota (0 až N-1)
4. Kliknite na "Simulate".
Fungovanie aplikácie
Pridávanie a odstraňovanie akcií/meraní
Po pridaní/odstránení akcie/merania sa prekreslí graf pomocou sigma.js . Akcií/meraní môže byť najviac 4.
Simulácia
Pre všetky akcie/merania sa na základe súčasnej viery a horizontu rekurzívne spočíta očakávaná dlhodobá odmena. Robot vyberie akciu s najväčšou odmenou a vykoná ju. Do okienka výsledkov sa vypíše viera, skutočný stav robota, ktorú akciu si robot vybral s akou očakávanou dlhodobou/okamžitou odmenou, skutočná odmena, a nová viera robota. Pokiaľ si robot vybral akciu, navyše sa vypíše aj jeho nový skutočný stav. Ak si vybral meranie, vypíše sa výsledok merania (ktorý závisí na jeho skutočnom stave).
Vykreslenie grafu očakávaných hodnôt
Interpoluje vieru medzi stavmi x a y (ich súčet je 1 - súčet konštantných vier ostatných stavov) po krokoch 0.0025 . Pre každú vieru a akciu/meranie spočíta dlhodobú očakávanú odmenu pre daný horizont. Pomocou plotly.js vykreslí graf.
Okienko s výsledkami
Do tohto okienka sa vypisuje výsledok simulácií a graf očakávaných hodnôt. Môžete ho zavrieť stlačením krížika.
Video ukážka
Zdrojový kód
Stručné vysvetlenie zdrojového kódu
control.js ovláda zobrazovanie obsahu na stránku.
expected_value.js obsahuje funkcie pre počítanie očakávaných hodnôt akcií/meraní.
data_structire.js konštruuje a mení objekt 'data'.
simulate.js simuluje a plot.js plotuje.