Difference between revisions of "POMDP - Drahomír Mrózek"

From RoboWiki
Jump to: navigation, search
(Ako používať aplikáciu)
(Obrázky)
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Cieľ projektu==
 
==Cieľ projektu==
Cieľom projektu je vytvoriť aplikáciu ktorá vizualizuje fungovanie POMDP, hlavne pre vzdelávacie účely.
+
Cieľom projektu je vytvoriť aplikáciu ktorá vizualizuje fungovanie POMDP, hlavne pre vzdelávacie účely. <br>
 +
[https://en.wikipedia.org/wiki/Partially_observable_Markov_decision_process POMDP wikipedia]
  
 
==Aplikácia==
 
==Aplikácia==
Pre tento účel som vytvoril javascriptovú aplikáciu - [http://www.st.fmph.uniba.sk/~mrozek2/POMDP/ aplikácia].
+
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)).
 +
==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==
Line 11: Line 17:
 
===Pridávanie a odstraňovanie akcií a meraní===
 
===Pridávanie a odstraňovanie akcií a meraní===
 
1. '''Pridanie Akcie''' <br> 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. <br>
 
1. '''Pridanie Akcie''' <br> 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. <br>
2. '''Pridanie Pozorovania''' <br> 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. <br>
+
2. '''Pridanie Pozorovania''' <br> 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". <br>
 
3. '''Odstránenie Akcie/Pozorovania''' <br> Kliknite na tlačítko "Remove action/measurement (číslo akcie/merania)" - nachádza sa na spodku formulára.
 
3. '''Odstránenie Akcie/Pozorovania''' <br> Kliknite na tlačítko "Remove action/measurement (číslo akcie/merania)" - nachádza sa na spodku formulára.
 +
 
===Graf očakávaných hodnôt===
 
===Graf očakávaných hodnôt===
 
1. '''Nastavte horizont''' <br>
 
1. '''Nastavte horizont''' <br>
Line 26: Line 33:
  
 
==Fungovanie aplikácie==
 
==Fungovanie aplikácie==
===Pridávanie a odstraňovanie akcií/meraní===<br>
+
===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.
 
Po pridaní/odstránení akcie/merania sa prekreslí graf pomocou sigma.js . Akcií/meraní môže byť najviac 4.
 
===Simulácia===
 
===Simulácia===
Line 34: Line 41:
 
===Okienko s výsledkami===
 
===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.
 
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==
 
==Video ukážka==
TODO
+
<youtube>7U0aXYPT0Gg</youtube>
 +
 
 
==Zdrojový kód==
 
==Zdrojový kód==
TODO
+
[[Media:POMDP.zip|zdrojový kód projektu]]
 +
 
 
==Stručné vysvetlenie zdrojového kódu==
 
==Stručné vysvetlenie zdrojového kódu==
 
'''control.js''' ovláda zobrazovanie obsahu na stránku.  <br>
 
'''control.js''' ovláda zobrazovanie obsahu na stránku.  <br>

Latest revision as of 13:24, 30 June 2017

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.