Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf ·...

44
2017 Demonstrare in SRR al clauzelor precise Capitolul 3

Transcript of Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf ·...

Page 1: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare in SRR al clauzelor

precise

Capitolul 3

Page 2: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Notiunea de demonstratie

• Procedura de demonstrare (teorie a rationamentului) = o specificatie nedeterminista a modului de obtinere a rezultatului unei interogari. De obicei are forma unei multimi finite de reguli de inferenta.

• Demonstratie (engl.proof) = o insiruire de pasi ce se poate genera mecanic folosind regulile de inferenta. Ea ne arata ca o formula poate fi derivata (in sensul de obtinuta) dintr-o baza de cunostinte. Formula demonstrata se numeste teorema.

• Fiind date o baza de cunostinte , o conjunctie de atomi g si o procedura de demonstrare, daca g este derivabila din acest lucru se noteaza prin g.

Page 3: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Corectitudine si completitudine

• O procedura de demonstrare se numeste corecta (engl.

sound) daca si numai daca:

Δ ⊢ 𝑔 implica Δ ⊨ 𝑔

• O procedura de demonstrare se numeste completa

daca si numai daca:

Δ ⊨ 𝑔 implica Δ ⊢ 𝑔

Page 4: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu – Modus ponens

• Modus ponens (engl. "the way that affirms by affirming“) – alt exemplu de regula de rationament corect:

𝑝1, 𝑝2, … , 𝑝𝑘 , 𝑝1 ∧ 𝑝2 ∧ ⋯ ∧ 𝑝𝑘 → 𝑞 ⊢ 𝑞

• Modus ponens este regula de baza folosita la demonstratiile din matematica.

• Corectitudine:

– Fie I o interpretare care satisface toate formulalele din partea stanga a regulii. Deci [pj]

I = true for all j = 1, …, k. Rezulta ca [p1 p2 … pk]

I = true.

– Totodata [p1 p2 … pk q]I = true. Rezulta ca unica posibilitate este [q]I = true adica cctd.

• Forma particulara: 𝑝, 𝑝 → 𝑞 ⊢ 𝑞

Page 5: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu – Modus tollens

• Modus tollens (engl. "the way that denies by denying “) – alt exemplu de regula de rationament corect:

¬𝑞, 𝑝1 ∧ 𝑝2 ∧ ⋯ ∧ 𝑝𝑘 → 𝑞 ⊢ ¬𝑝1 ∨ ¬𝑝2 ∨ ⋯ ∨ ¬𝑝𝑘

• Modus tollens este folosita la demonstratiile prin reducere la absurd din matematica.

• Corectitudine:

– Tema !

• Forma particulara: ¬𝑞, 𝑝 → 𝑞 ⊢ ¬𝑝

Page 6: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu - Abductie

• Abductie – exemplu de regula de rationament incorect:

𝑝1 → 𝑞, 𝑝2 → 𝑞, … , 𝑝𝑘 → 𝑞, 𝑞 ⊢ p1 ∨ 𝑝2 ∨ ⋯ ∨ 𝑝𝑘

• Abductia este o regula folosita pentru rationamentul de la

efect la cauze, de exemplu in sistemele de diagnosticare.

Deoarece rationamentul abductiv este incorect, rezultatul

este doar o presupunere (engl. assumption) ce poate fi

ulterior infirmata in prezenta altor observatii

contradictorii.

• Abductia nu este corecta. De ce ?

Page 7: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare de jos-in-sus si de sus-in-jos

• Termenii sus-in-jos si jos-in-sus se refera la maniera de construire a demonstratiei.

• In demonstrarea de jos-in-sus (engl.bottom-up) se porneste de la clauzele din baza de cunostinte si de la faptele deja demonstrate si la fiecare pas se obtin noi fapte adevarate.

• In demonstrarea de sus-in-jos (engl.top-down) se porneste de la interogare pana se ajunge la clauzele din baza de cunostinte, despre care se stie ca sunt adevarate.

g

g

Sus-in-jos Jos-in-sus

Page 8: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare de jos-in-sus. Cazul fara variabile

• Se foloseste o singura regula de inferenta si anume regula

modus-ponens generalizata:

Daca ℎ ← 𝑏1 ∧ ⋯ ∧ 𝑏𝑚 ∈ Δ si toti atomii 𝑏𝑖 , 1 ≤ 𝑖 ≤ 𝑚, au fost

derivati atunci poate fi derivat h.

• Se spune ca aceasta regula se aplica prin inlantuire inainte

(engl.forward chaining), deoarece se merge de la ce se cunoaste

spre concluzii noi.

• Daca m = 0 regula este aplicabila intotdeauna derivandu-se

atomul h.

• Prin aplicarea acestei reguli se obtine o multime C de atomi

numita multime de consecinte a lui Δ. Se spune ca Δ ⊢ 𝑔 daca

si numai daca 𝑔 ∈ 𝐶.

Page 9: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Procedura de demonstrare de jos-in-sus

Page 10: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Complexitatea demonstrarii de jos in sus

• Algoritmul de demonstrare de jos in sus se termina

intotdeauna. De ce?

• Numarul de executii a buclei este marginit superior de

numarul clauzelor din . Astfel complexitatea este liniara

in raport cu dimensiunea bazei de cunostinte, cu conditia

unei indexari adecvate a acestor clauze. Altfel este

patratica.

Page 11: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Nedeterminism

• In IA se doreste separarea definitiei unei solutii de modul in care se calculeaza solutia. Pentru aceasta se recurge la algoritmi nedeterministi.

• Exista doua tipuri de nedeterminism (engl. nondeterminism):

– Nedeterminism “nu-conteaza” (engl.don’t care).

– Nedeterminism “nu-se-stie“ (engl.don’t know).

Page 12: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Nedeterminism “nu-conteaza”

• Nedeterminism “nu-conteaza” (engl.don’t care). Daca o alegere nu conduce la solutie atunci inseamna ca nici o alta alegere nu duce la solutie. In acest caz se foloseste termenul de selectie (engl.select).

• In implementare, nedeterminismul “nu-conteaza” se inlocuieste cu o selectie arbitrara.

Page 13: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Nedeterminism “nu-se-stie”

• Nedeterminism “nu-se-stie“ (engl.don’t know). Daca o alegere nu conduce la o solutie, nu inseamna ca si celelalte alegeri nu vor duce la solutie, adica este posibil sa existe o alta alegere care conduce la solutie. In acest caz se foloseste termenul de alegere (engl.choose).

• In implementare, nedeterminismul “nu-se-stie” se inlocuieste cu o cautare exhaustiva in spatiul solutiilor.

• Nedeterminismul “nu-se-stie” ocupa un loc central in teoria complexitatii calculului, pentru definirea clasei problemelor NP. Majoritatea problemelor in IA sunt cel putin NP-complete (subset al NP).

Page 14: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu de demonstrare de jos-in-sus

Page 15: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Corectitudinea demonstrarii de jos in sus

• Propozitie. Daca Δ ⊢ 𝑔 atunci Δ ⊨ 𝑔.

• Demonstratie.

– Presupunem prin absurd ca multimea atomilor 𝑔 astfel incat Δ ⊢ 𝑔 este adevarata si Δ ⊨ 𝑔 este falsa, este nevida. Fie ℎ primul atom adaugat la 𝐶 care nu este adevarat in toate modelele lui Δ.

– Sa presupunem ca ℎ nu este adevarat in modelul 𝐼 al lui Δ (exista un astfel de model).

– Va exista o clauza in Δ de forma ℎ ← 𝑏1 ∧ ⋯ ∧ 𝑏𝑚 pe baza careia s-a derivat ℎ.

– Din modul in care a fost ales ℎ rezulta ca 𝑏𝑖 , 1 ≤ 𝑖 ≤ 𝑚, sunt adevarati in 𝐼 (este clauza care a fost aplicata in derivarea lui ℎ). Cum ℎ este fals in 𝐼, rezulta ca si clauza respectiva este falsa in 𝐼, adica 𝐼 nu este un model al lui Δ, contradictie !

– In concluzie ipoteza a fost falsa, adica nu exista atomi ℎ cu proprietatea respectiva c.c.t.d.

Page 16: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Punct fix si model minimal

• Multimea C generata la sfarsitul algoritmului de demonstrare de jos-in-sus se numeste punct fix deoarece orice aplicare a regulii de inferenta nu o va schimba.

• Propozitie. Fie 𝐼 o interpretare in care toti atomii din 𝐶 sunt adevarati si restul sunt falsi. Atunci 𝐼 este un model al lui Δ.

• Demonstratie. Sa presupunem ca ar exista o clauza ℎ ← 𝑏1 ∧ ⋯ ∧ 𝑏𝑚 ∈ Δ astfel incat ea este falsa in 𝐼. De aici rezulta ca 𝑏𝑖 , 1 ≤ 𝑖 ≤ 𝑚, se afla in 𝐶 si ℎ nu se afla in 𝐶. Dar, prin modul de constructie al lui 𝐶, ℎ ar trebui sa apartina lui 𝐶, fapt ce contrazice ca 𝐶 este punct fix.

• 𝐼 se numeste model minimal al lui Δ.

Page 17: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Completitudinea demonstrarii de jos in sus

• Propozitie. Daca Δ ⊨ 𝑔 atunci Δ ⊢ 𝑔.

• Demonstratie. Sa presupunem ca Δ ⊨ 𝑔. Atunci 𝑔

este adevarata in toate modelele lui Δ. In

particular, 𝑔 va fi adevarata si in modelul minimal.

Rezulta ca Δ ⊢ 𝑔.

Page 18: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Regula rezolutiei

• O clauza este o disjunctie de literali.

• Fiind date doua clauze reprezentate ca disjunctii de literali:

C1 = l1 … lk x si

C2 = m1 … mp x si

rezolutia lor se defineste ca:

C = rez(C1, C2) = l1 … lk m1 … mp

• Rezolutia este o regula de inferenta corecta. De ce?

Page 19: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare de sus-in-jos. Cazul fara variabile

• Se porneste de la clauza raspuns, care are forma:

da a1 ... am

• Se selecteaza un element din corpul clauzei raspuns, fie el ai, si

o clauza din de forma:

ai b1 ... bp

• Se aplica apoi regula rezolutiei SLD (rezolutie cu functie de

selectie - S, liniara - L, pentru clauze precise - D), rezultand o

noua clauza raspuns:

da a1 ... ai1 b1 ... bp ai1 ... am

• Practic atomul selectat din corpul clauzei raspuns este inlocuit

cu corpul clauzei selectate.

Page 20: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstratie prin rezolutie SLD

• Se numeste raspuns o clauza raspuns cu m = 0.

• O demonstratie prin rezolutie SLD pentru interogarea ?q1 ... qk dintr-o baza de cunostinte este o secventa de clauze raspuns 0, 1, …, n astfel incat:

– 0 este clauza raspuns corespunzatoare interogarii initiale:

da q1 ... qk

– i se obtine rezolvand i1 cu o clauza din folosind regula rezolutiei SLD pentru 1 i n.

– n este un raspuns.

Page 21: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Rezolutie SLD

• S = functie de selectie

• L = forma demonstratiei generate este “liniara” in sensul ca i se obtine rezolvand i-1 cu o clauza din baza de cunostinte.

• D = faptul ca lucreaza doar cu clauze precise, adica clauze ce contin exact un literal pozitiv.

• da a1 ... am = da a1 ... am

• ai b1 ... bp = ai b1 ... bp

• Realizand rezolutia celor doua clauze prin reducerea literalilor ai si ai rezulta clauza:

da a1 ... ai-1 b1 ... bp ai+1 … am

care este echivalenta cu:

da a1 ... ai1 b1 ... bp ai1 ... am

Page 22: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Procedura de demonstrare de sus-in-jos fara variabile

Pentru a rezolva interogarea ?q1 ... qk:

Observatii:

1.Avem atat nedeterminism “nu-conteaza” (selectia atomului ai) cat si nedeterminism “nu-se-stie” (alegerea clauzei C din ).

2.Alegera clauzei conteaza pentru obtinerea unei demonstratii reusite (vezi exemplele urmatoare).

Page 23: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstratie reusita

Interogarea: ?a

Selectia: cel mai din stanga atom

din corpul clauzei raspuns.

Page 24: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstratie esuata

Interogarea: ?a

Selectia: cel mai din stanga atom

din corpul clauzei raspuns.

Page 25: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Instante si substitutii

• Reamintim ca definirea raspunului la o interogare in prezenta variabilelor face apel la notiunile de instanta si substitutie.

• Fie V = multimea simbolurilor de variabile, C = multimea simbolurilor de constante si T = multimea termenilor (V C ).

• Se numeste substitutie o functie : V T a.i. (V) V pentru o multime finita de simboluri {V1, …, Vn} V. O substitutie se noteaza prin = {V1/t1, …, Vn/tn}, (Vi) ti ,1 i n.

• Daca e este o expresie si = {V1/t1, …, Vn/tn} este o substitutie, aplicand asupra lui e rezulta e inlocuind fiecare aparitie a lui Vi in e cu ti. e se numeste instanta a lui e.

Page 26: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemple

• Substitutii:

1 = {X/A, Y/b, Z/C, D/e}

2 = {A/X, Y/b, C/Z, D/e}

3 = {A/V, X/V, Y/b, C/W, Z/W, D/e}

• Aplicatii ale substitutiilor:

p(A,b,C,D)1 = p(A,b,C,e)

p(X,Y,Z,e)1 = p(A,b,C,e)

p(A,b,C,D)2 = p(X,b,Z,e)

p(X,Y,Z,e)2 = p(X,b,Z,e)

p(A,b,C,D)3 = p(V,b,W,e)

p(X,Y,Z,e)3 = p(V,b,W,e)

Page 27: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Unificare si unificatori

• O substitutie se numeste unificator (engl.unifier) a doua expresii e1 si e2 daca si numai daca e1 = e2.

• Un unificator se numeste cel mai general unificator sau cmgu (engl.most general unifier sau mgu) a doua expresii e1 si e2 daca si numai daca pentru orice alt unificator ’ al lui e1 si e2 si orice expresie e, e’ este o instanta a lui e. Cu alte cuvinte nu exista un alt unificator al lui e1 si e2 mai general ca .

• Doua expresii se numesc unificabile (engl.unifiable) daca admit un unificator.

• Propozitie: Orice doua expresii unificabile admit un cmgu care este unic pana la o redenumire a variabilelor.

• Cmgu al doua expresii (daca exista) se determina printr-un algoritm de unificare (engl.unification).

Page 28: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemple de unificatori

• p(A,b,C,D) si p(X,Y,Z,e) au urmatorii unificatori:

1 = {X/A, Y/b, Z/C, D/e}

2 = {A/X, Y/b, C/Z, D/e}

3 = {A/V, X/V, Y/b, C/W, Z/W, D/e}

4 = {A/a, X/a, Y/b, C/c, Z/c, D/e}

5 = {X/A, Y/b, Z/A, C/A, D/e}

6 = {X/A, Y/b, Z/C, D/e, W/a}

• Primii trei sunt cmgu.

• Urmatoarele substitutii nu sunt unificatori:

7 = {Y/b, D/e}

8 = {X/a, Y/b, Z/c, D/e}

Page 29: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare de jos-in-sus. Cazul cu variabile

• Demonstrarea de jos-in-sus cu variabile se reduce la demonstrarea de jos-in-sus fara variabile pentru multimea tuturor instantelor de baza ale clauzelor din Δ. Acestea se obtin inlocuind in toate modurile posibile toate constantele ce apar in Δ in clauzele din Δ. Daca nu exista simboluri de constante in Δ, se inventeaza un astfel de simbol.

• Corectitudinea rezulta din faptul ca instantele clauzelor sunt adevarate in toate modelele lui Δ.

Page 30: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Completitudine

• Avem completitudine pentru interogari de forma unui atom de baza.

• Intr-o intepretare Herbrand domeniul problema este tocmai multimea de constante simbolice din baza de cunostinte. Daca aceasta multime este vida, se inventeaza un nume de constanta simbolica. Acest model se numeste model minimal.

• Pentru a arata ca daca un atom de baza este o consecinta logica a lui atunci el poate fi obtinut si prin procedura de demonstrare se construieste o interpretare Herbrand in care toate instantele de baza ale atomilor rezultati prin procedura de demonstrare de jos-in-sus sunt adevarati si restul sunt falsi.

Page 31: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Procedura de demonstrare de jos-in-sus cu variabile

• Generarea explicita a tuturor instantelor de baza ale clauzelor

din este nepractica. Din acest motiv se recomanda urmatorul

algoritm care evita acest lucru.

C :=

Repeta

Selecteaza o clauza in a.i. exista o instanta de baza a sa

h b1 ... bm astfel incat h C si bi C , 1 i m

C := C {h}

Pana cand nu se mai poate selecta nici o clauza

Page 32: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu

Page 33: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare de sus-in-jos. Cazul cu variabile

• Se porneste de la clauza raspuns, care are forma:

da(t1, …, tk) a1 ... am, unde ti, 1 i k, sunt termeni

corespunzatori variabilelor din interogare.

• Se selecteaza un element din corpul clauzei raspuns, fie el ai, si

o clauza din de forma:

a b1 ... bp

• Se aplica apoi regula rezolutiei SLD rezultand o noua clauza

raspuns:

(da (t1, …, tk) a1 ... ai1 b1 ... bp ai1 ... am)

unde = cmgu(a,ai).

Page 34: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Procedura de demonstrare de sus-in-jos cu variabile

Pentru a rezolva interogarea ?B cu variabilele V1, ..., Vk :

Page 35: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu 1

Page 36: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu 2

Page 37: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Extensia SRR cu simboluri de functii (I)

• Deseori se doreste identificarea unui individ in termenii componentelor sale, nu printr-un simbol de constanta. Cateva exemple sunt: momente de timp (4.55 p.m.), propozitii sub forma unor liste de cuvinte, grupe de studenti reprezentate prin liste, etc.

• Pentru aceasta se introduce in limbaj o multime de simboluri de functii F.

• Termen: variabila, constanta sau f(t1, ..., tn) unde ti, 1 i n, sunt termeni si f este simbol de functie.

• Interpretare: un cvadruplet I = D,,, unde este o functie care asociaza fiecarui simbol de functie de aritate n o functie definita pe Dn cu valori in D.

Page 38: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Extensia SRR cu simboluri de functii (II)

• Find date o interpretare I = D,,, si o asignare a

variabilelor , unui termen t i se asociaza un individ in D:

– daca t V atunci tI, = (t)

– daca t C atunci tI, = (t)

– daca t = f(t1, ..., tn) atunci tI, = (f)(t1I,, …, tn

I,)

• In continuare, semantica in prezenta simbolurilor de functii se

defineste la fel ca si in cazul absentei lor.

• Notiunile de substitutie, instanta si unificator se definesc la fel

ca si in cazul absentei simbolurilor de functii.

Page 39: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Unificare cu simboluri de functii

• Un termen se reprezinta printr-un arbore.

• Fie doi termeni t1 si t2. Se numeste pereche de neconcordanta

(engl. disagreement pair) o pereche (d1,d2) astfel incat d1 si d2

sunt subexpresii in t1 si t2, d1 d2, si calea de la d1 la radacina

lui t1 este identica cu calea de la d2 la radacina lui t2.

f

a g

X b

f(a,g(X,b))

Page 40: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Un algoritm de unificare

:= {}

cat timp t1 t2

selecteaza o pereche de neconcordanta

(d1,d2) a lui t1 si t2

daca d1 si d2 nu sunt variabile atunci

intoarce fals

altfel

fie V variabila si t celalalt termen dintre d1 si d2

daca V apare in t atunci // verificarea aparitiilor

intoarce fals

altfel

:= {V/t}

intoarce

Page 41: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu

:= {}, t1 = p(a,X,h(g(Z))), t2 = p(Z,h(Y),h(Y))

d1 = a, d2 = Z

:= {Z/a}, t1 = p(a,X,h(g(a))), t2 = p(a,h(Y),h(Y))

d1 = X, d2 = h(Y)

:= {Z/a,X/h(Y)}, t1 = p(a,h(Y),h(g(a))), t2 = p(a,h(Y),h(Y))

d1 = g(a), d2 = Y

:= {Z/a,X/h(g(a)),Y/g(a)}, t1 = t2 = p(a,h(g(a)),h(g(a))), STOP

Page 42: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare in prezenta simbolurilor de functii (I)

• Procedurile de demonstrare de la cazul cu variabile se pot aplica si in cazul prezentei simbolurilor de functie. Singura problema este aparitia unui numar infinit de termeni.

• In cazul demonstrarii de jos-in-sus este important ca selectia clauzelor sa fie echitabila (engl.fair). Acest lucru inseamna ca daca o clauza este selectabila atunci ea va fi selectata. Ignorarea la infinit a unei astfel de clauze se numeste infometare (engl.starvation).

• Fie spre exemplu baza de cunostinte: num(s(N)) num(N) num(a) num(b)

• O strategie neechitabila care va ignora la infinit a doua clauza nu va genera niciodata consecinta num(s(a)).

Page 43: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Demonstrare in prezenta simbolurilor de functii (II)

• Procedura de demonstrare de sus-in-jos foloseste cel mai

general unificator a doi termeni. Verificarea aparitiilor este

foarte importanta, deoarece altfel procedura nu este corecta.

• Fie spre exemplu baza de cunostinte = {q p(X,X),

p(Y,f(Y))}. Ignorand verificarea aparitiilor ar insemna ca

q. Construim o interpretare D = {a,b}, (X) = a, (Y) = b,

(f)(a) = b, (f)(b) = a, (q) = fals, (p) = {(b,a)}. Aceasta

interpretare este un model pentru , dar nu si pentru q, ceea ce

arata ca defapt q.

Page 44: Demonstrare in SRR al clauzelor precise - software.ucv.rosoftware.ucv.ro/~cbadica/ai/cap3.pdf · 2017 Corectitudine si completitudine • O procedura de demonstrare se numeste corecta

2017

Exemplu

Tema pentru acasa: ? p(X,Y,f(a,f(b,v)))