reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · ea ne da...

28
2017 Reprezentare si rationament folosind clauze precise Capitolul 2

Upload: others

Post on 06-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Reprezentare si rationament

folosind clauze precise

Capitolul 2

Page 2: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Agenti bazati pe cunostinte

• Una dintre abordarile clasice ale IA porneste de la premisa ca

inteligenta umana este rezultatul realizarii de catre oameni a

unor procese de rationament (engl. reasoning) efectuate

asupra unor reprezentari interne ale cunoasterii.

• Acest punct de vedere a condus la ideea ca inteligenta este

“incapsulata” in agenti bazati pe cunostinte (engl. knowledge-

based agents – KBA).

• Un KBA dispune de o componeenta speciala numita sistem de

reprezentare si rationament (engl. representation and

reasoning system – RRS) a cunostintelor ce foloseste logica

matematica / computationala ca mecanism de baza pentru

reprezentarea cunostintelor si efctuarea rationamentelor asupra

cunostintelor.

Page 3: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Sisteme de reprezentare si rationament

• Sistemele de reprezentare si rationament sunt

instrumentele de baza pentru implementarea KBA. Un

RRS se compune din:

– Un limbaj formal pentru reprezentarea cunoasterii din

domeniul problemei (engl.task domain).

– O semantica pentru specificarea intelesului enunturilor

limbajului formal al RRS.

– O teorie a rationamentului (engl.reasoning theory) numita

si procedura de demonstrare (engl.proof procedure).

Page 4: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

RRS – sintaxa

• Un limbaj formal pentru reprezentarea cunoasterii din domeniul

problemei (engl.task domain). Reprezinta partea de sintaxa a

RRS. El este specificat printr-o gramatica. Se mai numeste si

limbaj de reprezentare a cunostintelor (engl. knowledge

representation language). O multime de enunturi (engl.

statements sau sentences) in acest limbaj formeaza o baza de

cunostinte (engl.knowledge base – KB).

Page 5: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

RRS – semantica

• O semantica pentru specificarea intelesului enunturilor limbajului formal al RRS. Permite aprecierea adevarului enunturilor din baza de cunostinte independent de implementare.

• Este baza a determinarii corectitudinii si completitudinii rationamentului.

Page 6: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

RRS – teoria rationamentului

• O teorie a rationamentului (engl.reasoning theory) numita si

procedura de demonstrare (engl.proof procedure).

• De obicei este constituita dintr-o multime de reguli de

inferenta (engl.inference rules). Ele reprezinta o specificatie

nedeterminista a modului in care se determina rezultatele unei

interogari.

Page 7: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Implementarea RRS

• Contine doua componente:

– Un program de analiza sintactica si translatare

(engl.language parser). El recunoaste enunturile corecte

exprimate in formalismul de reprezentare a cunostintelor si le

traduce sub forma unor structuri de date interne.

– O procedura de rationament (engl.reasoning procedure).

Uneori se numeste si motor de inferenta (engl. reasoning

engine). Ea reprezinta implementarea unei teorii a

rationamentului si foloseste o strategie de cautare

(engl.search strategy). Strategia de cautare are rolul de a

rezolva problema nedeterminismului din cadrul teoriei

rationamentului.

• Servicii: ASK (interogare) si TELL (revizuire).

Page 8: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Corectitudine si completitudine

• Observatie: semantica nu este reflectata direct intr-o implementare a SRR. Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila pentru interpretarea rezultatelor.

• O procedura de rationament este:

– corecta (engl.sound) in raport cu semantica daca rezultatele obtinute de aceasta procedura sunt adevarate in raport cu semantica respectiva.

– completa in raport cu semantica daca orice enunt adevarat in raport cu semantica poate fi obtinut de procedura.

Page 9: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Utilizarea RRS

1. Se porneste de la un domeniu problema (engl.task domain). Exemple:

topologia unui birou, sistemul electric al unei case, sistemul de cursuri

al unei universitati.

2. Se identifica obiectele/conceptele/relatiile din domeniul problemei.

Aceasta etapa se mai numeste si conceptualizarea domeniului.

3. Se asociaza simboluri pentru reprezentarea obiectelelor/

conceptelor/relatiilor din domeniul problemei.

4. Se construieste baza de cunostinte din domeniul problema. Pentru

aceasta se foloseste serviciul TELL. Ea poate cuprinde:

• Cunoastere referitoare la ceea ce este adevarat in domeniul respectiv.

• Cunoastere referitoare la rezolvarea de probleme in domeniul respectiv.

