IB013 Logické programování Hana Rudová jaro 2013 Hodnocení předmětu Průběžná písemná práce: až 30 bodů (základy programování v Prologu) M pro každého jediný termín: 26.března 3 alternativní termín pouze v případech závažných důvodů pro neúčast 3 vzor písemky na webu předmětu Závěrečná písemná práce: až 1 50 bodů 3 vzor písemky na webu předmětu 3 opravný termín možný jako ústní zkouška M Zápočtový projekt: celkem až 40 bodů M Hodnocení: součet bodů za projekt a za obě písemky M známka A za cca 1 75 bodů, známka F za cca 1 1 0 bodů 3 známka bude zapsána pouze těm, kteří dostanou zápočet za projekt M Ukončení předmětu zápočtem: zápočet udělen za zápočtový projekt Hana Rudová, Logické programování I, 25. února 201 3 2 Organizace předmětu Základní informace Přednáška: účast není povinná, nicméně ... M Cvičení: účast povinná 3 individuální doplňující příklady za zmeškaná cvičení nelze při vysoké neúčasti na cvičení 3 skupina 01, sudá středa, první cvičení 6.března, Hana Rudová M skupina 02, lichá středa, první cvičení 27.února, Adriana Strejčkova M Předpoklad: znalost základů výrokové a predikátové logiky, např. z IB101 M Web předmětu: interaktivní osnova v ISu průsvitky dostupné postupně v průběhu semestru M sbírka příkladů včetně řešení (zveřejněna cca do 8.3.) 3 harmonogram výuky, předběžný obsah výuky během semestru M elektronicky dostupné materiály 3 informace o zápočtových projektech Hana Rudová, Logické programování I, 25. února 201 3 3 Organizace předmětu Rámcový obsah předmětu Obsah přednášky M základy programování v jazyce Prolog M teorie logického programováni M logické programování s omezujícími podmínkami DC gramatiky Obsah cvičení zaměřeno na praktické aspekty, u počítačů M programování v Prologu M logické programování «• logické programování s omezujícími podmínkami Hana Rudová, Logické programování I, 25. února 201 3 4 Organizace předmětu Literatura Bratko, I. Prolog Programming for Artificial Intelligence. Addison-Wesley, 2001. prezenčně v knihovně Clocksin, W. F. - Mellish, Ch. S. Programming in Prolog. Springer, 1 994. Sterling, L. - Shapiro, E. Y. The art of Prolog : advanced programming techniques. MIT Press, 1 987. M Nerode, A. - Shore, R. A. Logic for applications. Springer-Verlag, 1 993. M prezenčně v knihovně Dechter, R. Constraint Processing. Morgan Kaufmann Publishers, 2003. M prezenčně v knihovně + Elektronicky dostupné materiály (viz web předmětu) Hana Rudová, Logické programování I, 25. února 201 3 5 Organizace předmětu rrubezna písemná prace M Pro každého jediný termín 26. března Alternativní termín pouze v závažných důvodech pro neúčast M Celkem až 30 bodů (1 50 závěrečná písemka, 40 projekt) Hana Rudová, Logické programování I, 25. února 201 3 6 Organizace předmětu zna písemná prace M Pro každého jediný termín 26. března Alternativní termín pouze v závažných důvodech pro neúčast M Celkem až 30 bodů (1 50 závěrečná písemka, 40 projekt) M 3 příklady, 40 minut M Napsat zadaný predikát, porovnat chování programů M Obsah: první čtyři přednášky a první dvě cvičení Oblasti, kterých se budou příklady zejména týkat M unifikace seznamy backtracking optimalizace posledního volání 3 řez M aritmetika Ukázka průběžné písemné práce na webu Hana Rudová, Logické programování I, 25. února 201 3 6 Organizace předmětu Zápočtové projekty M Zadání, dotazy, odevzdávání: Adriana Strejčkova Týmová práce na projektech, až 3 řešitelé 3 zápočtové projekty dostupné přes web předmětu M Podrobné pokyny k zápočtovým projektům na webu předmětu M bodování, obsah předběžné zprávy a projektu typ projektu: LP, CLP M Předběžná zpráva 3 podrobné zadání M vjakém rozsahu chcete úlohu řešit 3 které vstupní informace bude program používat a co bude výstupem programu 3 scénáře použití programu (tj. ukázky dvojic konkrétních vstupů a výstupů) Hana Rudová, Logické programování I, 25. února 201 3 7 Organizace předmětu Časový harmonogram k projektům M Zveřejnění zadání (většiny) projektů: 26. února Zahájení registrace řešitelů projektu: 13. března, 19:00 M Předběžná analýza řešeného problému: 12. dubna Odevzdání projektů: 17. května M Předvádění projektů (po registraci): 23.května - 20.června Hana Rudová, Logické programování I, 25. února 201 3 8 Organizace předmětu Software: SICStus Prolog M Doporučovaná implementace Prologu Dokumentace: http://www.fi.muni.cz/~hanka/sicstus/doc/html Komerční produkt licence pro instalace na domácí počítače studentů 3 Používané IDE pro SICStus Prolog SPIDER M dostupné od verze SICStus 4.1.3 M http://www.sics.se/sicstus/spider používá Eclipse SDK Podrobné informace dostupné přes web předmětu stažení SICStus Prologu (sw + licenční klíče) pokyny k instalaci (SICStus Prolog, Eclipse, Spider) Hana Rudová, Logické programování I, 25. února 201 3 9 Organizace předmětu SICStus IDE SPIDER i SICStus Debugging - My Prolog ProjecVnny_rnodule.pro - Eclipse SDK File Edit SICStus Source Navigate Search Project Run Favorites Window Help r^Twii^i Ef [ < SICStus Debu,, Debug S Or 3. ^ _ß =» ^ Prolog Top-level Configuration [SICStus Launch Configuration Typel] j§ Prolog Target = call: 5uffixC[a,_;551.c],_1810) = my_predl[_1810] Prolog Top-level Process M= Variables £Í\% Breakpoints'] fei *t= B ' " Name Value ♦ Suff [a, _7551, c] « X JL810 ♦ my_module.pro /* Mbde.-Prolog */ module Cir.y_rf.od.alef [my_predl/l, my pred3/J * t^ams about exporting undefined predicate use_niQdule (library (lists), [postfix/^, £ parn^ about importing undefined predicate suffix/5 £ integrated help (also for user predicates) □1 Outline £3 G my_predl/l O my_pred2/2 -suffixPList ?Suffix5 is true when List and Suffix are lists and Suffix is a suffix of List, It terminates only if List is proper, and has at most N+l solutions, Suffixes are enumerated in descending order of length. (documentation formatting will be Emproved later!]_ my_pre:dl (X} :- Stiff = [a. Singleton, c], dssert(seen (X)}, % ^srcj about missing declaration {here dynamic/1} suf fix [Suff, X}, pjcelude (Suff , X} . % Yarns about calling undefined predicate rr.y_pred2 (S, Xs) :- % varn about non-trivial singleton variables I fareach(Y,Xs} do write(S, Xs) >, ( foreach(Y,X3}, param([S]} do write(S, Xs} > ■ □ SICStiKJ^^ Jťl Task] rjg Problems] □ Toplevel 1 in C:/Users/perm.SICS-AD/runtime-EclipseApplication42/My Prolog Project 2 Exit: assert (ray module : seen xs ( 1810}} ? 2 Call: suffix([a, 7551,c],1810} ? | Hana Rudová, Logické programování I, 25. února 201 3 10 převzato z http://www.sics.se/sicstus/spider Organizace předmětu