Prolog Final

download Prolog Final

of 39

Transcript of Prolog Final

  • 8/2/2019 Prolog Final

    1/39

    Click to edit Master subtitle stylePROLOGin Artificial Intelligence

  • 8/2/2019 Prolog Final

    2/39

    1. Gi i thi u 2. Cc ki u d li u 3. S ki n & Lu t 4.

    Cc m c ngh a 5. V d : con kh & qu chu i

    OUTLINE

    Nhm sinh vin

    Nguy n Thanh Phong 080873 ng Minh Thnh 080890 Nguy n nh Tn 080922

  • 8/2/2019 Prolog Final

    3/39

    1 GI I THI U Prolog l ngn ng c s d ng ph

    bi n nh t trong dng cc ngn ng l p trnh Logic.

    Prolog cn c g i l ngn ng l p trnh

    k hi u (symbolic programming). Prolog r t thch h p gi i quy t cc bi

    ton lin quan n cc i l ng (object) v m i quan h (relation) gi a chng.

  • 8/2/2019 Prolog Final

    4/39

    1. N u m t ng i gi m (v) khn ngoan th ng i h nh phc.

    2. Jim l ng i h nh phc. 3. N u X l cha m c a Y v Y l cha

    m c a Z th X l ng c a Z. 4. Tom l ng c a Pat. 5. T t c m i ng i u ch t (ho c

    N u ai l ng i th ai ph i ch t). 6. Socrat l ng i.

    1 GI I THI U

  • 8/2/2019 Prolog Final

    5/39

    Socrat c ch t khng ?(T ng ng kh ng nh Socrat ch t ng hay sai ?)

    5. T t c m i ng i u ch t (ho c N u ai l ng i th ai ph i ch t).

    6. Socrat l ng i.

    Socrat ch t!

    1 GI I THI U

  • 8/2/2019 Prolog Final

    6/39

    S Chu i Nguynt

    H ng Bi n

    Ki u S c p

    Ki u Ph c t p

    Cc ki u d li u Prolog c xy d ng t cc k t ASCII : Cc ch ci in hoa A, B, ..., Z v ch in

    th ng a, b, ..., z.

    Cc ch s 0, 1, ..., 9. Cc k t c bi t ch n h n + / < >

    2 CC KI U D LI U

    Ki u d li u

  • 8/2/2019 Prolog Final

    7/39

    Ki u h ng s Prolog s d ng c s nguyn v s th c. C php c a cc s nguyn v s th c

    r t n gi n, ch ng h n nh cc v d sau :1 1515 0 -973.14 -0.0035 100.2

    CC KI U H NG

    2.1 KI U D LI U S

    C P

  • 8/2/2019 Prolog Final

    8/39

    2.1 KI U D LI U SC P

    Ki u h ng Logic Prolog s d ng hai h ng lgich c gi tr l true v fail.

    Thng th ng cc h ng lgich khng c dng nh tham s m c dng nh cc m nh . H ng fail th ng c

    dng t o sinh l i gi i bi ton.

    CC KI U H NG

  • 8/2/2019 Prolog Final

    9/39

    2.1 KI U D LI U SC P

    Ki u h ng chu i k t (String) Cc h ng l chu i cc k t c t gi a hai d u nhy kp.

    "Toto \#\{@ tata" chu i c tu k t "" chu i r ng (empty string) "\"" chu i ch c 1 d u nhy kp.

    CC KI U H NG

  • 8/2/2019 Prolog Final

    10/39

    2.1 KI U D LI U SC P

    Ki u h ng nguyn t Cc h ng nguyn t Prolog l chu i k t 1 trong 3 d ng:

    Chu i g m ch ci, ch s v k t_ lun lun c b t u b ng m t ch ci in th ng newyork a_, nil x__y, x25 tom_cruise

    Chu i cc k t c bi t : , .:., ======>, ::, ==, ...

    Chu i t gi a hai d u nhy n(quote) c b t u b ng ch in

    hoa, dng phn bi t v i cc tn bi n: ' ' ' '

    CC KI U H NG

  • 8/2/2019 Prolog Final

    11/39

    2.1 KI U D LI U SC P

    Tn bi n l m t chu i k t g m ch ci, ch s , b t u b i ch hoa ho c d u g ch d i dng:

    X, Y, AResult, List_of_members_x23, _X, _, ...

    BI N

  • 8/2/2019 Prolog Final

    12/39

    2.1 KI U D LI U SC P

    Tn bi n l m t chu i k t g m ch ci, ch s , b t u b i ch hoa ho c d u g ch d i dng:

    X, Y, AResult, List_of_members_x23, _X, _, ...

    BI N

  • 8/2/2019 Prolog Final

    13/39

    Trong m t ch ng trnh Prolog, ch thch(comment) c t gi a hai c p k hi u /* v */ (t ng t ngn ng C).

    /

    // y l m t ch thch / /

    / Trong tr ng h p mu n t m t ch thch

    ng n sau m i ph n khai bo Prolog cho n h t dng, c th t tr c m t k hi u %.

    %%%%%%%%%%%%%%%%%%%%

    2.2 CH THCH

  • 8/2/2019 Prolog Final

    14/39

    3 S KI N & LU T

    S ki n Tom l cha m c a Bob c vi t

    thnh m t v t Prolog nh sau (ch m nh c k t thc b i m t d u ch m) :parent(tom, bob).

    /* Ch khng c d u cch tr c d u m *

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    15/39

    3.1 S KI N & LU T

    T cy gia h trn y, c th ti p t c vi t cc v t khc nh n c m t ch ng trnh Prolog g m 6 v t sau:

    parent(pam, bob).parent(tom, bob).parent(tom, liz).

    parent(bob, ann).parent(bob, pat).parent(pat, jim).

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    16/39

    3 S KI N & LU T

    V d cu h i Bob c ph i l cha m c aPat c g vo trong h th ng i tho i Prolog (d u nh c ?-_) nh sau :

    ?- parent(bob, pat).Yes

    Ta ti p t c t cu h i khc :

    ?- parent(liz, pat).No

    B i v Prolog khng tm th y s ki n Liz l ng i m c a Pat trong ch ng trnh.

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    17/39

    3 S KI N & LU T

    Ai l cha (hay m ) c a Liz ? ?- parent(X, liz).X = tom

    bi t c ai l con c a Bob: ?- parent(bob, X).X = ann ->;

    X = patNo. bi t c cu tr l i ti p theo, trong

    h u h t cc ci t c a Prolog, NSD ph i g vo m t d u ch m ph y ; sau ->(Arity Prolog) :

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    18/39

    3 S KI N & LU T

    Ta c th ti p t c a ra nh ng cu h i ph c t p h n khc, ch ng h n Ai l ng (b) c a Jim ?

    Ai l cha m c a Jim ?Gi s c tn l X

    Ai l cha m c a X? Gi s c tn l Y

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    19/39

    3 S KI N & LU T

    Ta c th ti p t c a ra nh ng cu h i ph c t p h n khc, ch ng h n Ai l ng (b) c a Jim ?

    Lc ny, c th vi t trong Prolog nh sau :

    ?- parent(Y, jim), parent(X, Y).

    Prolog tr l i :

    Y = pat

    X = bob

    Yes

    S KI N XY D NG S KI N

  • 8/2/2019 Prolog Final

    20/39

    3 S KI N & LU T

    By gi ta a vo m t quan h m i child, i ng c v i parent nh sau : child(liz, tom).

    T , ta nh ngh a lu t m i nh sau : child(Y, X) :- parent(X, Y). Lu t trn c hi u l :

    V i m i X v Y, hay Y l con c a X n u X l cha (hay m ) c a Y.

    LU T

  • 8/2/2019 Prolog Final

    21/39

    3 S KI N & LU T

    C s khc nhau c b n gi a s ki n v lu t. M t s ki n, ch ng h n : parent(tom, liz). child(Y, X) :-

    parent(X, Y). S ki n l m t i u g lun ng, khng c i u ki n g rng bu c.

    Trong khi , cc lu t lin quan n cc

    thu c tnh ch c tho mn n u m t s i u ki n no c tho mn. M i lu t bao g m hai ph n: Ph n bn ph i (RHS: Right Hand Side)

    ch i u ki n, cn c g i l thn

    (body) c a lu t, v

    LU T

  • 8/2/2019 Prolog Final

    22/39

    3 S KI N & LU T

    S d ng lu t tm l i gi i Cu h i sau y gi i thch cch Prolog s

    d ng cc lu t : Liz c ph i l con c a Tom

    khng ??- child(liz, tom)X = tom v Y = liz

    Lc ny, ph n i u ki n c gi tr

    parent(tom, liz) v tr thnh ch con(sub-goal) Prolog thay th cho ch child(liz, tom).

    child(liz, tom):-parent(tom,liz).

    Tuy nhin, ch ny tho mn v c gi tr Yes v chnh l s ki n thi t l tron

    LU T

  • 8/2/2019 Prolog Final

    23/39

    4 CC M C NGH A

    Ngh a khai bo (declarative signification) Ngh a th t c (procedural signification)

    V d : cho m nh P:- Q,R.V i P, Q, v R l cc h ng no .

  • 8/2/2019 Prolog Final

    24/39

    4 CC M C NGH A

    P:- Q,R. Theo ngh a khai bo:

    P l ng n u Q v R u ng.

    Q v R d n ra P. Theo ngh a th t c:

    gi i bi ton P, u tin, gi i bi ton con Q, sau gi i bi ton con R.

    xa P, u tin, xa Q, sau xa R.

  • 8/2/2019 Prolog Final

    25/39

    4.1 GI M NH

    M t gi hay b m nh (packages of clause) l t p h p cc m nh c cng tn h ng t chnh (cng tn, cng s l ng tham i)

    V d :a(X) :- b(X, _).

    a(X) :- c(X), e(X).

    a(X) :- f(X, Y).

  • 8/2/2019 Prolog Final

    26/39

    4.1 GI M NH

    Quy c

    D u ph y (comma) php h i (conjunction)

    VD: P :- Q; R D u ch m ph y (semicolon) php tuy n

    (disjunction)VD: P :- Q

    P :- R

    P :- Q, R; S, T, U

    P :- (Q, R); (S, T, U)

  • 8/2/2019 Prolog Final

    27/39

    4.1 BI TON

    Pht bi u bi ton:M t con kh ang tr c c a m t c n phng. Trong phng, chnh gi a tr n c

    treo m t qu chu i. Con kh ang i nn tm cch l y qu chu i, nh ng qu chu i l i treo qu cao i v i n. c nh c a s , c t m t ci h p con kh c th tro ln.

    Con kh c th th c hi n cc ng tc nh sau: b c i trong phng, nh y ln h p, di chuy n ci h p (n u con kh ng c nh ci h p), v v i l y qu chu i n u n ang

    ng trn h p t ng pha d i qu chu i.

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    28/39

    4.1 BI TON

    Cu h i t ra l con kh c n c qu chu i hay khng?

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    29/39

    4.1 BI TON

    Bi u di n bi ton d i d ng tr ng thi

    V d : tr ng thi ban u c a con kh xc

    nh b i: (1) Con kh ang tr c c a (to the door)(2) Con kh ang trn sn nh (on the

    floor)(3) Ci h p ang c nh c a s (to the window)(4) Con kh ch a l y c qu chu i (not

    have)

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    30/39

    4.1 BI TONCON KH V QU CHU I

    tothedoor

    onthefloor

    state

    tothewindow

    nohave

    (1)V tr

    n m ngang

    (2)V tr

    th ng ng

    (3)V tr

    ci h p

    (4)Ch d n

  • 8/2/2019 Prolog Final

    31/39

    4.1 BI TON

    Gi i bi ton v i prolog Tr ng thi ch: state (_, _, _, possessing) Cc ki u ng tc (movement):

    (1) N m l y qu chu i (grap) (2) Tro ln h p (climbing) (3) y ci h p (pushing) (4) Di chuy n (walking)

    Displacement (state1, Movement, state2)

    CON KH V QU CHU I

    state 1 state 2movement

  • 8/2/2019 Prolog Final

    32/39

    4.1 BI TON

    Hnh ng n m l y qu chu i

    displacement(

    CON KH V QU CHU I

    state(tothecenter, onthebox,tothecenter, nothave),

    ).

    Tr c khi hnh ng

    Hnh ng

    Sau khi hnh ng

    grab,

    state(tothecenter, onthebox,tothecenter, possessing)

  • 8/2/2019 Prolog Final

    33/39

    4.1 BI TON

    Hnh ng di chuy n t P1 n P2

    displacement(state(P1, onthefloor, G, H),walking(P1, P2),state(P2, onthefloor, G, H)

    ).

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    34/39

    4.1 BI TON

    Hnh ng y ci h p t P1 n P2

    displacement(state(P1, onthefloor, P1, H),pushing(P1, P2),state(P2, onthefloor, P2, H)

    ).

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    35/39

    4.1 BI TON

    Hnh ng tro ln h p

    displacement(state(P, onthefloor, P, H),climbing,state(P, onthebox, P, H)

    ).

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    36/39

    4.1 BI TON

    b t k tr ng thi con kh c th l y

    c qu chu i khng? V t : couldtake(S)

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    37/39

    4.1 BI TON

    couldtake(S) (1) V i tr ng thi S con kh l y c qu

    chu i, v t couldtake c gi tr true Couldtake(state(_, _, _, possessing)).

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    38/39

    4.1 BI TON

    (2) Cc tr ng h p khc, c n th c hi n m t ho c nhi u hnh ng. Xu t pht t tr ng thi S1, con kh c th l y c qu

    chu i n u t n t i m t s l n hnh ng M no t S1 n m t tr ng thi S2 sao cho tr ng thi S2, con kh c th l y c qu chu i.

    couldtake(S1) :-displacement(S1, M, S2),couldtake(S2).

    CON KH V QU CHU I

  • 8/2/2019 Prolog Final

    39/39

    4.1 BI TON

    displacement(state(tothecenter, onthebox, tothecenter,nothave),grab,state(tothecenter, onthebox, tothecenter,

    possessing)).displacement(

    state(P, onthefloor, P, H),climbing,state(P, onthebox, P, H)).

    CON KH V QU CHU I

    displacement(state(P1,

    onthefloor, P1, H),pushing(P1, P2),state(P2,onthefloor, P2, H)).

    displacement(

    couldtake(state(_, _, _,possessing)).couldtake(State1) :-

    displacement(State1,Move, State2),

    couldtake(State2).

    Source