Warning
This page is located in archive.

Student musí vytvořit třídu implementující rozhraní ui.SolutionInterface.

Třída tedy musí implementovat metody

  • solveMDP(Environment environment)
  • getActionForState(StudentStateInterface state)
  • getValueForState(StudentStateInterface state)

1) Metoda solveMDP(Envirinment environment) je volána platformou a studentovi předkládá všechny stavy prostředí tak, že student zavolá metodu environment.getAllStates(). Student obdrží seznam objektů, které implementují rozhraní ui.StudentStateInterface. Toto rozhraní zamlžuje studentovi veškeré informace o stavu (jako pozici, druh stavu apod.), protože k řešení úlohy tyto informace nejsou potřebné. Student může eventuálně nastavit vlastnost prostředí – pravděpodobnost, že akce vyvolá předpokládaný následek – tak, že na začátku metody solveMDP(Envirinment environment) zavolá metodu environment.setProbabilityOfCorrectTransition s hodnotou pravděpodobnosti. Zároveň může student pro získané stavy zjistit jejich ohodnocení (reward) např. takto:

StudentStateInterface stateA = environment.getAllStates().get(0); // prvni stav
double reward = environment.getReward(stateA);

Student také může zjistit pravděpodobnost přechodu ze stavu A do stavu B za použití nějaké konkrétní akce (v tomto případě akce jdi na sever) např. takto:

StudentStateInterface stateB = environment.getAllStates().get(1); // druhy stav
environment.getTransitionProbability(stateA, Action.GO_NORTH, stateB);

Předpokládá se, že v metodě solveMDP(Environment environment) budou všechny náročné výpočty.

2) Jakmile skončí metoda solveMDP(Environment environment) se svými výpočty, platforma začne volat metody getActionForState(StudentStateInterface state) a metodu getValueForState(StudentStateInterface state) a zobrazí jejich výsledky.

3) Metoda getActionForState(StudentStateInterface state) vrátí pro daný stav jednu z možných akcí (z výčtu ui.Action). Stavy lze na shodnost porovnávat pomocí ==, protože platforma studentovi předkládá v metodě getActionForState(StudentStateInterface state) stejné instance stavů, jako ty instance, které student získal z prostředí pomocí environment.getAllStates().

4) Metoda getValueForState(StudentStateInterface state) vrátí pro daný stav hodnotu. Tato hodnota je závislá na použité metodě řešení. Pro porovnávání stavů platí totéž jako v bodě 3).

courses/a3m33ui/ulohy/podrobne_implementacni_pokyny.txt · Last modified: 2013/10/04 13:02 (external edit)