Sunteți pe pagina 1din 28

Examen Inteligenta Artificiala

CURS1
Introducere in AI
Ce este AI?
Inteligenta artificiala este o ramura a informaticii care se ocupa cu comportamentul
inteligent, invatarea si adaptarea masinilor.
CUM TREBUIE SA FIE AI:
1.
2.
3.
4.

Trebuie sa aiba comportament uman


Gandire umana
Gandire rationala (Abordarea Legilor Gandirii)
Comportament rational (Abordarea agentului rational, cu alte cuvinte interactiunea cu
omul)
5. Sisteme care gandesc ca oamenii, de aici deducem urmatoarele:
- Masini cu minte;
- Automatizarea unor activitati pe care le asociem cu gandirea umana.
Luarea de decizii;
Rezolvarea de probleme;
Invatarea
TESTUL TURING: Un computer interogat prin mesaje scrise, trece testul daca dupa 5
minute, sunt 30% sanse ca omul sa nu stie daca a avut de a face cu o masina sau cu o alta
presoana.
NECESITATI ALE UNUI PROGRAM AI:
Un program care foloseste inteligenta artificiala ar trebui sa poata face urmatoarele
lucruri:
-

Proceseze limbaj natural;


Reprezentare de cunostinte;
Rationament automat;
Invatare automata;

A actiona rational inseamna a actiona pentru a atinge un scop avand anumite credinte sau
pareri.
Un agent este o entitate care percepe si actioneaza.
Realizarea de inferente corecte defineste un agent rational.
BAZELE AI:

Filosofia;
Matematica;
Economia;
Neurologia;
Psihologia;
Ingineria Calculatoarelor;
Teoria controlului;
Lingvistica;

ISTORICUL INTELIGENTEI ARTIFICIALE


1.
2.
3.
4.
5.
6.
7.
8.

Inceputurile 1943-1955;
Nasterea AI 1956;
Marile Asteptari 1952-1969;
Revenirea la realitate 1966;
Sisteme bazate pe cunoastere 1969 -1979;
Industria AI 1980 Prezent
1995- Aparitia agentilor inteligenti;
2001 Structuri mari de date;

CURS2
Bazele logice ale Inteligentei Artificiale
LOGICA SI LOGICA SIMBOLICA
Logica = Teorie stiintifica a rationamentului ce exclude procesele fiziologice
Dintre principalele aplicatii ale logigii in domeniul Informaticii Economice putem
aminti:
-

Baze de Date si de Cunostinte, a caror interogare se bazeaza pe logica;


SE, SSD, SSE, dar si deciziile de zi cu zi ale managerului sau omului de afaceri se
bazeaza pe rationamente logice
Practic nu exista domeniu de afaceri in care logica sa nu joace un rol major.

Logica are doua ramuri esentiale:


-

Logica Clasica sau logica aristoteliana categoriile logice fundamentale:


notiunea, judecata sau rationamentul;
Logica matematica, formala sau simbolica;

Logica simbolica este fundamentul rationamentului uman si are urmatoarele avantaje:


-

Asigura expresivitatea si rigurozitatea in reprezentarea cunostiintelor;


Asigura deducerea unor cunostinte noi bazate pe cunostintele deja existente;

Logica utilizeaza simboluri adica sunt reprezentate simbolic obiectele si operatiile

executate asupra simbolurilor.


Sistemele cele mai uzuale in Informatica Economica sunt calculul propozitiilor si cel al
predicatelor.
Calculatorul si deci informatica, prelucreaza simboluri. Din aceasta cauza logica formala,
apare sub denumirea de logica simbolica.
Logica Simbolica de ordinul 1 = logica propozitiilor + logica predicatelr de ordinul
1.
LOGICA PROPOZITIILOR( PL )
Diferenta dintre gramatica si logica simbolica. In PL, valoarea de adevar a propozitiei
este calitatea acesteia de a fi adevarata sau falsa in intregul ei si nu intereseaza obiectele
consitutive ale sale. Exemplu: propozitia Ionescu este managerul societatii comerciale sau
Ionescu manager (Ambele sunt adevarate pentru ca in ambele Ionescu ocupa aceeasi functie).
Teoria logica este in esenta un limbaj de reprezentare a cunostintelor. Ca orice limbaj are
doua aspecte esentiale:
-

Aspectul semantic;
Aspectul sintactic;

Aspectul Semantic sau Semantica:


Se refera la aspectele intime sau interne ale universului problemei si are urmatoarele
obiective:
-

Notarea propozitiilor atasate universului problemei cu ajutorul unor simboluri si


fixarea valorii de adevar a acestor simboluri;
Stabilirea simbolurilor care joaca rolul de conectori, adica leaga simbolurile
atasate propozitiilor.
Stabilirea valorii de adevar a propozitiilor astfel obtinute (compuse)

Conceptul central in abordarea semantica este cel de Valoare de adevar.


Spre deosebire de abordarea semantica, cea sintactica are ca si concept central
demonstratia logica si anume, trebuie sa raspunda la intrebarea Este o formula demonstrabila
in cadrul unui sistem logic, sau nu?. Din acest motiv de regula semantica este asemanata cu
studiul expresiilor din algebra, unde se demonstreaza corectitudinea formulelor, in timp ce
sintaxa se aseama cu rezolvarea sistemelor de ecuatii prin metoda substitutiei.
Abordarea Semantica
In cadrul abordarii semantice trebuie fixate 5 elemente de baza:
-

Limbajul de descriere a formelor logice (alfabetul limbajului);


Valoarea de adevar a simbolurilor atasate propozitiilor (respectiv predicatelor);

Functiile de evaluare;
Mecanismul de rationament reprezentat de consecintele logice;
Principiile teoriei logice;

In logica propozitiilor, PL, propozitiile simple sunt tratate atomic, ca un tot unitar, se vor nota cu
cate un simbol (litere mari sau mici ale alfabetului). Propozitii simple => nici o parte a lor nu
este propozitie.
Logica propozitiilor clasice: Orice propozitie poate fi T(Adevarata) sau F(Falsa), dar nu
amandoua deodata (legea tertului exclus)-logica bivalenta.
Teoremele in logica, sunt sisteme in care se pleaca cu valoarea de adevar a unor propozitii,
numite ipoteze sau premise, si aplicand o serie de reguli de rationare numite si reguli
inferentiale, operatii si functii logice se ajunge la alte propozitii numite concluzii.

LIMBAJUL DE DESCRIERE A FORMULELOR (Sistemul Notational)


In PL alfabetul este format din simboluri propozitionale definitie astfel:
-

Litere mici sau mari atasate propozitiilor;


Conectori logici:

~ sau
- negaia
^ - conjuncia
V disjuncia
- implicaia
- echivalena
Alte simboluri, cum ar fi de exemplu (,).

PL Formulele corecte, corect formulate sau bine formulate, notate in literatura cu wff well
formated formulas definesc recursiv:

un atom (simbol ataat unei propoziii simple) este un wff; un wff n parantez;
dac P este un wff , negatul su ~P este un wff;
dac P i Q sunt wff, atunci P^Q, PVQ, PQ i PQ au aceeai proprietate;
mulimea wff-urilor este generat de regulile 1-3. (P (Q^~R)); (P).

Propozitiile compuse sunt wff-uri care se realizeaza pe baza unor conectori sau operatori logici.
Principalii operatori logici, asa dupa cum s-a prezentat mai sus sunt: Negatia, Conjunctia sau
Disjunctia.
Negatia: unei propozitii non P adica exact opusul lui P. Daca P este adevarata
atunci non P va fi falsa si invers.
Conjunctia: a doua propozitii este alipirea lor, se adauga una la capatul celeilalte. De
exemplu daca P = Pamantul este rotund si Q=Impozitul este o datorie fata de stat atunci

