Inteligenta Artificiala

34
Inteligenta Inteligenta Artificiala Artificiala Universitatea Politehnica Bucuresti Anul universitar 2005-2006 Adina Magda Florea http://turing.cs.pub.ro/ ia_06

description

Inteligenta Artificiala. Universitatea Politehnica Bucuresti Anul universitar 2005-2006 Adina Magda Florea http://turing.cs.pub.ro/ia_06. Curs nr. 6. Limbajul Prolog Sisteme bazate pe reguli Reprezentarea prin reguli Structura SBR Ciclul de inferenta al unui sistem bazat pe reguli - PowerPoint PPT Presentation

Transcript of Inteligenta Artificiala

Page 1: Inteligenta Artificiala

Inteligenta ArtificialaInteligenta Artificiala

Universitatea Politehnica BucurestiAnul universitar 2005-2006

Adina Magda Floreahttp://turing.cs.pub.ro/ia_06

Page 2: Inteligenta Artificiala

Curs nr. 6

Limbajul PrologSisteme bazate pe reguli Reprezentarea prin reguli Structura SBR Ciclul de inferenta al unui sistem bazat pe reguli Strategia de control Exemple Sisteme bazate pe agenda

2

Page 3: Inteligenta Artificiala

1. Prolog R. Kowalski, A. Colmerauer - începutul anilor '70 Structura de control a limbajului Prolog Un scop S este adevarat intr‑un program Prolog,

adica poate fi satisfacut sau derivă logic din program, daca si numai daca:

1.  exista o clauza C a programului;2.  exista o instanta I a clauzei C astfel incat: 2.1.   antetul lui I sa fie identic cu cel al lui S;

2.2 toate scopurile din corpul lui I sunt adevarate, deci pot fi satisfacute

3

Page 4: Inteligenta Artificiala

Prolog

4

Execuþie

sistem Prolog

conjuncþiide scopuri

program Prolog

indicator SUCCES/INSUCCES

instanþele variabilelor din scopuri

Page 5: Inteligenta Artificiala

Prolog% parinte(IndividX, IndividY)% stramos(IndividX, IndividZ)parinte(vali, gelu).parinte(ada, gelu).parinte(ada, mia).parinte(gelu, lina).parinte(gelu, misu).parinte(misu, roco).

str1(X, Z) :- parinte(X, Z).str1(X, Z) :- parinte(X, Y), str1(Y, Z).

5

vali ada

gelu mia

lina mişu

roco

Page 6: Inteligenta Artificiala

Prolog% Se schimba ordinea regulilor:str2(X, Z) :- parinte(X, Y), str2(Y, Z).str2(X, Z) :- parinte(X, Z).

% Se schimba ordinea scopurilor in prima varianta:str3(X, Z) :- parinte(X, Z).str3(X, Z) :- str3(X, Y), parinte(Y, Z).

% Se schimba atat ordinea regulilor, cat si ordinea scopurilor:str4(X, Z) :- str4(X, Y), parinte(Y, Z). str4(X, Z) :- parinte(X,Z).

6

Page 7: Inteligenta Artificiala

Prolog

?- str1(ada, misu).yes

?- str2(ada, misu).yes?- str3(ada, misu).yes

7

str1(ada, misu)

parinte(ada, misu)

INSUCCES

parinte(ada, Y), str1(Y, misu)

parinte(ada, gelu)

Y=gelu

SUCCES

str1(gelu, misu)

parinte(gelu, misu)

SUCCES

str3(ada, misu)

parinte(ada, misu)

INSUCCES

str3(ada, Y), parinte(Y, misu)

