IB013 Logické programování I Hana Rudová jaro 2012 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: 22.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, 22. února 201 2 2 Organizace předmětu Základní informace Přednáška: účast není povinná, nicméně ... 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í M skupina 01, sudý pátek, první cvičení 24.února skupina 02, lichý pátek, první cvičení 2.března Web předmětu: interaktivní osnova v ISu M průsvitky dostupné postupně v průběhu semestru 3 harmonogram výuky, předběžný obsah výuky pro jednotlivé přednášky během semestru 3 elektronicky dostupné materiály M informace o zápočtových projektech Hana Rudová, Logické programování I, 22. února 201 2 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 implementace logického programováni Obsah cvičení zaměřeno na praktické aspekty, u počítačů M programování v Prologu M logické programování M DCG gramatiky logické programování s omezujícími podmínkami Hana Rudová, Logické programování I, 22. února 2012 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. prezenčně v knihovně M 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, 22. února 201 2 5 Organizace předmětu rrubezna písemná prace M Pro každého jediný termín 22. 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, 22. února 201 2 6 Organizace předmětu Průběžná písemná práce Pro každého jediný termín 22. 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) 3 příklady, 40 minut Napsat zadaný predikát, porovnat chování programů M Obsah: první čtyři přednášky a první dvě cvičení M Oblasti, kterých se budou příklady zejména týkat unifikace seznamy backtracking optimalizace posledního volání M řez M aritmetika M Ukázka průběžné písemné práce na webu Hana Rudová, Logické programování I, 22. února 2012 6 Organizace předmětu Zápočtové projekty M Týmová práce na projektech, až 3 řešitelé 3 zápočtové projekty dostupné přes web předmětu Podrobné pokyny k zápočtovým projektům na webu předmětu 3 bodování, obsah předběžné zprávy a projektu M typ projektu: LP, CLP, DCG 3 CLP a LP: Adriana Strejčkova -L DCG: Miloš Jakubíček, Vojtěch Kovář 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, 22. února 201 2 7 Organizace předmětu Časový harmonogram k projektům M Zveřejnění zadání (většiny) projektů: 27. února Zahájení registrace řešitelů projektu: 7. března, 19:00 M Předběžná analýza řešeného problému: 13. dubna Termín pro odevzdání projektů: 18. května M Předvádění projektů (po registraci): 21.května - 22.června Hana Rudová, Logické programování I, 22. února 201 2 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 Nové IDE pro SICStus Prolog SPIDER M dostupné až 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, 22. února 201 2 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, 22. února 201 2 10 převzato z http://www.sics.se/sicstus/spider Organizace předmětu