conjunctia dintre P si Q va fi P&Q = Pamantul este rotund si impozitul este o datorie fata de
stat.
Disjunctia: O propozitie o elimina pe cealalta, adica se alege numai una dintre cele
doua (P sau Q).
Valoarea de adevar: Exista o teorie logica in care avem exact doua valori de adevar
care pot fi luate pe rand de o propozitie, niciodata simultan. T(true) sau F(False). De aici
deducem ca avem de a face cu logica bivalenta. Logica bivalenta are diferite forme precum:
Logica propozitiilor, logica predicatelor, logica modala sau temporala.
Functia de evaluare/valorizare/de adevar a unui atom, este o propozitie care
ataseaza atomului respectiv o valoare T sau F in logica bivalenta. De aici deducem ca functia de
evaluare a unei propozitii ataseaza o valoare de adevar propozitiei in functie de valoriile de
adevar ale compoonentelor, pe baza regulilor de evaluare a conectorilor.
Pe baza domeniilor de interpretare si a functiilor de evaluare, wff-urile se
clasifica in:
-Tautologii sau formule valide Adevarat (T) indiferent de interpretare
-Consistente care iau valoarea T pentru unele interpretari
-Inconsistente (invalide) F pentru unele interpretari
-Contradictii F pentru orice interpretare
WFF-uri echivalente(daca au aceeasi valoare de adevar pentru orice interpretare)
Modelul unui Wff o interpretare pentru care formula ia valoarea T. Analog, se
poate definii modelul unui ansamblu de formule ca fiind o interpretare pentru care toate
formulele sunt adevarate.
PRINCIPIILE TEORIEI LOGICE
Orice teorie logica trebuie sa respecte anumite principii fundamentale. Respectarea
sau dimpotriva, eliminarea unor restrictii, stabileste tipul logicii.
a. Principiul fixarii numarului de valori logice.
Teoriile logice Un numar fixat ,n de valori logice distincte mai mare ca 2. |V| cardinalul multimii V de cele mai multe ori acest cardinal are o valoare finita. Exista insa si
logici infinite.
Logica este cea bivalenta in care multimea V are doua elemente T si F. De aici rezulta
ca |V| = 2
Functie LOGICA = oricarei combinatii de valori logice trebuie sa-i corespunda o
valoare logica. Functiile logice binare, adica acelea care au 2 argumente. Aceste functii fac ca la
combinatiile FF, FT,TF si TT sa le corespunda valorile T sau F.
Dintre functiile logice cele mai importante sunt considerate:

Implicatia Inferenta logica operatia principala in domeniul bazelor de


cunostinte. Are semnificatia daca P atunci Q. Propozitia P->Q ia valoarea fals numai daca din P
adevarat => Q fals. Aici avem deci urmatoarele doua situatii posibile:
Daca P este adevarata, atunci si Q trebuie sa fie adevarata;
Daca p este falsa atunci Q poate fi adevarata sau falsa.
Echivalenta logica echivalenta notata cu <->, reprezentata de dubla implicatie si
deci, genereaza o propozitie compusa care este adevarata daca cele doua propozitii P si Q
sunt concomitent adevarate sau false.
b. Principiul consistentei si non-contradictiei
Pentru un domeniu de interpretare dat, o propozitie are o caloare unica din V de aici
rezulta principiul valorizarii non-contradictorii si consistente. Cu alte cuvinte o logica
consistenta nu poate primi deodata doua sau mai multe valori de adevar.
Logicile care nu sunt consistente se numesc paraconsistente sau logici
suprasaturate . In aceste logici propozitiile pot primi deodata doua sau mai multe valori de
adevar.
c. Principiul excluderii celei de a n+1 a valoare.
Unui atom i se poate asocia o valoare din multimea V, pe domeniul de interpretare =>
functia de evaluare este total diferita pe domeniul de interpretare. Principiul excluderii celei de a
n+1 a valoare se traduce in logica bivalenta ca fiind legea tertului exclus. Orice propozitie poate
fi ori adevarata ori falsa, nu poate lua o a treia valoare.
Pornind de la doua valori logice, admiterea sau respingerea principiilor b si c
genereaza diferite logici, astfel:
-Admiterea ambelor duce la logica clasica;
-Admiterea consistentei b si respingerea c duce la logici lacunare sau la logici
intuitiviste, unde se admite si o a 3 a valoare.
-Respingerea lui b si admiterea lui c duce la logici paraconsistente
-Respingerea ambelor principii, duce la logici cu semantici aproximative numite si
logici relevante, unde o propozitie poate admite mai multe valori sau ramane
neevaluata.
d. Principiul constantei de valorizare a unei propozitii elementare
O valoare de adevar a unei propozitii elementare date trebuie sa ramana aceeasi la
toate aparitiile acesteia atata timp cat se considera o anumita interpretare. Renuntarea la acest
principiu duce la logici paraconsistente sau relevante.

MECANISMUL RATIONAMENTULUI

Realizarea rationamentului intr-un sistem logic se refera la obtinerea unor formule noi
pe baza celor existente. De aici deducem ca exista o extindere consistenta a cunostintelor despre
universul problemei.
O formula Q este o consecinta logica a unei formule P, daca Q ia valoarea de
adevar T pentru toate interpretarile pentru care P ia valoarea T.

CURS3
Bazele logice ale Inteligentei artificiale 2.
ABORDAREA SINTACTICA A TEORIEI LOGICE
Sistemul Formal
Sistemul formal este un instrument de analiza, prelucrare si generare a simbolurilor
de baza (semnelor limbajului) si care duce la structuri de simboluri, respectiv siruri de simboluri
(cuvinte, propozitii, fraze) acceptate in limbaj.
Din cele de mai sus rezulta ca un sistem formal se defineste ca un cvadruplu
S={A,F,YR} unde:
-A = alfabetul sistemului (multimea simbolurilor de baza)
-F = multimea formulelor corecte (WFF). F este o submultime a sirurilor de caractere
sau simboluri din alfabetul A
-Y = multimea axiomelor daca Y este inclus in A. Despre Y se poate demonstra ca este
decidabila, adica pentru orice element x a lui A* se poate demonstra ca face parte
sau nu din multimea Y a axiomelor.
-R = multimea regulilor de deductie sau inferentiale. O regula de deductie este o
relatie de aritate n+1 in multimea wff-urilor.
={y1, y2,, yn}, mulimea premizelor. Se noteaz cu E0 = U reuniunea dintre mulimea
premizelor i cea a axiomelor. Se consider:
E1 = E0 U {x | Y E0, astfel nct R:Yx, cu R}
adic E1 este format din E0 i imaginile elementelor din E0 prin reguli de deducie din . Avnd
construit E1, putem construi - E2, E3,
Dac n mulimea E0, =, adic E0 este format numai din axiome, atunci elementele lui
Ei , i=1,2,..., - teoreme ale sistemului formal un rezultat cunoscut din matematic i
anume, teoremele unui sistem formal sunt acele formule care pot fi demonstrate utiliznd
numai axiome.
Daca x este o teorema din multimea premizelor Ei, printr-o secventa de deductii din
multimea D care e compusa din mai multe premize, se formeaza o alta secventa de deductii care
formeaza demonstratia teoremei.