parinte(ada, Y')

Y=Y'

SUCCES

parinte(gelu, misu)

SUCCES

parinte(ada, gelu)

Y'=gelu

Page 8: Inteligenta Artificiala

Prolog?- str4(ada, misu).

?- str3(mia, roco).

8

str4(ada, misu)

str4(ada, Y), parinte(Y, misu)

str4(ada, Y'), parinte(Y', Y)

str4(ada, Y"), parinte(Y", Y)

arbore infinit...

str3(mia, roco)

parinte(mia, roco)

INSUCCES

str3(mia, Y), parinte(Y, roco)

parinte(mia, Y)

INSUCCES

str3(mia, Y'), parinte(Y', Y)

parinte(mia, Y')

INSUCCES

str3(mia, Y"), parinte(Y", Y')

parinte(mia, Y")

INSUCCES

...arbore infinit

Page 9: Inteligenta Artificiala

2. Reprezentarea prin reguli Reprezentare declarativa / reprezentare procedurala

R1: daca pacientul are temperatura maresi tipul organismului este gram-pozitivsi pacientul are gitul uscatatunci organismul este streptococ

R2: daca masina nu pornestesi farurile nu se aprindatunci bateria este consumatasau bornele bateriei nu fac contact

R3: daca temperatura > 95o Catunci deschide valva de protectie

9

Page 10: Inteligenta Artificiala

Reprezentarea prin reguli - cont

Reprezentare actiuni in LP ?

( p)( o)(Temperatura (p,mare) Tip(o,gram - pozitiv) GitUscat(p))

Identitate (o,streptococ)

( m)( b)(NuPorneste(m) NuAprinde(m,far))

(Stare(b,consumata) Borne(b, fara_ contact))

Page 11: Inteligenta Artificiala

3. Structura SBR

MEMORIEDE LUCRU

Fapte dinamice

BAZA DE CUNOSTINTE Reguli Fapte

Date de activare

MOTOR DEINFERENTA

Selectie reguliReguli selectate

Actiuni(Concluzii)

Date

Reprezentare

Control

Intrari

(date de caz)

Iesiri

(Raspunsuri)si fapte

Page 12: Inteligenta Artificiala

4. Ciclul de inferenta al unui sistem bazat pe reguli

Identificare Selectie Executie

Page 13: Inteligenta Artificiala

Ciclul de inferenta al unui sistem bazat pe reguli - cont

Algoritm: Functionarea unui sistem bazat pe reguli1. ML Date de caz2. repeta

2.1. Executa identificare intre ML si BC (partea stinga sau partea dreapta a regulilor si fapte) si creeaza multimea de conflicte a regulilor aplicabile (MC)2.2. Selecteaza o regula dupa un criteriu de selectie2.3. Aplica regula prin executia partii drepte a reguliipana nu mai sunt reguli aplicabile sau memoria de lucru satisface conditia de stare scop sau o cantitate predefinita de efort a fost epuizata

sfarsit.

Page 14: Inteligenta Artificiala

5. Strategia de control

Criteriile de selectie din MC Directia de aplicare a regulilor

14

Page 15: Inteligenta Artificiala

5.1 Criteriile de selectie din MC

Selectia primei reguli aplicabile Alegerea unei reguli din multimea de

conflicte Preferinte bazate pe natura regulilor

SpecificitateMomentului folosirii anterioare

Preferinte bazate pe obiectele identificate Preferinte bazate pe natura starilor

15

Page 16: Inteligenta Artificiala

Criteriile de selectie din MC - cont Utilizarea metaregulilor

daca o regula are conditiile A si B siregula refera {nu refera} X

{ de loc/ numai in partea stinga/ numai in partea dreapta }atunci regula va fi in special utila

{ probabil utila/probabil inutila/sigur inutila }

Aplicarea tuturor regulilor din multimea de conflicte

16

Page 17: Inteligenta Artificiala

5.2 Directia de aplicare a regulilor

17

INLANTUIRE INAINTE

daca atuncidaca atunci

INLANTUIRE INAPOI

daca atuncidaca atuncidaca atunci

A B B C

A (data)C (concluzie)

determina C B C A B

( A C, implicit)Este A adevarata? (data)

Page 18: Inteligenta Artificiala

Continut initial al memoriei de lucru: A,EStare scop: D

A,E A,E,B A,E,B,C A,E,B,C,D

(a)

R3 R1 R2

A,E

A,E,B

A,E,B,C

A,E,B,C,D

A,E,C

A,E,C,D

R4

R2

R3

R1

R2

(b)

(a) Inlantuire inainte

18

Page 19: Inteligenta Artificiala

R3

Continut initial al memoriei de lucru: A,EStare scop: D

D? C? A?, B? A?, E?

(a)

R3R1R2

D

C

A B E

R1 R4

R2

A? A? E?

E?

(b)

A

C

(b) Inlantuire inapoi

19

Page 20: Inteligenta Artificiala

Algoritm: Determinarea unei valori cu inlantuire inainte a regulilor (a)DetValoareD(A)1. daca A are valoare

atunci intoarce SUCCES2. Construieste multimea de conflicte, MC, si initializeaza Efort3. daca MC = {}

atunci intoarce INSUCCES4. Alege o regula RMC dupa un criteriu de selectie 5. Aplica regula R

Adauga faptul din concluzia regulii R la ML, executa actiune6. daca A are valoare (A ML)

atunci intoarce SUCCES7. MC MC - R8. MC MC Noile reguli aplicabile9. Actualizeaza Efort10. Daca Efort = {} atunci intoarce INSUCCES11. repeta de la 3sfirsit.

20

Page 21: Inteligenta Artificiala

Algoritm: Determinarea unei valori cu inlantuirea inapoi a regulilor (b) DetValoare(A)1. Construieste multimea regulilor care refera A in concluzie, MC2. daca MC = {}

atunci2.1. Intreaba utilizatorul valoarea lui A2.2. daca se cunoaste valoarea lui Aatunci depune in ML aceasta valoarealtfel intoarce INSUCCES

3. altfel3.1. Alege o regula dupa un criteriu de selectie3.2. pentru fiecare ipoteza Ij, j=1,N, a premisei lui R executa3.2.1. Fie Aj atributul referit de ipoteza Ij3.2.2. daca Aj are valoareatunci atunci evalueaza adevarul ipotezei Ij3.2.3. altfeli. daca DetValoare(Aj) = SUCCESatunci evalueaza adevarul ipotezei Ijii. altfel considera ipoteza Ij nesatisfacuta

21

Page 22: Inteligenta Artificiala

3.3. daca toate ipotezele Ij, j=1,N sunt satisfacute atunci depune in ML valoarea lui A dedusa pe baza concluziei R

4. daca A are valoare (in ML)atunci intoarce SUCCES

5. altfel5.1 MC MC – R5.2 repeta de la 2

sfarsit.

1'. daca A este data primaraatunci 1'.1. Intreaba utilizatorul valoarea lui A1'.2. daca se cunoaste valoarea lui Aatunci - depune in ML valoarea lui A- intoarce SUCCES1’.3. altfel intoarce INSUCCES

22

Page 23: Inteligenta Artificiala

Exemplu SBR cu inlantuire inainte (a)

R11: daca Etapa este Verifica-Decorsi exista o statuiesi nu exista socluatunci adauga soclu la Obiecte-Neimpachetate …..

R17: daca Etapa este Verifica-Decoratunci termina Etapa Verifica-Decorsi incepe Etapa Obiecte-Mari

23

Nume Greutate Dimensiune Fragil Impachetat

Etapa :Cutie 1 :Obiecte Neimpachetate :

Statuie mediu mare nu nuTablou usor medie nu nuVaza usor mica da nuSoclu greu mare nu nu

Verifica - Decor

Statuie,Tablou,Vaza ,Soclu{ }

Page 24: Inteligenta Artificiala

Exemplu SBR cu inlantuire inainte - contR21: daca Etapa este Obiecte-Mari

si exista un obiect mare de ambalatsi exista un obiect greu de ambalatsi exista o cutie cu mai putin de trei obiecte mariatunci pune obiectul greu in cutie

R22: daca Etapa este Obiecte-Marisi exista un obiect mare de ambalatsi exista o cutie cu mai putin de trei obiecte mari …..atunci pune obiectul mare in cutie

R28: daca Etapa este Obiecte-Marisi exista un obiect mare de pusatunci foloseste o cutie noua

R29: daca Etapa este Obiecte-Mariatunci termina Etapa Obiecte-Marisi incepe Etapa Obiecte-Medii

24

Etapa :Cutie 1 :Obiecte Neimpachetate :

Obiecte - MediiSoclu,StatuieTablou,Vaza

Page 25: Inteligenta Artificiala

Exemplu OPS5WME(literalize student nume plasat_in sex_stud)(literalize camera numar capacitate

libere sex_cam ocupanti)(vector-attribute ocupanti)

camera 111 4 2 F (Maria Elena) time tag

(make camera ^numar 111 ^capacitate 4 ^libere 4 ^sex_cam nil ^ocupanti nil)

(make student ^nume Mihai ^plasat_in nil ^sex-stud M)

25

Page 26: Inteligenta Artificiala

(p atrib_stud_cam_libera(<Student_neplasat> (student ^nume <nume_stud> ^plasat_in nil ^sex_stud <gen>))(<Camera_libera> (camera ^numar <nr_camera>

^capacitate <capacitate_max> ^libere <capacitate_max>))-->(modify <Student_neplasat> ^plasat_in <nr_camera>)(modify <Camera_libera> ^ocupanti <nume_stud> ^sex_camera <gen> ^libere (compute <capacitate_max-1)).

26

Page 27: Inteligenta Artificiala

Exemplu SBR cu inlantuire inapoi (b)R1: daca X are par

atunci X este mamiferR2: daca X hraneste puii cu lapte

atunci X este mamiferR3: daca X este mamifer

si X are dinti ascutitisi X are falciatunci X este carnivor

R4: daca X este carnivorsi X este maroniusi X are peteatunci X este leopard

R5: daca X este carnivorsi X este maroniusi X are dungiatunci X este tigru

27

Ce este X?

Page 28: Inteligenta Artificiala

Exemplu SBR cu inlantuire inapoi si calcul incert (CF)

Valoarea fiecarui atribut este memorata impreuna cu coeficientul de certitudine asociat. Coeficientii de certitudine sint valori pozitive in intervalul [0,1].

(vin chardonney 0.8 riesling 0.6) O regula poate avea asociat un coeficient de certitudine

daca sos-meniu = sos-albatunci culoare-vin = alba 0.6

28

Page 29: Inteligenta Artificiala

R11:daca componenta-meniu = curcanatunci culoare-vin = rosie 0.7si culoare-vin = alba 0.2

R12:daca componenta-meniu = pesteatunci culoare-vin = alba

R13:daca sos-meniu = sos-albatunci culoare-vin = alba 0.6

R14:daca componenta-meniu = porcatunci culoare-vin = rosie

29

R21:daca sos-meniu = sos-albatunci tip-vin = sec 0.8si tip-vin = demisec 0.6

R22:daca sos-meniu = sos-tomatatunci tip-vin = dulce 0.8si tip-vin = demisec 0.5

R23:daca sos-meniu = necunoscutatunci tip-vin = demisec

R24:daca componenta-meniu = curcanatunci tip-vin = dulce 0.6si tip-vin = demisec 0.4

Page 30: Inteligenta Artificiala

R31:daca culoare-vin = rosiesi tip-vin = dulceatunci vin = gamay

R32:daca culoare-vin = rosiesi tip-vin = secatunci vin = cabernet-sauvignon

R33:daca culoare-vin = rosiesi tip-vin = demisecatunci vin = pinot-noir

30

R34:daca culoare-vin = albasi tip-vin = dulceatunci vin = chenin-blanc

R35:daca culoare-vin = albasi tip-vin = secatunci vin = chardonnay

R36:daca culoare-vin = albasi tip-vin = demisecatunci vin = riesling

Page 31: Inteligenta Artificiala

scop(vin) monovaloare(componenta-meniu)monovaloare(culoare-vin)monovaloare(sos-meniu)multivaloare(tip-vin)multivaloare(vin) valori-legale(componenta-meniu) = [curcan, peste, porc] valori-legale(sos-meniu) = [sos-alb, sos-tomat]valori-legale(tip-vin) = [sec, demisec, dulce]valori-legale(vin) = [gamay, cabernet-sauvignon, pinot-noir,

chenin-blanc,chardonnay, riesling]

valori-legale(culoare-vin) = [rosie, alba]

31

Page 32: Inteligenta Artificiala

4. Sisteme bazate pe agenda Structura de control a anumitor sisteme

bazate pe reguli nu foloseste nici inlantuirea inainte nici inlantuirea inapoi a regulilor, ci o strategie de control de tip agenda.

Aceasta strategie este in special utila in cazul in care se foloseste un criteriu de selectie a regulilor bazat pe preferinta starilor, deci o functie euristica de evaluare.

O agenda este o lista de sarcini pe care sistemul trebuie sa le execute.

32

Page 33: Inteligenta Artificiala

Algoritm: Strategia de control de tip "agenda" 1. Initializeaza agenda cu sarcina de executat2. repeta

2.1. Selecteaza sarcina cu prioritate maxima, T2.2. Executa sarcina T in limitele unor resurse de timp si spatiu determinate de importanta lui T2.3. pentru fiecare noua sarcina Ti generata de T executa2.3.1. daca Ti este deja in agendaatunci i. Fie T'i copia lui Ti din agenda ii. daca justificarile lui T'i nu includ justificarea lui Ti

atunci adauga justificarea lui Ti justificarilor lui T'iiii. Inlocuieste T'i cu Ti

33

Page 34: Inteligenta Artificiala

2.3.2. altfel adauga Ti si justificarea asociata in agenda

2.3.3. Calculeaza prioritatea sarcinii Ti pe baza justificarilor asociate

pana agenda satisface conditia de stare finala sauagenda este vida

sfarsit.

34