Vyučující
|
-
Kolařík Miroslav, doc. RNDr. Ph.D.
-
Balun Jiří, Mgr.
|
Obsah předmětu
|
Kurz seznamuje posluchače s logickým programováním a jeho teoretickým modelem založeným na predikátové logice. Kurz obsahuje teoretické pasáže věnující se syntaxi a sémantice logických programů a jejich vztahu k teoriím v predikátové logice. Pozornost je dále věnována činnosti překladače jazyka PROLOG. Na závěr kurzu jsou ukázány aplikace logického programování v expertních a databázových systémech. <ol> <li> Opakování relevantních pojmů z predikátové logiky. Rezoluční odvozovací pravidlo. <li> Základy logického programování. Logický program a jeho sémantika. Logické paradigma jako jedno z paradigmat programování. <li> Definitní programy a jejich syntaxe. Klauzule, fakta, pravidla a dotazy. <li> Deklarativní sémantika definitního programu: herbrandova struktura, herbrandův model, nejmenší herbrandův model a jeho nalezení. Sémantické vyplývání z definitních programů. Substituce, aplikace substituce, uzavřené instance klauzulí, korektní odpovědi. Čisté logické programování a PROLOG. <li> Procedurální sémantika logického programu. Rekurzivní datové struktury. Rekurzivní pravidla. Rekurzivní datové struktury. Unifikace. Nedeterministická inference. Metody odstranění nedeterminismu. Nejobecnější unifikátor a jeho nalezení. Procedurální sémantika definitního programu. Vztah deklarativní a procedurální sémantiky: korektní odpovědi versus vypočtené odpovědi. <li>Činnost zásobníku během výpočtu PROLOGu, backtracking, nalezení alternativních řešení. <li> Metalogický predikát řezu. Výpočtová efektivita a řezy. Řízení výpočtu pomocí řezů. Činnost zásobníku během výpočtu PROLOGu obohaceného o řezy. Vytváření podmínek a cyklů pomocí vestavěných predikátů. <li>Teoretické přístupy k negaci: předpoklad uzavřenosti světa; negace pomocí neúspěchu v konečně mnoha krocích. Zavedení negace pomocí řezu. <li> Zabudovaná aritmetika. Modifikace databáze faktů a pravidel. Aplikace logického programování v databázových a expertních systémech. </ol>
|
Studijní aktivity a metody výuky
|
Přednášení, Demonstrace
|
Výstupy z učení
|
Studenti se seznámí se základními pojmy z logického programování.
Analyzovat problém a napsat logický program pro jeho řešení.
|
Předpoklady
|
nespecifikováno
|
Hodnoticí metody a kritéria
|
Ústní zkouška, Písemná zkouška
Aktivní účast v hodině. Plnění zadaných úkolů. Složení ústní (příp. písemné) zkoušky.
|
Doporučená literatura
|
-
Bratko I. (2001). PROLOG Programming for Artificial Intelligence. Addison Wesley (third edition).
-
Jirků P. a kol. (1991). Programování v jazyku Prolog. SNTL, Praha.
-
K. Doets. (1994). From Logic to Logic Programming. The MIT Press.
-
Lloyd J.-W. (1987). Foundations of Logic Programming. Springer, New York.
-
M. Kifer, Y. A. Liu. (2018). Declarative Logic Programming: Theory, Systems, and Applications. Morgan & Claypool.
-
P. Boizumault. (2014). The Implementation of Prolog. Princeton University Press.
|