Un sistem S de formule este decidibil, daca exista o procedura efectiva prin care se
poate decide daca o formula din S este sau nu o teorema.
Decidibilitarea este esentiala in teoria sistemelor formale. Este baza teoriei
demonstrabilitatii teoremelor, deci a extinderii cunostintelor in cadrul sistemelor logice.
ALGEBRA BOOLEANA
Semantica -Alfabetul i cuvintele (wff)

1. A - simbolurile propoziionale notate cu p,q,r, sau P,Q,R,, constante - A,B,... precum


i pe cei trei conectori: ~, ^ i .
2. F wff
3.
- Axiomele de baz ale algebrei booleene sunt:
1. 1 comutativitatea:
P ^ Q = Q ^ P, respectiv P Q = Q P
2. 2 asociativitatea:
P ^ ( Q ^ R) = ( P ^ Q )^ R, respectiv P ( Q R) = ( P Q ) R
3. 3 proprietatea lui ^ i , adic:
P ^ T = P i P ^ F = F, respectiv P T = T i P F = P
4. 4 proprietatea negaiei, adic: P ^ ~P = F respectiv P ~P=T
5. 5 distributivitatea lui ^ fa de i a lui fa de ^, adic:
P^ ( Q R) = ( P ^ Q ) ( P ^ R ),
respectiv P ( Q^ R) =( P Q ) ^ ( P R).
Axiomele - 5 legi de baz ale algebrei booleene.
Din cele de mai sus se pot deduce o serie de alte legi. Dintre legile cele mai importante
deductibile amintim:

legea dublei negaii sau a complementului ~~P=P;

idempotena: P^P=P, respectiv P P=P;

legea absorbiei, P ^ (P Q)=P.

Legiile Boolene au caracter dual adica in orice teorema din algebra booleana daca se inlocuieste
sau cu si si invers, teorema ramane adevarata.

Legile deductibile: legile lui DeMorgan:


~( P ^ Q ) = ~P ~Q, respective dualul, ~( P Q ) = ~P ^ ~Q

Prin inducie complet -> generalizarea legilor lui DeMorgan la n propoziii:


~ (P1 ^ P2 ^ ^Pn ) = ~P1 ~P2 ~Pn, respectiv
~ (P1 P2 Pn ) = ~P1 ^ ~P2 ^ ^ ~Pn

-> Pentru a nega o formul, schimb semnul i operatorul cu complementarul. De exemplu:


~(P~Q)=~P ~(~Q)= ~PQ.

Cele 5 legi mentionate mai sus plus legile lui DeMorgan, permit aducerea oricarei
expresii din algebra booleana la una din urmatoarele forme:
1. Forma normala conjunctiva are forma (C1C2... ) unde Ci se numeste
Clauza. Fiecare clauza este rezultata din propozitii simple sau disjunctii de
propozitii si eventual negatii ale acestora. Forma normala conjunctiva este teoria
demonstratiei, deoarece propozitia scrisa sub forma clauzala este adevarata daca
si numai daca toate propozitiile sunt adevarate.
2. Forma normala disjunctiva are expresia sub forma unor disjunctii de expresii,
expresiile din propozitii simple sau conjunctii de propozitii si eventual negatii ale
acestora. Aceasta forma este utila doar in teoria circuitelor.
REGULILE INFERENTIALE IN LOGICA PROPOZITIILOR
Implicatia in deductiile logice din propozitii adevarate => alte propozitii adevarate.
Acest mod de utilizare a mecanismului logicii difera de cel al algebrei booleene, deoarece
aceasta, ca orice algebra, premite determinarea valorii de adevar a unor formule pe baza valorii
de adevar a componentelor, dar nu si manipularea acestora indiferent de valoarea de adevar a
componentelor.
In deductia logica exista doua reguli inferentiale clasice, cunoscute de multi timp:
1. Modus-Ponens sau Mod-Pons, care se enunta astfel: Fiind dat P adevarat din
P implica pe Q, rezulta Q adevarat.
2. Regula de inlantuire a inferentelor sau inchiderea tranzitiva a
inferentelor. Ea permite pe baza a doua implicatii sa se deduca o a treia.
Asfel, aceasta regula poate fi enuntata astfel: Daca P implca pe Q si Q implica
pe R atunci P implica pe R.

STRATEGII DE DEMONSTRARE AUTOMATA


Constituie o ramura importanta a inteligentei artificiale. In demonstratie, in general,
trebuie aratat ca o formula B este T folosind pentru aceasta mecanismul modus-ponens, adica
presupunand ca A este T si are loc implicatia A->B. Aceasta regula este dificil de aplicat direct si
din aceasta cauza se utilizeaza diferite strategii de demonstratie pe care se bazeaza demonstrarea
automata.
A. Strategia demonstrarii prin adoptarea unei premise/ipoteze/asertiuni
auxiliare sau suplimentare. Aceasta strategie se bazeaza pe cele 2 teoreme ale
lui Stoll:
1. Demonstrarea concluziei B din premisa A este echivalenta cu
demonstrarea lui B fara a presupune premise speciale asupra lui A.
2. Daca propozitia B depinde individual de A1, A2,...,An ea depinde si de
conjunctia acestor premise si invers.
B. Strategia reducerii la absurd se bazeaza pe faptul ca se adopta ipotezele B si
negatie de C si trebuie sa ajungem la negatie din (B implica pe C)
Exista 3 metode de baza in strategia reducerii la absurd:
1. Se porneste de la B si se ajunge la C;
2. Se porneste de la negatie de C si se demonstreaza ca are loc negatie de B; B
este premisa si negatie de B este contradictia;
3. Se porneste de la B si negatie de C si se aplica regulile si axiomele SF pana se
ajunge la o propozitie p si negatie de p (se contrazic)
C. Strategia bazata pe rezolutie/rezolvare regula de rezolutie este fundamentala
in demonstrarea automata, este o regula de baza alaturi de modus-ponens si
inalntuirea inferentelor (le includ pe ambele).
Pentru a enunta mai bine Legea Rezolutiei vom folosi urmatorul exemplu, fie 3
propozitii X, Y si A. Din X sau A si Y sau negatie de A rezulta faptul X sau Y.
Argumente pentru generalizarea demonstratiei pe baza regulii rezolutiei
automatismul si simplitatea:
P1. Se presupune prin absurd ca avem concluzia falsa; se transforma echivalentele in
implicatii duble si se transcriu implicatiile prin disjunctii;
P2. Pentru negarea din fata parantezelor se aplica regula DeMorgan;
P3. Se aplica distributivitatea lui sau fata de si si invers.
P4. Fiecare premisa aduca le forma clauzala, adica la atomi, negatii de atomi si de
clauze, adica atomi negati de atomi, legati prin disjunctie.
P5. Se aplica prcincipiul rezolutiei pana se ajunge la o propozitie si negatul acesteia,
adica la o contradictie.

