2 M u I Mc ch mn hc: Gii thiu mt cng c h tr nghin cu tr tu nhn to: ngn ng lp trnh SWI-Prolog. Mt s ng dng trong x l ngn ng t nhin. II. Thi gian v ni dung: 30 tit l thuyt + 15 tit bi tp Tng quan v Prolog(3 tit) K thut lp trnh Prolog(9 tit) Logic v CSDL(3 tit) Logic v H chuyn gia(3 tit) Logic v ng php (6 tit) Logic v lp trnh rng buc (6 tit) Bi tp v kim tra gia k (15 tit)
3 III Gio trnh v ti liu tham kho Bi ging ca L Mnh Hi (Lu hnh ni b) James Lu, Jerud J. Mead. Prolog A Tutorial Introduction. Computer Science Department Bucknell University Ulf Nilsson and Jan Maluszynsky. LOGIC, PROGRAMMING AND PROLOG (2ED). John Wiley & Sons Ltd. 2000. Phan Huy Khnh. Lp trnh logic trong Prolog. Nh xut bn H QG H ni. 2004
4
IV. nh gi: im gia k (30%): Bi kim tra 60 pht trn PC Thi kt thc mn (70%): Bi kim tra 90 pht V. Gio vin: Ts. L Mnh Hi. Khoa CNTT HUTECH. email: lm.hai@hutech.edu.vn Website: giangvien.hutech.edu.vn
Bi 1: Gii thiu v ngn ng Prolog Mc tiu: Lc s Prolog v cc dng sn phm Ci t SWI-Prolog v SWI-Prolog editor Cc khi nim c bn v v d 5 Lc s Prolog v cc dng Theo Wikipedia.org Prolog l mt ngn ng lp trnh. "lp trnh theo l gch". Xut hin t nm 1972 , mc tiu ca Prolog l gip ngi dng m t li bi ton trn ngn ng ca logic, da trn , my tnh s tin hnh suy din t ng da vo nhng c ch suy din c sn (hp nht, quay lui v tm kim theo chiu su) tm cu tr li cho ngi dng. C php v ng ngha ca Prolog n gin v sng sa, n c ngi Nht coi l mt trong nhng nn tng xy dng my tnh th h th nm m , thay v phi m t cch gii quyt mt bi ton trn my tnh, con ngi ch cn m t bi ton v my tnh s h tr h nt phn cn li.
6 tng mi trong cc ng dng c Prolog c s dng nhiu trong cc ng dng ca tr tu nhn to (AI) v ngn ng hc trong khoa hc my tnh (c bit l trong ngnh x l ngn ng t nhin NLP v y l mc tiu thit k ban u ca n). Cc lnh vc khc: theorem proving, [8] expert systems, [9]
games, automated answering systems, ontologies and sophisticated control systems. C s ca Prolog l hm mnh (propositional Function) v v t logic (logic predicate) . Xem thm Ton ri rc.
7 8 C s l thuyt ca AI AI Pht trin cc chng trnh c kh nng suy lun, da trn l thuyt ton hc mnh Suy lun gip chng trnh AI bit c tnh ng/sai ca mt vn no . Khng quan trng vn c thc hin nh th no. Php ton v t c hin thc bng ngn ng lp trnh trn my tnh PROLOG Suy lun logic 9 Gio s mn logic hc nhn ra mnh b mt knh. ng bn ngi suy lun xem i tng no ly knh ca mnh. "Ai ly cp? ng nhin l k cp ri. V tn ny c th b cn th, c th khng. C th hn c knh, c th cha c. Nhng nu cha c lm sao hn c th trng thy knh ca mnh? iu ny chng t hn khng b cn th. M khng b cn th th u cn ti knh. T nhng gi thuyt trn, c th kt lun l khng ai ly knh ca mnh c. Chc chn n nm u y thi. Nhng mnh nhn khp ri, khng thy g c. M mnh nhn c nh vy c ngha l mnh ang eo knh. i may qu!!!".
Mt anh chng lp trnh vin cng ngi yu i du lch nc ngoi. Trong on cn c mt cp ngi Anh v mt cp ngi M nn h ni vi nhau bng ting Anh. Mt hm c on ngi n ba sng. Anh chng ngi Anh ni vi v: "Can you pass the honey, Honey?" (a anh t mt, em yu) Anh chng ngi M ni vi v: "Do you mind passing the sugar, Sugar?" (Chuyn cho anh cht ng, em yu) Chng lp trnh vin t ra khng thua km: "Pass me the bacon, Pig!". (Ly cho anh tht ln mui, Ln!)
10 Mnh Bu tri xanh Loan thch Long Tm yu Tm (!???) Mnh khng biu din c biu thc X=Y+3 v X v Y cha c gi tr, nn khng th kt lun ng sai. Nhng s tng ng sau khng biu din c bng logic mnh "Khng phi tt c bnh u n c" v "Ch mt s bnh n c ng dng php tam on lun: A v B, !A => B C ti vi anh m ti mt ng h, m ti th khng ly ca ti ri! 11 Logic v t (Predicate) Predicate l v t m t tnh cht ca nhng i tng, hoc quan h gia chng Pht biu x > 3 c 2 phn: Bin x Tnh cht ca bin x (> 3), c gi l v t (predicate) K hiu pht biu P(x) P(2), P(4) l mnh . Mnh u sai. 12 Tng qut cc chng trnh Prolog u yu cu v t logic phn u ca mt mnh Horn l mt v t dng 13 Cc dng Prolog SWI Prolog: Free but strong! ISO Prolog, Edinburgh Prolog Quintus SICStus GNU Prolog Ciao prolog
14 SWI-Prolog Tt c free trn http://www.swi-prolog.org/ Hy ci ln my tnh ca bn thc hnh 15 V d u tin 1 ?- atom(foot). true. 2 ?- atom(3). false. 3 ?- atom('foot'). true. 4 ?- atom("foot"). false. 5 ?- blue(sky). ERROR: toplevel: Undefined procedure: blue/1 (DWIM could not correct goal) 16 Cc v t c sn atom member and so on 6 ?- member(3,[1,2,3]). true. 7 ?- member(X,[1,2,3]). X = 1 ; X = 2 ; X = 3. Lm sao tm cc hm build-in ? Help - Manual 17
18 Cc quy c Hng s: 3.2 Hng chui: an, binh, An, Binh Hng logic: true, false. Bin: bt u bng ch hoa hoc _. Bin nc danh _ c dng khi khng cn truy cp
19 20 Cc mnh ca ngi s dng: chng trnh prolog. 8 ?- edit(file(vd)). Chp on m sau vo file vd likes(mary,food). likes(mary,wine). likes(john,wine). likes(john,mary). ng file lu. Load file v query 14 ?- [vd]. % vd compiled 0.00 sec, 1 clauses true. 15 ?- likes(mary,food). true . 16 ?- likes(mary,john). false. V d 2 luong(an,300). luong(binh,400). luong(hai,500). luong(tuan,400). luong(long,450). luongcaohon(X,Y):-luong(X,Z),luong(Y,T),Z>T. luongbang(X,Y):- luong(X,Z),luong(Y,T),Z=T.
25 ?- luongcaohon(X,tuan). X = hai ; X = long.
21 V d 3: tnh giai tha factorial(0,1). factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1.
31 ?- factorial(5,W). W = 120 . 22 23 Bi tp 1. vit chng trnh tnh s fibonacci 2. Tm hiu v t setof ngha? V d?
Bi k tip K thut lp trnh Prolog quy: thp H ni X l danh sch . Quicksort, Mergesort B mnh . Ng ngha v th t X l file.