Detail předmětu

Matematické základy informatiky

FSI-VZIAk. rok: 2025/2026

Kurz seznamuje studenty se základy matematické informatiky. Jsou diskutovány formální jazyky a gramatiky a nástroje pro zpracování slov v těchto jazycích.
Dalším tématem je predikátový počet, metody dokazování pravdivosti logických formulí a klasifikace složitosti problémů s vymezením tříd P a NP.
Jako vyjadřovacího jazyka je užito C/Python. Je demonstrováno praktické využití vět a důsledků při implementaci jednoduchých technických aplikací.
Kurz završují základy teorie grafů, zahrnují algoritmy prohledávání grafů, eulerovských tah a hamiltonovských cest, hledání nejkratší cesty, minimální kostry, toků v sítích, barvení grafů a aplikace struktur počítačové geometrie.

Jazyk výuky

čeština

Počet kreditů

6

Vstupní znalosti

Předpokládá se znalost algoritmizace, strukturovaného přístupu k řešení problémů a znalost metodiky tvorby neobjektových programů.

Pravidla hodnocení a ukončení předmětu

Požadavky k zápočtu: je vyžadován samostatně vypracovaný softwarový projekt, který důsledně používá přednášených metodik. Zpracování projektu je kontrolováno a konzultováno průběžně. Zkouška probíhá obvyklým způsobem.
Účast na přednáškách je žádoucí, na cvičeních povinná. Výuka běží podle týdenních plánů. Způsob nahrazení zameškaných cvičení je plně v kompetenci vyučujícího.

Učební cíle

Cílem předmětu je seznámit studenty se základními matematickými strukturami oboru a metodikou jejich možných implementací. To je úvodem do vhodností a přiměřeností jejich použití.
Kvalifikovaná tvorba a používání netriviálních objektově orientovaných implementací základních matematických struktur oboru.

Základní literatura

Češka, M., Vojnar, T.: Studijní text k předmětu Teoretická informatika, 2020 (http://www.fit.vutbr.cz/study/courses/TIN/public/Texty/TIN-studijni-text.pdf). (CS)
Greenshaw, R. and Hoover, H.J.: Fundamentals of the Theory of Computation Principle and Practice. Morgan Kaufmann, 1998. (EN)
Jungnickel, D: Graphs, networks and algorithms, 4th edition. Springer Berlin, Heidelberg, 2013. (EN)
Matoušek, J., Nešetřil, J.: Kapitoly z diskrétní matematiky. 3., upr. a dopl. vyd. V Praze: Karolinum, 2007. (CS)
Meduna, A., Švec, M.: Grammars with context conditions and their applications. Wiley, 2005. (EN)
Sipser, M.: Introduction to the Theory of Computation, 3rd edition. Cengage Learning, 2013. (EN)

Doporučená literatura

Brookshear, J.G. : Theory of Computation: Formal Languages, Automata, and Complexity, The Benjamin/Cummings Publishing Company, Inc, Redwood City, California, 1989. (EN)
Meduna, A.: Formal Languages and Computation. New York, Taylor & Francis, 2014. (EN)

Zařazení předmětu ve studijních plánech

  • Program N-AIŘ-P magisterský navazující 1 ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

1. Úvod.
2. Seznam, fronta, zásobník, návrhy reprezentace a implementace.
3. Prohledávání grafu do šířky, do hloubky, smíšené prohledávání; využití fronty a zásobníku. rámcově použití. AND-OR grafy.
4. Eulerovské tahy, hamiltonovské cesty.
5. Nejkratší cesta, minimální kostra.
6. Toky v sítích, barvení grafu.
7. Voroného diagramy a Delaunayho triangulace.
8. Formální jazyky a gramatiky, Chomského klasifikace.
9. Regulární gramatiky a konečné automaty.
10. Bezkontextové gramatiky a zásobníkové automaty.
11. Turingův stroj, vyčíslitelnost, složitost algoritmu.
12. Třídicí/řadicí algoritmy
13. Shrnutí probírané látky.

Cvičení s počítačovou podporou

26 hod., povinná

Vyučující / Lektor

Osnova

1. Zásady zvýšení bezpečnosti kódu, oddělení režijních a datových tříd.
2. Implementace seznamu.
3. Implementace fronty a zásobníku.
4. Implementace stromu.
5. Implementace obecného orientovaného grafu, prohledávání I.
6. Implementace obecného orientovaného grafu, prohledávání II, hledání cesty.
7. Implementace ohodnocení grafu; příklady využití.
8. Prohledávání speciálních grafových topologií; příklady využití.
9. Návrh řešení jednoduchých problémů realizovaných prohledáváním orientovaného ohodnoceného grafu.
10. Implementace konečného automatu bez zásobníku.
11. Implementace konečného automatu se zásobníkem.
12. Implementace lingvistické proměnné, implikace.
13. Zápočet.