CURS 4
Forme Normale si Consecinte Logice
Logica Matematica = logica simbolica in care afirmatiile (pe care le vom numi propozitii) sunt
notate cu literele alfabetului.
Logica Propozitiilor = un limbaj formal care contine un alfabet, reguli de sintaxa, axiome si o
regula de deductie. (Studiaza legaturile dintre propozitii (!Aceasta propozitie este falsa)).
Propozitii = atom = afirmatii carora li se ataseaza o valoare de adevar.
Logica Simbolica = utilizeaza simboluri pentru reprezentarea elementelor universului problemei
si a operatiilor asupra acestora.
Operatii Logice:
-NEGATIA;
-DISJUNCTIA;
-DISJUNCTIA EXCLUSIVA;
-CONJUNCTIA;
-IMPLICATIA;
-ECHIVALENTA;
Ordinea efectuarii operatiilor logice: Negatie, Conjunctie, Disjunctie, Disjunctia
Exclusiva, Implicatia, Echivalenta.
Calculul propozitional:
Atom = propozitie cu valoare de adevar;
Formula = propozitie compusa
Formula bine formata (sau bine formatata - wff): se construieste dupa urmatoarele reguli:
1. Un atom este o formula;
2. Daca F este o formula, atunci negatie de F este formula bine formata;
3. Daca F si G sunt formule, atunci F sau G, FsiG, F implicaG si Fechivalent G
sunt bine formatate;
4. Orice wff se obtine prin aplicarea regulilor 1,2,3.
O formula bine formatata poate fi:
Valida + Consistenta = Totdeauna adevarata;
Invalida + Consistenta = Nu intotdeuna adevarata / Nu intotdeauna falsa
Invalida _+ Inconsistenta = Totdeauna falsa

FORME NORMALE:

Echivalenta se noteaza cu F = G: F si G sunt egale atunci cand F si G au aceeasi valoare pentru


orice interpretare I.
Reguli:
-P sau F = P;
-P si T = P;
-P sau T = T;
-P si F = F;
Forma normala conjunctiva FNC: Daca F1, F2,... Fn sunt formule bine formatate care contin
doar literale (atomi sau negatie de atomi) si sunt de forma L1 sau L2 sau... sau Ln (adica
disjunctii literale) atunci F1 si F2 si... si Fn este o FORMA NORMALA CONJUNCTIVA.
Forma normala disjunctiva FND: Daca F1, F2,...,Fn sunt formule bine formatate care contin
doar literale (atomi sau negatii de atomi) si sunt de forma L1 si L2 si L3 si ...si Ln (adica
conjunctie de literale), atunci F1 sau F2 sau... sau Fn este o FORMULA NORMALA
DISJUNCTIVA.
Algoritm de transformare a unei formule bine formatate intr-o FORMULA NORMALA.
1. Se elimina echivalenta si implicatia;
2. Se elimina dubla negatie si se distribuie negatia (Legile lui DeMorgan)
3. Se aplica distributivitatea pentru separarea operatiilor sau , si.
Consecinte Logice
Daca F1, F2,..., Fn, G sunt functii bine formatate si daca pentru orice interpretare I
pentru care F1 Si F2 si Fn este adevarata, atungi G este adevarata. In acest caz spunem ca G
este o consecinta logica a lui F1,F2..., Fn iar F1,F2..., Fn sunt Axiome pentru G.
Teorema: G este o consecinta a lui F1,F2..., Fn daca si numai daca F1 si F2 si... si
Fn implica pe G este adevarata.
Teorema: G este o consecinta a lui F1,F2..., Fn daca si numai daca F1 si F2 si ... si
Fn si Negatie de G este inconsistenta.

Curs 5
Logica predicatelor de ordinul 1 (FOPL) si de aplicatiile ei in informatica
economica si de afaceri.
Logica propozitiilor PL este prea saraca pentru a reprezenta lumea inconjuratoare.
Are clase similare, neputand aplica propozitiile. De acici decucem ca se reduce modelarea lumii
reale.
Semnificatii:
-Matematica, predicatul = relatie;

-Gramatica o parte a propozitiei;


-Programare un operator sau o functie care returneaza o valoarea booleana adicaT
sau F
-Teoria lui Bernard Rusell a tipurilor , este un act de stabilirea unui timp.
In studiul predicatelor se utilizeaza logica predicatelor, in particular Logica Predicatelor de
Ordinul 1 First Order Predicat Logic (FOPL). Limbaj al teoriei logicii, unde, spre deosebire
de PL, pot aparea sintaxa si semantica.
Semantica FOPL
Predicatele simboluri prin care se noteaza relatii sau functii definite pe
elementele domeniului discursului si care iau valorile adevarat (T) sau fals (F).
-Pot avea 0,1,2 sau mai multe variabile. Numarul variabilelor se numeste aritatea
predicatelor.
-Predicatele fara variabile au aritate 0 si deci sunt predicate constante => propozitiile
nu au argumente. Spunem ca este predicat de aritate 0 si joaca rolul constantelor in
FOPL.
-Pentru interpretarea predicatelor trebuie stabilita lista argumentelor si trebuie data o
interpretare fiecarui argument.
-Ca in cazul PL si in FOPL vom avea simboluri de baza.
Simbolurile predicative se noteaza cu litere mari sau identificatori care incep cu
litere mari, urmate in paranteze de argumente. Exemplu: P(x,y) sau Student (x);
Simbolurile predicative se leaga intre ele prin conectori: Negatia, Conjunctia,
Disjunctia, Implicatia, Echivalenta, la care se mai adauga cuantificatorul
existential si cel universal. (semnele logice Exista si Oricare ar fi).
FOPL definit este o teorie in logica simbolica, care permite definirea unei afirmatii
cuantificate. Este mai tare ca PL, dar mai slaba ca matematica, teoria multimilor sau logica
predicatelor de ordinul 2.
Multimea din care ia valori argumentul X al predicatului se numeste Universul Discursului sau
Domeniul Discursului. Implica Oricare ar fi indica faptul ca valoriile sunt variabile si ca
predicatul se aplica tuturor valorilor din domeniul discursului.
Cuantificatorul existential indica faptul ca exista valori in domeniul discursului pentru care
predicatul ia valoarea T, deci domeniul discursului nu este vid.
In formulele din FOPL pot apare si alte elemente de baza:
-Constante termeni ce au o valoare fixata pentru un domeniu al discursului; se
noteaza fie cu litere mici de la inceputul alfabetului fie cu numele sau cu ajutorul
cuvintelor scrise cu litere mici, adica a, ion, etc;
-Variabile termeni ce pot lua valori diferite din domeniul discursului si se noteaza
fie cu litere mici de la sfarsitul alfabetului, fie cu ajutorul cuvintelor scrise cu litere
mici.

-Functii termeni ce reprezinta relatii univoce (functionale) definite pe domeniile


discursului; Se noteaza cu litere mici sau mari de la mijlocul alfabetului sau cu
ajutorul cuvintelor care reprezinta numele lor, urmate de paranteze rotunde, in care
sunt trecute argumentele functiilor, de exemplu sin(x).
-In formulele din FOPL TERMENII pot fi constante, variabile sau functii.
PROPRIETATIILE FORMULELOR
TEORIA PREDICATELOR.

CORECT FORMATATE

(WFF-urilor)

DIN

1. Exista se combina cu si, in timp ce Oricare ar fi se combina cu implica.