5. Se interogheaza RRS folosind serviciul ASK. Rezultatele se

interpreteaza conform semanticii.

Page 10: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Functia unui KBA

• Agentul “transmite” KB prin TELL ceea ce a perceput.

• Agentul “intreaba” KB prin ASK ce actiune trebuie sa execute.

• In final agentul “transmite” KB prin TELL ce actiune trebuie sa

execute, efectul fiind executia acestei actiuni.

Page 11: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Rolul semanticii in RRS

Page 12: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Metodologia de reprezentare intr-un RRS

• Se poate face o analogie intre un limbaj de programare si un RRS. La fel cum avem o metodologie de programare, tot asa exista si o metodologie de reprezentare intr-un RRS.

• Separarea teoriei rationamentului de strategia de control intr-un RRS corespunde separarii dintre logica domeniului si controlul calculului solutiei in limbajele de programare.

• Diferenta dintre un limbaj de programare ordinar si un RRS este modul de definirre a semanticii. Aceasta conduce la imposibilitatea de interpretare a rezultatelor intr-o maniera independenta de modul cum au fost ele calculate.

• Drept RRS vom folosi logica matematica. Logica permite specificarea semanticii printr-o functie de interpretare a simbolurilor limbajului in termenii entitatilor din domeniul problemei. O astfel de semantica se numeste semantica Tarskiana.

Page 13: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Ipoteze simplificatoare in RRS

• Ipoteza IR (engl.Individuals and Relations): cunoasterea unui agent poate fi descrisa in termeni de indivizi si relatii intre indivizi. Relatiile sunt n-are. Daca n = 0 relatiile se numesc propozitii, daca n = 1 se numesc relatii unare, daca n = 2 se numesc relatii binare, etc.

• Ipoteza DK (engl.Definite Knowledge): cunoasterea unui agent consta din enunturi precise (engl.definite) si pozitive. Acest lucru inseamna ca enunturile nu sunt vagi (cu disjunctii) sau negative.

• Ipoteza SE (engl.Static Environment): mediul agentului este static.

• Ipoteza FD (engl.Finite Domain): exista un numar finit de indivizi de interes in domeniul agentului.

• SRR cu ipotezele IR, DK, SE se numeste logica clauzelor precise (engl.definite clause logic).

• SRR cu ipotezele IR, DK, SE, FD se numeste Datalog.

Page 14: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Sintaxa Datalog (I)

• Variabila: secvente de litere, cifre si „_‟ ce incep cu litera mare sau „_‟. Exemple: X, Persoana, Lista, _002, Cel_mai_mare.

• Constanta: secvente de litere , cifre si „_‟ incepand cu litera mica (simboluri) sau secvente de cifre (numere). Exemple: carte, 120, celMaiMare, cel_mai_mare.

• Simbol de predicate: secvente de litere, cifre si „_‟ incepand cu litera mica. Exemple: p, bunic, mai_mare. Un simbol de predicat are o anumita aritate ce este un numar natural. Un simbol de predicat de aritate 0 se numeste simbol de propozitie.

• Termen: variabile sau constante.

• Atom: p, unde p este un simbol de propozitie sau p(t1, …, tn) unde p este un simbol de predicat de aritate n 1 si ti sunt termeni. Exemple: pozitiv(2), preda(costin,ia), vremea_este_frumoasa.

Page 15: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Sintaxa Datalog (II)

• Corp: a1 ... an unde ai sunt atomi, n 1. Un corp

este o conjunctie de atomi. este simbolul “si logic” (conjunctie). Exemple: ploua bate_vantul.

• Fapt: a, unde a este atom. Exemplu: pozitiv(3).

• Regula: a b unde a este atom si b este corp.

Exemplu:

% in(P,S) profesorul P este in sala S

in(P,S)

preda(P,C)

planificat(C,S)

Page 16: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Sintaxa Datalog (III)

• Clauza precisa: fapt sau regula.

• Interogare: ?b unde b este corp.

• Expresie: termen, atom, clauza precisa sau interogare.

O expresie se numeste de baza sau complet instantiata

(engl.ground) daca nu contine variabile.

• Baza de cunostinte: multime de clauze precise.

• Comentariu: linie ce incepe cu „%‟.

Page 17: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Exemplu de baza de cunostinte

depozitare(X,container_metalic)

consistenta(X,solid)

proprietate(X,toxic)

depozitare(X,container_metalic)

consistenta(X,solid)

proprietate(X,inflamabil)

