234
1 TRÍ TUỆ NHÂN TẠO Khoa Công nghệ Thông tin Trường Đại học Kinh tế Kỹ thuật công nghiệp

Slide Trí Tuệ Nhân Tạo

Embed Size (px)

DESCRIPTION

Trí Tuệ Nhân Tạo

Citation preview

  • *TR TU NHN TOKhoa Cng ngh Thng tinTrng i hc Kinh t K thut cng nghip

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *NI DUNGTNG QUAN V KHOA HC TTNTCC PHNG PHP BIU DIN V GII QUYT VN NGN NG TTNT PROLOG

  • *TI LIU THAM KHO1.Tr tu nhn to Cc phng php Gii quyt vn v k thut x l tri thc (1999) Nguyn Thanh Thu2.Lp trnh lgic trong Prolog (2004)Phan Huy Khnh 3.Artificial Intelligence: A Modern Approach (2nd edition, 2002)Stuart Russell & Peter Norvig

  • *KHI LNG & CU TRC HC PHNS tn ch: 2L thuyt: 26 titThc hnh, bi tp: 10 tit

  • *TNG QUAN V KHOA HC TTNT

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *NI DUNGCC KHI NIM C BNCC TIN C BN CA TTNTLCH S PHT TRIN CA KHOA HC TTNTCC THNH TU CA KHOA HC TTNTCC XU HNG MI TRONG TTNT

  • *CC KHI NIM C BN:TTNT l g?Tr tu nhn to l khoa hc lin quan n vic lm cho my tnh c nhng kh nng ca tr tu con ngi, tiu biu nh cc kh nngsuy ngh, hiu ngn ng, v bit hc tp.

  • *Intelligence: tr thng minh ability to learn, understand and think (Oxford dictionary)Artificial Intelligence (AI): tr thng minh nhn to attempts to understand intelligent entities strives to build intelligent entities (Stuart Russell & Peter Norvig)

    CC KHI NIM C BN:TTNT l g?

  • *

    CC KHI NIM C BN:TTNT l g?

  • *

    CC KHI NIM C BN:TTNT v lp trnh truyn thng

  • *CC KHI NIM C BN:Cc yu cu ca TTNT

    Thinking humanly (Suy ngh nh con ngi)Thinking rationally (Suy ngh hp l)Acting humanly (Hnh ng nh con ngi) Acting rationally (Hnh ng hp l)

  • *CC KHI NIM C BN:Hnh ng nh con ngi:Php th TuringAlan Turing (1912-1954)Computing Machinery and Intelligence (1950)Php thNgi kim traNgiH thng TTNT

  • *Ch ra cc lnh vc cn nghin cu trong AI: X l ngn ng t nhin: giao tipBiu din tri thc: lu tr v phc hi cc thng tin c cung cp trc/trong qu trnh thm vnSuy din t ng: s dng cc thng tin c lu tr tr li cc cu hi v a ra cc kt lun miHc my: thch nghi vi cc tnh hung mi, pht hin v suy ra cc mu CC KHI NIM C BN:Hnh ng nh con ngi

  • *CC KHI NIM C BN:Suy ngh nh con ngi: M hnh nhn thc Con ngi suy ngh ntn ? Nh tm l hc, khoa hc nhn thc. Ngi thuc trng phi ny, yu cu: Chng trnh chng nhng gii ngCn so snh tng bc gii vi s gii ca 1 ngi. VD: General Problem Solver (GPS), Newell & Simon.

  • *CC KHI NIM C BN:Suy ngh c l: Lut ca suy nghAristole: ~420 BC.Tin trnh suy ngh ng l g? M ra nhnh: qu trnh suy lun. VD: Socrates is a man, all men are mortal; therefore Socrates is mortalTheo sau Aristole -> 20th: Logic hnh thc (formal logic) ra i.Hnh thc ho v mt k hiu v qu trnh suy din vi cc i tng trong th gii t nhin.

  • *CC KHI NIM C BN:Hnh ng c l Hnh ng c l ~ hnh ng t c mc tiu. u th: Tng qut hn lut suy ngh: X l thng tin khng chc chn

  • *CC KHI NIM C BN:Cc phng php v k thutCc phng php biu din tri thc v k thut x l tri thcCc phng php gii quyt vn Cc phng php HeuristicCc phng php hcCc ngn ng TTNT

  • *CC KHI NIM C BN:Cc thnh phn trong h thngHai thnh phn c bn:Cc phng php biu din vn , cc phng php biu din tri thcCc phng php tm kim trong khng gian bi ton, cc chin lc suy din

  • *NI DUNGCC KHI NIM C BNCC TIN C BN CA TTNTLCH S PHT TRIN CA KHOA HC TTNTCC THNH TU CA KHOA HC TTNTCC XU HNG MI TRONG TTNT

  • *CC TIN C BN CA TTNTTTNT k tha nhiu tng, quan im v cc k thut t cc ngnh khoa hc khc TTNTTm l hc

    Ngn ng hc Khoa hc my tnhTrit hcTon hcCc l thuyt ca lp lun v hcCc l thuyt xc sut logic, to quyt nh v tnh tonLm cho TTNT tr thnh hin thcNghin cu ngha v cu trc ca ngn ngNghin cu tm tr con ngi

  • *NI DUNGCC KHI NIM C BNCC TIN C BN CA TTNTLCH S PHT TRIN CA KHOA HC TTNTCC THNH TU CA KHOA HC TTNTCC XU HNG MI TRONG TTNT

  • *LCH S PHT TRIN CA KHOA HC TTNT

    Bt u ca AI (1943 - 1956): 1943: McCulloch & Pitts: M hnh chuyn mch logic.1950: Bi bo Computing Machinery and Intelligence ca Turing.1956: McCarthy xut tn gi Artificial Intelligence.

  • *birth day: Hi ngh Dartmouth College ma h 1956, do Minsky v McCarthy t chc, v y McCarthy xut tn gi artificial intelligence. C Simon v Newell trong nhng ngi tham d.

    John McCarthyMarvin MinskyLCH S PHT TRIN CA KHOA HC TTNT

  • *Trng mong nht (1952 - 1969): Mt s chng trnh TTNT thnh cng:Samuels checkers Newell & Simons Logic TheoristGelernters Geometry Theorem Prover.Thut gii ca Robinson cho lp lun logic.

    LCH S PHT TRIN CA KHOA HC TTNT

  • *Thc t (1966 1974): Pht hin c cc kh khn v phc tp tnh ton.Quyn sch ca Minsky & Papert nm 1969.H thng da trn tri thc (1969 1979): 1969: DENDRAL by Buchanan et al. a ra cu trc phn t t thng tin ca quang ph k1976: MYCIN by Shortliffle. Chun on nhim trng mu 1979: PROSPECTOR by Duda et al. Chun on v tr khoan du

    LCH S PHT TRIN CA KHOA HC TTNT

  • *TTNT tr thnh ngnh cng nghip (1980 - 1988):Bng n v cc h chuyn gia.1981: n my tnh th h th nm ca Nht Bn.S tr li ca cc mng nron v l thuyt TTNT (1986 - nay)LCH S PHT TRIN CA KHOA HC TTNT

  • *LCH S PHT TRIN CA KHOA HC TTNT

  • *NI DUNGCC KHI NIM C BNCC TIN C BN CA TTNTLCH S PHT TRIN CA KHOA HC TTNTCC THNH TU CA KHOA HC TTNTCC XU HNG MI TRONG TTNT

  • *CC THNH TU CA KHOA HC TTNT

  • *CC THNH TU CA KHOA HC TTNT

  • *CC THNH TU CA KHOA HC TTNT

  • *SONY AIBOCC THNH TU CA KHOA HC TTNT

  • *i bQuayLn xung cu thangHonda Humanoid Robot & AsimoCC THNH TU CA KHOA HC TTNT

  • *CC THNH TU CA KHOA HC TTNT

  • *CC THNH TU CA KHOA HC TTNT

  • *NI DUNGCC KHI NIM C BNCC TIN C BN CA TTNTLCH S PHT TRIN CA KHOA HC TTNTCC THNH TU CA KHOA HC TTNTCC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *CC XU HNG MI TRONG TTNT

  • *Mt s ch nghin cuGii thut di truyn v ng dngMng Nron nhn to v ng dngCng ngh tc t v ng dngKDD v ng dngPhn lp - hc c thyL thuyt tp thCy quyt nh.....Phn cm - hc khng c thyLut kt hp..... . .

  • *CC PHNG PHP BIU DIN V GII QUYT VN

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *NI DUNGBIU DIN V GII QUYT VN TRONG KHOA HC TTNTCC PHNG PHP BIU DIN VN CC PHNG PHP GII QUYT VN

  • *BIU DIN V GII QUYT VN TRONG KHOA HC TTNT Gii quyt vn v khoa hc TTNTGii quyt vn ca con ngiPhn loi vn & Cc c trng c bn ca vn Cc thnh phn c bn trong h thng gii quyt vn

  • *Gii quyt vn v khoa hc TTNTHot ng tr tu: vn dng cc k thut gii quyt vn Gii quyt vn : tm kim trong khng gian cc li gii b phn c th c c.Phng php biu din vn => Phng php gii quyt vn .VD: Biu din bng logic v t => Phng php hp giiVD: Biu din bng mng ng ngha => Cc th tc tm kim

  • *Gii quyt vn : duyt-tm kim trong khng gian li gii => bng n t hp => cc th tc tm kim HeuristicPhn chia cc h thng TTNT:Cc h tm kim thng tin, cc h hi p thng minhCc h suy din tnh ton: da vo cc m hnh ton hc v tri thc chuyn giaCc h chuyn gia

    Gii quyt vn v khoa hc TTNT

  • *Pht biu bi ton-Xc nh phng php bd bi tonSn sinh khng gian bi tonBi ton c th gii nh thut ton a thc

    Xc nh li gii nh cc ngn ng lp trnhXc nh cc tri thc c bit rt gn khng gian TKXy dng cc phng php biu din tri thc v suy dinLa chn ngn ng, cng c ph hpCc h gii quyt vn da vo tri thcBi ton (Vn )S

    Cng ngh lp trnh truyn thng

    Cng ngh x l tri thc S : Nhng kha cnh khc nhau ca TTNT Gii quyt vn v khoa hc TTNT

  • *Gii quyt vn ca con ngi Cch gii quyt vn ca con ngi l m hnh thc tin quan trng cc chuyn gia TTNT tm cch m phng li trn my tnh qu trnh gii quyt bi ton. Khoa hc v nhn thc: Nghin cu qu trnh t chc, lu tr, truy nhp, x l v thu np tri thc trong b no ngi. Tm l hc nhn thc v khoa hc iu khin: To ra cc m hnh t chc b no.

  • *Qu trnh x l thng tin ca con ngiGii quyt vn ca con ngiH thng th cmC quan th cmB nh mH thng nhn thcB nh di hnB nh lm vicB x l nhn thcH thng hnh ngC quan hnh ngB nh mKch

    thchTr

    lih thng x l thng tin ca con ngi

  • *Gii quyt vn ca con ngi l mt trng hp ring ca qu trnh x l thng tin trong b no. l vic tm cch i t tnh hung ban u no n ch. Gii quyt vn l mt hot ng c bit ca h thn kinh cn ti qu trnh suy ngh, tm kim trong khng gian li gii b phn i n li gii cui cng.Tuy nhin, cn lu rng khng phi mi hot ng x l thng tin u l gii quyt vn . Gii quyt vn ca con ngi

  • *Cc chin lc gii quyt vn :c lng mc phc tp ca vn t ra: Nu n gin, gii quyt vn nh vo mt thut ton tin nh no vi cc thao tc c s.Nu phc tp, cc c quan no tm cch hiu chi tit ni dung ca vn m ho, tm phng php ph hp.Ni lng mt vi rng buc ca bi ton.

    Gii quyt vn ca con ngi

  • *Cc chin lc gii quyt vn :Phng php th - sai: Xut pht t tnh hung ban u, ngi ta a ra cc tnh hung mi, sau so snh vi cc rng buc tm ra cc li gii hp l.Phng php chia bi ton thnh cc bi ton con: T bi ton phc tp, con ngi chia thnh cc bi ton nh, t phc tp cho n khi gp cc bi ton s cp, gii quyt c ngay.Tng qut ho bi ton : Chuyn cc thng tin bn ngoi thnh cc k hiu lm cho bi ton d gii hn. Qu trnh ny to ra mt m hnh tr tu ca bi ton, m hnh ny thng c gi khng gian bi ton.Gii quyt vn ca con ngi

  • *Khng gian bi ton bao gm: Cc dng mu k hiu, mi dng biu din mt trng thi hay mt tnh hung bi ton. Cc mi lin kt gia cc dng mu k hiu, mi mi lin kt tng ng vi cc php bin i t dng ny sang dng khc.

    Gii quyt vn ca con ngi

  • *Phn loi vn & Cc c trng c bn ca vn

    Bi ton 1: Bi ton tr chi n2-1 s (nN, n>2).

  • *Bi ton 2: Bi ton Thp H niPhn loi vn & Cc c trng c bn ca vn

    321321ABCABC

  • *Phn loi vn :Vn (bi ton) pht biu chnh (well-formed problems): L cc bi ton c th bit c hnh trng u, hnh trng ch v c th quyt nh khi no vn c coi l gii quyt xong. Cc bi ton 1 - 2 l nhng vn c pht biu chnh. Vn (bi ton) pht biu khng chnh (ill-formed problems): L cc vn c pht biu cha y , thiu d kin. Cc bi ton chn on v iu tr bnh, bi ton xc nh cht lng sn phm l cc bi ton pht biu khng chnh.

    Phn loi vn & Cc c trng c bn ca vn

  • *Cc c trng c bn ca vn Bi ton c th phn tch thnh cc bi ton d gii hn khng?Cc bc gii ca bi ton c th b qua hay hu b hay khng?Khng gian bi ton c th on trc hay khng?C tiu chun xc nh li gii no l tt i vi bi ton khng?C cn tri thc gii quyt bi ton hay iu khin qu trnh tm kim khng?C s tri thc gii quyt bi ton c nht qun vi ni dung khng?C cn tng tc ngi my trong qu trnh gii quyt khng?

    Phn loi vn & Cc c trng c bn ca vn

  • *Cc thnh phn c bn trong h thng gii quyt vn Gii quyt vn : Biu din bi ton v tm kim li gii trong khng gian bi tonH thng gii quyt vn :

    Gii thut tm kim

    Chin lc iu khin

    K thut Heuristic

    K thut suy din

    H thng gii quyt vn

    Bi ton

    D liu + Tri thc

    C s tri thc

    C s d liu

  • *NI DUNGBIU DIN V GII QUYT VN TRONG KHOA HC TTNTCC PHNG PHP BIU DIN VN CC PHNG PHP GII QUYT VN

  • *CC PHNG PHP BIU DIN VN

    Phng php biu din nh khng gian trng thiPhng php qui bi ton v cc bi ton conPhng php biu din vn nh logic hnh thc

    La chn phng php biu din thch hpBiu din vn trong my tnhBiu din tri thc v gii quyt vn

  • *Phng php biu din nh KGTTTrng thi (State) l hnh trng ca bi ton Ton t (Operator) l cc php bin i t trng thi ny sang trng thi khc Hnh trng u, hnh trng cui ca bi ton c gi l trng thi u, trng thi cui Tp tt c cc trng thi c sinh ra do xut pht t trng thi u v p dng cc ton t c gi l khng gian trng thi (state space).

  • *Mt cch biu din trc quan i vi khng gian trng thi v cc ton t l s dng th, trong , cc nh ca th tng ng vi cc trng thi cn cc cung tng ng vi cc ton t VD: Bi ton tr chi n2-1 s (nN, n>2)n = 4 Phng php biu din nh KGTT

  • *Phng php biu din nh KGTT

  • *Mi trng thi l mt sp xp no ca cc con s t 1 n 15 sao cho khng c hai no c cng gi trHnh trng u v cui tng ng vi cc trng thi u v cuiKhng gian trng thi t c t trng thi u bao gm tt c cc hnh trng c sinh ra nh p dng nhng php dch chuyn chp nhn c ca trngi vi bi ton ny s trng thi chp nhn c xp x (1/2). 16 ! 10.5.1012 Cc ton t chnh l cc php bin i t trng thi ny sang trng thi khc bao gm: dch trng sang phi, sang tri, ln trn, xung di. i vi mt s trng thi c mt s ton t khng p dng c.Li gii ca bi ton c th nhn c nh s dng qu trnh tm kim sau: p dng cc ton t vo trng thi u nhn c nhng trng thi mi, sau p dng cc ton t vo cc trng thi mi ny v c nh vy cho n khi t n trng thi ch.Phng php biu din nh KGTT

  • *Phng php qui bi ton v cc bi ton conTch bi ton thnh cc bi ton con sao cho li gii ca tp cc bi ton con cho php xc nh li gii ca bi ton ban u.Cch tip cn ny dn n phng php biu din vn bng th V /Hoc.

  • *Phng php qui bi ton v cc bi ton conVD: Bi ton Thp H ni (n=3)321321ABCABC

    H Ni (2, A, C, B)

    H Ni (1, A, B, C)

    H Ni (2, B, A, C)

    H Ni (3, A, B, C)

  • *n = 3

    n = 4Phng php qui bi ton v cc bi ton con

  • *Thng thng, gii quyt vn ngi ta cn phn tch logic thu gn qu trnh tm kim v i khi nh phn tch logic c th chng t c rng mt bi ton no khng th gii c. VD: Bi ton tr chi n2-1 sPhng php biu din vn nh logic hnh thc

  • *Cc dng logic hnh thc c s dng biu din bi ton gm:Logic mnh Logic v tPhng php biu din bi ton nh logic hnh thc cho php:Kim tra iu kin kt thc trong khi tm kim i vi khng gian trng thiKim tra tnh p dng c i vi cc ton tChng minh khng tn ti li giiMc ch gii quyt vn da trn logic hnh thc l chng minh mt pht biu no trn c s nhng tin v lut suy din c.Phng php biu din vn nh logic hnh thc

  • *Trong nhiu trng hp, vic gii quyt bi ton da trn cc thut ng c dng pht biu n l rt kh khn. Ngi ta thng la chn mt dng biu din ph hp no i vi cc d liu ca bi ton, lm cho bi ton tr nn d gii hn. La chn phng php biu din thch hp

  • *Vic la chn phng php biu din thch hp nhm:Trnh gii trc tip bi ton t ra ban u do nhng kh khn lin quan ti kch c, trng s, tm quan trng v chi ph x l d liu ca bi ton.B bt nhng thng tin tha hoc khng quan trng trong bi tonTn dng nhng phng php gii c i vi bi ton nhn c sau khi pht biu liCch pht biu mi c th cho php th hin mt vi tng quan no gia cc yu t ca bi ton nhm thu gn qu trnh giiSau khi gii quyt xong bi ton theo cch biu din mi, cn phi din gii li gii nhn c cho st vi bi ton thc t v chng minh rng cch din gii thc s gii quyt c bi ton t ra.

    La chn phng php biu din thch hp

  • * c th gii quyt vn trn my tnh, trc ht ta phi tm cch biu din li vn sao cho my tnh c th hiu c. iu ny c ngha l ta phi a cc d liu ca bi ton v dng c th x l c trn my tnh.Cch biu din dng bng: S dng bng biu din cc hnh trng ca bi ton.Biu din vn trong my tnh

  • *Cch biu din dng xu k hiuBiu din vn trong my tnh

  • *Cch biu din dng cu trc danh sch

    Biu din vn trong my tnh

  • *C hai cch tip cn trong gii quyt vn : Tng qut ho a ra m hnh bi ton C th ho trn c s s dng cc tri thc c t Trn thc t, c nhng bi ton khng th gii c nh s dng m hnh, hn na li gii nhn c cn kh xa vi li gii thc t. Trong trng hp , ngi ta p dng cch tip cn s dng tri thc c t. Cc phng php biu din tri thc bao gm: Frame, logic hnh thc, mng ng ngha v cc h sn xut.

    Biu din tri thc v gii quyt vn

  • *NI DUNGBIU DIN V GII QUYT VN TRONG KHOA HC TTNTCC PHNG PHP BIU DIN VN CC PHNG PHP GII QUYT VN

  • *CC PHNG PHP GII QUYT VN Biu din vn trong khng gian trng thi v cc chin lc tm kim trn thQui bi ton v bi ton con v cc chin lc tm kim trn th V/HocBiu din vn nh logic hnh thc v phng php suy din logicMt s phng php gii quyt vn khc

  • *Biu din vn trong KGTT v cc chin lc tm kim trn th Cc m t trng thi v ton tBiu din vn di dng thCc phng php tm kim trong khng gian trng thi

  • *Cc m t trng thi v ton t Khi gii quyt bi ton trong khng gian trng thi, chng ta cn phi xc nh dng m t cc trng thi ca bi ton.VD: Bi ton n2 - 1 s (n = 4)Mi trng thi l bng c kch thc 4 x 4Ton t: php bin i t trng thi ny sang trng thi khc (chuyn trng ln trn, xung di, sang tri, sang phi nu c th).

  • *VD: Bin i biu thc i s: (A x B + C x D)/(B * C) thnh A/C + D/B.Mi trng thi l biu thc i s.Ton t: Bin i c t biu thc ny sang biu thc khc.Dng cu trc cy nh phn.Dng k php nghch o Ba lan (Hu t, tin t). Cc ton t trong khng gian trng thi l nhng php bin i a trng thi ny v trng thi khcCc m t trng thi v ton t

  • *C hai cch biu din cc ton t:Cch 1: S dng k hiu hm, c ngha l xem cc ton t nh l cc hm xc nh trn tp cc trng thi v nhn gi tr cng trong tp ny VD: Vi bi ton tr chi 15 s, ta c 4 loi ton t c th m t c di dng k hiu hm nh saudl: Dch trng ln trn; dx: Dch trng xung di; df: Dch trng sang phi; dt: Dch trng sang tri;dl(A) = B, Gi s A = (aij). B = (bij) v trng trong A v tr (i0, j0)). Khi ng vi php dch trng ln trn ta c th vit B = dl(A) = (bij) vi

    Cc m t trng thi v ton t

    aij

    ((i, j) nu i0 = 1

    bij =

    nu (i, j) ( (i0, j0) v (i, j) ( (i0-1, j0), i0>1

    ai0j0

    nu (i, j) = (i0-1, j0) v i0>1

    ai0-1j0

    nu (i, j) = (i0, j0) v i0>1

  • *Cch 2: S dng cc quy tc sn xut (Production Rules) si sj. Ngha l, mi khi xut hin trng thi si th c th dn ti trng thi sj. VD: Vi bi ton tr chi 15 s, ta c sn xut sau:

    Cc m t trng thi v ton t

    11

    9

    4

    15

    11

    9

    4

    15

    1

    3

    12

    1

    3

    12

    7

    5

    8

    6

    7

    5

    8

    6

    13

    2

    10

    14

    13

    2

    10

    14

  • *Cc th tc tm kim trong khng gian trng thi thng bao gm qu trnh xy dng cc trng thi mi xut pht t cc trng thi c v kim tra xem trng thi mi ny c tho mn nhng iu kin p dng cho trng thi ch khng.

    Cc m t trng thi v ton t

  • *Kt lun: biu din bi ton trong khng gian trng thi cn phi xc nh:Dng m t ca cc trng thi.Tp cc ton t v tc ng ca chng ln cc m t trng thi .Cc trng thi u, cc trng thi ch .

    Cc m t trng thi v ton t

  • * Mt cch hnh thc ta c th pht biu bi ton nh sau:Bi ton P1: Cho trng thi u s0, tp trng thi ICH. Hy tm dy trng thi s0, s1, s2, . . ., sn sao cho sn ICH, tho mn mt s iu kin no v vi mi i (i=0, .. ,n-1), t trng thi si c th p dng ton t bin i no nhn c trng thi si+1(i oi O sao cho oi(si) = si+1hoc i pi P sao cho si si+1)

    Cc m t trng thi v ton t

  • *Hay di dng khc: Bi ton P2: Cho trng thi u s0, tp trng thi ch ICH. - Tm dy ton t o1, . . ., on sao cho on(on-1(. . .(o1(s0). . .)) = sn ICH - Tm dy sn xut p1, p2, . . ., pn sao cho

    Cc m t trng thi v ton t

    ( ICH

    _1121255915.unknown

  • *Biu din vn di dng th th: l mt cu trc G = (N,A) bao gm:Tp cc nt NTp cc cung A ni cc cp nt, c th c nhiu cung trn mt cp nt

    ABDCEBCADENt: {A,B,C,D,E}Cung: {(a,d), (a,b), (a,c), (b,c), (c,d), (c,e), (d,e)},e), (d,e) }

  • * th c hng:l th vi cc cung c nh hng, ngha l cp nt c quan h th t trc sau theo tng cung. Cung (Ni,Nj) c hng t Ni n Nj, Khi Ni l nt cha v Nj l nt con.Nt l: l nt khng c nt con.ng i: l chuoi c th t cc nt m 2 nt k tip nhau tn ti mt cung. th c gc: Trn th tn ti nt X sao cho tt c cc ng i u i qua nt . X l gc.Biu din vn di dng th

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Biu din vn di dng thKhng gian trng thi l mt h thng gm 4 thnh phn [N,A,S,DICH]. Trong :N l tp nt ca th. Moi nt l mt trng thi ca qu trnh gii quyt vn A: Tp cc cung ni gia cc nt N. Moi cung l mt bc (ton t) trong gii quyt vn . Cung c th c hngS: Tp cc trng thi bt u. S khc rong.DICH: Tp cc trng thi ch. DICH khc rong.Li gii: L mt ng i i t mt nt bt u Si n mt nt kt thc DICHj . Mc tiu ca cc gii thut tm kim l tm ra mt li gii v/hay li gii tt nht.

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Cc phng php tm kim trong KGTTTm kim theo chiu rng (Breath first search)Tm kim theo chiu su (Depth first search )Tm kim su dn (Depthwise search)Tm kim cc tiu ho gi thnh (Cost minimization search)Tm kim cc tiu ho gi thnh vi tri thc b sung (Heuristic search: Cost minimization search with knowledge)

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Cc phng php tm kim trong KGTT: Breath First Search (TKR)Vo: Cy G = (N, A), nh gc n0, tp ICH NRa : ng i p t nh n0 ti nh n* ICHPhng php:/* S dng hai danh sch kiu FIFO l MO v ONG, trong MO l danh sch cha cc nh cha xt cn ONG l danh sch cha cc nh xt */{MO n0/* Cho nh n0 vo cui danh sch MO */ While MO do{n get(MO)/* Ly nh n u danh sch MO */ ONG ONG {n} if B(n) then /* B(n) l tp cc nt con ca nt n {MO MO B(n) /* Cho B(n) vo cui danh sch MO */ if B(n) ICH then{exit(thnh cng); Xy dng ng i p}}} write(khng thnh cng);}

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *Cc phng php tm kim trong KGTT: Breath First Search (TKR)VD: p dng thut ton tm kim theo chiu rng vi cy sau, tp ICH = {r, p}

    Th t duyt l: a b c d e f g h k l ng i: a c f l p

  • *Cc phng php tm kim trong KGTT: Breath First Search (TKR)Nu trong cy G tn ti t nht mt ng i t n0 ti tp ICH th th tc tm kim theo chiu rng dng v cho ta ng i p c di ngn nht (thm ch cy G v hn). Nu khng tn ti ng i nh vy thut ton dng nu v ch nu th cy G l hu hn.

  • *Cc phng php tm kim trong KGTT: Depth First Search (TKS)Vo: Cy G = (N, A), nh gc n0, tp ICH NRa : ng i p t nh n0 ti nh n* ICHPhng php:/* S dng danh sch MO kiu LIFO v danh sch ONG kiu FIFO */{MO n0/* Cho nh n0 vo u danh sch MO */ While MO do{n get(MO)/* Ly nh n u danh sch MO */ ONG ONG {n} if B(n) then {MO MO B(n) /* Cho B(n) vo u danh sch MO */ if B(n) ICH then{exit(thnh cng); Xy dng ng i p}}} write(khng thnh cng);}

  • *Cc phng php tm kim trong KGTT: Depth First Search (TKS)VD: p dng thut ton tm kim theo chiu su vi cy sau, tp ICH = {o, p}

    Th t duyt: a b d h ng i: a b d h o

  • *Cc phng php tm kim trong KGTT: Depth First Search (TKS)Nu cy G hu hn th th tc tm kim theo chiu su s dng v cho kt qu l mt ng i t n0 n tp ICHng i nhn c theo thut ton TKR (nu c) s l ng i ngn nht cn ng i nhn c theo thut ton TKS (nu c) c th khng phi l ng i ngn nht. Hn na, nu th v hn th th tc TKS c th lp v hn, thm ch trong th G tn ti ng i t n0 ti tp ICH.

  • *Cc phng php tm kim trong KGTT: Depth First Search (TKS)Khc phc bng cch gii hn su ca gii thut.Chin lc gii hn: C nh mt su DTheo cu hnh ti nguyn ca my tnhTri thc trong vic nh gii hn su.Gii hn su => co hp khng gian trng thi => c th mt nghim.

  • *Cc phng php tm kim trong KGTT: Depthwise search (TKSD)Tm kim theo chiu su i vi lp cc nh tu thuc vo mc su k cho ban u. Cch thc hin: Ta k hiu su hin ti l DS, ban u gn DS = k, duyt cc nh trong phm vi su DS, nu cha tm c ng i th tng DS = DS + k v tip tc duyt. su d(n) ca nh n c nh ngha:d(n0) = 0d(n)= d(m) +1 nu nB(m)

  • *Cc phng php tm kim trong KGTT: Depthwise search (TKSD)Vo: Cy G = (N, A), nh gc n0, tp ICH N, mc su kRa: ng i p t nh n0 ti nh n* ICHPhng php: /* S dng ds MO kiu lai LIFO v FIFO, ds DONG kiu FIFO */{MO n0; DS = k; While MO do{n get(MO)/* Ly nh n u danh sch MO */ DONG ONG {n} if B(n) then {if B(n) ICH then {exit(thnh cng); Xy dng ng i p} case d(n) do {[0..DS - 1]: t B(n) vo u MODS: t B(n) vo cui MODS + 1: {DS = DS + k; if k =1 then t B(n) vo cui MO else t B(n) vo u MO}}}write(khng thnh cng); }

  • *Cc phng php tm kim trong KGTT: Depthwise search (TKSD)VD: p dng thut ton TKSD vi cy sau: Tp ICH = {r, p}, su k = 2.

    Th t duyt: a b d e c f g h n o k lng i: a c f l p

  • *Cc phng php tm kim trong KGTT: Depthwise search (TKSD)Khi k =1 th tc TKSD tr thnh th tc TKRKhi k>=2 th tc TKSD tm theo chiu su i vi cc nh c su nm trong khong t tk + 1 n (t + 1)k vi t bt u t 0 v mi ln tng ln 1Nu trong cy G tn ti t nht mt ng i t nh n0 n ICH th th tc TKSD s dng v cho kt qu l ng i c di khc ng i ngn nht khng qu k - 1. Nu khng tn ti ng i nh vy th th tc TKSD dng khi v ch khi G hu hn

  • *Cc phng php tm kim trong KGTT: Cost minimization search (TKCT)Gi s C: AR+ l hm gi (cost) tng ng mi cung a A vi gi chi ph c(a)R+. Vi mt ng i p trong G, p = n1, ..., nk ta c: Xc nh p: n0nk DICH sao cho: c(p) minK hiu g(n) l gi ca ng i cc tiu t n0 n n. Khi , bi ton trn c pht biu thnh: Tm ng i p0 t nh gc n0 n nh nk DICH sao cho g(nk)=min{g(n)| n DICH}.

  • *Vo: Cy G = (N, A), nh gc n0, tp ICH N, c: A R+Ra: ng i p t nh n0 ti nh n* ICH sao cho c(p) minPhng php: /* S dng 2 danh sch MO v DONG */{MO n0; g0(n0)=0; /*g0(n): gi ca ng i hin ti t n0 n n*/ While MO do{n get(MO) /* Ly nh n MO sao cho g0(n) min */ ONG ONG {n} if n ICH then exit(thnh cng) if B(n) then {MO B(n) MO for each m B(n) dog0(m) = g0(n) + c(n, m)}} write(khng thnh cng);}Cc phng php tm kim trong KGTT: Cost minimization search (TKCT)

  • *VD: p dng thut ton TKCT i vi cy sauTp ICH = {n, p}

    Th t duyt: a c b f l m d g h png i: a c f l p C gi: 10

    Cc phng php tm kim trong KGTT: Cost minimization search (TKCT)

  • *Th tc TKR l trng hp ring ca thut ton TKCT khi c(a) =1 a A. Th tc TKS cng l trng hp ring ca th tc TKCT khi ly tiu chun chn n MO l d(n) max thay cho iu kin g0(n) minNu trong cy G tn ti ng i p t n0 n ICH th th tc TKCT s dng v cho kt qu l ng i p sao cho c(p) min. Hn na, th tc TKCT ti u theo ngha s nh cho vo tp ONG l nh nht so vi cc th tc tm kim ch da vo gi cc cung. Cc phng php tm kim trong KGTT: Cost minimization search (TKCT)

  • *Cc Heuristic p dng cho th tc TKCT : Ch xt cc nh trong B(n) c trin vng t ti tp ICH. Sp xp cc nh trong MO trc mi ln x l nh cc hm nh gi.

    Cc phng php tm kim trong KGTT: Cost minimization search (TKCT)

  • *Heuristics l cc quy tc, phng php, chin lc, mo gii hay phng cch no nhm lm gim khi lng tm kim li gii trong khng gian bi ton cc ln.Thut gii Heuristic l mt s m rng khi nim thut ton. N th hin cch gii bi ton vi cc c tnh sau:Thng tm c li gii tt (nhng khng chc l li gii tt nht)Gii bi ton theo thut gii Heuristic thng d dng v nhanh chng a ra kt qu hn so vi gii thut ti u, v vy chi ph thp hn.Thut gii Heuristic thng th hin kh t nhin, gn gi vi cch suy ngh v hnh ng ca con ngi.Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *C nhiu phng php xy dng mt thut gii Heuristic, trong ngi ta thng da vo mt s nguyn l c bn nh sau:Nguyn l vt cn thng minh: Trong mt bi ton tm kim no , khi khng gian tm kim ln, ta thng tm cch gii hn li khng gian tm kim hoc thc hin mt kiu d tm c bit da vo c th ca bi ton nhanh chng tm ra mc tiu.Nguyn l tham lam (Greedy): Ly tiu chun ti u (trn phm vi ton cc) ca bi ton lm tiu chun chn la hnh ng cho phm vi cc b ca tng bc (hay tng giai on) trong qu trnh tm kim li gii.Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Nguyn l th t: Thc hin hnh ng da trn mt cu trc th t hp l ca khng gian kho st nhm nhanh chng t c mt li gii tt.Hm Heuristic: Trong vic xy dng cc thut gii Heuristic, ngi ta thng dng cc hm Heuristic. l cc hm nh gi th, gi tr ca hm ph thuc vo trng thi hin ti ca bi ton ti mi bc gii. Nh gi tr ny, ta c th chn c cch hnh ng tng i hp l trong tng bc ca thut gii.

    Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Th tc TKCT l thut gii tm kim ng i ti u khi ch xt ti cc thng tin v cc nh, cc cung v gi thnh ca chng.Trong nhiu trng hp vic tm kim ng i s c nh hng r thm nu s dng cc tri thc thu c da trn cc hiu bit v tnh hung vn mi bc. Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Cc Heuristic trong vic tm kim cc tiu ho gi thnh:Chn ton t xy dng cung B sao cho c th loi bt nhng nh khng lin quan n bi ton hoc t c trin vng nm trn ng i ti u.S dng thng tin b sung nhm xy dng tp MO v cch ly cc nh trong tp MO. Mun vy, ta phi a ra o, tiu chun no tm ra cc nh c trin vng, thng gi l cc hm nh gi. Mt s phng php xy dng hm nh gi:- Da vo xc sut ca nh trn ng i ti u.- Da vo khong cch, s sai khc gia mt nh no vi tp cc nh ch.

    Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Vo: th G=(N,A) tu , nh gc n0. tp nh ch ICH.Hm f0: NR+. /*f0 l hm c lng heuristic no */Ra: ng i p t nh n0 ti nh n* ICH Phng php: { MO{n0}; Tnh f0(n0) ;While MO do {n get(MO); /* Ly n MO sao cho f0 (n) min */ ONG ONG {n}; if n ICH then exit( thnh cng); if B(n) then for each m B(n) do if m ONG MO then { MO MO {m}; Tnh f0(m)}else if f0c(m) >fmi(m) then MO MO {m}};Write( khng thnh cng) }

    Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *f0=g0+h0 , trong : h0(n) l tri thc b sung ch ra trin vng ca nh n nm trn ng ti u.f0(n) l c lng ca hm:f(n)=g(n)+h(n) , trong : g(n) l gi ng i ti u t n0 ti nh(n) l gi ng i ti u t n ti tp ICHf0(n) l xp x ca gi ng i ti u t n0 ti tp ICH v i qua nh n. Th tc TKCT l trng hp ring ca th tc TKCT* khi ly h0=0Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Kt qu 1: (Tnh ng n) Nu i vi mi nh nN ta c 0 h0(n) h(n) v tn ti >0 sao cho aA c(a) th th tc TKCT* dng v cho ng i p: n0n*ICH sao cho g(n*) min. Kt qu 2: (Tnh ti u) Gi s th tc TKCT*i s dng hm nh gi f0i(n)=g0(n)+h0i(n), i=1,2 v gi s h2 tho mn iu kin h02(m) h02(n) h(m, n), (h(m,n) l di ng i ngn nht t m n n) v n 0 h01(n) h02(n) h(n) th s nt a vo tp DONG ca thut ton TKCT2* bao gi cng nh hn s nt i vi thut ton TKCT1*.

    Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *VD: Xt bi ton thp H Ni vi n=2, ly hm f0=g0+h0, trong h0(n) l thng tin ni thm v mi lin h gia n v trng thi ch. Chng hn:h0=2 nu cc C cha c a no,h0=1 nu cc C c a to,h0=3 nu cc C c a nh,h0=0 nu cc C c hai a.

    Cc phng php tm kim trong KGTT: Heuristic search: TKCT*

  • *Cc phng php tm kim trong KGTT: Heuristic search: TKCT* g0 =0 g0 =1 g0 =2 g0 =3 h0 = 2, f0=2 h0 = 3, f0=4 h0 = 2, f0=3 h0 = 1 f0=3 h0 = 3 f0=5 h0 = 2 f0=4 h0 = 2 f0=5 h0 = 0 f0=3 h0 = 1 f0=4 ICH

  • *Qui bi ton v cc bi ton con v cc chin lc tm kim trn th V/HocQui bi ton v cc bi ton conTh hin di dng th V/HOCCc phng php tm kim trong th V/HOC

  • *Qui bi ton v cc bi ton con tng c bn l xut pht t bi ton t ra, tch bi ton ny thnh cc bi ton con cho n khi bi ton ban u tr thnh cc bi ton s cp. Bi ton s cp c hiu l bi ton m li gii ca chng c th nhn c ngay. VD: Vi bi ton n2 1 s, bi ton s cp chnh l bi ton chuyn trng 1 ln nhn c trng ch. Vi bi ton thp H Ni, bi ton s cp l chuyn 1 a t cc ny sang cc khc.

  • *Th hin di dng th V/HOC th (nh hng) V/HOC l cp G = (N,A), sao cho n N, tt c cc nh m B(n) cng thuc vo mt trong hai kiu: nh V, nh HOC. Khi cc nh con m ca n l nh V th cung (n,m) (m B(n)) c ni bi ngoc ln. VD:

  • *Th hin di dng th V/HOC

    Quy bi ton v cc bi ton con

    th v/hoc

    Bi ton

    Ton t quy bi ton v bi ton con

    Bi ton ban u

    Cc bi ton s cp

    Cc bi ton con ph thuc

    Cc bi ton con c lp

    Gii bi ton ban u.

    nh

    Cung

    nh u (nh gc)

    nh cui, nh kt thc

    nh v

    nh hoc

    Tm th con li gii.

  • *nh gii c:Cc nh kt thc (cui) l nh gii c.Nu nh n c cc nh con l nh V th n l nh gii c khi v ch khi tt c cc nh con ca n gii c.Nu nh n c cc nh con l nh HOC th n l nh gii c khi v ch khi tn ti 1 nh con ca n gii c. nh khng gii c:Nu nh n khng l nh kt thc v khng c cc nh con th n l nh khng gii c.Nu nh n khng l nh kt thc v c cc nh con l nh V th n l nh khng gii c khi v ch khi tn ti mt nh con khng gii c.Nu nh n khng l nh kt thc m c cc nh con l nh HOC th n l nh khng gii c khi v ch khi tt c cc nh con l khng gii c Th hin di dng th V/HOC

  • * th li gii: L th con ca th V/HOC ch cha cc nh gii c v nh u.Nhn xt: Nu trn th V/HOC khng c nh V no th th V/HOC tr thnh th thng thng v khi th con li gii s suy bin thnh ng i t nh u ti mt nh kt thc no .Mc ch ca qu trnh tm kim trn th V/HOC l ta phi xc nh xem nh u c gii c hay khng. Trong trng hp gii c th ta phi a ra cy li gii tho mn iu kin no .

    Th hin di dng th V/HOC

  • *Cc phng php tm kim trong th V/HOC

  • *Th tc g(nN) { if nhan(n)= kx thenif kt(n) then nhan(n)="g"else if n MO ONG then nhan(n)=kxelse if kieu(n) then {bien=True;While B(n) and bien do{m get(B(n)); g(m); bien=(nhan(m)=g)}if bien then nhan(n)=g else nhan(n)=kx}else {bien=false;repeat {m get(B(n)); g(m); bien=(nhan(m)=g)}until bien or B(n)=if bien then nhan(n)=g else nhan(n)=kx}}Cc phng php tm kim trong th V/HOC

  • *Th tc tm kim theo chiu rng TKRMTh tc tm kim theo chiu su TKSM

    Cc phng php tm kim trong th V/HOC

  • *Vo: Cy V/HOC G=(N, A) vi nh u n0, tp nh kt thc T={ti} NRa: Thng bo khng thnh cng nu n0 kg, thnh cng nu n0 g v a ra cy li gii.Phng php: /* s dng hai danh sch FIFO: MO, ONG */{MO ={n0}; While MO do {n get(MO); /*Ly nh n u danh sch MO*/ ONG{n} ONG; bool = false; if B(n) and bool = false then {MO MO B(n); /* a B(n) vo cui danh sch MO */ For each m B(n) do {if kt(m) then {nhan=g; bool=true}} if bool then {g(n0);if nhan(n0)=g then exit(thnh cng)else loi khi MO cc nh c t tin l nh gii c}} else {nhan(n)=kg; kg(n0); if nhan(n0) = kg then exit (khng thnh cng) else loi khi MO cc nh c t tin l nh khng gii c;}}}

    Cc phng php tm kim trong th V/HOC: Th tc TKRM

  • *VD:p dng thut ton TKRM i vi cy sauTp T = {t1,t2,t3,t4}Th t duyt:abcdefgijkCy li gii:cc cung t m

    Nhn xt: Nu cy li gii tn ti th th tc TKRM s dng v cho kt qu l cy li gii c cao nh nhtCc phng php tm kim trong th V/HOC: Th tc TKRM

  • *Cc phng php tm kim trong th V/HOC: Th tc TKSMVo: Cy V/HOC G=(N, A) vi nh u n0, tp nh kt thc T={ti} N. Gii hn su D.Ra: Thng bo khng thnh cng nu n0 kg, thnh cng nu n0 g v a ra cy li gii.Phng php: /* s dng hai danh sch FIFO: DONG, LIFO: MO */{MO ={n0}; While MO do {n get(MO); /*Ly nh n u danh sch MO*/ ONG{n} ONG; bool = false; if d(n)
  • *VD: p dng thut ton TKSM i vi cy sauTp T = {t1,t2,t3,t4}Cc phng php tm kim trong th V/HOC: Th tc TKSMTh t duyt:abdAfcegCy li gii:cc cung t mNu mt nh kt thc no c su vt qu gii hn su D th n s b b qua trong qu trnh tm kim. Do vy, trn thc t c th tn ti cy li gii, song thut ton li thng bo khng thnh cng. khc phc tnh trng ny, ngi ta c th ci bin th tc tm kim theo chiu su thnh th tc tm kim su dn, trong cc nt c duyt tng mc mt.

  • *Biu din vn nh logic hnh thc v phng php suy din logicLogic mnh Logic v tChng minh nh l nh logic hnh thcp dng php tnh v t trong gii quyt vn

  • *Logic mnh Mnh p l mt pht biu ch c th nhn gi tr ng (True, 1) hoc sai (False, 0).VD: Pht biu "1+1=2" c gi tr ng. Pht biu "Mi loi c c th sng trn b" c gi tr sai Cc biu thc trong logic mnh c xy dng trn c s cc tn mnh (thng k hiu bng cc ch ci la tinh nh a,b,p,q, . . .) v cc php ton logic theo nhng quy tc c php nht nh. Cc php ton logic bao gm:Hi: (, and, v).Tuyn: (, or, hoc).Ph nh: (, not, khng).Ko theo: ().Tng ng: ().

  • *Logic mnh Gi tr chn l ca mt biu thc c tnh da theo bng chn l:

    D thy ab abMi biu thc logic mnh u c th a v dng biu thc tng ng ch cha cc php ton , , Cc php ton , c tnh giao hon, kt hp, phn phi v lu ng

  • *Logic mnh Cc php bin i tng ng:R1. a b b a; a b b aR2. a b b aR3. a a a; a a aR4. a (b c) (a b) c; a (b c) (a b) cR5. a b (a b); a b (a b)R6. a b a bR7. a (b c) (a b) (a c); a (b c) (a b) (a c)R8. a (a b) a; a (a b) a R9. a aR10. (a b) a b; (a b) a b R11. a a 0R12. a 0 0; a 1 1; a 0 a; a 1 aR13. 1 0; 0 1

  • *Logic v tBiu din vn bng mnh gp phi mt tr ngi c bn l ta khng th can thip vo cu trc ca mt mnh . Hay ni mt cch khc l mnh khng c cu trc. iu ny lm hn ch rt nhiu thao tc suy lun. Do , ngoi cc php , , , , , ngi ta a vo khi nim v t v lng t (" - vi mi, $ - tn ti) tng cng tnh cu trc ca mt mnh . V t p(x,...,y) l mt pht biu cha cc bin x,...,y sao cho khi x,...,y nhn cc gi tr c th th n nhn gi tr hoc ng hoc sai.VD: p(x, y, z) c pht biu x.y = z l mt v t 3 bin x, y, z trn tp cc s thc. Khi tnh cht giao hon ca php nhn c din t nh sau: x, y p(x, y, z) p(y, x, z)

  • *Logic v tLng t : x p(x, y, z,. . .) c ngha l tn ti mt gi tr x0 sao cho p(x0, y, z,. . .) ng vi mi y, z, . . .Lng t : x p(x, y, z,. . .) c ngha l vi mi gi tr ca x p(x, y, z,. . .) ng vi mi y, z,. . .Logic v t cho php din t hu ht cc khi nim v nguyn l ca cc khoa hc c bn, nht l ton hc v vt l. Hai phm vi ng dng chnh ca logic hnh thc: Chng minh nh l Gii quyt vn

  • *Chng minh nh l nh logic hnh thc:Gii thut Wong.H (Vng Ho)Bi ton: Cho cc gi thit di dng cc biu thc mnh (v t) GT1, GT2,. . ., GTm. Hy rt ra mt trong cc kt lun KL1, KL2,. . ., KLn Gii thut Wong .H (Vng Ho)Vo: GT1, GT2,. . ., GTm; KL1, KL2,. . ., KLn . Ra: Thng bo thnh cng nu GT1 GT2 . . . GTm KL1 KL2 . . . KLnPhng php:{for i=1 to m do {trans(GTi); VT GTi VT} for i=1 to n do {trans(KLi);VP KLi VP}P {(VT, VP)};while P do{(VT, VP) get(P); if VT VP = then{chuyen(VT, VP); if VT VP = then if not tach(VT, VP) then exit(khng thnh cng)else P {(VT, VP)};}}write(thnh cng)}

  • *trans(BT): a biu thc BT v biu thc tng ng m ch cha cc php ton , , di 1 trong 2 dng chun sau: hoc , lij = pij hoc lij = pij vi pij l cc mnh n VD: (a b) (c d) c th a v thnh: (a b) (c d)chuyen(VT, VP): chuyn v cc GTi v cc KLj dng ph nh. Thay du bn trong GTi v du trong KLj bng du phy.VD: (a b) (c d) c bin i thnh: c, d a, btach(VT, VP): tch VT, VP thnh hai danh sch con nu c du trong mt GTi hoc du trong mt KLj no . Nu tch c th th tc tach(VT, VP) nhn gi tr True. ngc li nhn gi tr False VD: p q, p q c tch thnh p, p q v q, p qKt qu: Thut ton Wong.H dng sau mt s bc hu hn v cho ra thng bo thnh cng nu v ch nu t GT1, GT2,. . ., GTmc th suy ra mt trong cc kt lun KL1, KL2,. . ., KLn.

    Chng minh nh l nh logic hnh thc:Gii thut Wong.H (Vng Ho)

  • *VD: CMR t a b c, b c d, a, b suy ra d Dng chun:VT = a b c, b c d, a, b; VP = d

    Chng minh nh l nh logic hnh thc:Gii thut Wong.H (Vng Ho)

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonThut gii ny hot ng da trn phng php chng minh phn chng. C ngha l, chng minh rng t GT1, GT2,. . ., GTm suy ra mt trong cc kt lun KL1, KL2,. . ., KLn ta ly ph nh ca cc kt lun hp vi gi thit suy ra mu thun.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonTh tc Resolution1 (Dng cho logic mnh )Vo: GT1,..., GTm; KL1,..., KLnRa: Thng bo thnh cng nu GT1...GTmKL1...KLn.Phng php:{ For i=1 to m do { Trans(GTi); PGTi;} For i=1 to n do {Trans(KLi); P KLi;} /* P=M1,...,Mk , k=m+n*/ If mt(P) then exit(Thnh cng); P1=;While P P1 and mt(P) do {P1=P; hopgiai(P);}If mt(P) then exit (Thnh cng) else exit (Khng thnh cng)}Procedure mt(P);{mt=false; for each pP dofor each qP and qp do if p=q or q=p then return (true)}Procedure hopgiai(P);{for each pP dofor each qP and qp do if p=ab and q=ac then P P{bc}}

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonVD: CMR t a b c, b c d, a, b suy ra da cc GTi v KLj v dng chun v xy dng P ta c: P ={a b c, b c d, a, b, d}. n gin, ta vit cc xu trong P di dng:1.a b c2.b c d3.a4.b5.dQu trnh hp gii nh sau:6. b cRes(1A,3) 7. a cRes(1B, 4)8. c dRes(2A, 4)9. b cRes(2C, 5)10. cRes(3, 7A)11. cRes(4, 9A). Mu thun gia 10, 11, thng bo thnh cng.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonKt qu: Thut gii Resolution1 s dng v a ra thng bo thnh cng khi v ch khi GT1...GTmKL1...KLn. Thut gii Resolution1 c th m rng gii quyt cc bi ton chng minh nh l t ng s dng logic v t. Mu cht ca phng php l hp gii hai v t:A= P Q1 Q2 ...Qk v B=P R1 R2 ... Rt thnh v t C = Q1 Q2 ...Qk R1 R2 ... Rt. Do cc v t Pi, Qi v Rj ph thuc v cc bin nn to ra cc cp i ngu thc s P v P ta phi thc hin cc php gn.Cch chn php gn: a v t P(x1, x2, ...,xn) v dng P(t1, t2, ...,tn) ta chn php gn q= { t1/x1, t2/x2, ...,tn/xn} thay th mi bin xi bi ti, trong ti c th l bin, hng hoc biu thc.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonTh tc Resolution2 (Dng cho logic v t)Bc 1: a cc GTi v KLj v dng chun: x1x2 . . .xk sao cho mi bin c mt trong Pij u thuc vo tp {x1, x2 ,. . .,xk}. Mun vy ta thc hin cc thao tc sau:1. Kh b cc du ko theo v tng ng nh A B AB2. a du ph nh vo trong cng chng no c th, nh cc php bin i: (AB) AB(AB) AB A Ax A x A x A xA3. Thay tn bin cho mi lng t ch c mt tn bin ring.4. Kh b cc lng t tn ti: x P(x) chuyn thnh P(a), x y P(x,y) chuyn thnh P(x,g(x)). Hm g(x) c gi l hm Scholem.5. Chuyn mi lng t v u biu thc, phn biu thc gi l ma trn.6. a ma trn v dng chun hi nh p dng A(BC) (AB) (AC)7. Loi b cc lng t 8. Thay th cc lin kt bi cc du phy, mi dng c gi l mt cu.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonVD: Xt x {P(x) {y {P(y)P(f(x,y))} y {Q(x,y)P(y)}}}.p dng cc bc a v dng chun nh sau:1. x { P(x) {y { P(y) P(f(x,y))} y {Q(x,y) P(y)}}}2. x { P(x) {y { P(y) P(f(x,y))} y {Q(x,y) P(y)}}}3. x { P(x) {y { P(y) P(f(x,y))} {Q(x, ) P()}}}4. x { P(x) {y { P(y) P(f(x,y))} {Q(x, g(x)) P(g(x))}}}5. xy { P(x) {{ P(y) P(f(x,y))} {Q(x, g(x)) P(g(x))}}}6. xy{{P(x)P(y)P(f(x,y))}{P(x)Q(x,g(x))}{P(x)P(g(x))}}7. {P(x)P(y)P(f(x,y))}{P(x)Q(x,g(x))}{P(x)P(g(x))}8. Tch cu v vit thnh cc dngP(x)P(y)P(f(x,y))P(x)Q(x,g(x))P(x)P(g(x))

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonBc 2. Nu tm c mt cp cu P1, P2 v mt php gn q sao cho P1q=P2q th thng bo Thnh cng v thut ton dng. Ngc li sang bc 3.Bc 3: Tm cp cu P = P0 P1 ... Pk v Q = Q0 Q1 Q2 ...Qt v php gn q sao cho P0q = Q0q. Thc hin hp gii cu P vi cu Q c cu R= P1 ... Pk Q1 Q2 Q2 ...Qt v b sung cu R vo danh sch cc cu.Bc 4: Nu khng th xy dng thm c cc hp gii v khng c cp cu i ngu th bi ton sai, ngc li bi ton c gii quyt xong v thng bo Thnh cng.Kt qu: Nu t GT1 GT2 ... GTm KL1 KL2 ...KLn th th tc Resolution2 dng v a ra thng bo thnh cng.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonVD: Bit rng: Ngn tay l b phn ca bn tay, bn tay l b phn ca cnh tay, cnh tay l b phn ca c th. CMR: Ngn tay l b phn ca c th.t v t P(x,y): x l b phn ca y . Ta c: P(nt,bt), P(bt,ct), P(ct,cothe). P(x,y) c tnh bc cu: P(x,y) P(y,z) P(x,z) P(x,y) P(y,z) P(x,z)CMR P(nt, cothe)Mi cu c cho trn mt dng, trong mi dng cc du c thay bi du phy:1. P(x,z), P(x,y), P(y,z) 2. P(nt,bt)3. P(bt,ct)4. P(ct,cothe)5. P(nt, cothe)6. P(nt,z), P(bt,z)Res(1B,2)q1 = {nt /x, bt /y}7. P(nt,ct) Res(3,6B)q2 = {ct /z}8. P(nt,z), P(ct,z)Res(1B,7)q3 = {nt/x, ct/y}9. P(nt,cothe)Res(4,8B)q4 = {cothe/z}10. Mu thun Res(5,9)

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonVD: Nu xem mt ai i la di ngi khc l k bp bm v bt k ai ng tnh vi k bp bm cng l bp bm, hn na trong tp th c mt ngi nht nht ng tnh vi k la di th chc chn l c mt k bp bm tnh tnh nht nht.Ta s dng cc v t sau:BB(x): x l k bp bm.LD(x): x l k la di.NN(x): x l k nht nht.T(x,y): x ng tnh vi y.

  • *Chng minh nh l nh logic hnh thc:Th tc ca RobinsonKhi ta c:1. LD(x), BB(x)2. T(x,y), BB(y), BB(x)3. NN(a)4. LD(b)5. T(a,b)6. BB(x), NN(x)7. BB(b)Res(1A, 4), q1 ={b/x}8. BB(b), BB(a)Res(2A, 5), q2 ={a/x, b/y}9. BB(a)Res(3, 6B), q3 ={a/x}10. NN(b)Res(6A, 7), q4 ={b/x}11. BB(b)Res(8B, 9),12. Mu thunRes(7,11).

  • *p dng php tnh v t trong gii quyt vn Phn ny s nghin cu vic xc nh cc php gn tr cho cc bin t GT1...GTm suy ra KL1...KLn.C hai cch gii quyt:Lu li vt cc php gn gi tr nhn c cho n khi a n mu thun.Ta a vo khi nim hp cc php gn. Gi s , l hai php gn tr, hp ca chng c k hiu bi o sao cho i vi mi biu thc P ta c: Po=(P).VD: Gi s Mai v Dng rt thn nhau. i u Mai v Dng cng c nhau. Hn na ta bit rng hin nay Mai ang th vin. Hi Dng ang u?Ta a vo v t: P(x,y): x ang v tr y. Khi , ta c:x P(Mai, x)P(Dng, x)P(Mai, Th vin). Cn tm gi tr ca P(Dng,x).

  • *p dng php tnh v t trong gii quyt vn

  • *Ci bin th li giiBn cnh biu thc l ph nh ca kt lun KLj cn chng minh ta thm vo ph nh ca chnh n (tc l KLj) v gi nguyn cc php hp gii ging nh trong th hp gii.

    p dng php tnh v t trong gii quyt vn

  • *Mt s phng php gii quyt vn khcPhng php to - kim traPhng php leo iPhng php tho mn rng buc

  • *NGN NG TTNT PROLOG

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *NI DUNGGII THIUCU TRC CHNG TRNHI TNG D LIUCC KIU D LIU V CC PHP TONCC BC XY DNG CHNG TRNHCU TRC DANH SCHK THUT LP TRNH PROLOG

  • *GII THIUProlog la mt ngn ng lp trinh dung cho tinh toan ky hiu.Thich hp giai quyt cac bai toan lin quan n i tng va quan h gia cac i tng

  • *GII THIUCho quan h gia inh qua cy gia phaNode : i tngCung : quan ht tn quan h : chame.chame(X,Y) co nghia X la cha/me cua Y.

  • *GII THIUTh hin bng Prologchame(minh, hoang).chame(mai, lan).chame(mai, hoang).chame(hoang, l).chame(hoang, tm).chame(tm, hanh).Co 6 mnh (clause)

  • *GII THIULam c gi vi oan chng trinh trn ?Hoi cac cu hoi.Cho phep hoi v nhng quan h a c thit lp trong chng trinh.Loai 1 : Co hay khng ?hoang co phai la cha/me cua tm khng ?lan co phai la cha/me cua hoang khng ?Loai 2 : Xac inh (tm tt c)Ai la cha/me cua hanh ?Ai la con cua mai ?Xac inh cac cp cha/me con ?...

  • *GII THIULoai 1 : Co hay khng ?hoang co phai la cha/me cua tm khng ??- chame(hoang, tm).lan co phai la cha/me cua hoang khng ??- chame(lan, hoang).Loai 2 : Xac inh.Ai la cha/me cua hanh ??-chame(X, hanh).Ai la con cua mai ??-chame(mai, X).Xac inh tt ca cac cp cha/me con ??-chame(X,Y).

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Cac i tng trong mt quan h co th la : i tng cu th hoc i tng chung.hoang, tm trong chame(hoang, tm) : i tng cu th, goi la atom (nguyn t).X trong chame(X, hanh) hoc X, Y trong chame(X, Y) : i tng chung, goi la variable (bin).Bin bt u bng ch IN HOA.Nguyn t bt u bng ch thng.GII THIU

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*M rng cu hoi:Ai la ng/ba cua hanh ?Giai quyt:Gia s X la kt qua cn tim.Khi o, X la cha/me cua Y va Y la cha/me cua hanh.Vy : cn tim X, Y thoa :chame (X,Y) and chame(Y, hanh)Th hin bng Prolog :?-chame(X, Y), chame(Y, hanh)Tng t : Ai la chau cua mai ?GII THIU

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Chng trinh bao gm cac mnh (clause), kt thuc bng du chm (.).Tham s cua quan h co th la : i tng a bit (nguyn t, atom) hoc i tng chung (bin, variable).Bin bt u bng ch in hoa.Cac cu hoi co th co mt hoc nhiu muc tiu (goal).Cac cu hoi co th co dang (1): co/khng (thoa hay khng thoa) ; (2) tim tt ca (nu thoa).GII THIU

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • *Vi oan chng trinh bn canh, hay tra li :?-chame(hoang,X).?-chame(X, lan).?-chame(minh, X), chame(X, tm).?-chame(minh,X), chame(X,Y), chame(Y, hanh)Vit dang Prolog cac cu hoi sau:Ai la cha/me cua tm ?tm co con khng ?hanh co con khng ?Ai la ng/ba cua l ?oan chng trinh:chame(minh, hoang).chame(mai, lan).chame(mai, hoang).chame(hoang, l).chame(hoang, tm).chame(tm, hanh).GII THIU

  • *B sung 2 quan h mi : nam, nu.Vi du :nam(minh).nam(hoang).nu(lan).nu(mai)....Quan h nam, nu la cac quan h mt ngi. (Chi thuc tinh cua i tng)Quan h chame la quan h hai ngi. (Chi mi lin h gia cac i tng)GII THIU

  • *B sung thm quan h con(X,Y). (X la con cua Y). (Quan h ngc cua quan h chame).Ta bit cVi moi X, YY la con cua X nu X la cha/me cua Y.Co th inh nghia quan h con da trn quan h chame.con(Y,X) :- chame(X,Y).Mnh trn c goi la quy tc (rule).GII THIU

  • *Quy tc chi ung khi iu kin c thoa.1 quy tc co 2 phn :Phn iu kin (hay la thn quy tc (body))Phn kt lun (hay la u quy tc (head))Vi du :con(Y,X) :- chame(X,Y).Kt luniu kinGII THIU

  • *Gia s co cu hoi : ?-con(tm, hoang)Prolog giai quyt ra sao ?1) Tim kim s kin con(tm, hoang) ? (Khng co)2) Ap dung quy tc con(X,Y).Khi tao X = tm, Y = hoang.Sau khi tao, ta co quy tc c bit :con(tm, hoang):- chame(hoang, tm)Phn iu kin tr thanh chame(hoang,tm).Nu phn iu kin thoa thi phn kt lun ung.chame(hoang, tm) la mt s kin nn co th kt lun con(tm, hoang) ung.GII THIU

  • *B sung cac quan h mi : cha, me, chiemgai, ongba.Quan h chaVi moi X, YX la cha cua Y nu X la cha/me cua Y va X thuc phai nam.cha(X,Y) :- chame(X,Y), nam(X).XYchamenamchaGII THIU

  • *Chng trinh Prolog c m rng bng cach thm cac mnh mi.Mnh gm phn u (head) va phn thn (body). Du , trong phn thn chi phep va.Phn loai mnh : s kin, quy tc, cu hoiS kin lun ung .Quy tc chi ung khi iu kin c thoa.Ngi s dung hoi chng trinh qua cu hoi.S kin chi gm phn u. Cu hoi chi co phn thn. Quy tc co ca phn u ln phn thn.Bin co th thay th bng mt i tng cu th. Ta noi bin c khi tao.GII THIU

  • *CU TRUC CHNG TRINHChng trinh Prolog thng gm cac phn :domains...predicates...clauses...goal...Khng nht thit co y u cac phn

  • *domains : phn inh nghia cac kiu d liupredicates : phn khai bao cac quan h (vi t)clauses : phn th hin cac mnh (co th) cua vi tgoal : ich cn at c cua chng trinh. goal c vit trong chng trinh c goi la internal goal.goal thc hin luc thc thi (ca s Run) c goi la external goal.Cac ghi chu trong Prolog nm trong cp /* */ hoc sau du %Trong SWI-Prolog, ngi s dng khng cn khai bo kiu d liu, cu trc chng trnh khng cn cc t kha trn.

    CU TRUC CHNG TRINH

  • *I TNG D LIUGm cac loai :Nguyn t (atoms)S (numbers)Bin (variables)Cu truc (structures)

  • *La chui cac ky tCh hoa t A n ZCh thng t a n zCh s 0,..,9Ky t c bit : + - * / < > = : . & _ ~Da trn quy tcChui cac ch cai, ch s, du _ ,bt u bng mt ch thng (VD : anna, x25, x__y, alpha_beta,...)Chui cac ky t c bit (VD : , === > , ...)Chui cac ky t nm trong cp du (VD : Hoang, Hoa,...)I TNG D LIU Nguyn t

  • *Gm s nguyn va s thcVi du :S nguyn : -3, -100, 1, 5 ,2, ...S thc : 1.25, -3.25, ...S thc it c s dung trong lp trinh PrologI TNG D LIU - S

  • *BinChui cac ch cai, ch s va du _, bt u bng mt ch vit HOA hoc du _.Vi du : X, Result, Object2, _23Bin v danhKy hiu : _Nu bin chi xut hin mt ln, khng cn t tn. S dung bin v danhVi du : haschild(X) :- parent(X,Y). %Bin Y chi xut hin mt lnhaschild(X) :- parent(X,_). %Thay th bng bin v danhI TNG D LIU - Bin

  • *I TNG D LIU Cu trcCac i tng co nhiu thanh phn.Vi du :i tng date co th xem la mt cu truc vi cac thanh phn : day, month, year.Th hin bng Prolog: Vi du :date(1,may, 2005)

  • *Term (hng)Tt c cc i tng d liu trong Prolog c gi l term.V d : thangnam, ngay(1, thangchin,2005) l cc term.So khp (matching)L thao tc quan trng nht trn cc term.L qu trnh kim tra xem hai term c khp nhau hay khng.I TNG D LIU Cu trc

  • *Hai term c xem l khp (match) nhau nu:Ging nhau hon tonCc bin trong c hai term c khi to thnh cc i tng sao cho sau khi thay th chng bng cc i tng ny th chng ging nhau hon ton.V dCho hai term date(D,M, 2005) v date(D1, thangchin, Y1) c coi l khp nhauTa c : D khi to thnh D1, M khi to thnh thangchin, cn Y1 khi to thnh 2005.I TNG D LIU Cu trc

  • *Xc nh hai term c khp nhau hay khng?Nu S, T l hng s th chng khp nhau khi chng cng mt i tng.Nu S l bin v T bt k. Nu chng khp nhau th S c khi to thnh T v ngc li.Nu S v T l cu trc. Chng khp nhau khi tt c cc thnh phn trong S v T khp nhau.I TNG D LIU Cu trc

  • *KIU D LIU & PHP TONKIU D LIUchar : ky t gia cp du .Vi du : a, b, 1, ...integer : s nguyn (t -32768 n 32767)Vi du : 200, -521, 322, ...real : s thcVi du : 25.18, -78.3e+21, 25.5e-20, ...string : chui dai ti a 64KB, nm cp du .Vi du : chao cac ban, Prologsymbol : chui dai ti a 80 ky t, co th khng co du .Vi du : prolog, Prolog, chao_cac_ban,...

  • *KIU D LIU & PHP TONPHP TON TRONG SWI-PROLOGPhp ton s hc : +, -, *, /, mod, //, **Biu thc s hc: c xy dng nh v t isNumber is ExprNumber: i tng c bnExpr: biu thc s hc c xy dng t cc php ton s hc, cc s v cc bin.Php so snh s hc : >, =,
  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*KIU D LIU & PHP TONTrong SWI-Prolog, c cc v t xc nh kiu d liu:var(V)V l mt bin?nonvar(X)X khng phi l mt bin?atom(A)A l mt nguyn t?integer(I)I l mt s nguyn?float(R)R l mt s thc(du chm ng)?number(N)N l mt s (nguyn hoc thc)?atomic(A)A l mt nguyn t hoc mt s?compound(X)X l mt term c cu trc?

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*Tm USCLN ca 2 s a,b >0 S dng thut ton EuclideUSCLN ca X v X l X.USCLN ca X v Y l USCLN ca X Y v Y nu X>Y.USCLN ca X v Y l USCLN ca Y-X v X nu X
  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*CC BC XY DNG (1) c t bi ton=> xc nh mc tiu cn gii P(2) Biu din bi ton di dng chun=> P i(jqij).(3) Chuyn sang mnh Horn (lut, s kin)(4) Chuyn sang Prolog

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

  • Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to*(1) uscln(X,Y,Z) Z l USCLN ca X,Y.(2) uscln(X,Y,Z) [(X>Y) (T=X-Y) uscln(T,Y,Z)] [(XY) (T=X-Y) uscln(T,Y,Z).uscln(X,Y,Z) (X
  • *(4) Chuyn sang Prologuscln (X,Y,Z):-X>Y, T is X-Y, uscln(T,Y,Z).uscln (X,Y,Z):-XY, is(T, X-Y), uscln(T,Y,Z).uscln (X,Y,Z):-X
  • *Tnh giai tha ca s N ?CC BC XY DNG

  • *CU TRC DANH SCHCu trc d liu n gin, c s dng rng ri.L dy cc phn tV d Cc phn t : ann, tennis, tom, skiing c biu din thnh danh sch [ann, tennis, tom, skiing]

  • *Biu din 1 trong 2 dngDanh sch rng : []Danh sch khng rng, gm 2 phnPhn t u tin, gi l HeadPhn cn li l mt danh sch, gi l TailV d :L0 = []L1 = [a,b,c] // L1 = [H|T], H = a, T = [b,c]L2 = [5] // L2 = [H|T], H = 5, T = []CU TRC DANH SCH

  • *Trong Prolog, danh sch tn ti di cc dng :[PT1, PT2, .., PTn][Head| Tail][PT1, PT2,| [..,PTn-1, PTn] ]V d[1,2,3,4,5][1|[2,3,4,5]][1,2,3|[4,5]]CU TRC DANH SCH

  • *Mt s v t x l danh sch trong SWI-Prolog:append(L1,L2,L3): ghp hai danh sch L1,L2 thnh L3member(E,L): kim tra E c phi l phn t ca danh sch L hay khng.nextto(X,Y,L): kim tra phn t Y c ng ngay sau phn t X trong danh sch L hay khng.delete(L1,E,L2): xa khi danh sch L1 nhng phn t hp nht c vi E tr v kt qu L2.select(E,L,R): ly phn t E ra khi danh sch L tr v nhng phn t cn li trong R.nth0(I,L,E): kim tra phn t th I(tnh t 0) ca danh sch L c phi l E hay khng.nth1(I,L,E): kim tra phn t th I(tnh t 1) ca danh sch L c phi l E hay khng.CU TRC DANH SCH

  • *last(L,E): kim tra phn t ng cui cng trong danh sch L c phi l E hay khng.reverse(L1,L2): nghch o th t cc phn t ca danh sch L1 tr v kt qu L2.permutation(L1,L2): hon v danh sch L1 thnh danh sch L2.flatten(L1,L2): chuyn danh sch L1 cha cc phn t bt k thnh danh sch phng L2.sumlist(L,S): tnh tng cc phn t ca danh sch L cha ton s tr v kt qu S.CU TRC DANH SCH

  • *Bi ton 8 Huiu khin quay lui v lt ct

    K THUT LP TRNH PROLOG

  • *Bi ton 8 HuBn c vua gm 8x8 t cc con Hu trn bn c sao cho cc con Hu khng tn cng ln nhau (theo lut c vua).Hai con Hu khng th tn cng nhau nu :Khng cng dngKhng cng ctKhng cng ng cho (chnh, ph)

  • *V tr cc con Hu (X) khng tn cng ln nhau(1,5)(2,7)(3,2)(4,6)(5,3)(6,1)(7,4)(8,8)Bi ton 8 Hu

    XXXXXXXX

  • *V tr Hu :pos(Dong,Cot)Kt qu thc hin lu trong danh sch[pos(X1, Y1), pos(X2, Y2), pos(X3, Y3), pos(X4, Y4), pos(X5, Y5), pos(X6, Y6), pos(X7, Y7), pos(X8, Y8)]Do cc con Hu khng cng dng nn ta c th c nh dng ca chng nh sau :[pos(1, Y1), pos(2, Y2), pos(3, Y3), pos(4, Y4), pos(5, Y5), pos(6, Y6), pos(7, Y7), pos(8, Y8)]Bi ton 8 Hu

  • *Danh sch kt qu chp nhn c nu :Cc pos(X,Y) trong danh sch khng vi phm iu kin : cng ct, cng ng cho (chnh, ph)Bi ton 8 Hu

  • *Kim tra li gii cho bi tonsolution(Plist)Plist = [] l mt li gii hp lPlist = [pos(X,Y)|Others] l li gii hp l nuKhng c hai v tr Hu trong Others tn cng ln nhau (hay Others cng l mt li gii hp l)X,Y c gi tr nm trong [1,8]Con Hu ti v tr pos(X,Y) khng tn cng bt c con Hu no trong Others.Bi ton 8 Hu

  • *Kim tra li gii cho bi tonsolution([]).solution([pos(X,Y) | Others]):- solution(Others),member(Y,[1,2,3,4,5,6,7,8]), noattack(pos(X,Y), Others).Bi ton 8 Hu

  • *Hai con Hu pos(X1,Y1) v pos(X2, Y2) khng tn cng nhau nu :Khc dng : hin nhin (khng cn kim tra)Khc ct : Y1 =\= Y2Khc ng cho:Y2 Y1 =\= X2 X1Khc ng cho ph : Y2 Y1 =\= X1 X2Bi ton 8 Hu

  • *To danh sch kt qu mutemplate([pos(1,_), pos(2,_), pos(3,_), pos(4,_), pos(5,_), pos(6,_), pos(7,_), pos(8,_)]).Kim tra mt v tr t hu pos(X,Y) tht s khng tn cng nhng con Hu khcnoattack(P, Plist) Plist = [] => truePlist = [P1|Plist1] => true nu P khng tn cng P1 v P khng tn cng cc v tr trong Plist1Bi ton 8 Hu

  • *Kim tra mt v tr t hu pos(X,Y) tht s khng tn cng nhng con Hu khcnoattack(_, []).noattack(pos(X,Y), [pos(X1,Y1) | Others]) :-Y =\= Y1, Y1-Y =\= X1-X, Y1-Y=\=X-X1, noattack(pos(X,Y),Others).Chng trnh?

    Bi ton 8 Hu

  • *iu khin quay lui v lt ctProlog t ng quay lui tho mn mc tiu.

    y l mt cng vic hu ch nhng c nhng lc li khng hiu qu.

    Cn c nhng cch iu khin (ngn) quay lui.

  • *Mi quan h gia X v Y c xc lp qua 3 lut:Lut 1: Nu X < 3 Th Y = 0Lut 2: Nu 3
  • *Th hin quan h X v Y bng Prologf(X,0) :- X
  • *a vo mt cu hi cho on chng trnh trn?- f(1,Y), Y>2.

    Kt qu ca cu hi trn?

    iu khin quay lui v lt ct

  • *f(1,Y) s cho kt qu Y=0.

    Khi , Y>2 tr thnh 0>2 (=> false).

    V vy, goal cho kt qu l : No.

    Prolog phi duyt qua c 3 mnh ca v t f.iu khin quay lui v lt ct

  • *Lt ct: K hiu: !

    Dng ngn Prolog quay lui trong trng hp tm ra li gii hoc s khng tm ra li gii thm nu tip tc.iu khin quay lui v lt ct

  • *Thm lt ct :f(X,0) :- X
  • *Prolog s cho ra cng kt qu: No.

    Khng c s dng n mnh (lut) 2 v 3. => tn km thi gian thc hin.=> tng hiu qu cho chng trnh.iu khin quay lui v lt ct

  • *Vi on chng trnh:f(X,0) :- X
  • *D dng nhn thy kt qu: Y = 4.

    Prolog s phi thc hin c 3 mnh (lut) ca v t f.iu khin quay lui v lt ct

  • *Th lut 1: 8
  • *Ci tin:Nu X
  • *Tm s khc nhau gia hai on:f(X,0) :- X
  • *Gi s goal G c dng:P1, P2, P3,..,Pi, !, Pi+1, , Pn

    Prolog ch tm mt li gii duy nht cho cc sub-goal P1, P2, P3,..,Pi.

    Cc sub-goal Pi+1, , Pn vn thc hin (quay lui) bnh thng.iu khin quay lui v lt ct

  • *V d:C :- P, Q, R, !, S, T, U.C :- V.A :- B, C, D.Goal: A

    Lt ct ch c tc dng i vi v t C, n i vi A. (Trong A, vic quay lui t ng vn thc hin trn B, C, D).iu khin quay lui v lt ct

  • *Tm s ln hn gia hai smax(A,B,A):-A>B,!.max(A,B,B).

    iu khin quay lui v lt ct

  • *Thun li:Lt ct lm tng hiu qu chng trnh (tit kim khng gian, thi gian,)Loi b c nhng chn la chc chn sai.C th thc hin cc lut c dng:if K1 then KL1else KL2iu khin quay lui v lt ct

  • *Kh khn:Trt t cc mnh trong v t c th nh hng n kt qu (khi s dng lt ct)V d:Vip :- a,b.p :- c.p (a b) ciu khin quay lui v lt ct

  • *V d:Trong khi vip :- a, !, b.p :- c.p (a b) ( a c)Cnp :- c.p :- a, !, b.p c (a b) iu khin quay lui v lt ct

  • *N TP

    Nguyn Ngc Hiu - Cc Bi ging Tr tu Nhn to

    ****************************************************************