2. In FOPL se utilizeaza si intre predicate pentru a evita trecerea la logici de ordin
superior.
3. Predicatele pot sa tina argument de tip functie; In FOPL functiile se scriu prefixat.
4. Aplicarea mai multor cuantificatori, chair si de acelasi tip trebuie facuta cu multa atentie;
OBSERVATII:
1. O formula se construieste pe baza altor formule legate prin conectori;
2. Atomul este cea mai simpla formula, deci formulele simple sunt formate din atomi sau
negarea lor. Un atom este predicat urmat eventual, de unul sau mai multe argumente in
paranteza.
3. Termenii pot fi constante, variabile, sau functii urmate in paranteze de argumente.
Termenii au semnificatia parametrilor efectivi din cadrul apelurilor de functii sau de
proceduri din limbajele clasice. (Pascal, C).
4. Functiile se scriu prefixat.
5. In general, sintaxa nu precizeaza modul de utilizare a parantezelor, deoarece regulile de
aplicare a operatiilor pot infera cu cuantificatorii si se aplica de la caz la caz in sens
semantic.
RESTRICTII SEMANTICE:
1. Daca o formula este data sub forma <cuantificator><formula>, in formula nu poate
aparea un alt cuantificator legat de aceeasi variabila.
2. Un predicat sau o functie trebuie sa aiba acelas numar de argumente, indiferent unde se
utilizeaza.
3. Constantele, variabilele si argumentele functiei sau predicatele trebuie sa ia valoarea din
universul peste care s-a definit functia sau predicatul respectiv.
4. O asertiune in FOPL este o formula in care toate variabilele sunt calificate, deci nu exista
nici o variabila libera.
FORMULELE LUI DEMORGAN GENERALIZATE PENTRU FOPL.
Pentru a nega o expresie cuantificata pargucregm urmatorii pasi:
-Se schimba cuantificatorii intre ei;
-Se schimba semnul literalelor;
-Se schimba conectorii complementari;

UTILIZAREA FOPL la exploatarea datelor.


FOPL se utilizeaza in regasirea datelor din BD, de exemplu de pe Internet. Regasirea datelor si
cunostintelor nu este singurul domeniu in care se utilizeaza FOPL. Integritatea datelor, respectiv
a cunostintelor este si ea legata de FOPL.
Pentru a construi o baza de cunostinte se folosesc instantieri ale predicatelor, pe care le folosim.
ECHIVALENTA DIFERITELOR WFF-URI DIN TEORIA FOPL.
Numarul de asertiuni din FOPL este foarte mare deoarece, predicatele pot contine variabile care,
la randul lor, pot lua multe valori. Probabilitatea de aa aduce aceste asertiuni la aceeasi forma
normala, astfel incat sa se poata compara textual formele obtinute si sa se poata spune daca
formele respective sunt sau nu echivalente este lucru complicat, sau chiar imposibil.
Daca wff-urile sunt transcrise din limbaj natural problema este si mai complicata, Astfel, se poate
ca formulele sa nu se bazeze pe acelasi predicat sau functie.
Algoritmul de aducere la forma clauzala:
1. Se transforma echivalenta in 2 implicatii;
2. Se elimina implicatiile cu ajutorul formei disjunctive;
3. Se muta negatia imediat inaintea atomilor, utilizand formulele lui DeMorgan
generalizate. In cazul expresiilor complexe este bine sa se aplice algoritmul din
exterior spre interior.
4. Se redenumeste variabila care apare in 2 termeni cuantificati fara a avea legatura
unul cu celalt.
5. Se elimina cuantificarea existentiala. Se poate aplica numai dupa pasul 3,
deoarece formulele lui DeMorgan genereaza transformarea cuantificatorului
Oricare ar fi in Exista si invers.
6. Se scoate in factor cuantificarea universala in fata formulei
7. Se aplica distributiviatea lui sau fata de si si se scriu factorii pe linii separate.
REGULI INFERENTIALE IN FOPL
Analog ca si in cazul PL, in FOPL acem cele doua reguli inferentiale si anume Modus-Ponens si
Inlantuirea Implicatiilor.
Spre deosebire de PL, pentru a trage concluzii se inlocuieste x cu a. Concluzia este posibila
deoarece in a 2 a asertiune se presupune ca implicatia are loc pentru orice x.
In FOPL apare deci necesitatea Substitutiei.
OBSERVATII:
1. Daca se aplica de mai multe ori substitutia, ea permite simplificarea expresiei datorita
posibilitaii aparitiei unor literale complementare.
2. O substitutie este definita cu o pereche ti vi unde ti este un termen si vi este o variabila.
Ele satisfac conditia ca ti nu contine vi

O substitutie care face ca doua sau mai multe expresii sa fie egale se numeste unificare.
OBSERVATIE: Unificarea este necesara cand exista atomi care contin variabile
neinstantiate si care prin substitutie suplimentara pot duce la literele complementare, deci la
simplificarea expresiei.
Teoria unificarii si algoritmul de determinare al unificatorului cel mai general, se utilizeaza in
aplicarea teoriei rezolutiei in FOPL.
DEFINITIE:
Fie doua expresii unificabile c1 si c2 prin unificatorul B(c2=c1B). Se spune ca B este
unificatorul cel mai general (mgu) daca orice substitutie care este unificator pentru cele
doua expresii este o instantiere a lui B.
Daca un printr-un MGU sunt unificate 2 sau mai multe literale intr-o clauza, clauza
rezultata dupa stergerea tuturor aparitiilor complementare a termenilor unificarii se numeste
Clauza Initiala sau Clauza Ireductibila sau Factor.
Fie S o multime de expresii. Se numeste contradictie a lui S, o submultime a acesteia care se
obtine comparant toate simbolurile lui S de la stanga la dreapta si extragand din S toate
subexpresiile care nu sunt conforme expresiilor lui S.
ALGORITMUL DE DETERMINARE A MGU PENTRU UN SET DE EXPRESII:
1. Ok- este multimea substitutiilor pana la pasul k, care initial este multimea vida. Nu
s-a facut nici o substitutie.
2. Daca multimea SOk este formata dintr-un singur element atunci ne oprim si O k este
MGU pentru multimea de expresii S.
3. Daca nu se determina multimea contradictiilor Dk si a lui S Ok se fac urmatorii pasi:
Se cauta o variabila v si un termen t in Dk, astfel incat v sa nu apara in t.
Se considera k-k+1, Ok+1 = Ok reunit cu substitutia dintre t si v
Se reia algoritmul de la pasul 2
4. Daca nu, STOP si se ajunge la concluzia ca nu exista MGU.
PRINCIPIILE DEMONSTRATIEI PRIN REZOLUTIE.
Demonstratia in cazul FOPL se bazeaza pe inferente sintactice. Se porneste de la ipoteze, care
sunt clauzele si se demonstreaza ca negatul concluziei este in contradictie cu ipotezele.

1. REZOLUTIA BINARA
Fie doua clauze care contin literale complementare. Aceste clauze se combina prin substitutii si
unificari posibile pana la reducerea lor.
2. REZOLVAREA PRIN UNITATE REZOLVENTA (UR).
Daca exista un set de clauze din care toate, cu exceptia uneia sunt atomi complementari intre ei
sau cu componentele acelei clauze, care contine un singur literal in plus, atunci ansamblul
clauzelor se reduce la literalul respectiv prin unificare si substitutie.
3. REZOLUTIA LINIARA
Fie un ansamblu de clauze c0, c1,c2,...cn astfel ca c1 , se deduce din c0 si o clauza suplimentara
B0, c2 din c1 si o clauza suplimentara B1 si o clauza generala Ci+1, din Ci si o clauza

suplimentara Bi-1. Un caz particular cel al rezolutiei cu intrari linare, unde clauzele
suplimentare Bi pentru i = {0,1,2,3...,n-1} se aleg dintre clauzele initiale.

CURS 6
Agentii inteligenti
Agenti si medii
Un agent este orice entitate care percepe mediul sau inconjurator prin senzori, si
actioneaza in functie de mediu prin intermediul efectorilor.
In agelas mediu pot opera mai multi agenti. Agentii care opereaza in acelas mediu formeaza un
sistem multiagent.
AGENTI UMANI:
-Senzori: Ochi, Urechi si alte organe;
-Efectori: Picioare, maini, gura, etc;

