Stavový prostor, kódování úlohy do stavového prostoru
Úloha 1: Robotické skladiště

Byli jste najati jednou známou firmou, abyste jim nahradili skladníky novým modelem skladového robota. Nízkoúrovňový pohyb robota za vás řeší někdo jiný, vy tak máte k dispozici následující vysokoúrovňové API:
- NEXT: přijeď k dalšímu regálu
- PREV: přijeď k předchozímu regálu
- FORWARD: popojeď podél regálu dopředu
- BACKWARD: popojeď podél regálu dozadu
- LOAD: nalož balíček na robota
- UNLOAD: vylož balíček z robota na určené místo
Můžete předpokládat, že NEXT a PREV pohybují s robotem v ose X. Naopak FORWARD a BACKWARD pohybují s robotem v ose Y. Robot se nemůže pohybovat skrz regál (musí nejprve vyjet z prostoru mezi regály do uličky). Při současné velikosti skladiště má prostor mezi regály na středu pět zastavení (dána dosahem ruky robota). Na středový regál je možné ukládat zboží ve dvou řadách – jedné přístupné zepředu regálu a jedné přístupné zezadu regálu. V pravém zadním rohu skladiště je nabíjecí stanice, ke které se robot automaticky připojí, pokud na danou pozici přijede. V přední části skladiště je linie, na které roboti odkládají balíčky a za kterou jinak nesmí jet (za linií se pohybují lidé). Touto linií končí vepředu nákres skladiště.
- Navrhněte stavový prostor pro tuto úlohu.
- Robot začíná v nabíjecí stanici. Úlohu můžete rozdělit na tři části – dojeď k regálu pro balíček, dojeď k linii s balíčkem a dojeď do nabíjecího bodu. Jaký bude počáteční stav a koncový stav pro každou z těchto částí?

Úloha 2: Automatické generování umělé neuronové sítě
Ilustrační diagram umělé neuronové sítě
Umělé neuronové sítě jsou jedním z nejrozšířenějších modelů strojového učení. Při návrhu takové sítě musí programátor / datový analytik stanovit celou řadu hyperparametrů (např. jaký typ neuronů bude používat, kolik bude mít síť vrstev, jaké budou u neuronů aktivační funkce, apod.). Pro zjednodušení zde budeme navrhovat pouze dopřednou perceptronovou síť a u této sítě optimalizovat pouze počet skrytých vrstev a počet neuronů v každé z nich. Chceme najít co nejmenší síť (počet neuronů), která bude mít stejnou nebo lepší kvalitu predikce (měřenou např. pomocí F1-score), jako nejlepší dosud ručně nalezená síť.
- Navrhněte stavový prostor pro tuto úlohu.
- Jaký by mohl být výhodný počáteční stav? Jak bychom mohli definovat koncové stavy?
Úloha 3: Doručení balíčku
Zjednodušená mapa ČR
Máte firmu s prodejnami v několika městech (viz mapka). Mezi vybranými prodejnami vaši zaměstnanci pravidelně převážejí zboží. Cestu jednotlivých balíčků checete nově nechat plánovat počítačem. Balíček začíná na prodejně ve městě A (např. Most) a cestuje do prodejny ve městě B (např. Frýdek-Místek).
- Navrhněte stavový prostor pro tuto úlohu.
- Jaký je počáteční stav, jaký je koncový stav?
- Jak se úloha změní, pokud máme zboží skladem na více prodejnách? Tip: Zde můžete plánovat "pozadu" a vycházet z cílového města.
Úloha 4: Hra 2048
Už vás omrzela tato mobilní hra a rozhodli jste se napsat program, který ji vyřeší za vás. Už se vám podařilo napsat načítání dat z displeje telefonu a emulaci gest pro ovládání hry. Zbývá napsat řídící algoritmus.
- Navrhněte stavový prostor pro tuto úlohu. Považujte přidávání dílků 2 a 4 za tahy počítače, který se střídá s hráčem.
- Jaký je počáteční stav, jaký je koncový stav?
Úloha 5: CNC vrtačka
Otvory zadané CNC vrtačce
Dostali jste za úkol napsat program pro CNC vrtačku, který z výchozí pozice objede všechny zadané body a na místě každého bodu vyvrtá otvor. Záleží nám na tom, aby celková uražená vzdálenost byla co nejmenší a vyvrtání tak trvalo co nejkratší dobu.
- Navrhněte stavový prostor pro tuto úlohu.
- Jaký je počáteční stav, jaký je koncový stav?
Úloha 6: Rychlé poslání zprávy
Letence mezi uzly sítě
Máte za úkol přenést zprávu z uzlu U4 do uzlu U16. Na přenos použijete síť z obrázku, která udává latenci v ms mezi uzly síti. Zpráva může jít najednou pouze jedním spojem.
- Navrhněte stavový prostor pro tuto úlohu.
- Jaký je počáteční stav, jaký je koncový stav?