Documente Academic
Documente Profesional
Documente Cultură
O buna strategie permite, de cele mai multe ori, in cazul unei problem a carei
rezolvare sistematica este costisitoare, obtinerea de rezultate in timp rezonabil.
Premiza: P -> Q si P.
Concluzie: Q
Lat. ponere: a pune, a afirma.
Modalitatea prin care afirmand [P] afirma [Q].
Afirmarea antecedentului.
Acest algoritm este denumit Minima, deoarece calculatorul face mutarea care-I ofera
castigul maxim, in acelsi timp asigurandu-se ca oponentul face mutarea cea mai
defavorabila calc. Deoarece multarile alterneaza, si alg. alterneaza maximizand si
minimizand nivele arborelui in mod recursive.
Proprietati:
Slot-urile sunt niste atribute ale caror diferite aspecte sunt descrise cu ajutorul
unor fatete declarative sau procedurale.
Enuntul combinatorial:
Formalizare(Graful de stari):
Def: Euristicile sunt principii dupa care se alege cea mai buna alternativa de
atingere al unei tinte.
Caracteristici:
1) Completitudine.
2) Complexitate de timp.
3) Complexitate de spatiu.
4) Optimalitate.
Tipuri de euristici:
1) Functia de evaluare.
2) Reducerea diferentelor.
3) Alegerea cea mai constransa.
Adancime:
- Completitudine: NU
- Optimalitate: NU
- Complexitate de timp: O(b^m)
- Complexitate de spatiu: O(b^m)
- Completitudine: DA
- Optimalitate: NU
- Complexitate de timp: O(b^l)
- Complexitate de spatiu: O(b*l)
1) Informatica clasica:
2) Inteligenta artificiala:
Enuntul problemei + ratiune + (elemente de cunostinta si strategii de
rezolvare) -> solutie.
1) Rationamentul aproximativ:
O caracteristica a cunostintelor este imperfectiunea lor. Aceasta
imperfectiune poate lua forma impreciziei sau a incertitudinii. Pentru a
putea gestiona astfel de cunostinte, sistemul bazat pe cunostinte foloseste
un rationament aproximativ, avand urmatoarele caracteristici:
1) X-Y: Presupunem ca putem inlocui spatiul liber din puzzle cu orice spatiu
ocupat de un element, folosind o regula de miscare. (sus, jos, stanga,
dreapta).
2) n- MaxSwap: Presupunem ca puteme inlocui spatiul liber din puzzle cu
orice spatiu ocupat de un element. Toate miscarile folosite vor fi
atribuite ca si valoarea euristicii.
Rationamentul ipotetic:
Se fac supozitii asupra cunostintelor care lipsesc, prin folosirea unui sistem de
gestiune al ipotezelor.
1) Logica.
2) Reprezentare mixta.
3) Reprezentare prin folosirea mostenirii.
4) Reprezentare procedurala.
5) Reguli de productie.
- Fie alpha, cea mai buna valoare (cea mai mare) al lui MAX si beta, cea mai
buna valoare (cea mai mica) al lui MIN. Algoritmul va actualiza valorile lui
alpha si a lui beta in timpul parcurgerii arborelui si va elimina subarborii
pentru care alpha si beta au valori ineficiente.
- Algoritmul se va opri sub un nod MAX, avand pe alpha cu o valoare mai
mare sau egala cu beta, valoare asociata lui MIN care este predecesorul lui
MAX.
Dezavantaje:
1) Maximele locale: Reprezinta un varf care este mai mic decat cel mai
inalt varf din spatiul starilor. Cand algoritmul intalneste o maxima
locala, acesta se va opri deoarece nu mai poate cobori dealul. Astfel,
valoarea gasita va fi una ineficienta.
2) Platourile: Reprezinta o zona din spatiul de cautare in care valoarea
functiei de evaluarea este constanta. Astfel, cautarea se va desfasura in
mod aleator.
1) Relatii.
2) Algoritmi de rezolvare.
3) Euristici si strategii.
4) Elemente de baza , obiecte ale lumii reale.
5) Asertiune asupra elementelor de baza.
multime de fapte.
Scrieti o baza de reguli ce permite ca de la o stare curenta si o valoare (moneda)
introdusa permite trecerea automantului intr-o alta stare. b) Simulati introducerea
unui sir de monezi in vederea ajungerii in starea finala (obtinerea cafelei). c) Scrieti
niste reguli de control ce permit la cererea utilizatorului trecerea in starea initiala
(apt pentru o noua comanda de cafea). d) Cum putem realiza sistemul a.i. banii
ramasi in aparat sa poata fi folositi la plata urmatoarei cafele ?
(deftemplate numeStare
(slot nume)
(deftemplate relatie
(slot monezi)
(slot stare1)
(slot stare2)
(deftemplate functionareAparat
(slot stareCurenta)
(slot moneda)
(deftemplate ControlExecutie
(slot intrebare)
(slot raspuns)
(facts)
(defrule Faza1
=>
(defrule Faza2
=>
(defrule Intrebare1
=>
(defrule Control1
=>
(defrule Control2
=>
)
(defrule Faza3
=>
(defrule Faza4
=>
(defrule Faza5
=>
(defrule Faza6
=>
(printout t "Introduceti inca o moneda in valoare de: 5 sau
25 centi" crlf)
(bind ?m (read))
(assert (functionareAparat (stareCurenta 15) (moneda ?m)))
(defrule Incheiere1
=>
(defrule Faza8
=>
)
(run)
;ETC pana la 55
32) Se considera date mai multe figuri geometrice (dreptiunghiuri, patrate,
cercuri), definite cu fapte de forma: (dreptunghi <nume> <lungime>
<latime>), (patrat <nume> <latura>), (cerc <nume> <raza>). a) Sa se scrie o
baza de reguli ce calculeaza suma ariilor pentru fiecare categorie. b) De
asemenea, se va calcula si suma ariilor tuturor figurilor geometrice date.
(deftemplate dreptunghi
(slot nume)
(slot lungime)
(slot latime)
(deftemplate patrat
(slot nume)
(slot latura)
(deftemplate cerc
(slot nume)
(slot raza)
(deftemplate ValoareStocare
(slot valoare)
(slot valoare2)
(slot valoare3)
)
(assert (ValoareStocare (valoare 1) (valoare2 1) (valoare3 1)))
(deftemplate sumaAriei
(slot suma)
(defrule CalculArieDreptunghi
=>
(defrule AfisareArieDreptunghi
=>
; ARIE PATRAT
(defrule CalculAriePatrat
=>
(defrule AfisareAriePatrat
=>
; ARIE CERC
(defrule CalculArieCerc
=>
(defrule AfisareArieCerc
=>
(defrule SumaArie
(defrule AfisareSumaArie
=>
(run)
33) Fie automatul finit partial utilizat pentru a determina validitatea unei intrari
(in cadrul procesului de compilare):
(deftemplate automat
(slot prinStare)
(slot nodCurent)
(slot nodUrmator)
(facts)
(deftemplate functionare
(slot nodCurent)
(slot prinStare)
(defrule Faza1
=>
(defrule Faza2
(defrule Faza3
=>
(defrule Faza4
=>
(defrule Faza5
=>
(defrule Faza6
=>
(defrule Faza7
=>
(defrule Faza8
=>
(defrule Faza9
=>
(defrule Faza10
=>
(defrule Faza11
=>
(printout t "Sunteti in nodul: nod6" crlf)
(printout t "Alegeti starea de deplasare (E):" crlf)
(bind ?n (read))
(assert (functionare (nodCurent Start) (prinStare ?n)))
(defrule Faza12
=>
(defrule Faza13
(functionare (nodCurent nod10)(prinStare notI))
=>
(defrule Faza14
=>
(defrule Faza15
=>
(defrule Faza16
=>
(printout t "Sunteti in nodul: Error" crlf)
(printout t "Programul se va incheia" crlf)
(defrule Faza17
=>
(printout t "Sunteti in nodul: Succes" crlf)
(printout t "Programul se va incheia" crlf)
(run)
(deftemplate Revenire
(slot Intrebare)
(slot Raspuns)
(defrule Intrebare
=>
(defrule Raspuns1
=>
)
(defrule Raspuns2
=>
AKO
Air-
AKO
craft
Has-shape
AKO
round ballon Pr. jet
driven
AKO
AKO AKO AKO
AKO AKO
(deftemplate retea
(slot relatie)
(slot atribut1)
(slot atribut2)
)
(facts)
(defrule AKO
(run)
(defrule IS-A
=>
(run)
(defrule Has-shape
=>
(run)
35) a) Convertiti arborele de decizie urmator (ce reprezinta informatii despre
clasificarea animalelor) intr-o multime de fapte. Cum sunt reprezentate
legaturile? (Nodurile frunza (raspuns) necesita o reprezentare diferita de
nodurile neterminale (de decizie)):
It is very big?
NO
YES
NO YES NO YES
NO YES
NO YES
(deftemplate schema
(slot Intrebare)
(slot Raspuns)
(defrule Intrebare1
=>
(defrule Intrebare2
=>
(defrule Intrebare3
=>
(defrule Veverita
=>
(defrule Soarece
=>
(printout t "Guess mouse" crlf)
(defrule Intrebare4
=>
(defrule Girafa
=>
(defrule Intrebare5
=>
(defrule Elefant
(schema (Intrebare "Does it have a trunk ?") (Raspuns YES))
=>
(defrule Rinocer
=>
(defrule Hipopotam
=>
(run)
(facts)
(slot numeMultime)
(slot element1)
(slot element2)
(slot element3)
(slot element4)
(deftemplate multimeNoua
(slot numeMultime)
(slot element1)
(slot element2)
(slot element3)
(slot element4)
(slot element5)
(slot element6)
(slot element7)
(slot element8)
(deftemplate sumaElemente
(slot suma)
(defrule suma1
=>
(defrule suma2
=>
(defrule afisareSuma
=>
(run)
(defrule SumaElementeAB
?elAB <- (multimeNoua (numeMultime ?x) (element1 ?e1)
(element2 ?e2) (element3 ?e3) (element4 ?e4) (element5 ?e5)
(element6 ?e6) (element7 ?e7) (element8 ?e8)
{element1 < 10 && element2 < 10 && element3 < 10 &&
element4 < 10 && element5 < 10 && element6 < 10 && element7 <
10 && element8 < 10})
=>
(modify ?sumaEL (suma (+ ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8
?suma)))
(retract ?elAB)
(defrule AfisareSumaElemente
=>
(run)