AGENTI ROBOTICI:
-Senzori: camere, dispozitive cu unde infra rosii, etc;
-Efectori: diverse motoare;
EX: ROBOT ASPIRATOR
Cu ajutorul perceptoriilor deducem locatia si continutul. Actiuniile posibile care pot fi efectuate
sunt deplasare la stanga dreapta, actiunea de aspirare si oprire. De asemenea pot fi efectuate si
anumite masuratori de performanta si putem stabili si momentul in care performanta sa fie
masurata.
Un agent rational este un agent care face numai lucruri bune (care fac ca agentul sa fie
performant).
Este nevoie de o masura a performantei unui agent.
Agentul rational isi maximizeaza performanta in raport cu o masura obiectiva a acesteia.
Aplicatii cu agenti: De la roboti, la agenti software care au ca mediu internetul.
Masura de performanta este impusa in mod obiectiv de catre creatorul agentului.
Este de preferat ca masura de performanta sa fie construita in concordanta cu ce se doreste de
la mediu, decat sa fie in functie de cum se crede ca agentul ar trebui sa se comporte.
Utilitatea este o modalitate de a masura cat de dorita este o anumita stare; Se urmareste mereu
selectarea unei actiuni care maximizeaza utilitatea agentului.
Rationalitatea unui agent in orice moment este data de 4 lucruri:

1.
2.
3.
4.

Masura de performanta;
Secventa de perceptii;
Mediul inconjurator;
Actiuniile pe care le poate face;

Rationalitatea ii cere agentului sa invete cat de mult este posibil din secventa de perceptii = >
comportament adaptiv.
Un agent relational ar trebui sa fie autonom -> Trebuie mereu sa invete de la mediu pentru a
putea compensa cunostintele incomplete sau incorecte.
Agent rational: Pentru fiecare secventa de perceptii, un agent este rational daca este
capabil sa selecteze actiunea care maximizeaza valoarea performantei sale, luand in calcul
informatiile date de secventa de perceptii si orice alte cunostinte avute anterior.
Pentru un agent trebuie stabilite toate actiuniile posibile ca raspuns la fiecare secventa de
perceptii posibila.
Specificarea tuturor actiunilor pe care trebuie sa le faca un agent ca raspuns la orice secventa de
perceptii ar putea duce la crearea unui agent ideal.

PROPRIETATILE MEDIILOR IN CARE ACTIONEAZA AGENTII:


1.
2.
3.
4.

PERFORMANCE Performanta (Criteriile care permit masurarea performantei).


ENVIRONMENT Mediu (Mediul de desfasurare a activitatii agentului)
ACTORI Efectori (Elemente care pot realiza actiunea)
SENSORS Senzori (Elemente senzibile care percep mediul)

Complet vs partial observabil:


La orice moment in timp, mediul este complet observabil daca senzorii agentului detecteaza toate
aspectele mediului care duc la alegerea unei actiuni.
Determinist vs sochastic
Daca urmatoarea stare a mediului este in intregime determinata de starea curenta si de actiunile
selectate de agenti, mediul este determinist.
Episodic vs secvential
Intr-un mediu episodic, experienta agentului este impartita in episoade. Episoadele urmatoare nu
depind de ce actiuni au avut loc in episoadele anterioare.
Static vs Dinamic
Daca mediul se schimba cat timp agentul hotaraste ce actiune sa faca in continuare, mediul este
dinamic.

Este mai usor de lucrat cu medii statice agentul nu trebuie sa monitorizeze continuu mediu in
timp ce ia decizii si nici sa tina cont de timpul scurs
Daca mediul nu se schimba in timp, dar performanta agentului da, atunci mediul este semidinamic.
Discret vs Continuu
Daca avem un numar finit de perceptii si actiuni diferite, mediul este discret.
Cunoscut vs Necunoscut
Daca mediul este necunoscut, agentul trebuie sa invete
Agent vs Multiagent
Daca sunt mai multi agenti in mediu, acesta este multiagent.

STRUCTURA AGENTILOR INTELIGENTI


Sarcina IA este de a construi Programe Agent
Programul ruleaza pe un dispozitiv numit arhitectura: PC, camera de luat vederi, combina audio
etc;
Arhitectura face ca perceptorii de la senzori sa ajunga la program, ruleaza programul si
instiinteaza efectorii de alegerile de actiuni pe care le-a facut programul. Agent = arhitectura +
program
Toti agentii pe care ii vom construi vor avea acelasi schelet: accepta perceptii de la mediu si
genereaza actiuni.
Memoria agentului este mereu actualizata pentru a reflecta noua perceptie, cea mai buna actiune
este aleasa si faptul ca actiunea a fost aleasa este pastrata in memorie.
Un Agent Reflex Simplu va functiona bine daca se pot lua decizii corecte numai pe baza
perceptiilor curente.
CONCLUZII SI FIXARE:
1.
2.
3.
4.
5.

Agentii interactioneaza cu mediul prin intermediul senzorilor si efectorilor;


Functia agent descrie ce face un agent in orice situatie;
O masura a performantei evalueaza calitatea agentului la un moment dat;
Un agent rational maximizeaza performanta asteptata;
Sunt mai multe arhitecturi de agenti:
a. Reflex simplu;
b. Reflex cu stare interna;
c. Cu scop exact;
d. Bazat pe functionalitate
6. Mediile sunt caracterizate de mai multe dimensiuni:

a. Observabil
b. Determinist
c. Episodic
d. Static
e. Discret
f. Multiagent
7. Invatarea este esentiala pentru a obtine performante satisfacatoare in multe
aplicatii
8. Rationalitatea are nevoie de o componenta de invatare este necesar sa stim cat mai
mult posibil despre mediu inainte de a lua o decizie rationala

CURS 7-8
Agenti care rezolva probleme
FORMULAREA PROBLEMELOR
Formularea scopului este primul lucru care trebuie stabilit de catre agent.
Intuitiv formularea problemei este procesul de a decide ce actiuni si stari sun
considerate pentru a atinge scopul final
Se pot examina diferite secvente de actiuni posibile care duc la starea finala, apoi se alege
cea mai buna secventa de actiuni.
Procesul de a examina astfel de secvente de actiuni pentru alegerea celei mai bune
variante se numeste cautare.
Un algoritm de cautare are ca intrare o problema si intoarce o solutie sub forma unei
secvente de actiuni.
Odata gasita solutia, se trece la faza de executie.
O schema simpla pentru un agent consta in:
-

Formulare
Cautare
Executie

Exista 4 tipuri de probleme:


1. Cu o singura stare (deterministe, observabile complet) Agentul stie exact in ce stare se
va gasi; solutia este o secventa.
2. Cu mai multe stari (neobservabil) Agentul nu stie in ce stare se gaseste;
3. Contingente (nedeterminist, partial observabil) Perceptorii aduc informatie noua despre
starea curenta.
4. Explorative (spatiul starilor necunoscut)

Agentul trebuie sa experimenteze, sa descopere gradual care sunt efectele actiunilor lui si ce
tipuri de stari exista.
Cautarea se aplica si in cazul acestor probleme, dar mediul in care apar problemele explorative
este lumea reala.
O problema se defineste prin 4 puncte:
Starea initiala in care se afla agentul;
Actiuni sau functia succesor find data de o stare, intoarce multimile de stari in care se
poate ajunge din x printr-o singura actiune;
Testarea tintei problemei se verifica daca starea curenta a atins tinta problemei;
Functia de Cost al drumului calculeaza un cost g pentru drumul curent;
O solutie este o secventa de actiuni care merg de la starea initiala la starea tinta.
Lumea reala este foarte complexa => spatiul stariilor trebuie sa fie abstractizat pentru
rezolvarea de probleme.
Stare = multime de stari reale - abstract
Actiune = combinare complexa de actiuni - abstract
Fiecare actiune abstracta ar trebui sa fie mai usoara decat actiunea/actiunile in
problema originala

