Vyučující
|
-
Kolařík Miroslav, doc. RNDr. Ph.D.
|
Obsah předmětu
|
Předmět podrobněji seznamuje studenty s logickým programováním, nad rámec úvodního představení v magisterském studiu. Je zaměřen na teoretické aspekty logického programování související se sémantikami logického programu, modely jeho výpočtu a propojením s predikátovou logikou. Logické programování. Logický program a jeho sémantika: Logické paradigma jako jedno z paradigmat programování. Definitní programy a jejich syntaxe. Klauzule, fakta, pravidla a dotazy. 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 klausulí, korektní odpovědi. Čisté logické programování a PROLOG. Procedurální sémantika logického programu. Rekurzivní datové struktury: konečné a nekonečné Herbrandovy modely. Rekurzivní pravidla. 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. Činnost zásobníku během výpočtu PROLOGu, backtracking, nalezení alternativních řešení. Řezy a negace v logickém programování: 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ů. Teoretické přístupy k negaci: předpoklad uzavřenosti světa; negace pomocí neúspěchu v konečně mnoha krocích. Problém neexistence Herbrandovského modelu při použití negace. SLDNF-rezoluce. Zavedení negace pomocí řezu. Logické programování a matematická logika: propojení logického programování a klasické predikátové logiky. Logický program jako teorie prvního řádu. Herbrandovské modely jako struktury prvního řádu. Princip obecné rezoluční metody a její adaptace pro definitní programy. Korektnost a úplnost SLD-rezoluce.
|
Studijní aktivity a metody výuky
|
Dialogická (diskuze, rozhovor, brainstorming), Metody práce s textem (učebnicí, knihou)
- Příprava na zkoušku
- 120 hodin za semestr
|
Výstupy z učení
|
Studenti se seznámí s logickým programováním.
1. Znalost Popsat a důkladně pochopit principy a metody logického programování.
|
Předpoklady
|
nespecifikováno
|
Hodnoticí metody a kritéria
|
Ústní zkouška
Plnění zadaných úkolů. Složení zkoušky.
|
Doporučená literatura
|
-
Bratko, I. (2011). Prolog, Programming for Artificial Intelligence. Addison Wesley.
-
Jirků P. a kol. (1991). Programování v jazyku Prolog. SNTL, Praha.
-
Lloyd, J. W. (1987). Foundations of Logic Programming. Springer-Verlag, New York (second edition).
-
M. Kifer, Y. A. Liu. (2018). Declarative Logic Programming: Theory, Systems, and Applications. Morgan & Claypool.
-
Nerode A., Shore R. A. (1997). Logic for Applications. Springer-Verlag, New York (second edition).
-
Nilsson U., Maluszynski J. (1995). Logic, programming and PROLOG, el. verze: http://www.ida.liu.se/~ulfni/lpp/. John Wiley & Sons Ltd., Chichester (druhé vydání).
|