# Zkouška 13. 9. 2017

<{ForumPost(poster="ZuzkaD", timestamp=2017-09-16 11:25:52)}>
Zadání příkladů na termínu 13. 9. Je možné, že budou níže drobné nepřesnosti oproti původnímu zadání na zkoušce, ale pokusím se přepsat co nejvěrněji.   
  
První část:   
  
1 - Prolog - Rozděl  
Napište predikát rozdel(+Mnozina,-Rozdeleni), který rozdělí množinu na neprázdné podmnožiny. Všechny možnosti rozdělení pak vrátí spojené v jednom seznamu.   
Příklad:   
rozdel(\[a,b,c],X).  
X = \[ \[a,b,c], \[a,b]\[c], \[a]\[b,c], \[a,c]**, \[a]**\[c] ].  
  
2 - Prolog - Nezávislé množiny  
Napište predikát nez(+Graf,+Vrchol.-NezMn), který vezme graf a jeden jeho zadaný vrchol a postupně vydává všechny jeho největší nezávislé množiny obsahující daný vrchol. Myslím, že jsme si mohli zvolit libovolnou reprezentaci grafu. V příkladě je použito g(V,H), kde V je seznam vrcholů a H je seznam hran  
Příklad:  
nez(g(\[a,b,c,d,e],\[a-b,b-c,b-d,c-d]),a,X),  
X=\[a,c,e];  
X=\[a,d,e].  
  
3 - Haskell - Formule  
Máme typ:   
data Formule = Kost Bool | Not Formule | And Formule Formule | Or Formule Formule  
 a chceme napsat funci gen, která vygeneruje nekonečný seznam složený z formulí:  
Příklad:  
gen = \[ Konst True, Konst Flase, Not True, Not False, And True True, ...  
  
4 - Haskell - Řád prvků  
  
Stejné zadání jako tady příklad 1, akorát jsme to měli psát v Haskellu: [http://forum.matfyz.info/viewtopic.php?f=169&t=11043](http://forum.matfyz.info/viewtopic.php?f=169&t=11043)   
  
Druhá část: Velký příklad:   
Máme seznam vzorků a každý z nich potřebujeme otestovat na několika přístrojích (dostaneme zadáno, u každého vzorku, na jakých přístrojích ho máme otestovat), taky dostaneme zadáno, jak dlouho trvá měření pro příslušnou dvojici přístroj-vzorek a celkový čas T. Pokud vzorek změříme na všech přístrojích, dostaneme odměnu. Výše odměny je zadána pro každý vzorek jako cena c(V).  
Na jednom přístroji lze v jednom okamžiku měřit jen jeden vzorek a jeden vzorek lze v jednom okamžiku měřit jen na jednom přístroji.   
Cílem je naplánovat kdy budeme co měřit na jakém přístroji, abychom maximalizovali odměnu v čase do T.   
Příklad je NP, cílem je vymyslet a použít nějakou heuristiku, abychom neprohledávali všechny možnosti.****
<{/ForumPost}>