Probleme de tip joc compararea performantelor


o Ilustreaza diverse metode de rezolvare de probleme;
Probleme din viata reala nu au o descriere standard, dar exista comportamente
similare.
o Sunt mai dificile;
o Sunt mult mai de interes;

ALGORITM GENERAL DE CAUTARE

Functia cautare_generala (problema, strategie) intoarce solutie sau esec;


Initializeaza arborele de cautare folosing starea initiala a problemei.
Cat timp solutia nu a fost gasita si mai avem noduri neparcurse, continuam sa
executam problema;
Daca nu mai sunt posibilitati de incercat atunci intoarce esec;
Daca nodul contine o stare tinta atunci intoarce solituia corespunzatoare;
Altfel gaseste toate posibilitatiile ce pornesc din acest nod si adauga-le la arborele
de cautare.

COMPONENTELE UNUI NOD

Starea din spatiul starilor careia ii corespunde nodul;

Nodul parinte (nodul din arborele de cautare care a generat nodul curent);
Actiunea care a fost aplicata pentru a se ajunge la nodul curent;
Adancimea nodului numarul de noduri prin care s-a trecut de la nodul radacina
pana la nodul curent;
Costul drumului de la starea initiala pana la nodul curent.

ALGORITMI DE CAUTARE STANDARD

Se face distinctie intre noduri si stari;


o Starea reprezinta o configuratie a mediului;
o Nodul contine informatii cu privire la structura arborelui de cautare;
Colectia de noduri este implementata sub forma de lista.
OPERATII POSIBILE:
o Genereaza_lista se genereaza lista cu elementele date;
o Goala(lista) intoarce adevarat daca lista este goala;
o Scoate_din_fata(lista) intoarce elementul din fata;
o Adauga(elemente,lista) adauga un nou element, sau mai multe elemente
in lista;
Se tine cont ce noduri au fost vizitate;
Pentru fiecare nod, retinem nodul parinte;
Pentru a intoarce la final solutia plecand de la destinatie inapoi catre start;
Daca strategia o cere:
o Adancimea nodului curent;
o Costul de la nodul de start pana la cel curent;
o Costul nodului de start este 0, apoi la nodul curent insumam costul nodului
parinte cu costul dintre nodului parinte si cel curent.
Strategiile de cautare sunt analizate in functie de 4 criterii:
o Completitudine;
Garanteaza strategia gasirea unei solutii atunci cand exista una?
o Complexitate temporara;
Cat dureaza gasirea unei solutii;
o Complexitate spatiala;
De cata memorie este nevoie pentru a face cautarea;
o Optimalitate;
Gaseste strategia cea mai buna calitativ solutie, atunci cand exista
mai multe solutii diferite?

Algoritmii discutati si analizati se bazeaza pe cautarea neinformata (blind search)

Nu exista informatii despre numarul de pasi sau despre costul drumului de la


starea curenta pana la starea tinta;
Pot doar distinge o stare tinta de o stare care nu este tinta;

Cautarea informata (heurestic search) presupune utilizarea de informatii aditionale

CURSURI 9-10
METODE DE CAUTARE NEINFORMATA:
CAUTAREA IN LATIME

Nodul radacina este expandat intai, apoi toate celelalte noduri sunt expandate,
apoi toti succesorii s.a.m.d
Sunt considerate toate drumurile de lungime 1, apoi toate drumurile de lungime 2
etc.
Daca exista o solutie, algoritmul garanteaza ca o va gasi, iar daca exista mai multe
solutii, algoritmul va gasi intai starea tinta aflata la cel mai mic numar de noduri.
ALGORITMU SATISFACE URMATOARELE CRITERII:
o Completitudine;
o Optimalitate, cu conditia ca orice operatiune sa aiba acelas cost.

CAUTAREA CU COST UNIFORM

Este echivalenta cu cautarea in latime daca toate costurile sunt egale.


Extinde mereu nodul cu costul minim;
Solutia cu cost minim va fi garantat gasita pentru ca daca exista o cale cu un cost
mai mic aceasta este aleasa.

CAUTAREA IN ADANCIME

Se expandeaza nodul radacina, apoi se merge pe un drum pana se ajunge la cel


mai adanc nivel al arborelui.
Numai cand se ajunge la final, cautarea se intoarce si expandeaza noduri de la
nivele mai putin adanci.
Nu necesita multa memorie stocheaza un singur drum de la o radacina la o
frunza impreuna cu nodurile neexpandate.
Daca fiecare nod genereaza b noduri si adancimea maxima este de m, cautarea in
adancime va stoca la un moment dat maximum b*m noduri.
Complexitatea temporala
o Daca sunt multe solutii, sunt sanse sa fie gasita mai rapid una decat in
cazul cautarii in latime.
o DEZAVANTAJE:
Se poate bloca daca porneste spre un drum gresit
Poate nimeri pe un drum infinit si nu va gasi astfel solutii care se
pot gasi pe un alt drum la o distanta mica de radacina; intr-un astfel
de caz nu va intoarce nici o solutie.
Poate gasi o solutie care este mult mai costisitoare in comparatie
cu alte solutii existente.
A NU SE FOLOSI LA ARBORI CARE AU ADANCIMI
FOARTE MARI!

Impune o margine superioara pentru lungimea unui drum


Se poate utiliza la probleme unde stim la ce adancime maxima
trebuie sa gasim solutia.

CAUTAREA IN ADANCIME ITERATIVA

E greu de stabilit o limita in adancime pana la care sa se mearga;


Cautarea cu adancime iterativa alege limita de a merge in adancime iterativ,
incepand cu 0,1,2 samd.
Este optim si complet ca algoritmul de cautare in latime, dar necesita memorie
putina ca algoritmul de cautare in adancime.
COSTUL e mai mare deoarece unele stari sunt exploatate de mai multe ori.
Acest tip de cautare este preferat cand spatiul de cautare este foarte mare si nu se
cunoaste adancimea solutiei.

CAUTAREA BIDIRECTIONALA

Ideea de a cauta in acelasi timp pornind de la starea initiala si de la starea tinta cu


scopul de a intalni cele doua cautari la mijloc.
Daca fiecare nod se expandeaza in B alte noduri si o solutie se gaseste la
adancimea d, aceasta va fi gasita in O(2bd/2) = O(bd/2) pasi, ceea ce este mult mai
rapid decat la cautarea in latime/adancime.
Pare foarte buna dar este complicat de implementat;
Situatii ce trebuie tratate:
o Gasirea predecesorilor unui nod;
o Daca sunt mai multe solutii(stari tinta);
o Trebuie verificat daca un nod nu se gaseste in lista celeilalte cautari(daca a
fost deja parcurs)
o Ce fel de cautare se utilizeaza pentru fiecare directie.

EVITAREA STARIILOR DE REPETARE

Unele probleme pot fi transpuse sub forma de arbori infiniti.


