Inteligenta Artificiala
-
Upload
dominic-nixon -
Category
Documents
-
view
51 -
download
0
description
Transcript of Inteligenta Artificiala
Inteligenta ArtificialaInteligenta Artificiala
Universitatea Politehnica BucurestiAnul universitar 2005-2006
Adina Magda Floreahttp://turing.cs.pub.ro/ia_06
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
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
Prolog
4
Execuþie
sistem Prolog
conjuncþiide scopuri
program Prolog
indicator SUCCES/INSUCCES
instanþele variabilelor din scopuri
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
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
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
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
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
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))
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
4. Ciclul de inferenta al unui sistem bazat pe reguli
Identificare Selectie Executie
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.
5. Strategia de control
Criteriile de selectie din MC Directia de aplicare a regulilor
14
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
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
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)
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
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
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
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
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
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{ }
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
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
(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
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?
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
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
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
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
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
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
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