depozitare(X,rezervor_presurizat)

consistenta(X,gaz)

proprietate(X,inflamabil)

Page 18: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Conceptul de semantica Tarskiana

• Semantica (engl.semantics) = o metoda de specificare a

intelesului enunturilor unui limbaj.

• In SRR bazate pe logica matematica se adopta o semantica

Tarskiana. O astfel de semantica cuprinde doua parti:

– O multime de obiecte numite si indivizi din lumea inconjuratoare, ce

formeaza domeniul problemei si o multime de relatii intre acestia.

– O corespondenta intre simbolurile din limbaj si obiectele si relatiile

din lumea inconjuratoare.

• Constantele simbolice desemneaza indivizii

• Simbolurile de relatii (predicate) desemneaza relatiile

• Aceasta corespondenta se numeste functie de interpretare.

Page 19: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Semantica formala

• Formal inseamna in acest context precis, bine-definit, clar.

• Interpretare = un triplet I = D,, unde:

– D este o multime nevida numita domeniu. Elementele lui D se numesc indivizi.

– este o functie care asociaza fiecarui simbol de constanta c un element (c) D.

– este o functie care asociaza fiecarui simbol de predicat n-ar o functie definita pe Dn cu valori in multimea {adevarat,fals}.

• Domeniul D poate contine fie obiecte reale (de ex. persoane), fie obiecte abstracte (de ex. numere).

• Daca p este un simbol de predicat n-ar, n 1, atunci (p) este o relatie pe Dn.

• Daca p este un simbol de propozitie atunci (p) este adevarat sau fals.

Page 20: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Exemplu de interpretare

• D = {persoana numita Alan, camera 123, camera 023, cladirea departamentului de Computer Science}. Facem observatia ca D nu este o multime de simboluri, ci o multime formata chiar din obiectele desemnate de simbolurile respective.

• Constantele simbolice sunt: alan, r123, r023, cs_building.

• Functia se defineste astfel: (alan) = persoana numita Alan, (r123) = camera 123, (r023) = camera 023, (cs_building) = cladirea departamentului de Computer Science

• Simbolurile de predicate sunt: person/1 (person de aritate 1), in/2, part_of/2

• Functia se defineste astfel:

– (person) = {(persoana numita Alan)}

– (in) = {(persoana numita Alan,camera 123), (persoana numita Alan,cladirea departamentului de Computer Science)}

– (part_of) = {(camera 123,cladirea departamentului de Computer Science), (camera 023,cladirea departamentului de Computer Science)}

Page 21: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Adevar intr-o interpretare

• Fiecare termen de baza desemneaza printr-o interpretare I un individ. Constanta simbolica c desemneaza in I individul cI = (c) D.

• Simbolul de predicat n-ar p desemneaza in I relatia n-ara pI = (p) Dn.

• [p(t1, …, tn)]I = pI(t1

I,…,tnI)

• [p q]I = pI qI

• [p q]I = pI qI

• [h b1 ... bn]I = fals daca hI = fals si bi

I = adevarat pentru toti i =1,n altfel [h b1 ... bn]

I = adevarat.

p q p q p q

adevarat adevarat adevarat adevarat

adevarat fals fals adevarat

fals adevarat fals fals

fals fals fals adevarat

Page 22: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

• O baza de cunostinte Δ este adevarata intr-o interpretare 𝐼 daca fiecare clauza din este adevarata in I, adica Δ𝐼 = 𝑎𝑑𝑒𝑣𝑎𝑟𝑎𝑡 daca si numai daca 𝜙𝐼 = 𝑎𝑑𝑒𝑣𝑎𝑟𝑎𝑡 pentru orice 𝜙 ∈ Δ.

• Se numeste model pentru o baza de cunostinte Δ o interpretare 𝐼 astfel incat Δ𝐼 = 𝑎𝑑𝑒𝑣𝑎𝑟𝑎𝑡. Acest lucru se noteaza prin:

⊨𝐼 Δ.

• Daca Δ este o baza de cunostinte si 𝑔 este o conjunctie de atomi de baza atunci se spune ca 𝑔 este o consecinta logica a lui Δ, fapt notat prin Δ ⊨ 𝑔 daca si numai daca 𝑔 este adevarata in toate modelele lui Δ.

• Cu alte cuvinte Δ ⊨ 𝑔 daca si numai daca nu exista nici o interpretare in care Δ este adevarata si 𝑔 falsa.

Model si consecinta logica