Acest lucru trebuie evitat printr-o serie de reguli care trebuie respectate:
o Pentru un nod, sa nu existe posibilitatea de a se intoarce in nodul parinte
expandarea unui nod sa nu contina nodul parinte;
o Sa nu se creeze drumuri cu cicluri in ele prin expandare sa nu apar
noduri care au fost gasite la noduri predecesor;
o Sa nu se genereze o stare care a mai fost intalnita anterior;

SATISFACEREA CONSTRANGERILOR

Intr-o problema cu satisfacere de constrangeri, starile sunt definite prin valorile pe


care le iau o multime de variabile, iar in testarea tintei sunt specificate o serie de
constrangeri care trebuie respectate de catre valori.

CURSURI 11-12
METODE DE CAUTARE INFORMATA

Folosind un algoritm general de cautare, cunostintele aditionale despre problema


pot fi adaugate la functia care stabileste ce noduri vor fi expandate.
Ideea este de a se utiliza o functie de evaluare pentru fiecare nod n.
o Ajuta la luarea de decizii in expandarea nodurilor.
o Se ordoneaza nodurile astfel incat cel cu cea mai buna evaluare este
expandat primul
o STRATEGIA INTAI CEL MAI BUN
Pentru a directiona cautarea, masura de evaluare trebuie sa
incorporeze o masura a costului drumului de la starea curenta pana
la starea tinta.
Doua abordari:
o Cautarea Greedy
o Cautarea A*
Cautarea Greedy
o Se bazeaza pe faptul ca trebuie minimizat costul de ajungere la nodul tinta.
o Concluzie: Nodul care reprezinta starea care este cea mai aproape de
starea tinta este intotdeauna expandat primul
o La cele mai multe probleme, costul de a ajunge de la o stare la starea
finala nu poate fi determinat exact, doar estimat.
o O functie care estimeaza astfel de costuri se numeste functie euristica si
este notata de obicei cu h
o h(n) = costul estimat pentru cel mai scurt drum de la nodul n pana la
starea tinta
Daca n este chiar nodul tinta, atunci h(n)=0;
O cautare intai cel mai bun care utilizeaza o asemenea functie
euristica se numeste cautare greedy.
o Cautarea greedy in general gaseste solutia rapid insa nu gaseste
intotdeauna solutia optimala
o Poate avea starturi gresite
o Este similara cu cautarea in adancime
o Nu este optimal si este incomplet pentru ca o poate apuca pe un drum
infinit si astfel sa nu se mai intoarca pentru a alege alte posibilitati.
Cautarea A*
o Combinand Cautarea Greedy cu cautarea cu cost uniform vom obtine o
functie care tine cont si de costul de pana acum in drumul considerat si de
costul estimat pana la tinta f(n)=g(n)+h(n)

o Este demonstrabil ca algoritmul care foloseste cautarea A* este complet si


optimal si cu conditia ca functia h nu supraestimeaza costul de ajungere
la solutie.
o Complexitate spatiala: Toate nodurile sunt retinute in memorie.
o Complexitate temporala O(bm).
o Este complet si optimal daca h nu supraestimeaza costul pana la starea
tinta
FUNCTII EURISTICE

Pentru problema de gasire de rute o functie euristica potrivita este cea aleasa,
distanta directa dintre 2 orase.
Alegerea functiilor euristice depinde de la o problema la alta
De alegerea functiei euristice depind complexitatiile temporala si spatiala.
Alegerea potrivita a unei functii euristice se face dupa o buna studiere a spatiului
starilor problemei.
De multe ori este nevoie sa tinem cont de anumite caracteristici ale starii curente
care contribuie la evaluarea functiei euristice.

EFECTUL
FUNCTIILOR
ALGORITMULUI

EURISTICE

ASUPRA

PERFORMANTEI

Factorul efectiv de ramificare b* afecteaza in mod direct performanta


algoritmului.
Daca numarul total de noduri expandate de catre A* pentru o anumita prblema
este N si solutia se gaseste la o adancime d atunci b* este factorul de
ramificare(in cate noduri se expandeaza fiecare nod) pe care l-ar avea un arbore
uniform de adancime d care ar contine N noduri.
O euristica este cu atat ma bine definita cu cat face ca numarul de noduri in care
se expandeaza fiecare nod sa fie, in medie, cat mai mic.
b* trebuie sa fie cat mai aproape de 1;

DOMINARE FUNCTII EURISTICE

Daca avem doua functii euristice admisibile h1 si h2 cu proprietatea ca h1(n) >


h2(n) pentru orice nod n atunci spunem ca h1 domina pe h2
o h1 este functia euristica mai buna decat h2 pentru cautare.

RELAXAREA PROBLEMELOR

O problema cu mai putine restrictii asupra actiunilor posibile duce la o relaxare a


problemei initiale.
Costul unei solutii optimale obtinut pentru o problema relaxata reprezinta o
functie euristica admisibila pentru problema originala

ALGORITMI DE CAUTARE LOCALA

In multe probleme de optimizare, drumul catre tinta este irelevant


Spatiul starilor este o multime de configuratii complete, o multime de potentiale
solutii.
La unele probleme, trebuie gasite configuratii care sa satisfaca constrangeri, de
exemplu problema damelor.
o In astfel de cazuri putem folosi algoritmi de cautare locala.
o In astfel de situatii avem o singura stare curenta care i se aduc
imbunatatiri.

ALGORITMUL HILL CLIMBING

Este ca si cand ai urca un munte, este ceata foarte deasa si ai avea amnezie.
Este vorba de o miscare continua inspre valori mai bune, mai mari
Algoritmul nu mentine un arbore de cautare, prin urmare pentru fiecare nod se
retine numai starea pe care o reprezinta si evaluarea sa.
DEZAVANTAJE:
o Maxime locale : este vorba de un varf care este mai mic decat cel mai
inalt varf din spatiul starilor. Cand se ajunge la maxime locale, algoritmul
se opreste pentru ca nu mai poate cobori dealul.
Solutia gasita poate fi foarte slaba
o Platouri: - o zona din spatiul de cautare in care functia de evaluare are
valori constante
Cautarea va merge in aceste cazuri la intamplare
HILL CLIMBING CU RESTART ALEATOR
o Cand apar astfel de situatii in care cautarea nu realizeaza nici un progres,
un lucru bun ar fi sa se reinceapa cautarea de la un alt punct de start
o Hill climbing cu restart aleator face o serie de cautari folosind hill
climbing cu porniri din diverse stari aleatoare
o Fiecare rulare dureaza pana cand cautarea nu mai inregistreaza
imbunatatiri sau a trecut un numar de iteratii
o Cel mai bun rezultat din fiecare cautare este retinut
o Se poate repeta pentru un numar fixat de iteratii sau se paote continua
pana cand cel mai bun rezultat obtinut nu a mai fost imbunatatit de mai
multe generatii

SIMULATED ANNEALING

In loc de a reincepe cautarea dintr-o noua stare generata aleator, aceasta poate sa
si coboare de pe munte pentru a scapa de maxime locale acest lucru este permis
de catre Simulated Annealing.
In loc sa fie alese cele mai bune actiuni, aceasta alege si miscari in mod aleator
Daca actiunea imbunatateste situatia, atunci este intotdeauna executata

T este un parametru folosit pentru a determina probabilitatea de a selecta actiunea


cea mai proasta
Cu cat T este mai mare, cu atat actiunile proaste au sansa mai mare de a fi
selectate.
Cand T tinde la 0, algoritmul devine din ce in ce mai mult precum hill climbing
Apare un parametru de intrare, planificare, cu rolul de a determina valoarea lui T
in raport cu cate iteratii au avut loc