Novinky

Zápočty bude zapisovat pan Vais, až přijdete na zkoušku.

Ve studijních podkladech pro cvičení kódování byla chyba v řešení příkladu 4. Stáhněte si prosím upravený soubor cviceni kodovani reseni.pdf. Děkuji studentovi, který mě na chybu upozornil.

Studijní podklady pro středeční cvičení, náhrada za rektorský den. Prosím nesdílejte mimo ZČU.

V letošním roce jsme na cvičení vynechali minimalizaci automatu. Pokud byste se to rádi naučili, můžete si o tom přečíst zde.

Dokončení úlohy na převod regulárního výrazu na konečný automat – převod na deterministický automat.

Zápočtová písemka se kvůli distanční výuce odkládá na neurčito.

Zadání semestrálních prací na předmět TI

Zápočet z předmětu Teoretická informatika získáte za úspěšné napsání písemné práce a za zpracování semestrální práce v uspokojivé kvalitě. Pokud bude práce nedostatečná, dostanete ji zpět k doplnění. Téma se zadává na cvičení ve čtvrtém týdnu. To abyste už měli nějaké znalosti o konečných automatech a rozuměli zadání.

Práci odevzdejte nejlépe předposlední týden semestru, to jest kolem 9.12.2020, abyste poslední týden mohli dostat zápočet. Práci samozřejmě můžete odevzdat i kdykoliv dřív.

Nejzazší termín odevzdání se odvíjí od mezního termínu pro získání zápočtu a zkoušky, což je 31.8.2021. Počítejte s tím, že budu potřebovat čas, abych vaši práci zhodnotil. Vy pak možná budete potřebovat pár dnů (nocí), abyste práci doplnili podle mých připomínek. Dejte pozor, abyste po získání zápočtu ještě stihli nějaký zkouškový termín.

Formální náležitosti

Konkrétní témata

Seznam přidělených prací najdete zde.

Rozhodnete-li se později, že chcete na nějakém tématu pracovat ve dvojici, dávám tu možnost do konce října. Pokud už by měl každý z dvojice vybrané zadání, zvolíte si jedno.

Zadání úloh jsou volnější, proto na jednom tématu může pracovat více studentů. Maximální počet řešitelů záleží na povaze zadání. Detaily všech zadání si upřesníme ústně. Při tom uvítám vaši iniciativu. Nejlepší bude, když přijdete s vlastní představou, jak by to mělo fungovat. Já vám pak případně řeknu, co máte přidat nebo udělat jinak.

složitý výdejní automat

automat na kafe raději ne, je trapně jednoduchý

možný je třeba automat na jízdenky se zónami, automat na vlakové jízdenky

bude možné zvolit zónu, nebo nástupní a výstupní stanici, zlevněnou jízdenku, zpáteční jízdenku

automat může umět číst nějakou zákaznickou kartu

nákup bude možno stornovat (i po vhození několika mincí)

automat by měl sledovat zbývající zásoby zboží

pro zjednodušení může automat vracet jen v jednotlivých korunách

v modelu pravděpodobně využijete pomocné stavové proměnné (počítání vhozených mincí)

křižovatka

řízení složité silniční křižovatky (alespoň šest semaforů pro auta, semafory pro chodce)

činnost automatu musí jít nějak ovlivnit (tlačítky pro chodce, detekcí čekajících aut, ...)

můžete udělat model reálné křižovatky, případně vymyslet vlastní

jako vzor mohou sloužit např. křižovatky označené na mapě

příklad vymyšlené křižovatky

zdymadlo

řízení provozu zdymadla, ovládání vrat, spouštění čerpadel, lodě mohou plout v obou směrech

zabezpečovací systém

zabezpečení budovy, čidla na dveřích, oknech, v místnostech, kód pro vypnutí systému

při otevření okna se ihned spustí poplach, při otevření dveří se bude chvíli čekat na zadání kódu, …

podrobný návrh funkce je popsán tady, ale klidně udělejte něco vlastního

nádraží

řízení železniční dopravy na více kolejích, ovládání semaforů, výhybek, řešení vyhýbání vlaků

inspirovat se můžete hrou Train Traffic Control (jestli vyhrajete druhý level, dejte vědět)

podrobný návrh je popsán tady, ale klidně udělejte něco vlastního

kompozice automatů

vytvořte software, který provede kompozici dvou deterministických konečných automatů

vstupní i výstupní automaty budou uloženy v textovém souboru

testovací data

převod NKA na DKA

vytvořte software, který převede nedeterministický konečný automat na deterministický

vstupní i výstupní automaty budou uloženy v textovém souboru

testovací data

minimalizace automatu

vytvořte software, který provede minimalizaci deterministického konečného automatu

vstupní i výstupní automaty budou uloženy v textovém souboru

testovací data

kodér/dekodér čárového kódu EAN-13

úloha na kódování – nebudete dělat automat, ale jen program (software)

vstupem pro kódování bude 12místné číslo

kodér spočítá 13. kontrolní číslici

dekodér bude detekovat chyby

čárový kód je řetězec nul a jedniček; 0 značí bílou, 1 černou

šířka čáry je dána počtem opakování 0 nebo 1

vlastní zadání

zadání dle vlastního uvážení; nutno nechat si schválit od vedoucího cvičení

např. řízení složitějšího stroje nebo výrobního procesu, pomůcka pro hraní komplexní deskové hry, umělá inteligence pro počítačovou hru

problém by měl být nelineární, tedy ne že automat začne ve stavu 1, přejde do stavu 2, pak 3, 4 a nakonec se vrátí zase do 1