Page 23: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Exemple de modele si consecinte logica

(p) (q) (r) (s)

I1 adevarat adevarat adevarat adevarat

I2 fals fals fals fals

I3 adevarat adevarat fals fals

I4 adevarat adevarat adevarat fals

I5 adevarat adevarat fals adevarat

Page 24: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Semantica din punctul de vedere al utilizatorului

1. Se alege domeniul problema. Acesta va furniza interpretarea intentionata

(engl.intended interpretation). Ea va cuprinde o multime de indivizi si o

multime de relatii.

2. Se asociaza constante simbolice indivizilor din interpretarea intentionata.

3. Se asociaza simboluri de predicate relatiilor din interpretarea intentionata.

4. Se construieste baza de cunostinte. Ea va fi formata din clauze precise

care sunt adevarate in interpretarea intentionata. Aceasta etapa se mai

numeste si axiomatizarea domeniului problema. Clauzele scrise se

numesc si axiomele domeniului.

5. Se formuleaza interogari, rezultatele fiind interpretate conform

interpretarii intentionate.

- Daca Δ ⊨ 𝑔 atunci 𝑔 va fi in particular adevarata si pentru interpretarea intentionata.

- Daca insa nu este adevarat ca Δ ⊨ 𝑔 atunci va exista un model 𝐼 al lui Δ in care 𝑔 este

falsa. Acesta poate fi tocmai interpretarea intentionata. In concluzie in aceasta situatie nu

putem sti daca 𝑔 este adevarata sau nu in interpretarea intentionata.

Page 25: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Variabile

• Pentru definirea semanticii clauzelor cu variabile se defineste notiunea de asignare a variabilelor (engl.variable assignment). Aceasta este o functie definita pe multimea simbolurilor de variabile cu valori in domeniul D.

• Find date o interpretare I = D,, si o asignare a variabilelor , fiecarui termen t i se va asocia un individ t, din D.

– Daca t este un simbol de constanta atunci t, = (t).

– Daca t este un simbol de variabila atunci t, = (t).

• Fiind date o intepretare si o asignare a variabilelor, se poate determina valoarea de adevar a unui atom cu variabile si a unei clauze cu variabile.

• Variabilele dintr-o clauza se considera cuantificate universal. Acest lucru inseamna ca o clauza este adevarata daca si numai daca ea este adevarata pentru toate asignarile variabilelor.

Page 26: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Interogari si raspunsuri

• Interogarile ofera posibilitatea de a determina daca o conjunctie de atomi (corp) este sau nu o consecinta logica a unei baze de cunostinte:

?b1 ... bn

• O instanta (engl.instance) a unei interogari se obtine prin inlocuirea variabilelor interogarii cu termeni (constante sau variabile) astfel incat aparitiile diferite ale aceleiasi variabile sa fie inlocuite cu acelasi termen. O astfel de inlocuire se numeste substitutie.

• Un raspuns poate fi:

– O instanta a unei interogari ce este o consecinta logica a bazei de cunostinte. Raspunsul se poate da sub forma substitutiei ce a generat instanta respectiva.

– Raspunsul „nu‟ daca nici o instanta a interogarii nu este o consecinta logica a bazei de cunostinte.

• Fie ?B o interogare si fie V1, …, Vk variabilele ce apar in conjunctia de atomi B. Se construieste urmatoarea clauza raspuns: da(V1, …, Vk) B. Determinarea raspunsului la interogare se reduce acum la determinarea tuturor instantelor atomului da(V1, …, Vk) ce sunt consecinte logice ale bazei de cunostinte reunita cu {da(V1, …, Vk) B}.

Page 27: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Exemplu

Interogare Raspuns

?part_of(r123,B) part_of(r123,cs_building)

?part_of(r023,cs_building) nu

?in(alan,r023) nu

?in(alan,B) in(alan,r123)

in(alan,cs_building)

Page 28: Reprezentare si rationament folosind clauze precisesoftware.ucv.ro/~cbadica/ai/cap2.pdf · Ea ne da doar o modalitate de apreciere a semnificatiei simbolurilor folosite si este utila

2017

Colorarea hartilor

color(red)

color(blue)

color(green)

color(yellow)

?coloring(C1,C2,C3,C4,C5)

C1 = red

C2 = blue

C3 = green

C4 = red

C5 = blue

120 solutions

coloring(C1,C2,C3,C4,C5)

color(C1),

color(C2),

C2 C1,

color(C3),

C3 C1, C3 C2,

color(C4),

C4 C1, ...