POMDP - Drahomír Mrózek

From RoboWiki
Jump to: navigation, search

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

POMDP example1.png POMDP menu.png POMDP graph.png POMDP simulation.png

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

zdrojový kód projektu

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.