Sunteți pe pagina 1din 145

Ministerul Educaiei si Tineretului al Republicii Moldova UNIVERSITATEA TEHNIC A MO !

OVEI Catedra Informatica Aplicat

ndrumar de laborator PROGRAMAREA LOGIC I INTELIGENA ARTIFICIAL

C"iin#u $ U%T%M%& '()*

+ndru,arul de laborator include noiuni introductive i sarcini practice corespun-#toare& ,enite s# ini ie-e studentul& at.t /n do,eniul pro0ra,#rii lo0ice& c.t i /n do,eniul inteli0enii arti1iciale% Tipul sarcinilor este unul 0eneric& care ur,#re te reiterarea ,aterialului studiat prin i,ple,entare ,etodelor descrise i de,onstrate /n lucrare% O caracteristic# de1initorie a lucr#rilor este studiul i anali-a detaliat# a /ndeplinirii sarcinilor utili-.nd li,ba2ul de pro0ra,are 3rolo0% Sunt elucidate te,e& care au ca subiect sinta4a unui li,ba2 de pro0ra,are lo0ic i structurile lui de date 1unda,entale& ba-e de cunotine& siste,e e4pert& reele neuronale i aplicarea lor practic# /n recunoaterea i,a0inilor i a vorbirii% +ndru,arul este destinat studenilor specialit#ilor 5 Calculatoare i Tehnologii Informaionale pentru /nsuirea disciplinei Programarea Logic i Inteligena Artificial% Autori6 con1% univ%& dr% % uc"ianova& lec%sup V% a-u Redactor responsabil 7 Recen-ent 8

$ U%T%M%& '()*

Cuprins:
Cuprins6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* CA3ITO I%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9 UCRAREA !E A:ORATOR ;)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9 Introducere /n i,ba2ul 3rolo0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)< UCRAREA !E A:ORATOR ;'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'( Mecanis,e de control al procesului de bac=trac=in0%%%%%%%%%%%%%%%%%%%%%%'( 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'( 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'> UCRAREA !E A:ORATOR ;*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*( Structuri de date /n 3rolo0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*( 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*( 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*? CA3ITO II%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9( E4e,ple i 3roble,e /n i,ba2ul 3rolo0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9( UCRAREA !E A:ORATOR ;9%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9( Siste,e E4pert%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9( 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9( 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9< UCRAREA !E A:ORATOR ;@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@' 3relucrarea i,ba2ului Natural%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@' 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@' 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>* UCRAREA !E A:ORATOR ;?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>9 Al0orit,i de recunoatere%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>9 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>9 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A( UCRAREA !E A:ORATOR ;>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A) Al0orit,i de recunoatere a i,a0inilor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A)

3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A) 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%AA UCRAREA !E A:ORATOR ;A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A< Reelele Neuronale Ha,,in0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A< 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A< 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)(' UCRAREA !E A:ORATOR ;<%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)(* Reelele Neuronale Hebb%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)(* 3ARTEA )6 Noiuni Teoretice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)(* 3ARTEA '6 !es1#urarea lucr#rii%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)'' :I: IOBRACIE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)'* ANEDA )%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)'9 ANEDA '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)*' ANEDA *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)*>

CAPITOL I LUCRAREA DE LABORATOR 1

Introduc r !n Li"#$%u& Pro&o'


(copu&: +nsuirea principiilor 1unda,entale de pro0ra,are a li,ba2ului 3rolo0

PARTEA 1: Noiuni T or tic

1)1 Entit*+i& &i"#$%u&ui PROLOG 3rolo0 este un li,ba2 lo0ic& descriptiv& care per,ite speci1icarea spaiului proble,ei i a soluiei acesteia& oper.nd /n ter,eni de 1apte cunoscute despre obiectele universului proble,ei Ei a relaiilor e4istente /ntre aceste obiecte% E4ecuia unui pro0ra, 3rolo0 const# /n deducerea i,plicaiilor dintre aceste 1apte Ei relaii& pro0ra,ul de1inind ast1el o ,uli,e de consecine ce repre-int# /nelesul sau se,ni1icaia declarativ# a pro0ra,ului% Un pro0ra, 3rolo0 conine ur,#toarele entit#i6 F fapte despre obiecte Ei relaiile e4istente /ntre aceste obiecteG F reguli despre obiecte Ei relaiile dintre acestea& care per,it deducerea Hin1erareaI unor 1apte noi pe ba-a celor cunoscuteG F /ntreb#ri& nu,ite Ei scopuri& despre obiecte Ei relaiile acestora& la care pro0ra,ul r#spunde /n ba-a 1aptelor Ei re0ulilor e4istente%

1)1)1

F$pt Faptele sunt predicate de ordinul /nt.i de aritate n considerate

adev#rate Hrepre-int# cea ,ai si,pl# 1or,a de predicat din 3rolo0I% Ele stabilesc relaiile /ntre predicatelor% obiectele universului proble,ei% Nu,#rul de ar0u,ente ale 1aptelor este repre-entat prin aritatea corespun-#toare a

!emple" Fapt: c.ineHbobiI% placeHion& ioanaI% placeHion& anaI% 1ru,oas#HanaI% bunHdanielI% deplasea-#Hcub& ca,era)& ca,era'I% Aritate: ) ' ' ) ) *

Interpretarea particular# a predicatului Ei a ar0u,entelor acestuia depinde de pro0ra,ator% Ordinea ar0u,entelor este i,portant#& Ei odat# 1i4at# trebuie p#strat# pentru orice utili-are ulterioar# a 1aptului cu aceeaEi se,ni1icaie% Muli,ea 1aptelor Ei re0ulilor unui pro0ra, 3rolo0 1or,ea-# ba#a de cuno$tine 3rolo0%

1)1), (copuri Obinerea consecinelor sau a re-ultatului unui pro0ra, 3rolo0 se 1ace prin stabilirea unor scopuri care /n 1uncie de coninutul ba-ei de cunoEtine pot 1i adev#rate sau 1alse% Scopurile sunt predicatele pentru care se doreEte a1larea valorii de adev#r /n conte4tul 1aptelor e4istente ale unei ba-e de cunoEtine% Re-ultatul

unui pro0ra, 3rolo0 este r#spunsul la o /ntrebare Hsau la o /,binare de /ntreb#riI% Acest r#spuns poate 1i a1ir,ativ - . s& sau ne0ativ - no% +n ca-ul unui r#spuns a1ir,ativ la o /ntrebare& un pro0ra, 3rolo0 poate 1urni-a /n continuare Ei alte in1or,aii din ba-a de cunoEtine% !emplu" Consider.nd ba-a de cunoEtine speci1icat# anterior& se pot stabili diverse /ntreb#ri& cu, ar 1i6 /- p&$c 0ion1 io$n$2) Jes No K deoarece acest 1apt e4ist# /n ba-a de cunoEtine K deoarece acest 1apt nu e4ist# /n ba-a de cunoEtine +n 1aptelor constante e4e,plele sau pre-entate de p.n# acu,& ar0u,entele /- p$p$'$&0ion2)

Ei /ntreb#rilor au 1ost obiecte particulare& nu,ite Ei ato,i si,bolici% 3redicatele 3rolo0 Hca i orice

predicate /n lo0ica cu predicate de ordinul II& per,it ar0u,ente /n 1or,# de obiecte 0enerice& nu,ite variabile% +n ,od conven ional& /n 3rolo0 nu,ele ar0u,entelor variabile /ncepe cu o ,a2uscul# iar nu,ele constantelor si,bolice /ncep cu o ,inuscul#% O variabil# poate 1i instaniat# Hle0at#I dac# e4ist# un obiect asociat acestei variabile& sau neinstaniat# Hliber#I dac# nu se Etie /nc# ce obiect va dese,na variabila% Iniial& la 1i4area unui scop 3rolo0 care conine variabile& acestea sunt neinstaniate& iar siste,ul /ncearc# satis1acerea acestui

scop c#ut.nd /n ba-a de cunoEtine un 1apt care se poate identi1ica cu scopul printr8o instaniere adecvat# a variabilelor din scopul dat% Eventual& se derulea-# un proces de uni1icare a predicatului scop cu unul din predicatele 1apte e4istente /n ba-a de cunoEtine% a /ncercarea satis1acerii scopului c#utarea porne te /ntotdeauna de la /nceputul ba-ei de cunoEtine% !ac# se stabilete un 1apt cu un si,bol predicativ identic cu cel al scopului& variabilele din scop se instania-# con1or, al0orit,ului de uni1icare Ei valorile variabilelor ast1el obinute sunt a1iEate ca r#spuns la satis1acerea acestui scop% !emple" /- c$in 0Cin Est 2) Cin Est 3 #o#i /- d p&$s $4$0C 1 D Und 1 Und 2) C 3 cu#1 D Und 3 c$" r$11 Und 3 c$" r$, /- d p&$s $4$0C 1 Aici1 Aici2) No +n ca-ul /n care e4ist# ,ai ,ulte 1apte /n ba-a de cunoEtine care se uni1ic# cu /ntrebarea pus#& deci e4ist# ,ai ,ulte r#spunsuri la /ntrebare& care corespund 1i4at& li,ba2ul ,ai ,ultor soluii ale scopului 3rolo0 procedea-# /n 1elul ur,#tor6 pri,a soluie a reali-area pri,ei uni1ic#ri este ,arcat 1aptul

re-ult# din pri,a uni1icare Ei e4ist# at.tea soluii c.te co,bina ii de uni1ic#ri e4ist#%

care a uni1icat Ei care repre-int# pri,a soluie%

a obinerea

ur,#toarei soluii& c#utarea este reluat# de la ,arca2& descendent /n ba-a de cunoEtine% Obinerea pri,ei soluii este de obicei nu,it# satis1acerea scopului iar obinerea celorlalte soluii& re8satis1acerea scopului% a satis1acerea unui scop c#utarea se 1ace /ntotdeauna de la /nceputul ba-ei de cunoEtine% a re8satis1acerea unui scop& c#utarea se 1ace /ncep.nd de la ,arca2ul stabilit de satis1acerea anterioar# a aceluiai scop% Siste,ul 3rolo0& 1iind un siste, interactiv& per,ite utili-atorului obinerea 1ie a pri,ului r#spuns& 1ie a tuturor r#spunsurilor% +n ca-ul /n care& dup# a1iEarea tuturor r#spunsurilor& un scop nu ,ai poate 1i re8satis1#cut& siste,ul r#spunde no% !emple" /- p&$c 0ion1 52) 5 3 io$n$6 5 3 $n$6 no

1)1)7 R 'u&i O regul 3rolo0 e4pri,# un 1apt care depinde de alte 1apte Ei are 1or,a6 ( :- (11 (,1 8(n)

Ciecare (i1 i 311n Ei ( au 1or,a 1aptelor 3rolo0& deci sunt predicate cu ar0u,ente constante& variabile sau structuri% Captul ( care de1ineEte re0ula& se nu,eEte antet de regul& iar (11 (,1 8(n 1or,ea-# corpul regulii Ei repre-int# con2uncia Huni1icareaI scopurilor care trebuie satis1#cute pentru satis1acerea ulterioar# a antetul re0ulii%% Cie ur,#toarea ba-# de cunoEtine 3rolo06 F Ana este 1ru,oas#% F Ion este bun% F Ion o cunoaEte pe Ana) F Mi"ai o place pe Maria% 9ru"o$s$0$n$2) #un0ion2) cuno$st 0ion1 $n$2) p&$c 0"i:$i1 "$ri$2) K Ipote-a ) K Ipote-a ' K Ipote-a * K Ipote-a 9 K Ipote-a @

F Ion o cunoaEte pe Maria) cuno$st 0ion1 "$ri$2)

F !ac# dou# persoane D Ei J se cunosc Ei persoana D este bun# Ei persoana J este 1ru,oas#& atunci cele dou# persoane& D Ei J& se plac% p&$c 051 ;2 :- #un0521 cuno$st 051 ;21 9ru"o$s$0;2) K Ipote-a ?

Enunul de la ipote-a ? de1ineEte o re0ul# 3rolo0% Relaia p&$c 0Cin 1 P Cin 2& este de1init# at.t printr8un 1apt HIpote-a @I c.t Ei printr8o re0ul# HIpote-a ?I% +n condiiile e4istenei re0ulilor /n ba-a de cunoEtine 3rolo0& satis1acerea unui scop se 1ace printr8un procedeu si,ilar cu cel pre-entat /n seciunea bI& iar uni1icarea scopului se /ncearc# at.t cu 1apte din ba-a de cunoEtine& c.t Ei cu antetul re0ulilor de ba-#% a uni1icarea unui scop cu

antetul unei re0uli& pentru satis1acerea acest scop trebuie satis1#cut# i re0ula% Aceasta& se reduce la satis1acerea tuturor 1aptelor din corpul re0ulii& deci con2uncia scopurilor% Scopurile din corpul re0ulii devin subscopuri a c#ror satis1acere se va /ncerca printr8un ,ecanis, si,ilar cu cel al satis1acerii scopului iniial% 3entru ba-a de cunoEtine descris# ,ai sus& satis1acerea scopului /- p&$c 0ion1 $n$2) se va produce ast1el6 scopul se uni1ic# cu antetul re0ulii H?I Ei duce la instanierea variabilelor din re0ula H?I6 5 3 ion <i ; 3 $n$) 3entru ca acest scop s# 1ie /ndeplinit& trebuie /ndeplinit# re0ula& deci 1iecare subscop din corpul acesteia% Aceasta revine la /ndeplinirea scopurilor #un0ion2& care este satis1#cut prin uni1icare cu 1aptul H'I cuno$st 0ion1 $n$2& care este satis1#cut prin uni1icare cu 1aptul H9I Ei a scopului 9ru"o$s$0$n$2& care este satis1#cut prin uni1icare cu 1aptul H)I% +n consecin#& re0ula a 1ost /ndeplinit#& deci Ei /ntrebarea iniial# este satis1#cut# Hadev#rat#I& iar siste,ul r#spunde . s% +n continuare s# observ#, ce se /nt.,pl# dac# se pune /ntrebarea6 /- p&$c 051 ;2) 3ri,a soluie a acestui scop este dat# de uni1icarea cu 1aptul H@I& iar r#spunsul este6 5 3 "i:$i1 ; 3 "$ri$

Siste,ul 3rolo0 va pune un ,arca2 /n dreptul 1aptului H@I care a satis1#cut scopul% Ur,#toarea soluie a scopului p&$c 051 ;2 se obine /ncep.nd c#utarea de la acest ,arca2 /n continuare /n ba-a de cunoEtine% Scopul uni1ic# cu antetul re0ulii H?I Ei se vor 1i4a trei noi subscopuri 9ru"o$s$0;2% de /ndeplinit& #un052 #un052& cuno$st 051 ;2 Ei /ncearc# Scopul este satis1#cut de 1aptul H'I Ei

variabila 5 este instaniat# cu valoarea ion& 53ion% Se

apoi satis1acerea scopului cuno$st 0ion1 ;2& care este satis1#cut de 1aptul H*I Ei deter,in# instanierea ; 3 "$ri$% Se introduce /n ba-a de cunoEtine un ,arca2 asociat scopului cuno$st 0ion1 ;2& care a 1ost satis1#cut de 1aptul H*I% Se /ncearc# apoi satis1acerea scopului 9ru"o$s$0"$ri$2% Acesta eEuea-#% +n acest ,o,ent siste,ul intr# /ntr8un proces de bac=trac=in0 /n care se /ncearc# re8satis1acerea scopului anterior satis1#cut& cuno$st 0ion1 ;2& /n sperana c# o noua soluie a acestui scop va putea satis1ace Ei scopul curent care a eEuat& 9ru"o$s$0;2% Re8satis1acerea scopului cuno$st 0ion1 ;2 se 1ace pornind c#utarea de la ,arca2ul asociat scopului /n 2os& deci de la 1aptul H*I /n 2os% O nou# soluie Hre8 satis1acereI a scopului cuno$st 0ion1 ;2 este dat# de 1aptul H9I care deter,in# instanierea ; 3 $n$% +n acest ,o,ent se /ncearc# satis1acerea scopului 9ru"o$s$0$n$2% C.nd este vorba de un scop & c#utarea se 1ace de la /nceputul ba-ei de cunoEtine 9ru"o$s$0$n$2 este satis1#cut de 1aptul Ei scopul H)I% +n consecin#& a

doua soluie a scopului p&$c 051 ;2 este obinut# Ei siste,ul r#spunde6 5 3 ion& ; 3 $n$& ur,.nd un ,ecanis, de bac=trac=in0& descris intuitiv /n Ci0ura )%) prin pre-entarea arborilor de deducie construii de siste,ul 3rolo0% a /ncercarea de re8satis1acere a scopului p&$c 051 ;2& printr8un ,ecanis, si,ilar& se observ# c# nu ,ai e4ist# alte solu ii% +n conclu-ie& 1iind dat# ba-a de cunoEtine 3rolo0 anterioar#& r#spunsul siste,ului 3rolo0 la /ntrebarea p&$c 051 ;I este6 /- p&$c 051 ;2) 5 3 "i:$i1 ; 3 "$ri$6 5 3 ion1 ; 3 $n$6 No Observaii: F a satis1acerea unei con2uncii de scopuri /n 3rolo0& se /ncearc#

satis1acerea 1iec#rui scop pe r.nd& de la st.n0a la dreapta% 3ri,a satis1acere a unui scop deter,in# plasarea unui ,arca2 /n ba-a de cunoEtine /n dreptul 1aptului sau re0ulii care a deter,inat satis1acerea scopului% F !ac# un scop nu poate 1i satis1#cut HeEuea-#I& siste,ul 3rolo0 re8 iterea-# Ei /ncearc# re8satis1acerea scopului din st.n0a& pornind c#utarea /n ba-a de cunoEtine de la ,arca2 /n ,od descendent% +nainte de re8satis1acerea unui scop se eli,in# toate instanierile de

variabile deter,inate de ulti,a satis1acere a acestuia% !ac# cel ,ai din st.n0a scop din con2uncia de scopuri nu poate 1i satis1#cut& /ntrea0a con2uncie de scopuri eEuea-#% F Aceast# co,portare a siste,ului 3rolo0 /n care se /ncearc# /n ,od repetat satis1acerea Ei re8satis1acerea scopurilor din con2unc iile de scopuri se nu,eEte bac=trac=in0%

Fi'ur$ 1)1 8 Al0orit,ul de satis1acere a scopurilor /n 3rolo0% a 0eneral& o re0ul# are ur,#toarea sinta4#6

nu" =r &0$r'11 nu" =r &=M082) !emplu"

81

$r'N2

:-

nu" =r &=10821

81

3ute, de1ini predicatul so ast1el 7 :#rbat este ot dac# este b#rbat Ei este c#s#torit cu o 1e,eie HCe,eieI% Aceast# de1iniie va 1i codi1icat# prin ur,#toarea re0ul#6 sot0B$r#$t1 F " i 2:#$r#$t0B$r#$t21 cup&u=c$s$torit0B$r#$t1 F " i 2) Si,ilar& soti 0F " i 1 B$r#$t2:9 " i 0F " i 21 cup&u=c$s$torit0B$r#$t1 F " i 2) 3artea st.n0# a operatorului :- este nu,it# capul regulii H"eadI& iar cea din dreapta corpul regulii HbodLI%

Observaii: F Un 1apt poate 1i v#-ut ca o re0ul# 1#r# corp H1#r# condiieI% F Re0ulile Ei 1aptele care de1inesc aceeaEi relaie Hau acelaEi nu,e de relaie la seciunea capuluiI trebuie 0rupate /n sursa pro0ra,ului% F +n 3rolo0& relaiile sunt nu,ite de obicei predicate% !up# ad#u0area celor dou# re0uli& devine posibil# introducerea intero0#rii6 /- sot0B$r#$t1F " i 21 >rit &n0B$r#$t219$i&)

Ca re-ultat va ap#rea un r#spuns /n care se vor conine toate nu,ele de b#rbai din ba-a de cunoEtine Hde e4e,plu6 ion& andrei& 0"eor0"e& 0abriel& ,i"ai%I 3entru a putea ur,#ri ,odul /n care este re-olvat# intero0area poate 1i utili-at# co,anda tr$c % 3e ecran vor apare di1erite subscopuri care trebuie re-olvate de pro0ra,ul 3rolo0 pentru a obine r#spunsul la intero0are% Ur,#toarea p#rintele unui copil% p$rint 0P$rint 1Copi&2:-t$t$0P$rint 1Copi&26 "$"$0P$rint 1Copi&2) +n aceast# re0ul#& Mpunctul Ei vir0ulaM H 6I dese,nea-# operatorul lo0ic SAU% Mai departe pute, utili-a re0ula p$rint pentru a crea o nou# re0ul# ce veri1ic# dac# o persoan# este copilul unei persoane anu,e% re0ul# de1ineEte 1aptul c# persoan# este

Fi'ur$ 1) , 8 Bra1ul pentru relaiile bunic8 nepot utili-.nd relaii de2a de1inite copi&0Copi&1P$rint 2:-p$rint 0P$rint 1Copi&2) 3.n# la acest ,o,ent& a, de1init re0uli ba-ate pe relaii directe dintre persoanele ce alc#tuiesc ba-a de cunoEtine% +n continuare& vo, de1ini dou# re0uli care pre-int# relaii indirecte /ntre persoanele din ba-a de cunoEtine% Vo, de1ini re0ula bunic Ei re0ula nepot utili-.nd relaiile pre-entate /n Ci0ura )% ' % 3entru a a1la bunicul ? unei persoane 5 proced#, ast1el6 F F F Cine este p#rintele lui 5N Hpresupune, c# este ;I% Cine este p#rintele lui ;N Hpresupune, c# este ?I% !eci& ? va 1i bunicul lui 5%

Relaia sor$& de e4e,plu& poate 1i descris# de ur,#torul al0orit,6 P ntru oric 5 <i ;1 5 st sor$ &ui ; d$c* 012 5 <i ; $u $c &$<i p*rint 1 <i 0,2 5 st 9 " i ) O posibil# i,ple,entare /n 3rolo0 a al0orit,ului pre-entat ,ai sus este ur,#toarea6 sor$051;2:-p$rint 0?1521 p$rint 0?1;21 9 " i 0521 5 @A;) Menion#, 1aptul c# ,odalitatea /n care D Ei J au acelaEi p#rinte a 1ost pre-entat# anterior% +n 3rolo0& operatorul @A are sensul de di1erit%

PARTEA ,: D s9*ur$r $ &ucr*rii )% Se va citi breviarul teoretic% Se atra0e atenia asupra 1aptului c# toate cunoEtinele din aceast# lucrare vor 1i necesare Ei /n derularea celorlalte lucr#ri% '% Se vor studia e4e,plele propuse & /ncerc.nd 0#sirea altor posibilit#i de soluionare a acestora% Se vor utili-a Ei alte scopuri Hintero0#riI pentru a testa de1iniiile predicatelor introduse *% Se va elabora un arbore 0enealo0ic Ei o ba-# de cunotine 3rolo0 care ar descrie relaiile e4istente /n 1a,ilia !u,neavoastr# proprie care ar per,ite cercetarea acestor relaii prin utili-area scopurilor e4terne% Arbore 0enealo0ic elaborat trebuie s# conin# cel puin trei nivele% 3entru cercetarea relaiilor e4istente /n 1a,ilie se vor utili-a nu ,ai puin de Ease scopuri%

9% Se va pre-enta darea de sea,# %

LUCRAREA DE LABORATOR , M c$nis" d contro& $& proc su&ui d #$cBtr$cBin'


(copu&: +nsuEirea ideilor despre ,ecanis,e speci1ice li,ba2ului 3rolo0 pentru controlul procesului de bac%trac%ing6 cut Ei fail

PARTEA 1: Noiuni T or tic Siste,ul 3rolo0 se i,plic# auto,at /ntr8un proces de bac%trac%ing atunci c.nd acest lucru este necesar pentru satis1acerea unui scop% +n unele situaii acest co,porta,ent poate 1i deosebit de util& pe c.nd /n atele poate deveni 1oarte ine1icient% Se consider# ur,#torul e4e,plu de pro0ra, /n care se de1inesc valorile unei 1uncii6

9051 C2 :- 5 @ 7) 9051 ,2 :- 7 3@ 51 5 @ D) 9051 E2 :- D 3@ 5)

K) K' K*

a /ntrebarea6 /- 1H)& JI% ;3C r#spunsul siste,ului indic# 1aptul c# valoarea 1unciei pentru 531 este ;3C% !ac# se pune /ntrebarea 1or,at# din con2uncia de scopuri6 /- 9011 ;21 , @ ;) no siste,ul se,nalea-# un eEec% Arborii de deducie corespun-#tori sunt pre-entai /n Ci0ura '%) 6

Fi'ur$ ,)1 - Arbori de deducie a scopurilor 9011;2 <i 9011;21,@; Se observ# c# se /ncearc# re8satis1acerea pri,ului scop cu re0ulile ' Ei *& iar acest lucru este inutil datorit# se,anticii acestor re0uli% Ast1el& dac# o valoare ,ai ,ic# dec.t * pentru 5 duce la eEecul scopului ( din con2uncia de scopuri 9051 ;21 (& este inutil s# se /ncerce re8satis1acerea scopului 9& deoarece aceasta nu este posibil#%

+ncercarea de re8satis1acere a scopului 9051 ;2 poate 1i /,piedicat# prin introducerea predicatului cut% 3redicatul cut& notat cu ato,ul special F& este un predicat standard& 1#r# ar0u,ente& care poate 1i /ndeplinit Heste adev#ratI /ntotdeauna Ei nu poate 1i re8satis1#cut% 3redicatul cut are ur,#toarele efecte laterale6 F a apariia predicatului cut1 toate seleciile 1#cute /ntre scopul antet al re0ulii Ei cut sunt O/n0"eateO& deci ,arca2ele de satis1acere a scopurilor sunt eli,inate& ceea ce duce la eli,inarea oric#ror altor soluii alternative pentru aceast# poriune% O /ncercare de re8 satis1acere a unui scop /ntre scopul antet de re0ula Ei scopul curent va eEua% F !ac# clau-a /n care s8a introdus predicatul cut reuEeEte& toate clau-ele cu acelai antet& succesive clau-ei /n care a ap#rut cut& vor 1i i0norate% F 3rintr8o descriere succint#& co,porta,entul predicatului cut este ur,#torul6 HC)I G :- D)& D'& P& D,& F& D,Q)& P& Dn% HC'I G :- A)& P&Ap% HC*I G% !ac# D)& D'& P& D, sunt satis1#cute& ele nu ,ai pot 1i re8satis1#cute datorit# lui cut% !ac# D)& P& D, sunt satis1#cute& C' Ei C* nu vor ,ai 1i utili-ate pentru re8satis1acerea lui G% Re8satis1acerea lui G se poate 1ace nu,ai prin re8satis1acerea unuia din scopurile D,Q)& P& Dn& dac# acestea au ,ai ,ulte soluii% Utili-.nd predicatul cut& de1iniia 1unciei 9051 ;2 poate 1i rescris# ,ult ,ai e1icient ast1el6 9051 C2 :- 5 @ 71 F) 9051 ,2 :- 7 3@ 51 5 @ D1 F) 9051 E2 :- D 3@ 5) 3redicatul cut poate 1i util /n ca-ul /n care se doreEte eli,inarea din

deducie a unor paEi care nu conin soluii sau eli,inarea unor c#i de c#utare care& la 1el& nu conin soluii% El per,ite e4pri,area /n 3rolo0 a unor structuri de control de tipul6 d$c* condiie ast1el d$c$=$tunci=$&t9 &0Cond1 Act11 Act,2 :- Cond1 F1 Act1) d$c$=$tunci=$&t9 &0Cond1 Act11 Act,2 :- Act,) Se observ# /ns# c# e4ist# dou# conte4te di1erite /n care se poate utili-a predicatul cut6 /ntr8un conte4t predicatul cut se introduce nu,ai pentru creEterea e1icienei pro0ra,ului& ca- /n care el se nu,eEte cut &erdeG /n alt conte4t utili-area lui cut ,odi1ic# se,ni1icaia procedural# a pro0ra,ului& ca- /n care el se nu,eEte cut ro$u% E4e,plul de de1inire a 1unciei 9051 ;2 cu a2utorul lui cut este un e4e,plu de cut verde% Ad#u0area lui cut nu 1ace dec.t s# creasc# e1iciena pro0ra,ului& dar se,ni1icaia procedural# este aceeaEi& indi1erent de ordinea /n care se scriu cele trei clau-e% Utili-area predicatului cut /n de1inirea predicatului asociat structurii de control d$c$=$tunci=$&t9 & introduce un cut roEu deoarece e1ectul pro0ra,ului este total di1erit /n ca-ul sc"i,b#rii ordinii clau-elor% Introducerea unui cut roEu ,odi1ic# corespondena dintre se,ni1icaia declarativ# Ei se,ni1icaia procedural# a pro0ra,elor 3rolo0% Se consider# e4e,plul de de1inire a predicatului de a1lare a ,ini,ului dintre dou# nu,ere& /n ur,#toarele dou# variante6 "in1051 ;1 52 :- 5 3@ ;1 F) "in1051 ;1 ;2 :- 5 A ;) "in,051 ;1 52 :- 5 3@ ;1 F) K cut verde $tunci aciune) $&t9 & aciune'

K cut roEu

"in,051 ;1 ;2) +n de1iniia predicatului "in) se utili-ea-# un cut verdeG acesta se 1olosete pentru creEterea e1icienei pro0ra,ului& dar ordinea clau-elor de de1inire a lui "in) poate 1i sc"i,bat# 1#r# nici un e1ect asupra re-ultatului pro0ra,ului% +n ca-ul predicatului "in' se utili-ea-# un cut roEu& ase,#n#tor structurii d$c$=$tunci=$&t9 &% !ac# se sc"i,b# ordinea clau-elor de de1inire a predicatului "in'6 re-ultatul pro0ra,ului va 1i incorect pentru valori 5 @ ;% Oportunitatea utili-#rii unui cut roEu sau a unui cut verde este& dintr8un anu,it punct de vedere& si,ilar# cu cea a utili-#rii sau nu a salturilor /n li,ba2ele de pro0ra,are clasic#% !ac# s8ar rescrie predicatul d$c$=$tunci=$&t9 & 1olosind un cut verde& de1iniia lui ar 1i6 d$c$=$tunci=$&t9 &0Cond1 Act11 Act,2 :- Cond1 F1 Act1) d$c$=$tunci=$&t9 &0Cond1 Act11 Act,2 :- not 0Cond21F1Act, unde predicatul not0Cond2 este satis1#cut dac# scopul Cond nu este satis1#cut% O ast1el de de1iniie i,plic# evaluarea lui Cond de dou# ori Ei& dac# Cond se de1ineEte ca o con2uncie de scopuri& posibil so1isticate& atunci ine1iciena utili-#rii unui cut verde /n acest ca- este evident#% !e la ca- la ca-& pro0ra,atorul /n 3rolo0 trebuie s# alea0# /ntre claritate& deci p#strarea corespondenei se,ni1icaiei declarative cu cea procedural#& Ei e1icien#% i,ba2ul 3rolo0 per,ite e4pri,area direct# a eEecului unui scop cu a2utorul predicatului 9$i&% 3redicatul 9$i& este un predicat standard& 1#r# ar0u,ente& care euea-# /ntotdeauna ) !atorit# acestui lucru introducerea unui predicat 9$i& /ntr8o con2uncie de scopuri Hde obicei la s1.rEitI deter,in# intrarea /n procesul de bac=trac=in0% Atunci c.nd 9$i& este plasat dup# predicatul cut& atunci nu se apelea-# bac=trac=in08ul% Enunul "Un individ este ru dac nu este

bun." se poate e4pri,a ast1el6 #un0' &u2) #un0H&$d2) #un0"i:$i) r$u052 :- #un0521 F1 9$i&) r$u052) ?-rau(gelu). no ?- rau(petru). yes +n ca-ul /n care predicatul 9$i& este 1olosit pentru a deter,ina un eEec& cu, Ei /n ca-ul e4e,plului de ,ai sus& acesta este de obicei precedat de predicatul cut& deoarece procesul de bac=trac=in0 pe scopurile care /l preced este inutil& scopul eu.nd oricu, datorit# lui 9$i&% E4ist# ca-uri /n care predicatul 9$i& este introdus intenionat pentru a 0enera procesul de bac=trac=in0 pentru scopurile care /l preced& proces interesant nu at.t din punctul de vedere al posibilit#ii de re8 satis1acere a scopului ce conine 9$i&1 c.t din punctul de vedere al e1ectului lateral al acestuia% rosu0"$r2) rosu0cu#2) rosu0so$r ) $9is$r 052 :- rosu0521 >rit 05219$i&) $9is$r 0 = 2) Scopul $9is$r 052 va a1iEa toate obiectele roEii cunoscute de pro0ra,ul 3rolo0 datorit# procesului de bac=trac=in0 0enerat de 9$i&6 ast1el& cu a2utorul lui 9$i& se reali-ea-# o iteraie pentru 1aptele rosuHI% Clau-a $9is$r 0 = 2 se ad#u0# pentru ca r#spunsul 1inal la satis1acerea scopului s# 1ie a1ir,ativ% +n acest ca-& introducerea unui

cut /nainte de 9$i& ar 1i deter,inat nu,ai a1iEarea pri,ului obiect roEu din pro0ra,% Anali-.nd co,binaia F19$i&& se consider# /n continuare i,ple,entarea /n 3rolo0 a a1ir,aiei6 " i!ai iube"te toate sporturile cu e#cepia bo#ului") Aceast# a1ir,aie poate 1i e4pri,at# /n pseudocod sub 1or,a6 d$c* D este sport <i D este bo4 $tunci Mi"ai iubeEte D este 1als $&t9 & d$c* D este sport $tunci Mi"ai iubeEte D este adev#rat Ei tradus# /n 3rolo0 ast1el6 iu# st 0"i:$i1 52 :- sport0521 #oI0521 F1 9$i&) iu# st 0"i:$i1 52 :- sport052 3redicatul cut utili-at aici este un cut roEu% Co,binaia F1 9$i& este deseori utili-at# /n 3rolo0 Ei are rolul de ne0aie% Se ,ai spune c# li,ba2ul 3rolo0 ,odelea-# ne0aia ca eEec al satis1acerii unui scop Hne0aia ca insuccesI& aceasta 1iind de 1apt o particulari-are a ipote-ei lu,ii /nc"ise% Co,binaia F1 9$i& este ec"ivalent# cu un predicat standard e4istent /n 3rolo0 8 predicatul not% 3redicatul not per,ite drept ar0u,ent un predicat 3rolo0 Ei reuEeEte dac# predicatul ar0u,ent eEuea-#% Utili-.nd acest predicat& ulti,ul e4e,plu dat se poate e4pri,a /n 3rolo0 ast1el6 iu# st 0"i:$i1 52 :-sport0521not0#oI0522) iu# st 0"i:$i1 52 :- sport052)

Un alt predicat standard este predicatul c$&&& care per,ite drept ar0u,ent un predicat 3rolo0 Ei are ca e1ect /ncercarea de satis1acere a predicatului ar0u,ent% 3redicatul c$&& reuEeEte dac# predicatul ar0u,ent reuEeEte Ei eEuea-# /n ca- contrar% Utili-.nd acest predicat& se poate e4plicita e1ectul 0eneral al predicatului standard

not /n ur,#torul ,od6 not0P2 :- c$&&0P21 F19$i&) not0P2) At.t predicatul not c.t Ei predicatul c$&& sunt predicate de ordinul II /n 3rolo0 H,etapredicateI deoarece ad,it ca ar0u,ente alte predicate%

PARTEA ,: D s9*ur$r $ &ucr*rii )% Citii breviarul teoretic% Se atra0e atenia asupra 1aptului c# toate cunoEtinele din aceast# lucrare vor 1i necesare Ei /n derularea celorlalte lucr#ri%

'% ansai la e4ecutare pro0ra,ul elaborat /n lucrarea ) Ei cercetai sc"i,b#rile se,anticii procedurale 6 prin sc"i,barea ordinii propo-iiilor 1apteG prin sc"i,barea ordinii propo-iiilor re0uliG Hdou# varianteI prin sc"i,barea subscopurilor /n re0uliG Hdou# varianteI Cacei conclu-ii% *% Re-olvai ur,#toarele proble,e propuse Ei se va ur,#ri e4ecuia lor corect#% *%) Elaborai Ei testai un pro0ra, pentru deter,inarea unei valori ,ini,e din dou# nu,ere H 5 Ei ;I& 1#r# utili-area predicatului cut% *%' Elaborai Ei testai un pro0ra, pentru deter,inarea unei valori ,ini,e din dou# nu,ere H 5 Ei ;I& utili-.nd predicatul cut roEu Ei cut verde% *%* Care vor 1i r#spunsurile pro0ra,ului J0 12) J0 ,2 :- F) J0 72) Cacei o anali-# co,parativ# /ntre utili-area predicatelor cut /n spaiul ba-ei de cunoEtine Ei spaiul scopurilor pentru /ntreb#rile 1or,ulate /n lista de scopuri ce ur,ea-#6 J0 52) J0 521 p0;2) J0 521 F1 p0;2) *%9 !oi copii pot 2uca un ,eci /ntr8un turneu de tenis dac# au aceeaEi v.rst#% Cie ur,#torii copii Ei v.rstele lor6 copi&0p t r1K2) copi&0p$u&11C2) copi&0c:ris1K2) copi&0sus$n1K2)

!e1inii un predicat din care re-ult# toate perec"ile de copii care pot 2uca un ,eci /ntr8 un turneu de tenis% 9% Introducei sc"i,b#ri corespun-#toare /n pro0ra, Hpunct '%)I& utili-.nd cut verde cel puin /n dou# re0uli din ba-a de cunoEtine% @% Introducei sc"i,b#ri corespun-#toare /n pro0ra, Hpunct '%)I& utili-.nd cut roEu /n re0uli din ba-a de cunoEtine% Cacei conclu-ii% ?% 3re-entai darea de sea,#%

LUCRAREA DE LABORATOR 7 (tructuri d d$t !n Pro&o'


(copu&: Colosirea listelor& un instru,ent puternic al 3rolo0ului%

PARTEA 1: Noiuni T or tic

7)1) List & !n Pro&o'


ista repre-int# unul dintre tipurile cele ,ai utili-ate de structuri de date& at.t /n 3rolo0& c.t Ei /n alte li,ba2e declarative% O list# este o secven# ordonat# de obiecte de acelaEi tip% +n 3RO OB& ele,entele unei liste se separ# /ntre ele prin vir0ul# Ei /ntrea0a secven # este /nc"is# /ntre parante-e drepte% !emple" [] 7 lista vid#G [X, Y, Y] 7 list# ale c#rei ele,ente sunt variabilele X, Y <i ZG [[0, 2, 4], [1, 3]] 7 list# de liste de nu,ere /ntre0iG Tipurile de liste utili-ate /ntr8un pro0ra, 3RO OB trebuie declarate /n seciunea do,ains sub 1or,a6 tip_lista = tip* unde tip este un tip standard sau de1init de utili-ator% O list# este co,pus# conceptul din dou# p#ri6

F cap H"eadI& care dese,nea-# pri,ul ele,ent din list#G F rest HtailI& care dese,nea-# lista ele,entelor r#,ase dup# eli,inarea pri,ului ele,ent% Restul unei liste se ,ai nu,eEte corpul sau coada unei liste& Ei este /ntotdeauna o list#% E4e,plele ur,#toare ilustrea-# ,odul /n care se structurea-# o list#6 T$# & 7)1 7 E4e,ple de structurare a listelor Lista ['a','b','c'] ['a'] [] Cap 'a' 'a' nedefinit Coada ['b','c'] [] nedefinit [[2,3,4], []]

[[1,2,3],[2,3,4], [1,2,3] []]

Aceast# di"oto,ie este utili-at# in predicatele care prelucrea-# liste 1olosindu8se de avanta2ul re0ulii de uni1icare Hidenti1icare& substituireI6 F sin0urul ter,en care se identi1ica cu [] este []. F o list# de 1or,a [H1|T1] se va identi1ica nu,ai cu o list# de 1or,a [H2|T2] daca H1 se poate identi1ica cu H2 i T1 se poate identi1ica cu T'%

Ur,#torul tabel& pre-int# c.teva e4e,ple care ilustrea-# aceast# re0ula de uni1icare6 T$# & 7), 7 E4e,ple ce ilustrea-# re0ula de uni1icare Lista1 Lista2 Legarea variabilelor

[X,Y, ] [&] [1,2,3,4] [1,2]

[!"n, #a$ia, %asile] [X,Y] [X,Y| ] [3|X]

X=!"n, Y=#a$ia, =%asile X=&, Y=[] X=1, Y=2, =[3,4] esec

7), EI "p& d uti&i4$r


Ma2oritatea predicatele care utili-ea-# Hprocesea-#I liste sunt recursive i sunt de1inite pentru6 F ca-ul de ba-a6 lista vida [] F ca-ul recursiv6 pentru o lista de 1or,a [H|T]& se e1ectuea-# anu,ite aciuni asupra capului H& i ulterior se apelea-# predicatul recursiv cu coada T% Utili-.nd listele& pute, acu,ula in1or,aii iRsau date /ntr8un sin0ur obiect 3RO OB% !e e4e,plu& 1ie 1aptele6 l'na (1, ian'a$ie). l'na(2, feb$'a$ie). l'na(3, *a$tie). l'na(4, ap$ilie). l'na(+, *ai). l'na(,, i'nie). pot 1i redate 1olosind o sin0ur# list# sub 1or,a 1aptului6 l'ni_p$i*a_-'*atate_an([ian'a$ie, feb$'a$ie, *a$tie, ap$ilie, *ai, i'nie]). 3entru o co,paraie ,ai a,pl#& consider#, ur,#toarele dou# pro0ra,e Ei c.teva intero0#ri asupra lor6 /* program_1 */ predicates

l'na(inte.e$,s/*b"l) afis afis_p(inte.e$) afis_n(inte.e$) clauses l'na(1,ian'a$ie). l'na(2, feb$'a$ie). l'na(3, *a$tie). l'na(4, ap$ilie). l'na(+, *ai). l'na(,, i'nie). afis01l'na(_,X),2$ite(X),nl,fail. afis. afis_p(1)01l'na(1,X), 2$ite(X),nl. afis_p(3)0131=31,afis_p(31),32=3141, l'na(32,X),2$ite(X),nl. afis_n(3)01l'na(3, X), 2$ite(X),nl. Goal: afis ian'a$ie feb$'a$ie *a$tie ap$ilie *ai i'nie /es Goal: afis_p 1! ian'a$ie /es Goal: afis_p "! ian'a$ie feb$'a$ie *a$tie /es Goal: afis_# "! #a$tie /es Fi'ur$ 7)1 7 Cod listin0% E4e,plu de 1olosire a listelor

/* program_2 */ 5"*ains l'ni=s/*b"l* p$edicates p$i*a_-'*at_an(l'ni) cla'ses p$i*a_-'*at_an([ian'a$ie,feb$'a$ie,*a$tie,ap$ilie ,*ai,i'nie]). Goal: prima_$umat_a# X! X = [6ian'a$ie7, 6feb$'a$ie7, 6*a$tie7, 6ap$ilie7, 6*ai7,6i'nie7] 1 8"l'ti"n Goal: prima_$umat_a# %X1, X2, X", X&, X', X()! X1 = ian'a$ie, X2 = feb$'a$ie, X3 = *a$tie, X4 = ap$ilie, X+ = *ai, X, = i'nie 1 8"l'ti"n Goal: prima_$umat_a# %X*Y)! X = ian'a$ie, Y = [ 6feb$'a$ie7, 6*a$tie7, 6ap$ilie7, 6*ai7, 6i'nie7] 1 8"l'ti"n Goal: prima_$umatate_a# %X*_)! X = ian'a$ie 1 8"l'ti"n Goal: prima_$umat_a# %X,Y,Z* +)! X = ian'a$ie, Y = feb$'a$ie, = *a$tie, 9 = [6ap$ilie7, 6*ai7, 6i'nie7] 1 8"l'ti"n

Goal: prima_$umat_a# %X,Y,Z *_)! X = ian'a$ie, Y = feb$'a$ie, =*a$tie 1 8"l'ti"n Goal: prima umat_a# %_,_,X*_)! X = *a$tie 1 8"l'ti"n Fi'ur$ 7), 7 Cod listin0% E4e,plu de 1olosire a listelor etero0ene !in e4e,plele pre-entate ,ai sus li,ba2ul 3rolo0 per,ite sa se alea0# nu doar pri,ul ele,ent al unei liste& ci ,ai ,ulte% !e ase,enea& se per,ite lucrul cu listele /n care ele,entele nu sunt de acelai tip% +n e4e,plul ce ur,ea-# obiectele de tip lista sunt liste ale c#ror ele,ente pot 1i nu,ere /ntre0i& reale sau co,ple4e% domai#s c"*ple:=;($eal,$eal) n'*a$=$($eal)<i(inte.e$)<c(c"*ple:) lista=n'*a$* predicates p(lista) clauses, p([$(2.=),i(>),$(0.=>),i(&&),c(;(2,,))]). Goal: p %X*Y)! X = $(2.=), Y = [i(>),$(0.=>),i(&&),c(;(2,,))] 1 8"l'ti"n Goal: p %X*_)! X - r 2,.! 1 8"l'ti"n Goal: p %X, i /! *Y)! X = $(2.=), Y = [$(0.=>),i(&&),c(;(2,,))] 1 8"l'ti"n

Goal: p %X, r 0,./! *Y)! 3" 8"l'ti"n Fi'ur$ 7)7 7 Cod listin0% E4e,plu de 1olosire a listelor cu nu,ere intre0i& reale i co,ple4e

PARTEA ,: D s9*ur$r $ &ucr*rii Se propun spre re-olvare ur,#toarele proble,e Hpreci-ai varianta corespun-#toare la pro1esorI6 )% iniari-area listelor% Scrie predicatul linia$ H?ista?iste, ?istaI& unde ?ista?iste este o list# de ele,ente care pot 1i la r.ndul lor liste& iar /n ?ista se construiete liniari-area listei ?ista?iste% Ast1el& linia$([1, 2, [3, 4], [+, [,, &], [[=], >]]], ?) va returna in lista [1, 2, 3, 4, +, ,, &, =, >]%

'% Scriei un predicat desc"*p(3, ?ista) care pri,ete un nu,#r /ntre0 N i /ntoarce o list# a 1actorilor pri,i ai nu,#rului NG de e4e,plu6 desc"*p(12, [2, 2, 3]) este adevarat% *% Scriei un predicat in@e$s(?ista, ?ista!n@e$sata) care inversea-# ele,entele unei listeG s# se scrie dou# variante ale predicatului de inversare a unei liste6 o variant# /n care lista inversat# este calculata pe ra,ura de revenire din recursivitate Ei o variant# /n care lista inversat# este calculat# pe ra,ura de avans /n recursivitate% 9% Scriei un predicat palind$"*(?istaI care veri1ic# dac# o list# este palindro, HUn palindro, este o secven# care& dac# este parcurs# de la st.n0a la dreapta sau de la dreapta la st.n0a& este identica& de e4e,plu6 [a, b, c, b, a] sau [a, b, c, c, b, a]I% S# se ,odi1ice predicatul anterior ast1el /nc.t s# 0enere-e liste palindro, cu ele,ente ( i )% @% Scriei un predicat $"ti$e(?ista, 5i$ectie, 3$,

?ista9e;) care rotete ?ista cu un nu,#r de Nr ele,ente la st.n0a Hdac_ 5i$ectie = st.I sau la dreapta Hdac_ 5i$ectie = d$I& depun/nd re-ultatul /n ?ista9e;%

?% S# se scrie predicatul s'bstit'tie(X, Y, ?1, ?2)& unde ?2 este re-ultatul substituirii tuturor apari iilor lui X din lista ?1 cu Y% E46 s'bstit'tie(a, :, [a, [b,a,:] c], ?2) va produce6 ?2 = [:, [b, :], c]. &.S# se scrie predicatul i*pa$te(?, ?1, ?2) care /,parte lista ? /n dou# sub8liste ?1 i ?2& care au un nu,#r de ele,ente apro4i,ativ e0al& 1#r# a calcula lun0i,ea listei ?% E46 i*pa$te([a, b, c, d, e], ?1, ?2) va produce6 ?2 = [a, b, c] si ?3 = [d, e]. A% S# se scrie un predicat e@en*e*be$(Ale*,?ista) care spune daca Ale* se a1l# /n ?ista pe po-iie par#% !e e4e,plu& apelul e@en*e*be$(X,[1,+,3,4]) va returna pe rind solutiile X = +< X = 4% <% S# se scrie un predicat i*pa$te(?1,?2,?3) care /,parte lista ?1 /n dou# liste ?2 i ?3& conin.nd ele,entele de pe po-iiile i,pare iar ?3 pe cele de pe po-iilii pare%E46 i*pa$te([a,b,c,d,e],?2,?3) va produce ?2=[a,c,e] si ?3=[b,d]% )(% S# se scrie un pro0ra, 3rolo0 care s# calcule-e ,edia nu,erelor unei liste%

))% S# se scrie un pro0ra, 3rolo0 care calculea-# Ei a1iEea-# cel ,ai ,are divi-or co,un al tuturor nu,erelor dintr8o list#% )'% S# se scrie un pro0ra, 3rolo0 care s# sorte-e descresc#tor nu,erele unei liste% )9% Scriei un pro0ra, care utili-ea-# predicatul listaBa$a& care are conine dou# ar0u,ente6 o list# de nu,ere /ntre0i& iar al doilea ar0u,ent returnea-# o list# cu toate nu,erele pare din pri,a list#% )@% S# se eli,ine pri,ele N ele,ente de la /nceputul unei liste% Nu,#rul ele,entelor pentru eli,inare se va introduce utili-.nd predicatul $eadln al li,ba2ului 3rolo0% )?% S# se eli,ine ulti,ele N ele,ente a unei liste% Nu,#rul ele,entelor pentru eli,inare se va introduce utili-.nd predicatul $eadln al li,ba2ului 3rolo0%

CAPITOL II EI "p& i Pro#& " !n Li"#$%u& Pro&o' LUCRAREA DE LABORATOR E (ist " EIp rt

(copu&: Studierea principiile de proiectare Ei de or0ani-are a siste,elor e4pert ba-ate pe lo0ic# Ei re0uli% PARTEA 1: Noiuni T or tic E)1 (copu& i structur$ ' n r$&* $ sist " &or Ip rt Siste,ul e4pert H' I este un pro0ra, Hpac"et de pro0ra,eI& care si,ulea-# /ntr8o oarecare ,#sur# activitatea unui e4pert u,an /ntr8un anu,it do,eniu% Mai ,ult dec.t at.t& acest do,eniu este strict li,itat% 3rincipalul scop al SE este de a consulta /n do,eniul pentru care acest SE este proiectat% Un SE este 1or,at din trei co,ponente principale HCi0% 9%)I6 )I (a#a de cuno$tine )(C*+ :C este partea central# a siste,ului e4pert% Aceasta conine o colecie de 1apte Ei de cunoEtine Hre0ulileI pentru e4tra0erea altor cunoEtine% In1or,aiile coninute /n ba-a de cunoEtine sunt 1olosite de c#tre SE pentru deter,inarea r#spunsului /n ti,pul consult#rii% !e obicei& :C sunt separate de pro0ra,ul principal sau stocate pe alte ,i2loace 1i4e% 'I ,ecanismul )motorul* de inferen+ MI conine descrieri ale ,odului de aplicare a cunoEtinelor cuprinse /n ba-a de cunoEtine% +n ti,pul

consult#rii& MI iniia-# SE s# /nceap# proces#rile& /ndeplinind re0ulile deter,in# ad,isibilitatea soluiei 0#site Ei trans,ite re-ultatele la Inter1aa siste,ului HSLste, User Inter1aceI% *I Interfaa sistemului utili#atorului )I'-* este parte a SE& care interacionea-# cu utili-atorul% Cunciile ISU includ6 pri,irea in1or,aiilor de la utili-ator& trans1erul re-ultatelor /n 1or,a cea ,ai convenabil# utili-atorului& e4plicarea re-ultatelor pri,ite de SE Ho1er# in1or,aii cu privire la atin0erea re-ultatelorI%

Fi'ur$ E)1 8 Structura 0eneral# a SE +n 1uncie de ,etoda de clasi1icare Ei plasare a in1or,aiei e4ist# ,ai ,ulte tipuri de :a-e de cunoEtine6 de producie. de reea Ei de cadru H1ra,e8uriI ,odele de repre-entare a cunoEtinelor% ,odelul de reea se ba-ea-# pe repre-entarea cunoEtinelor /n 1or,a unei reele ale c#rei noduri corespund conceptelor iar arcele relaiilor dintre ele% a ba-a modelului pe cadre )frame/uri* se a1l# o 0rupare lo0ic# de atribute a obiectului& precu, Ei depo-itarea Ei prelucrarea 0rupurilor lo0ice care sunt descrise /n cadre% ,odelul de producie se ba-ea-# pe re0ulile de 1or,a Odac#8atunciO Ei per,ite introducerea 1ra0,entelor de cunoEtine 1aptice /n re0ulile li,ba2ului 3rolo0% Anu,e ast1el sunt construite SE ba-ate pe re0uli%

a punerea /n aplicare a SE ba-at pe lo0ic#& ba-a de cunoEtine repre-int# un set de a1ir,aii& 1apte% Elaborarea conclu-iei unui e4pert /n acest ca- se ba-ea-# pe ,i2loacele standard de lucru cu listele% E), D t r"in$r $ r 4u&t$tu&ui 0r*spunsu&ui2 Ip rt 3rin conclu-ia SE& se sub/nele0e dovada 1aptului c# /n setul de ipote-e se conine conclu-ia c#utat#% o0ica de obinere a r#spunsului Hconclu-ieiI sunt speci1icate de re0ulile de in1eren#% Conclu-ia Hre-ultatulI este e1ectuea-# prin c#utare Ei co,parare a ,odelului% +n SE& ba-at pe re0uli& /ntreb#rile HscopurileI utili-atorului sunt trans1or,ate /ntr8o 1or,# care este co,parabil# cu nor,ele de 1or,a :C% Motorul de in1eren# iniia-# procesul de corelare de la re0ula de OtopO Hv.r1I% Recursul la re0uli este nu,it OapelareO% Apelarea re0ulilor relevante /n procesul de corelare continu# at.ta ti,p c.t nu e4ist# o co,paraie sau nu este epui-at# toat# :C& iar valoarea nu este 0#sit#% +n ca-ul /n care MI detectea-# c# pot 1i apelate ,ai ,ult dec.t o re0ul#& /ncepe procesul de soluionare a con1lictului% +n soluionarea con1lictului prioritate se d#& de obicei re0ulilor care sunt ,ai speci1ice& sau re0ulilor ce in de ,ai ,ulte date actuale% +n SE& ba-ate pe lo0ic#& intero0#rile sunt trans1or,ate /n valori care sunt co,parate cu listele de valori pre-ente /n :C% 3rocesul de uni1icare /n pro0ra,ele Turbo 3rolo0 Ei Visual 3rolo0 a2ut# la re-olvarea proble,ei de 0#sire i co,parare dup# e4e,plu& i nu necesit# scrierea unor re0uli supli,entare% Ca i /n siste,ele ba-ate pe re0uli& /ntr8acel ba-at pe lo0ic#& utili-atorul pri,eEte r#spunsuri la intero0#rile HscopurileI sale& /n con1or,itate cu lo0ica stabilit# /n SE% 3entru punerea /n aplicare a ,ecanis,ului de e4tra0ere a r#spunsului e4pertului este su1icient s# se scrie speci1icaiile necesare%

E)7 (ist " EIp rt1 #$4$t p r 'u&i <i r $&i4$r $ &ui) SE pe ba-a re0ulilor& per,ite proiectantului de a construi re0ulile care sunt /n ,od natural co,binate /n 0rupuri de 1ra0,ente de cunoEtine% Independena reciproc# a re0ulilor de producie 1ace ca ba-a de re0uli s# 1ie se,antic ,odular# Ei capabil# de de-voltare% Reali-area /n Turbo 3rolo0 Hsau Visual 3rolo0I a SE ba-at pe re0uli conine un set de re0uli care sunt invocate de c#tre datele de intrare /n ,o,entul de corelare Hco,parareI% +,preun# re0ulile MI& SE este co,pus dintr8un interpretator& care selectea-# Ei activea-# di1erite siste,e% Activitatea acestui interpretator este descris# de o succesiune de trei etape6 )I Interpretatorul co,par# un e4e,plu de re0ul# cu ele,entele de date /n ba-a de cunoEtine% 'I +n ca-ul /n care este posibil# apelarea ,ai ,ultor re0uli& pentru a selecta o re0ul# se utili-ea-# ,ecanis,ul de soluionare a con1lictelor% *I Re0ula selectat# este 1olosit# pentru a 0#si un r#spuns la aceast# /ntrebare% Acest proces /n trei etape este ciclic Ei se nu,eEte ciclul de detectare/ aciune% R#spunsul a1ir,ativ a SE este re-ultatul uneia din re0ulile de producie& selecia re0ulii se e1ectuea-#& /n con1or,itate cu datele de intrare% Elaborarea a SE /n Turbo 3rolo0 Hsau Visual 3rolo0I& ba-at pe re0uli& /ncepe cu declaraia ba-ei de 1apte% :a-a de 1apte stoc"ea-# Hp#strea-#I r#spunsurile utili-atorului la /ntreb#rile ISU% Aceste date sunt r#spunsurile po-itive sau ne0ative% +n continuare& se vor construi re0ulile de producie care vor descrie 1ra0,ente de cunoEtine actuale% E4e,plu HSE de identi1icare Ei selectare a rasei c.inilorI6

do'=is0L#u&do' n'& 4M2: it=is0Lcu p$r scurtM21 positiH 0L$r M1M"$i "ic d ,, inc:M21 positiH 0L$r M1 Lco$d$ $tNrn$t$M21 positiH 0L$r M1 Lc$r$ct r #unM21 F) R S +n ,od si,ilar sunt descrise cunoEtinele cu privire la alte rase de c.ini SR +++ do'=is0Lcoc: r-sp$ni &M2: it=is0Lcu p$r &un'M21 positiH 0L$r M1 L "$i "ic d ,, inc:M21 positiH 0L$r M1 Lco$d* $tNrn$t*M21 positiH 0L$r M1 Lur c:i &un'iM21 positiH 0L$r M1 Lc$r$ct r #unM21 F) Mai ,ult dec.t at.t& /n scopul de a li,ita spaiul de c#utare care descrie 1ra0,entele de cunoEtine de re0uli& ulti,ele pot 1i 0rupate /n ba-# prin introducerea de re0uli au4iliare pentru identi1icarea sub8cate0oriilor% !e e4e,plu& /n SE ale0erea rasei de c.ine va 1i re0ula it=is& care identi1ic# rasa de c.ine pe ,otive de apartenen# la un 0rup de c.ini cu p#rul lun0 sau cu p#rul scurt6 it=is0Lcu p$r scurtM2:positiH 0LcNin & $r M1 Lp$r scurtM21 F) it=is0Lcu p$r &un'M2: positiH 0LcNin & $r M1 Lp$r &un'M21 F) +n e4e,plul considerat aici& datele pentru selectarea rasei de c.ini sunt cunoscute& deoarece sunt selectate rasele de c.ini co,une% Setul de caracteristici de clasi1icare a speciilor este selectat /n ba-a ur,#toarelor criterii6 F Toate atributele utili-ate sunt necesare pentru a identi1ica rasa% F Nici unul dintre atribute nu este co,un pentru toate speciile si,ultan%

Re0ulile MI co,par# datele utili-atorului cu datele ce se conin /n re0ulile de producie Hre0ulile po-itive Ei ne0ative /n acest SEI& precu, Ei p#strarea /n continuare Oa traseuluiO r#spunsurilor a1ir,ative Ei ne0ative Hre0ula r " "# r pentru ad#u0area /n ba-a de date a r#spunsurilor ) HdaI Ei ' HnuII& care sunt utili-ate /n co,parare cu ,odelul6 O P M c$nis"u& d d t r"in$r $ 0'*sir $2 r*spunsu&ui IpositiH 051 ;2 Ei In '$tiH 051 ;2 predicatele ba-ei dina,ice de date p#strea-# respectiv& r#spunsurile a1ir,ative Ei ne0ative a utili-atorului la /ntreb#rile care ISU le pune pe ba-a 1aptelor ar0u,entelor predicatului positiH /n corpul re0ulii do'=is S R positiH 051 ;2: IpositiH 051;21 F) positiH 051 ;2: not0n '$tiH 051;221 F1 $sB051;2) n '$tiH 051 ;2: In '$tiH 051;21 F) R S M c$nis"u& d consu&t$r % 3redicatul dl0TAs= creea-# o 1ereastr# standard de dialo0 pentru a pri,i r#spunsul utili-atorului la /ntrebarea !aRNu S R $sB051 ;2: conc$t0LIntr #$r : L 51 T "p21 conc$t0T "p1 L L 1 T "p121 conc$t0T "p11 ;1 T "p,21 conc$t0T "p,1 L L/1 Qu st21 R p&.13d&'=AsB0LConsu&t$r M1 Qu st1 RLDSM1 LNuMT21 R p&.3R p&.1U11 r " "# r051 ;1 R p&.2) RS Introducerea r#spunsurilor utili-atorului /n ba-a de date dina,ic# SR

r " "# r051 ;1 12: F1 $ss rt40IpositiH 051 ;22) r " "# r051 ;1 ,2: F1 $ss rt40In '$tiH 051 ;221 9$i&)

E)E (ist " EIp rt #$4$t p &o'ic* <i r $&i4$r $ &ui) +n acest ca-& :C const# /n declaraii sub 1or,# de enunuri /n lo0ica predicatelor% O parte din a1ir,aii descrie obiectele& iar cealalt# parte a a1ir,aiilor descrie condiiile Ei atributele& care caracteri-ea-# di1erite obiecte% Nu,#rul de tr#s#turi deter,in# 0radul de preci-ie de clasi1icare% Interpretatorul /n cadrul siste,ului /ndeplineEte 1unciile sale pe ba-a sc"e,ei ur,#toare6 )I Siste,ul conine /n ba-a de cunoEtine enunuri H1apteI care 0uvernea-# HconducI c#utarea Ei co,pararea% Interpretatorul co,par# aceste enunuri cu ele,entele a1late /n ba-a de date% 'I +n ca-ul /n care este posibil# apelarea a ,ai ,ultor dec.t unei sin0ure re0uli pentru a re-olva con1lictul siste,ul utili-ea-# ,ecanis,ul intern de uni1icare a 3rolo08ului% *I Siste,ul pri,eEte re-ultatele procesului de uni1icare /n ,od auto,at& de aceea ele sunt tri,ise pe dispo-itivul necesar Hlo0icI pentru output8ul in1or,aiei% a 1el ca /n SE& ba-at pe re0uli& acest proces ciclic este procesul de detectare8aciune% 3rincipala di1eren# /n structura SE& ba-at pe lo0ic# este /n descrierea obiectelor Ei atributelor sub 1or,a de 1apte6 R S Condiii8caracteristici de rase di1erite %S R cond011 Lr$s$ cu p$r &un'M2) cond0,1 L r$s$ cu p$r &un'M2) cond071 L"$i"ic d ,, inc:M2)

cond0E1 L"$i p$r d 7C inc:M2) cond0V1 Lco$d$ $tNrn$t$M2) cond0D1 Lur c:i &un'iM2) cond0E1 Lc$r$ct r #unM2) cond0W1 L'r ut$t "$i "$r d 1CC poundsM2) RS !atele despre tipurile de rase SR topic0Lcu p$r scurtM2) topic0Lcu p$r &un'M2) RS !atele despre rasele concrete SR ru& ru& ru& ru& ru& ru& ru& ru& ru& ru& 011 LcNin M1 Lcu p$r scurtM1 R1T2) 0,1 LcNin M1 Lcu p$r &un'M1 R,T2) 071 Lcu p$r scurtM1 L#u&do' n'& 4M1 R71V1ET2) 0E1 Lcu p$r scurtM1 LcopoiM1 R71D1ET2) 0V1 Lcu p$r scurtM1 Ldo' d$n 4M1 RV1D1E1WT2) 0D1 Lcu p$r scurtM1 L9oIt ri r $" ric$nM1 RE1D1ET2) 0E1 Lcu p$r &un'M1 Lcoc: r-sp$ni &M1 R71V1D1ET2) 0W1 Lcu p$r &un'M1 Ls tt r ir&$nd 4M1 RE1DT2) 0K1 Lcu p$r &un'M1 Lco&&iM1 RE1V1ET2) 01C1 Lcu p$r &un'M1 Ls n# rn$rM1 RV1E1WT2)

Al treilea ar0u,ent al predicatului ru& repre-int# o list# de nu,ere /ntre0i 8 condiii& din enunurile tipului cond% Ciecare enun H1aptI speci1ic# tipul de cond i stabileEte condiia de selecie a clasi1ic#rii de rase de c.ini utili-ate aici% +n SE& ba-ate pe lo0ic#& interpretatorul utili-ea-# aceste nu,ere de condiie s# 1ac# ale0erile HseleciileI adecvate% MI conine re0ulile de tratarea listelor de atribute /n descrierea obiectelor% 3rin utili-area predicatului 'o MI veri1ic# a1ir,aiile :C ru& Ei cond pentru a clari1ica cu a2utorul re0ulii c: cB e4istena sau lipsa de valori adecvate de date6 R S Re0ula iniial# a ,ecanis,ul de deter,inare a r#spunsului S R

'o0=1 M.'o$&2: not0ru& 0=1 M.'o$&1 =1 =221 F1 conc$t0LR$s$ r co"$nd$t$ : L1 M.'o$&1 T "p21 conc$t0T "p1 L)M1 R su&t21 d&'=Not 0LConc&u4i$ Ip rtu&ui : L1 R su&t2) 'o0Gistor.1 M.'o$&2: ru& 0Ru& =nu"# r1 M.'o$&1 T.p =o9=#r d1 Conditions21 c: cB0Ru& =nu"# r1 Gistor.1 Conditions21 'o0RRu& =nu"# rX Gistor.T1 T.p =o9=#r d2) RSCo,pararea datelor de intrare a utili-atorului cu listele de atribute a raselor aparte de c.iniSR c: cB0Ru& =nu"# r1 Gistor.1 RBr d=condXR st=#r d=cond=&istT2: . s0Br d=cond21 F1 c: cB0Ru& =nu"# r1 Gistor.1 R st=#r d=cond=&ist2) c: cB0=1 =1 RBr d=condX=T2: no0Br d=cond21 F1 9$i&) c: cB0Ru& =nu"# r1 Gistor.1 RBr d=condXR st=#r d=cond=&istT2: cond0Br d=cond1 T It21 $sB=Yu stion0Br d=cond1 T It21 c: cB0Ru& =nu"# r1 Gistor.1 R st=#r d=cond=&ist2) c: cB0=1 =1 R T2) do=$ns> r0Cond=nu"# r1 12: F1 $ss rt40. s0Cond=nu"# r22) do=$ns> r0Cond=nu"# r1 ,2: F1 $ss rt40no0Cond=nu"# r221 9$i&) RS Solicitarea si pri,irea r#spunsurilor da si nu de la utili-ator SR $sB=Yu stion0Br d=cond1 T It2: conc$t0LIntr #$r : L1 T It1 T "p21 conc$t0T "p1 L L1 T "p121 conc$t0T "p11 L/M1 Qu st21 R spons 13d&'=AsB0LConsu&t$r M1 Qu st1 RLD$M1LNuMT21 R spons 3R spons 1U11

do=$ns> r0Br d=cond1 R spons 2)

Re0ula 0o /ncearc# s# potriveasc# obiectele care sunt clasi1icate prin nu,#rul de condiii% !ac# MpotrivireaM se produce& ,odulul pro0ra,ului ar trebui s# adau0e la ba-a de cunoEtine valorile potrivite Ei s# continue procesul cu noile date pri,ite din partea utili-atorului% +n ca-ul /n care MpotrivireaM nu se produce& ,ecanis,ul opreEte procesul actual Ei ale0e o alt# cale% C#utarea Ei co,pararea continu#& p.n# c.nd& toate posibilit#ile sunt epui-ate% Avanta2ul SE& ba-at pe lo0ic#& este capacitatea de a stoca 1aptele ba-ei de cunoEtine /n a1ir,aiile ba-ei de date dina,ice% :a-a de cunoEtine poate 1i plasat# /ntr8un 1iEier pe disc& ceea ce o 1ace independent# de codul surs#%

PARTEA ,: D s9*ur$r $ &ucr*rii

)% 3e ba-a ,aterialului de la curs Ei e4e,plului discutat anterior se va studia reali-area a,belor tipuri de siste,e de e4pert prin inter,ediul li,ba2ului 3rolo0% '% Se va elabora un siste, e4pert pentru un anu,it do,eniu selectat /n con1or,itate cu nu,#rul variantei din Tabelul 9%)& sau /n orice alt do,eniu corelat cu pro1esorul% Nu,#rul de obiecte descrise ar trebui s# 1ie cel puin )'& Ei descrierea atributele lor& nu ,ai puin de A% *% Se va anali-a reali-area unui siste, e4pert ba-at pe lo0ic# Ei siste, e4pert care se ba-ea-# pe re0uli& reali-.nd ,ecanis,ul deductiv Ei inductiv% T$# &u& E)1 8 !o,eniul pentru siste,ul e4pert Z$ri$nt$ )&@ '&? *&)( 9&)) >&)'&)< A&)@&'( <&)? )*&)> )9&)A Do" niu& Microprocesoare !ispo-itive ,obile Siste,e operaionale i,ba2e de pro0ra,are Uocuri pe co,putere ViruEi de co,putere Reele de calculatoare Al0orit,i de sortare Al0orit,i de c#utare

$aportul trebuie s conin: )I Cor,ularea scopului Ei obiectivelor de cercetareG

'I !escrierea caracteristicilor siste,ului e4pert elaboratG *I !ia0ra,ele datelor de intrare Ei dia0ra,a structural# a Siste,ului E4pert& at.t ba-at pe re0uli& c.t Ei ba-at pe lo0ic#G 9I istin08ul pro0ra,ului cu co,entarii Ei e4plicaii& 2usti1ic#riG @I !escrierea ,ecanis,elor de deter,inarea r#spunsului /n siste,ul e4pertG ?I Conclu-ii cu privire la e4peri,entele e1ectuate%

LUCRAREA DE LABORATOR V Pr &ucr$r $ Li"#$%u&ui N$tur$&


(copu&: +nsuirea principiilor 1unda,entale de 3relucrarea Natural% PARTEA 1: Noiuni T or tic V) 1 Pr &ucr$r $ Li"#$%u&ui N$tur$& 3relucrarea li,ba2ului natural H3 NI repre-int# o te"nolo0ie Hun ansa,blu de procese& ,etode operaiiI care creea-# ,odalit#i de a e4ecuta di1erite sarcini re1eritoare la li,ba2ul natural& cu, ar 1i construcia unor inter1ee ba-ate pe li,ba2 natural 8 ca ba-e de date& traducere auto,at#& etc%% 3rocesarea li,ba2ului Natural repre-int# Ei ast#-i o proble,# di1icil# Ei /n cea ,ai ,are parte nere-olvat#% B#sirea unei te"nolo0ii adecvate este e4tre, de 0rea datorit# naturii ,ultidisciplinare a proble,ei 1iind i,plicate ur,#toarele Etiine Ei do,enii6 lin0vistic#& lin0vistica co,putaional#& in1or,atic# Ei inteli0en# arti1icial#% Aplicaiile proces#rii li,ba2ului natural se /nscriu /n trei ,ari cate0orii6 a% Aplicaiile ba-ate pe te4t6 clasi1icarea docu,entelor H0#sirea docu,entelor le0ate de anu,ite subiecteIG re0#sirea in1or,aiei Hc#utarea unor cuvinte8c"eieIG e4tra0erea in1or,aiei Hle0ate de un anu,it subiectIG /nele0erea te4telor Hce presupune o anali-# pro1und# a structurii acestoraIG traducerea auto,at# Ei traducerea asistat# de calculator dintr8o li,b# /n altaG i,ba2ului

alc#tuirea de sinte-eG ac"i-iia de cunoEtine% b% Aplicaiile ba-ate pe dialo0& care i,plic# co,unicarea /ntre o, Ei ,aEin#& aplicaii cu, ar 1i siste,ele de /nv#are& siste,ele de intero0are Ei r#spuns la /ntreb#ri& re-olvarea proble,elor etc% c% 3rocesarea vorbirii% Co,unicarea este sc"i,bul intenionat de in1or,aie 0enerat de producerea Ei perceperea se,nelor dintr8un siste, parta2at de se,ne convenionale% 3entru co,unicare trebuie 1olosit un li,ba2& ce poate 1i de ,ai ,ulte tipuri6 verbal HauditivI& te4t& ,i,ic#& etc% V)1)1 Co"pon nt & co"unic*rii Sc"e,a de ba-# a co,unic#rii6

E 7 e,i#tor C 8 bloc de codi1icare V 8 -0o,ot e4tern

! 8 bloc de decodi1icare R 7 receptor M 8 ,esa2 1HMI 7 ,esa2ul codi1icat /n li,ba2 1)HMI 7 codi1icarea ,odi1icat# de -0o,ot M) 7 ,esa2ul nou %&itor: Intenie 8 dorina e,i#torului de a trans,ite un ,esa2 c#tre un receptorG Benerare 8 crearea inteniei de a co,unica Ei a coninutului ei /ntr8 un li,ba2G Sinte-# 8 procesul e1ectiv de tri,itere a ,esa2ului% $eceptor: 3ercepie 8 procesul de pri,ire al ,esa2uluiG Anali-a 8 interpretarea ,esa2ului din punct de vedere le4ical& sintactic& se,antic& pra0,atic !e-a,bi0ui-area 7 selecia dintre posibilele re-ultate ale anali-ei +ncorporare 7 introducerea coninutului ,esa2ului Actu& d co"unic$r : Acesta conine ,ai ,ulte interpret#riRsensuri6 ocuia 7 1ra-a& aEa cu, e spus# de locutor He,i#torIG Ilocuie 7 /nelesul 1ra-ei ce se doreEte a 1i co,unicatG interlocuiune 7 aciunea ce re-ult# din locuie% !emplu" Maria i8a spus lui Bi0el6 OTe ro0 /nc"ide uEaO locuie C$t 'orii &ocuion$& : ilocuie interlocuiune u<$ !nc:is*

Asertive 7 ascult#torul e in1or,at /n le0#tur# cu 1ra-aG !irective 7 ascult#torul e1ectuea-# o aciune dup# a1larea in1or,aieiG Co,isive Han0a2a,enteI 7 ascult#torul a1l# de aciuni viitoareG E4presive 7 ,esa2e ce e4pri,# atitudinea e,i#torului le0at de un 1apt%

V)1), D 9inir $ unui &i"#$% Un pri, ele,ent /ntr8un li,ba2 e le!iconul) Acesta conine ter,enii vocabularului pentru li,ba2ul respectiv% !emplu" L Iicon: 0oun bree#e 1 2umpus 1 ball 3erb is 1 see 1 smell 1 hit Ad4ecti&e right 1 left 1 smell5 6 Ad&erb here 1 there 1 ahead 6 Pronoun me 1 5ou 1 I 1 it 7elPronoun that 1 2ho 0ame 8ohn 1 ,ar5 Article the 1 a 1 an Preposition to 1 in 1 on Con4unction and 1 or 1 but 3e ba-a le4iconului se construiesc propo-iiiR1ra-e /n li,ba2ul respectiv% Aceste 1ra-e se construiesc pe ba-a unor gramatici% Aceste 1ra-e Hconstrucii le4icaleI se pot anali-a din ,ai ,ulte perspective% anali#a le!ical 7 procesul de conversie a 1ra-ei /n ato,i Hreali-at de un procesorI

anali#a semantic 7 procesul de asociere a unui sens pentru 1iecare ato,G sens 1olosit ulterior pentru a reine cunoEtine dob.ndite din 1ra-# anali#a pragmatic 8 procesul de considerare al conte4tului /n anali-a unei 1ra-e% E necesar pentru a eli,ina a,bi0uit#ile Hapar a,bi0uit#i c.nd un cuv.nt poate avea ,ai ,ulte sensuri& cel e1ectiv depin-.nd de 1ra-# sau de conte4tul dialo0uluiI%

9ramaticile de1inesc re0ulile pe care o 1ra-# trebuie s# le respecte& din punct de vedere al structurii& pentru a 1ace parte dintr8un li,ba2% Ele se pot de1ini /n ,ai ,ulte ,oduri& unul dintre ele 1olosind ur,#toarele concepte6 $2 0eterminali 7 e4presii care se substituie cu alte e4presiiR ele,ente din 0ra,atic# sau le4icon sentence ( noun p"rase NP verb p"rase ZP prepositional p"rase PP !emplu" S N3 V3 W S Con2unction S N3 3ronoun W Noun W Article Noun W N3 33 V3 Verb W V3 N3 W V3 Ad2ective W V3 33 W V3 Adverb 33 3reposition N3 #2 Terminali 7 e4presii care nu se ,ai substituie cu alte e4presii din 0ra,atic# Hei repre-int# direct cate0oriile din le4iconI% Noun W Verb W Ad2ective W Adverb W 3ronoun c2 7eguli de rescriere re0ulile de e4tindere a 0ra,aticii%

d2 'imbol de :nceput neter,inal din care poate 1i derivat# orice 1ra-# corect# din punct de vedere 0ra,atical% V)1)7 An$&i4$ sint$ctic* 3rocesul de recunoaEtere a structurii unei propo-iii de c#tre un calculator se nu,eEte p$rsin' )procesare*) Se poate reali-a /n ,ai ,ulte ,oduri6 top/do2n parsing Hde sus /n 2osI bottom/up parsing Hde 2os /n susI 'op-(o)n parsing 7 se pleac# de la re0ulile 0ra,aticii p.n# c.nd se identi1ic# 1ra-a% !emplu" OUo"n "it t"e ballO )% S '% S N3& V3 *% S Noun& V3 9% S Uo"n& Verb& N3 @% S Uo"n& "it& N3 ?% S Uo"n& "it& Article& Noun >% S Uo"n& "it& t"e& Noun A% S Uo"n& "it& t"e& ball *otto& + do)n parsing - se pleac# de la 1ra-# Ei se /ncearc# obinerea si,bolului de /nceput al 0ra,aticii% !emplu" )% Uo"n& "it& t"e& ball '% Noun& "it& t"e& ball *% Noun& Verb& t"e& ball 9% Noun& Verb& Article& ball @% Noun& Verb& Article& Noun ?% N3& Verb& Article& Noun >% N3& Verb& N3 A% N3& V3

<% S V)1)E D 9init C&$us Gr$""$r 0DCG2 E4ist# ,ai ,ulte tipuri de repre-entare pentru 0ra,atici pre-entate /n continuare6 $2 Gr$"$tici !n 9or"$ BNF H(ac%us 0ormal Form sau (ac%us;0aur Form [ ,odul 1or,al ,ate,atic de descriere a li,ba2uluiI% Sunt 0ra,atici dependente de conte4t& ba-ate pe e4presii de 1or,a6 Csi*b"lD 00= _e:p$esie_ Unde& Csi*b"lD 8 un neter,inal& iar _e:p$esie_1 o secven# de si,boluri Hter,inali Ei non8ter,inaliI !emplu" Cs/nta:D 0 0 = C$'leD | C$'leD Cs/nta:D C$'leD 0 0 = C2EitespaceD FC7C$'le_na*eDFD7 C2EitespaceD 0 0 = F7C2Eitespace D|F7 etc. :NC este o 0ra,atic# dependent# de conte4t HB!CI& ceea ce e di1icil de transpus /ntr8un pro0ra, auto,at #2 Gr$"$tici cu c&$u4 d 9init DCG 7 <efinite Clause 9rammar +n ,odul i,plicit !CB sunt 0ra,atici independente de conte4t& ce sunt 1olosite pentru prelucrarea de li,ba2e 1or,ale sau naturale& cu proprietatea c# se pot inte0ra 1oarte uEor /n li,ba2e de pro0ra,are lo0ic# Hcu, e 3RO OB de e4%I% Aceasta se reali-ea-# prin 1aptul c# !CB se ba-ea-# pe CO3 HCirst Order 3redicate o0icI /n repre-entare% +n !CB6 Ciecare re0ul# din 0ra,atica poate 1i v#-ut# ca o re0ul# din !CB

Ciecare cate0orie sintactic# se repre-int# printr8un predicat cu un argument $ir+

Proprieti " AceeaEi 0ra,atic# se 1oloseEte Ei pentru anali-# HrecunoaEtereI Ei pentru 0enerare% 3rocesul de anali-# le4ical# Hparsin0I se reali-ea-# e4clusiv prin in1erene lo0ice Ca abordare6 a% (ottom/up parsing 7 1orXard c"ainin0 b% Top/do2n parsing 7 bac=Xard c"ainin0 Colosirea predicatelor are loc ast1el6 =0P)s* este ade&rat dac s este 0P = deci& ( NP ZP va deveni& NP0s12 ZP0s,2 (0$pp nd0s11s,22 +n :NC6 ( NP ZP +n 3 R !BC6 NP0s12 ZP0s,2 (0$pp nd0s11 s,22 +n :NC6 NP Pronoun X Noun +n 3 R !BC6 Pronoun0s2 Noun0s2 NP0s2 +n :NC6 Noun #$&& X #ooB +n 3 R !BC 0s 3 L#$&&M s 3 L#ooBM2 Noun0s2

T$# & 1 8 Soluia co,parativ# cu li,ba2ul 3RO OB% BNF FOPLODCG S N3 V3 N3Hs)I V3Hs'I SHappendHs)&s'II N3 Noun NounHsI N3HsI Noun Hs Y Zstenc"M s Y ZXu,pusMI stenc" Noun NounHsI Xu,pus VerbHsI V3HsI V3 Verb Hv Y Zs,ellsM v Y Z=illsMI Verb VerbHvI s,ells Verb =ills PROLOG sentence([81, 82]) 01 np(81), @p(82). np(8)01 n"'n(8). n"'n(stencE). n"'n(2'*p's). @p(8)01 @e$b(8). @e$b(s*ells). @e$b(Gills). H1 sentence([2'*p's, s*ells]). H1sentence([81, 82]).

V), Mod & d $n$&i4* sint$ctic* $ propo4i+ii&or V),)1 R + & d tr$n4i+i cu st*ri 9init - Finit (t$t Tr$nsition N t>orB) O(%,: ,oldo&a has a rich culture+ nglish is the most 2idespread language+ I en4o5 learning ne2 things+ 3entru a i,ple,enta o reea de tran-iie cu st#ri 1inite RTSC /n li,ba2ul 3RO OB este nevoie s# reali-#, o descriere a reelei& precu, Ei a ,odului /n care se e1ectuea-# parcur0erea ei% O descriere a RTSC const#

din trei co,ponente6 nu,ele reelei& o ,uli,e de declar#ri Ei o ,uli,e de descrieri ale arcelor% E4e,plu de reea este dat prin auto,atul de ,ai 2os% Automat:

Acest auto,at are A st#ri& starea ) 1iind starea iniial# Ei starea A starea 1inal#% Cele opt st#ri sunt conectate prin )( arce etic"etate% Nu,ele reelei nu 2oac# un rol anu,e Ei nici o alt# co,ponent# nu 1ace re1erire la el% El este introdus din ,otive de consisten# Ei 2oac# un rol i,portant /n de1inirea reelelor de tran-iie recursive% Cea de8a doua co,ponent# const# dintr8o unic# declarare obli0atorie a unor st#ri iniiale Ei 1inale% Cea de8a treia co,ponent# ,a2or# a repre-ent#rii const# dintr8o ,uli,e alc#tuit# din una sau ,ai ,ulte descrieri ale arcelor& 1iecare din acestea av.nd aceeai 1or,#% +n 3RO OB& RTSC8urile vor 1i pre-entate ca reelele /n ,od declarativ& ca pe niEte structuri de date H1apte din ba-a de 1apteI& care pot 1i e4a,inate Ei ,anipulate% Av.nd o ast1el de descriere se vor putea scrie pro0ra,e 0enerale de r cuno$<t r Ei de ' n r$r % Repre-entarea RTSC ca structuri de date se va speci1ica6 nodurile iniiale& nodurile 1inale& arcele unde 1iecare arc este de1init prin nodul de plecare& nodul de destinaie Ei etic"eta arcului%

Aceste in1or,aii pot 1i co,unicate /n 3RO OB utili-.nd predicatele de 1or,a6 initial(3"d). final(3"d). a$c(3"d_Bleca$e,3"d_5estinaIie,eticEeta). !emplu" initial(1). final(=). a$c(1,n,2). a$c(1,p$"n,2). a$c(2,@,3). !esi0ur descrierea reelei trebuie co,pletat# prin speci1icarea se,ni1icaiei abrevierii pe care o repre-int# cel de8al treilea ar0u,ent al predicatului $rc) Aceasta va 1i indicat# prin utili-area predicatului6 2"$d(*"ld"@a,n). 2"$d(Eas,@). 2"$d(a,a$t). Atunci c.nd reeaua este utili-at# pentru recunoaEtere 1iecare ,o,ent al parcur0erii ei este caracteri-at de dou# ele,ente6 R1) numele unui nod )locaia curent* R,) $irul de intrare rmas %#e&plu: $ec".ni;e([i,en-"/,lea$nin.,ne2,tEin.s]).

Fi'ur$ V) 1 [ Re-ultatul e4ecuiei recogni#e)*% Atunci c.nd reeaua este utili-at# pentru ' n r$r aceste ele,ente vor 1i /nlocuite cu ur,#toarele G1% numele unui nod )locaia curent* G,) $irul de ie$ire generat p>n la acel moment !emplu"

$ec".ni;e(X).

Fi'ur$ V) , [ Re-ultatul e4ecuiei recogni#e)?*+ ,e#icon: Noun HnI 8 Moldova W culture W lan0ua0e W t"in0s W en0lis" Verb HvI 8 "as W is W en2oL W 3articiple HpartI 8 learnin0 Article HartI 7 a W t"e W I Ad2ective Had2I 7 ric" W ,ost W Xidespread W neX -ra&atica: ( N3 V3 NP N W Ad2 N W Art Ad2 Ad2 N W ZP V W V 3art Codu& surs*:
c"nfi.([],8tate)01final(8tate).

c"nfi.([J"$dKKKK|9est],8tate)01 2"$d(J"$d,Lat), a$c(8tate,Lat,8tate1), c"nfi.(9est,8tate1). $ec".ni;e(8t$in.)01 initial(8tate), c"nfi.(8t$in.,8tate). initial(1). final(=). a$c(1,n,2). a$c(1,p$"n,2). a$c(2,@,3). a$c(3,pa$t,,). a$c(3,a$t,4). a$c(4,ad-,+). a$c(+,n,=). a$c(,,ad-,+). a$c(4,ad@,&). a$c(&,ad-,+). 2"$d(*"ld"@a,n). 2"$d(Eas,@). 2"$d(a,a$t).

2"$d($icE,ad-). 2"$d(c'lt'$e,n). 2"$d(en.lisE,n). 2"$d(is,@). 2"$d(tEe,a$t). 2"$d(*"st,ad@). 2"$d(2idesp$ead,ad-) . 2"$d(lan.'a.e,n). 2"$d(i,p$"n). 2"$d(en-"/,@). 2"$d(lea$nin.,pa$t). 2"$d(ne2,ad-). 2"$d(tEin.s,n).

H1 $ec".ni;e([i,en-"/,lea$nin.,ne2,tEin.s]). Yes.

V),)7 An$&i4$ propo4i+i i #$4$t* p c$dr - ( nt nc Fr$" Gr$""$rs) O(%,: ,oldo&a has a rich culture+ nglish is the most 2idespread language+ I en4o5 learning ne2 things+ Codu& surs* p ntru sf._$ec.pl:
M*a $ec".ni;e$ based "n tEe sentence f$a*e .$a**a$ n"tati"n*M M*d$i@e p$edicate*M $ec".ni;e(8t$in.)01 t$ansf"$*(8t$in.,Lat8t$in.), f$a*e(Lat8t$in.).

M*t$ansf"$* a st$in. "f 2"$ds int" a st$in. "f le:ical cate."$ies*M t$ansf"$*([],[]). t$ansf"$*([J"$d|8t$in.],[Lat|Lat8t$in.])01 2"$d(J"$d,Lat), t$ansf"$*(8t$in.,Lat8t$in.).

Codu& surs* p ntru le:.pl:


M*a le:ical database .i@in. tEe le:ical cate."$/ "f eacE 2"$d*M 2"$d(*"ld"@a,n). 2"$d(*"st,ad@). 2"$d(Eas,@). 2"$d(2idesp$ead,ad-). 2"$d(a,a$t). 2"$d(lan.'a.e,n). 2"$d($icE,ad-). 2"$d(i,p$"n). 2"$d(c'lt'$e,n). 2"$d(en-"/,@). 2"$d(en.lisE,n). 2"$d(lea$nin.,pa$t). 2"$d(is,@). 2"$d(ne2,ad-). 2"$d(tEe,a$t). 2"$d(tEin.s,n).

Codu& surs* p ntru sf.pl:


M*a list "f sentence f$a*e*M f$a*e([n,@,a$t,ad-,n]). f$a*e([p$"n,@,pa$t,ad-,n]). f$a*e([n,@,a$t,ad@,ad-,n]).

!esc"idei 1iierul sf._$ec.pl


M*l"ad tEe le:ical and sentence f$a*e files*M H1c"ns'lt(Nle:.plO). H1c"ns'lt(Nsf.plO). H1 t$ansf"$*([en.lisE,is,tEe,*"st,2idesp$ead,lan.'a.e], Lat8t$in.). Lat8t$in.=[n,@,a$t,ad-,n]

V),)E D 9init C&$us Gr$""$rs 0DCG2 Conversia re0ulilor structurii propo-iiei Hp"rase structure 7 3SI /n clau-e 3RO OB este at/t de si,pl#& /nc.t ea se poate e1ectua /n ,od

auto,at% 3RO OBul include o 1acilitate pentru a reali-a acest lucru Ei anu,e o e4tindere a notaiei nu,it# notaie !CB H!e1inite8Clause Bra,,arI% Aceasta repre-int# o notaie special# pentru re0ulile unei 0ra,atici% E4e,ple de clau-e scrise prin not$+i$ DCG sunt6 s 11D np, @p. np 11D ad-, n. n 11D [ele@]. Aceste clause vor 1i auto,at convertite& /n 1a-a de consultare& la6 s(X, )01np(X,Y),@p(Y, ). np(X, ) 01ad-(X,Y), n(Y, ). n([ele@|X],X). Siste,ul !CB repre-int# un co,pilator pentru re0ulile 0ra,aticii pe care le traduce direct /n clau-e 3RO OB e4ecutabile% 3rin 'r$"$tici DC se /nele0e acele 0ra,atici ale c#ror re0uli de rescriere sunt e4pri,ate /n notaia !CB% O 0ra,atic# scris# /n !CB repre-int# un pro0ra, de parsin0 pentru ea /ns#Ei% Un pro0ra, 3RO OB poate conine at.t re0uli !CB& c.t Ei clau-e 3RO OB obiEnuite% Translatorul !CB a1ectea-# nu,ai clau-ele ce conin 1unctorul F11D7% Toate celelalte clau-e sunt presupuse a 1i clau-e 3RO OB obiEnuite Ei sunt l#sate nesc"i,bate% Translatorul trans1or,# re0ulile !CB /n clau-e 3RO OB prin ad#u0area a dou# ar0u,ente supli,entare corespun-#tor 1iec#rui si,bol care nu se a1l# inclus /ntre parante-e sau acolade% Ar0u,entele sunt /n ,od auto,at aran2ate ast1el /nc.t s# poat# 1i corect utili-ate /n procesul de anali-# sintactic#% O r 'u&* DCG este de 1or,a Simbol neterminal 11D extindere unde e!tindere const# /n unul dintre ur,#toarele ele,ente6 un si,bol neter,inal He4% npIG

o list# de si,boluri ter,inale He4% ["usband\ sau ["usband& drin=s\IG un scop 3RO OB inclus /ntre acolade cu, ar 1i ]Xrite HMBasit N3MI^G un ele,ent vid repre-entat prin [ \ G o serie de oricare dintre aceste ele,ente& separate prin vir0ule%

+n ce priveEte sinta4a !CB& de notat c# si,bolurile neter,inale nu se ,ai a1l# /ntre parante-e& /n ti,p ce si,bolurile ter,inale sunt incluse /ntre parante-e drepte& ceea ce le trans1or,# /n liste 3RO OB% Si,bolurile sunt separate prin vir0ule Ei 1iecare re0ul# se /nc"eie prin punct% Ciecare re0ul# !CB este tradus# /ntr8o clau-# 3RO OB con1or, ur,#toarei sc"e,e6 dac# re0ula !CB conine /n ,e,brul drept nu,ai si,boluri neter,inale este de 1or,a6 n->n1,n2,...,nn cu n1,n2,...,nn si,boluri neter,inale& atunci ea este tradus# /n clau-a 3RO OB n(X,Y)01n1(X,Y1), n2(Y1,Y2),..., nn(Yn11,Y). !ac# re0ula !CB conine /n ,e,brul drept at.t si,boluri neter,inale& c.t Ei ter,inale& este 1or,a6 n11Dn1, [t2],n3, [t4]. Cu n@.nA ; simboluri neterminale Ei tB.tC simboluri terminale& atunci ea este tradus# /n clau-a 3RO OB n(X,Y)01n1(X, [t2|Y1]), n3(Y1, [t4| Y])

Codu& surs*:
s(s(P31,P%))11D.n1(P31),.@(P%). .n1(.n1(B9Q3,3))11Dp$"n(B9Q3),n(3). .@(.@(%,P33,P32))11D@(%),.n3(P33),.n2(P32). .n3(.n3(R5S1,31,B9AB1,R5S2,32))11 Dad-1(R5S1),n1(31),p$ep1(B9AB1),ad-2(R5S2),n2(32). .n2(.n2(B9AB2,R9T,33))11 Dp$ep2(B9AB2),a$t(R9T),n3(33). p$"n(p$"n(*/))11D[*/]. n(n(E'sband))11D[E'sband]. @(@(d$inGs))11D[d$inGs]. ad-1(ad-1(inn'*e$able))11D[inn'*e$able]. n1(n1(c'ps))11D[c'ps]. p$ep1(p$ep1("f))11D["f]. ad-2(ad-2(blacG))11D[blacG]. n2(n2(c"ffee))11D[c"ffee]. p$ep2(p$ep2(d'$in.))11D[d'$in.]. a$t(a$t(tEe))11D[tEe]. n3(n3(da/))11D[da/]. H1pE$ase(s(X),[*/, E'sband, d$inGs, inn'*e$able, c'ps, "f, blacG, c"ffee, d'$in., tEe, da/]).

X = s(.n1(p$"n(*/), n(E'sband)), .@(@(d$inGs), .n3(ad-1(inn'*e$able), n1(c'ps), p$ep1("f), ad-2(blacG), n2(c"ffee)), .n2(p$ep2(d'$in.), a$t(tEe), n3(da/)))) Yes.

V),)V R cursiH Tr$nsition N t>orB O(%,: Our students en2oL learnin0 neX t"in0s% Fi'ur$ V)7 [ RTN% T$# & V), 8 RTN soluie (trin' Our students en2oL learnin0 neX t"in0s Our students en2oL learnin0 neX t"in0s students en2oL learnin0 neX t"in0s en2oL learnin0 neX t"in0s en2oL learnin0 neX t"in0s en2oL learnin0 neX t"in0s learnin0 neX t"in0s neX t"in0s neX t"in0s t"in0s 8 8 8 (t$t S) N3) N3' N3* S' V3) V3' V3* N3) N3' N3* V39 S* (t$cB 8 S' S' S' 8 S* S* S* V39&S* V39&S* V39&S* S* 8 Co"" nt 3us" to N38net Reco0ni-e ZpronM Reco0ni-e ZnounM 3op to S8net 3us" to V38net Reco0ni-e ZverbM Reco0ni-e Zverb part)M 3us" to N38net Reco0ni-e Zad2M Reco0ni-e ZnounM 3op to V38net 3op to S8net SUCCESS_

Codu& surs* p ntru pd$.pl:


T 5efine p$edicate 2EicE sets c"nfi.'$ati"n $ec".ni;e(8t$in.)01 initial(s,8tate), c"nfi.(s08tate,8t$in.,[]). T Uinal c"nfi.'$ati"n c"nfi.(s08tate,[],[])01 final(s,8tate). T !f in final state f"$ net2"$G p"p bacG t" p$e@i"'s net2"$G c"nfi.(3et2"$G08tate,8t$in.,[3et2"$G108tate1| 8tacG])01 final(3et2"$G,8tate), c"nfi.(3et2"$G108tate1,8t$in.,8tacG). T B$"cess ne:t le:ical ite* c"nfi.(3et2"$G08tate,[J"$d|8t$in.],8tacG)01 2"$d(J"$d,Lat), a$c(3et2"$G,8tate,Lat,8tate1), c"nfi.(3et2"$G08tate1,8t$in.,8tacG). T !f ne:t a$c label $efe$s t" a net2"$G p'sE t" it c"nfi.(3et2"$G08tate,8t$in.,8tacG)01 a$c(3et2"$G,8tate,3et2"$G1,8tate1), initial(3et2"$G1,8tate2), c"nfi.(3et2"$G108tate2,8t$in.,[3et2"$G08tate1| 8tacG]). 'p initial

Codu& surs* p ntru $tn.pl:


initial(s,1). final(s,3). a$c(s,1,np,2). a$c(s,2,@p,3). initial(np,1). final(np,3). a$c(np,1,p$"n,2). a$c(np,2,n,3). a$c(np,1,ad-,2). initial(@p,1). final(@p,4). a$c(@p,1,@,2). a$c(@p,2,@p1,3). a$c(@p,3,np,4). initial(np,1). final(np,3). a$c(np,1,ad-,2). a$c(np,2,n,3).

Codu& surs* p ntru le:.pl:


2"$d("'$,p$"n). 2"$d(st'dents,n). 2"$d(en-"/,@). 2"$d(lea$nin.,@p1). 2"$d(ne2,ad-). 2"$d(tEin.s,n). H1c"ns'lt(N$tn.plO). H1c"ns'lt(Nle:.plO). H1$ec".ni;e(["'$,st'dents,en-"/,lea$nin.,ne2,tEin.s]). Yes.

PARTEA ,: D s9*ur$r $ &ucr*rii S# se elabore-e un pro0ra, /n li,ba2ul 3RO OB& care ar anali-a sintactic trei propo-iiiR1ra-e /n li,ba ro,.n# dup# e4e,plele pre-entate ,ai sus Hi,ple,entarea a cel pu in ' ,etodeI% $aportul trebuie s conin: )I Cor,ularea scopului Ei obiectivelor de cercetareG 'I !escrierea caracteristicilor siste,ului e4pert elaboratG *I !ia0ra,ele datelor de intrare Ei dia0ra,a structural# a Siste,ului E4pert& at.t ba-at pe re0uli& c.t Ei ba-at pe lo0ic#G 9I istin08ul pro0ra,ului cu co,entarii Ei e4plicaii& 2usti1ic#riG @I !escrierea ,ecanis,elor de deter,inarea r#spunsului /n siste,ul e4pertG ?I Conclu-ii cu privire la e4peri,entele e1ectuate%

LUCRAREA DE LABORATOR D A&'orit"i d r cuno$t r (copu&: Ac"i-iionarea Ei consolidarea cunoEtinelor Ei deprinderilor practice de lucru cu al0orit,i si,pli de recunoaEtere a obiectelor dup# caracteristici de calitate

PARTEA 1: Noiuni T or tic

+n cele ,ai ,ulte ca-uri i,a0inile sunt caracteri-ate cu a2utorul unor caracteristici cantitative6 di,ensiuni 0eo,etrice& 0reutate& arie& volu,& Ei altele% +n aceste ca-uri sc"i,b#rile cantitative ce caracteri-ea-# o anu,it# i,a0ine& de obicei nu duc i,ediat la sc"i,bare de co,porta,ent% Atin0.nd doar anu,ite li,ite pentru 1iecare i,a0ine& sc"i,b#rile cantitative cau-ea-# un salt cuantic pentru a trece la ur,#toarea i,a0ine%

I,a0inile propriu -ise Ei i,a0inile speci1ice pot 1i caracteri-ate nu nu,ai cantitativ& dar i de caracteristicile calitative Hpropriet#i& se,ne& atributeI% Aceste se,ne nu pot 1i descrise Hsau de obicei nu au 1ost descriseI cantitativ cu, ar 1i culoarea& 0ustul& si,ul& ,irosul% I,a0inile pot avea sau nu avea unele caracteristici de calitate% +ntre caracteristicile calitative Ei cantitative a i,a0inilor este o di1eren# i,portant#& cu toate acestea& di1erena
/n ,ulte ca-uri nu e necesar s# 1ie evideniat#& deoarece pentru 1iecare atribut calitativ& e4ist# /n anu,ite -one ale para,etrilor cantitativi& li,ite care sc"i,b# Ei atributul de calitate%

!e e4e,plu& o i,a0ine cu o culoare speci1ic# corespunde la o 0a,# de lun0i,i de und# speci1ic# undelor electro,a0netice& /n li,itele c#reia se sc"i,b# culoarea% E4ist# abord#ri di1erite pentru recunoaEterea caracteristicilor calitative a i,a0inii% +n acest laborator vo, lua /n considerare una dintre ele& ba-.ndu8ne pe codare binar#& pre-ena sau absena unei tr#s#turi de calitate% +n aceast# abordare anali-#, o i,a0ine concret# D=% Caracteristicile calitative pot 1i repre-entate ca un vector binar ? % = ( ! %) & ! % ' & %%% & ! %n ) Unde n 8 di,ensiunea spaiului de caracteristic#% !ac# i,a0inea D= conine 28, se,ne& atunci D=2 Y )& /n ca- contrar ave, D=2 Y (% Aici este identi1icat# i,a0inea i vectorul binar descriptiv%

u#, ca e4e,plul patru obiecte Hviin#& portocal#& ,#r& pepene 0albenI& 1iecare obiect are trei caracteristici6 culoare& pre-ena de s.,buri sau de se,ine HTabelul ?%)I% +n Tabelul ?%' sunt aduse valorile nu,erice ale atributelor pentru prob# dup# codi1icarea lor binar#% Cea ,ai si,pl# ,etod# pentru re-olvarea proble,elor de recunoaEtere a obiectelor cu caracteristici de calitate& dup# codi1icarea binar# a atributelor 8 reduce proble,a iniial# la re-olvarea proble,ei recunoaEterii i,a0inii cu caracteristicile cantitative ale spaiului vectorial n8di,ensional% 3entru aceasta e necesar ca pentru 1iecare tip de atribut de calitate& s# 1ie introdus# o a4# /n spaiul vectorial n8di,ensional% !ac# pentru anali-a i,a0inii se,nul e4ist#& atunci pe a4# este indicat# unitatea& dac# nu& atunci -ero% +n re-ultat obine, un spaiu ,ulti8di,ensional caracteristic binar& unde poate 1i calculat# o 0a,# de distane& utili-at# pentru recunoaEterea obiectelor cu caracteristici cantitative% T$# &u& D)1 8 3re-ena de s.,buri sau se,ine /n i,a0ini Vector 0alben oran2 rou s.,bure Viin# D) nu nu da da 3ortocal D' nu da nu nu M#r D* da nu da nu 3epene D9 da nu nu nu se,ine nu da da da

T$# &u& D), 8 Tr#s#turile calitative a i,a0inelor Vector 0alben oran2 rou s.,bure se,ine se,n Viin# D) 4)) Y ( 4)'Y( 4)*Y ) 4)9Y ) 4)@Y( 3ortocal D' 4')Y ( 4''Y ) 4'*Y( `'9Y( 4'@Y )

M#r 3epene

D* D9

4*)Y ) 49)Y )

4*'Y( 49'Y(

4**Y ) 49*Y(

4*9Y( 499 Y(

4*@Y ) 49@Y )

+n acest e4e,plu& ca ur,are a caracteristicilor cantitative& sau ,ai bine spus a tr#s#turilor calitative HTabelul ?%'I obine, un spaiu de cinci di,ensiuni cu valori binare& unde pute, utili-a distana lui Euclid H)I i Min=oXs=i H'I& distane ce 1olosesc su,a di1erenelor absolute dintre co,ponentele respective ale vectorilor n8di,ensionali H*I6
L) ( ' i & ? 4 ) = L' ( ' i & ? 4 ) =

(s
n % =) n

i%

! 4% ) ! 4% )

'

H)I H'I H*I

(s
% =)

i%

L* ( ' i & ? 4 ) = s i% ! 4%
n % =)

Unde

H9I corespunde distanei dintre i,a0inea de intrare ' i = ( si) &%%%& sin ) H@I cu i,a0inea ,odel ? i = ( !i) &%%%& !in ) iar para,etrul 2 repre-int# nu,#rul ,odelului i aH?I 7 un re-ultat po-itiv /ntre0& ,ai ,are ca doi% !istanele H)I 8 H*I pot 1i de ase,enea& utili-ate cu coe1icieni de 0reutate% Codi1icarea binar# a caracteristicilor calitative poate 1i aplicat# Ei la distana Ha,,in0& care este introdus# pentru toi vectorii binari% !istana Ha,,in0 dintre doi vectori binari este nu,#rul de co,ponente distincte de vectori binari% +n ca-ul /n care vectorii au aceleaEi co,ponente& atunci distana dintre ei

L p ('i & ?

)&

p =)&*

este -ero& /n ca-ul /n care vectorul nu are o co,ponent# ec"ivalent#& atunci distana este e0ala cu di,ensiunea vectorilor% O clasi1icare ,ai 1in# a obiectelor cu caracteristici calitative se obine prin introducerea co,patibilit#ii sau di1erenei& pentru 1iecare perec"e de obiecte D2& Di pentru care sunt introduse caracteristici calitative binare de codare& cu a2utorul % T$# &u& D)7 8 Co,patibilitatea i di1erena Di D2 ) ( ) ( b 0 " b

Variabila a /n este proiectat# pentru a contori-a nu,#rul de caracteristici co,une ale obiectelor D2& Ei Di% Ea poate 1i calculat# utili-.nd relaia6 a = ! 4% !i%
% =) n

H>I

Unde 42=& 4i= 8 sunt co,ponente binare de vectori care descriu D2 obiecte& Ei Di obiecte% Cu a2utorul variabilei b calcul#, nu,#rul de ca-uri /n care obiectele D2& Ei Di nu au acelaEi se,n b = () ! 4% )() !i% )
n % =)

HAI

Variabilele 0 Ei " sunt& respectiv& pentru a calcula nu,#rul de caracteristici care sunt pre-ente /n obiectul Di Ei lipsesc /n D2 Ei sunt pre-ente /n obiectul D2 Ei lipsesc din Di n H<I g= ! () ! )

% =)

i%

4%

% !in anali-a variabilelor a& b& 0& "& re-ult# ur,#toarele6 cu c/t este ,ai ,are ase,#narea dintre obiectele D2 Ei Di & cu at.t ,ai ,are trebuie s# 1ie variabila ZaM% M#sura de apropiere a obiectelor sau a 1unciei de ase,#nare trebuie s# 1ie o 1uncie cresc#toare a lui ZaM& 1uncia de ase,#nare trebuie s# 1ie si,etric# /n raport cu variabilele 0 Ei "% Relativ la /nc"eiere& variabila b nu poate 1i utili-at#& pentru c# pe de o parte lipsa caracteristicilor si,ilare /n obiecte poate 1i un indiciu al ase,#n#rii lor& pe de alt# parte& /n ca-ul /n care obiectul nu are aceleai se,ne& /nsea,n# c# aceste obiecte nu se pot re1eri la aceeaEi clas#% !e cele ,ai ,ulte ori sunt utili-ate /n ,od obiEnuit 1unciile de si,ilitudine repre-entate ,ai 2os6 1uncia de si,ilitudine de Russell Ei Rao
% =)

h = () !i% ) ! 4%

H)(I

') ( ? i & ? 4 ) =

a a = a +b + g +h n

H))I H)'I H)*I H)9I

1uncia de si,ilitudine V"o=ara si Nid,ena


'' ( ? i & ? 4 ) =

1uncia de si,ilitudine !ice

a n b

'* ( ? i & ?

)=

a 'a + g + h

1uncia de si,ilitudine de Sni1a i So=al


'9 ( ? i & ? 4 ) = a a + 'H g + hI

1uncia de si,ilitudine de So=al Ei Mic"ener


'@ ( ? i & ? 4 ) = a +b n

H)@I

1uncia de si,ilitudine cul-"ins=o0o

'? ( ? i & ? 4 ) =

a g +h

H)?I H)>I

1uncia de si,ilitudine Jule

'> ( ? i & ? 4 ) =

ab gh ab + gh

PARTEA ,: D s9*ur$r $ &ucr*rii

)% Se va proiecta un al0orit, i un pro0ra, care si,ulea-# recunoaEterea di1eritor obiecte& cu caracteristici calitative i a caracteristici de ase,#nare S)8S>% '% Se va seta nu,#rul de caracteristici calitative ale obiectelor n Ei nu,#rul de tone a i,a0inilor& av.nd ca re1erin# i,a0ini H0ropile trebuie s# 1ie de cel puin 9I% Se va adresa la c.teva obiecte Ei caracteristici de si,ilitudine S)8S> ast1el indic.nd apartenena la un ablon anu,it% *% Se va o1eri o 1uncie unic# de si,ilitudini ale obiectelor cu caracteristici de calitate Ei se va ar#ta per1or,ana de lucru& utili-.nd e4e,plele de la punctul '% 9% Se va co,pune o 1uncie proprie /n aa 1el ca s# 1ie si,ilar# cu e4e,plele de recunoatere pre-entate /n S)8S>& totodat# una din 1uncii trebuie s# ia o valoare ,ini,#& Ei alta 8 ,a4i,#%

@% Se va su0era c.teva e4e,ple de recunoaEtere 1olosind distana Ha,,in0% +ntr8un e4e,plu distana Ha,,in0 ar trebui s# ia o valoare e0al# cu nu,#rul de pe list# din 0rup#& con1or, re0istrului% ?% Se va propune un e4e,plu de recunoaEtere& /n cadrul c#ruia valoarea distanei Ha,,in0 este e0al# cu una dintre 1unciile de si,ilitudine S)8S>%

LUCRAREA DE LABORATOR \ A&'orit"i d r cuno$t r $ i"$'ini&or


(copu&: C#p#tarea cunotinelor i pri,irea abilit#ilor practice pentru lucrul cu cei ,ai si,pli al0orit,i de recunoatere& care au la ba-# pre-entarea i,a0inilor /n 1or,# de puncte sau de vectori n8di,ensionali /ntr8un spaiu vectorial

PARTEA 1: Noiuni T or tic E4ist# un nu,#r ,are de 1or,e de repre-entare ale i,a0inilor /n dispo-itivele de recunoatere sau /n aplicaii% Una dintre cele ,ai si,ple i

pe /nelesul tuturor este 1or,a& care 1olosete repre-entarea i,a0inilor ca 1iind nite puncte sau vectori /ntr8un oarecare spaiu n8di,ensional% Ciecare a4# a acestui spaiu& /n ,od natural& corespunde cu una din n intr#ri sau cu unul din n receptori ai reelei de recunoatere% Ciecare receptor poate s# se a1le /n una dintre & st#ri& dac# ele sunt discrete sau s# posede o in1initate de st#ri /n ca-ul c.nd receptorii sunt continui% +n 1uncie de tipul receptorilor utili-ai& se poate 0enera un spaiu vectorial n8di,ensional continuu& discret sau continuu8discret% +n aceast# lucrare de laborator vo, e4a,ina un spaiu n8di,ensional continuu% M#sura ase,#n#rii i,a0inilor /n spaiu vectorial n8di,ensional se introduce ca 1uncie de dou# variabile ,(./0 .i). unde ./0 .i ] .D . 1 2.30 .40 ...0 .n5 ; ,uli,ea 1inal# de i,a0ini /n spaiul e4a,inat% +n acelai ti,p& 1uncia ,(./0 .i) posed# ur,#toarele caracteristici6 7 7 7 este si,etric#& adic# ,(./0 .i) 1,(.i0 ./)D valorile 1unciei sunt nu,ere nene0ativeG ,#sura ase,#n#rii i,a0inii cu sine /nsui& pri,ete o valoare e4tre,# /n co,paraie cu oricare alt# i,a0ine& adic# /n 1unc ie de ,odul introducerii ,#surii de ase,#nare& se /ndeplinete una din ur,#toarele dou# e4presii6

L( ' % & ' % ) = ,a4 ( L( ' % & 'i ) )


i

H)I

L( ' % & ' % ) = ,in ( L( ' % & 'i ) )


i

H'I

/n ca-ul i,a0inilor co,pacte& 1unc ia ,(./0 .i) este o 1uncie ,onoton# la 1uncia de /ndep#rtare a punctelor ./ i .i /n spaiul n8 di,ensional%

+n spaiul n8di,ensional& ,#sura de ase,#nare a i,a0inilor poate 1i introdus# /n ,ulte ,oduri% Vo, e4a,ina ,ai ,ulte din ele% +n 1iecare ,od se considera c# i,a0inea etalon ^11 5,1 )) 1^_% _ clase di1erite de i,a0ini /n spaiul vectorial n8di,ensional& se introduc /n 1or,# de vectori cu proeciile la a4ele de coordonate6 63 1 (#330 #340 70 #3n)0 84 1 (#430 #440 70 #4n)0 )))1 69 1 (#&30 #&40 70 #&n)+ Orice i,a0ine de intrare .i ] . la 1el se repre-int# /n 1or,# de vector .i 1 (.i30 .i40 ...0 .in) /n aceast# di,ensiune%

\)1 R cuno$t r !n d p nd n* d un':iu& dintr H ctori M#sura ase,#n#rii dintre doi vectori /ntr8un spaiu n8di,ensional& poate 1i repre-entat# sub 1or,# de un0"i% !ac# este dat# i,a0inea de intrare .i 1 (.i30 .i40 ...0 .in) i vectorii i,a0inilor etalon 631(#330 #340 70 #3n). 84 1 (#430 #440 70 #4n)0 )))1 69 1 (#&30 #&40 70 #&n)& atunci ,#sura ase,#n#rii /ntre i,a0inile de intrare i cele etalon& se deter,in# din relaia

s i) ! 4) + s i ' ! 4 ' + %%% + s in ! 4n L( ' i & ? 4 ) = arccos ' ' ' ' s i) + s i'' + %%% + s in !' 4) + ! 4 ' + %%% + ! 4n

n s i% ! H*I % =) = arccos ' ? i

unde X.i:. :8;: 8 lun0i,ile vectorilor .i i 8;+ Apartenena i,a0inii de intrare .i la una dintre & i,a0ini& se deter,in# din ur,#toarea re0ul# decisiv#6

' i ? 4 & dac

L ' i & ? 4 = ,in L ' i & ? 4


4

( (

))

H9I

+n acela i ti,p& /n aceast# re0ul# i ,ai departe /n te4t& pentru notarea i,a0inii % i a i,a0inii etalon se 1olose te aceia i notare
? 4 4 =)& m %

\), R cuno$t r $ i"$'ini&or dup* produsu& &or sc$&$r M#sura ase,#n#rii i,a0inilor dup# un0"iul dintre H*I se ba-ea-# pe produsul scalar al vectorilor6
n

< ' 4 & ? 4 >= ' i ? 4 cos = si% ! 4%


% =)

H@I

Unele siste,e de recunotere 1olosesc ne,i2locit produsul scalar /n calitate de ,#sur# de ase,#nare a i,a0inilor /ntr8un spaiu n8di,ensional vectorial6

L 'i & ? 4 = si% ! 4%


% =)

H?I

+n acest ca- apartenena i,a0inii de intrare .i la careva i,a0ine etalon& se deter,in# din ur,#toarea re0ul# decisiv#6

' i ? 4 & dac

L ' i & ? 4 = ,a4 L ' i & ? 4


4

( (

))

H>I

\)7 R cuno$t r $ i"$'ini&or dup* $p$rt n n$ $c stor$ &$ o 4on* d sp$iu d$t* a acest ,od de recunoatere& tot spaiul de i,a0ini Z se /,parte /n -one care nu se intersectea-# Z11 Z,1 )))1 Z"1 Z"U1& unde Z11 Z,1 )))1 Z" 8-one& ce conin i,a0ini nu,ai la o i,a0ine virtual# corespun-#toare ^11 ^,1 )))1 ^_G Z"U1 8 -on#& care nu conine i,a0ini& care se re1er# la i,a0inile virtuale date% +n acest ca- apartenena i,a0inii de intrare .i 1 (.i30 .i40 ...0 .in) la o oarecare i,a0ine virtual# ; 0 decisiv#
'i ? 4 & dac H s i) & s i ' &%%%& s in I 3 4
4 =)& m )

se deter,in# din re0ula

HAI

!ac# -ona <; 0

4 =)& m

2 este repre-entat# /n spaiul euclidian /n 1or,#


S S S

de s1ere cu centrul /n punctele ( ! 4) & ! 4 ' &%%%& ! 4n ) i cu ra-ele $;. atunci re0ula decisiv# HAI va pri,i 1or,a

'i ? 4 & dac L ' i & ? 4 = !S4% si%


% =)

'

74

H<I

3entru construirea -onelor /n spaiul de i,a0ini& se pot 1olosi oricare din ,etodele de ase,#nare& ca de e4e,plu& dinstanele cu coe1iciente care posed# o capacitate H)(I 8 H)'I& distana dup# Ca,berr H)*I %a%,%d

L ( 'i & ? 4 ) =

( s
n % =) % n % =)

i%

! 4% )

'

H)(I

L ( 'i & ? 4 ) =

( s
%

i%

! 4% )

H))IH))I H)'I

L( ' & ? ) =
n i 4 % =)
n

si% ! 4%

L('i & ? 4 ) =
%= )

si% ! 4% si% + ! 4%

H)*I

H)*I

unde % (% =)& n ) E coe1icienii cu capacitateG ` E nu,#r /ntre0 po-itiv& ,ai ,are ca '% Re0ula decisiv# HAI pentru distanele H)(I d H)'I va pri,i 1or,a

' i ? 4 & dac

L( ' i & ? 4 ) = 7i4 7 4

H)9I

unde $i; E distana dat# din una din relaiile H)(I d H)*I& /ntre i,a0inea pre-entat# .i i centrul s1erei& care conine i,a0inea virtual# ;G $; ; ra-a s1erei& care conine i,a0inea virtual# ;+ +n ca-ul 1olosirii pentru recunoaterea un0"iului dintre vectorii -oneleor ce nu se intersectea-# <; 0
4 =)& m )

se repre-int# /n 1or,# de conuri& i

re0ula decisiv# are 1or,a

'i ? 4 &

dac

s i) ! 4) + s i ' ! 4 ' + %%%H)@I + s in ! 4n L( ' i & ? 4 ) = i4 = arccos ' ' ' ' s i) + s i ' + %%% + s in ! 4) + ! ' 4 ' + %%% +

unde i4 / un0"iul dintre i,a0inile pre-entate 'i i i,a0inile etalon 8;.

4 ,a4 / un0"iul ,a4i, ad,isibil pentru i,a0inea virtual# ; dintre


etalon i i,a0inile pentru recunoa tere %

PARTEA ,: D s9*ur$r $ &ucr*rii

)% Se va elabora al0orit,ul i pro0ra,ul& care ,odelea-# recunoaterea a c.torva obiecte di1erite& /ntr8un spaiu vectorial n8 di,ensional dup# un0"iul dintre vectori i dup# produsul lor scalar% '% Se va stabili di,ensiunea vectorului n8di,ensional al spaiului& cu nu,#rul _ de obiecte etalon Hn i & trebuie s# 1ie nu ,ai ,ici dec.t @I i cu c.teva obiecte pentru recunoatere% Cu a2utorul un0"iului dintre vectori i produsul lor scalar& se va deter,ina apartenena obiectelor pre-entate pentru testare la un oarecare obiect etalon% *% Se va elabora al0orit,ul i pro0ra,ul& care ,odelea-# recunoaterea a c.torva obiecte di1erite la apartenena lor la -onele s1erice sau conice /ntr8un spaiu vectorial n8di,ensional%
9% Se va stabili di,ensiunea vectorului n8di,ensional al spaiului& cu nu,#rul _ de obiecte etalon i cu c.teva obiecte pentru recunoa tere% Cu -onelor s1erice sau conice ce conin obiectele etalon& deter,ina i apartenena obiectelor pre-entate pentru testare la un oarecare obiect etalon%

LUCRAREA DE LABORATOR W
R & & N uron$& G$""in' (copu&: C#p#tarea i consolidarea cunotinelor& precu, i 1or,area deprinderilor practice pentru lucrul cu reelele neuronale Ha,,in0%

PARTEA 1: Noiuni T or tic Reeaua Ha,,in0 este una dintre cele ,ai per1or,ante reele neuronale pentru recunoaEtere Ei clasi1icare% +n aceast# re ea i,a0inile alb8 ne0ru sunt pre-entate sub 1or,# de vectori bipolari m8di,ensionali% !enu,irea reelei provine de la distana Ha,,in0& care se 1olose te de reea /n ,#surarea ase,#n#rii a R i,a0ini de intrare i celor etalon& p#strate cu a2utorul balanei de le0#turi a re elei% M#sura ase,#n#rii se deter,in# din relaia6 7 F m/7!. )@* )@*

unde " 7 co,ponenta nu,eric# a vectorilor de intrare i etalonG RI 7 distana Ha,,in0 dintre vectori% <efiniie" !istana pre-int# vectorii

Ha,,in0 dintre doi vectori binari co,ponenta nu,eric# /n care sunt di1erii%

!in de1iniie re-ult# c# ,#sura de ase,#nare a i,a0inilor H)I poate 1i redat# prin nu,#rul G. care este co,ponenta vectorilor binari /n care ei coincid6 R 3 =+ Vo, deduce pentru vectorii bipolari ( 3 0(1 0...0s&2 e ? 1 0>3 0...0>&2 produsul lor scalar prin nu,#rul de co,ponente care coincid i de co,ponentele care sunt di1erite6

unde $ ; nu,#rul de co,ponente identice ale vectoruluiG d 7 nu,#rul de co,ponente di1erite ale vectorilor ( i ?. !eoarece 9 7 di,ensiunea vectorilor& atunci " 3 = ? d. re-ult# c# produsul scalar H'I poate 1i scris /n 1or,a6 (? 3 4S - ") !e aici nu este 0reu de deter,inat6

H*I 3artea dreapt# a e4presiei H*I poate 1i privit# ca se,nalul de intrare a neuronului& care are m sinapse& cu coe1icientul de 0reutate 4iO,

(i 3 11"2 i cu deplasa,entul "O,% Sinapsele neuronului recunosc , co,ponente a vectorului de intrare ( 3 0s30 ..0 s"2) Aceast# interpretare a
p#rii drepte a e4presiei H*I pre-int# ar"itectura unei subre ele neuronale& care este redat# de partea de 2os a Ci0ura )% +n unele surse re eaua din Ci0ura ) este nu,it# reea Hamming& altele nu,esc reea Ha,,in0 doar partea de 2os a 1i0urii& socotind c# reeaua e 1or,at# din dou# subre ele 8 Ha,,in0 i Ma4Net% Noi vo, considera c# este o reea

Ha,,in0%

Fi'ur$ W)1 7 E4e,plu de Reea Ha,,in0% Reeaua Ha,,in0 are m neuroni de intrare (30 70 (" . care recunosc co,ponentele bipolare s1Y1 81 s"Y ale i,a0inilor de intrare (Y 0Y311L2) Se,nalele de ieire ale ele,entelor S se deter,in# din relaia6

H9I

Unde&

Uout +@ U ieire Uin -@ U intrare 6

re-ult# c# se,nalul de ieire a ele,entului S& repet# se,nalul lui de intrare6

Uout .i 1 Uin .i 1 sAi .


Ciecare neuron (% 0%311 "2 este le0at cu intrarea 1iec#rui ele,ent ?B 0B311 n2) Capacitatea acestor le0#turi a1B1 8 1 a"B conine in1or,aia despre i,a0inea etalon =6

V= 1 Hv)=&P& v,=I: )3/ Y v)=R'& P& X,=Yv,=R'%


Cuncia de activare a V8ele,ente este descris# de relaia6

H@I

H?I

Unde Uin 7 se,nalul de intrare a neuronuluiG B11 Ub 7 constante% a descrierea i,a0inii (B 1 (s1P1 70 s"P2 1iecare V8neuron calculea-# se,nalul lui de intrare /n con1or,itate cu e4presia H*I6

H>I i cu a2utorul 1unciei de activare& deter,in# se,nalul de ie ire UinC/. Se,nalele de ieire UinC30 70 UinCn a V8ele,ente sunt se,nale de intrare S11 )))1 Sn a subreelei de sus& care este o reea Ma4Net% Cuncia de activare a neuronilor Ap 0p311n2 i capacitatea lor de le0#tur# se dau de rela ia6

unde f 7 constanta care satis1ace ine0alitatea C @ c d 1On) Reeaua 1uncionea-# ciclic& dina,ica neuronilor este redat# de rela ia iterativ#6

HAI cu condiiile iniiale -i)I*FaiF-inJi. iF@.n

!ac# printre se,nalele de intrare S3 0...0 an a neuronilor A30 ...0 An este un se,nal cel ,ai /nalt SD (D e11 ,1 )))1 nf2& atunci /n re-ultatul procesului iterativ /n subreeaua Ma4Net va pre-enta un sin0ur neuron

gD& care va r#,.ne cu se,nal de ieire& ,ai ,are ca C& adic# va deveni K:n&ingtorK+ Cu toate c# se,nalele de ieire U11 )))1 Up0 ...0 Un a g 8
ele,ente vin la intr#rile a ;8neuroni& care au 1uncia de activare de 1or,a6

H<I Atunci la ieirea reelei Ha,,in0 doar un sin0ur neuron ;p va avea un sin0ur se,nal de ieire% Ieirea unic# a acestui neuron i ie irile nule a celorlali neuroni vor indica c# i,a0inea redat# (P30s1P1 81 s"P2 este cea ,ai aproape& /n sensul ,#surii de ase,#nare date H)I& de i,a0inea etalon Zp1(v3p0 70 v&p). Un avanta2 esenial al reelei Ha,,in0 const# /n 1aptul c# nu necesit# proceduri co,plicate de calcul pentru /nv#area sa% Un nea2uns esen ial al

reelei 8 ea nu produce dou# sau ,ai ,ulte i,a0ini de re1erin#& av.nd cu i,a0inile i,puse acelai nivel de ase,#nare% !emple" !e elaborat o reea Ha,,in0& av.nd /n calitate de etalon @ i,a0ini alb8 ne0ru Z11 )))1 ZV6 ar#tate /n Ci0ura '% !e deter,inat in1luena i,a0inilor pre-entate /n Ci0ura *%

Fi'ur$ W), - I,a0ini etalon%

Fi'ur$ W)7 - I,a0ini pentru testare%

Fi'ur$ W)E 8 Nu,erotarea ele,entelor i,a0inii% +ntruc.t ave, doar @ i,a0ini etalon& reeaua va trebui s# aib# c.te @ ?-1 g-1 ;-neuroni% 3re-ena a < ele,ente alb8ne0ru /n i,a0inile din Fi'ur$ W) , i Fi'ur$ W) 7 deter,in# < (8neuroni& care recunosc ele,entele i,a0inilor de intrare%

Vo, nu,erota ele,entele i,a0inilor din Ci0ura A%' i Ci0ura A%* /n con1or,itate cu Ci0ura A%9 i vo, pre-enta i,a0inile Zp 0J 3 11(2 /n 1or,# vectorial#& 1olosind repre-entarea bipolar# a vectorilor6 3 @ F )/@.@. /@./@. @./@. /@.@./@*. 3 BF)@. @.@. @./@. @.@./@.@*. 3 AF)@./@.@. @.@. @.@./@.@*. 3 CF)@. @.@. @./@./@. @./@./@*. 3 LF)/@. /@./@. /@.@./@./@./@./@*+ Cunosc.nd vectorii i,a0inilor de intrare i nu,#rul lor /n raport cu H@I& deter,in#, ,atricea XaiBX 0i 3 11K1 B 3 11V2 de capacit#i a le0#turilor p#rii de 2os a subreelei reelei Ha,,in06

unde pentru claritate r.ndurile i coloanele ,atricei sunt nu,erotate corespun-#tor cu a2utorul ele,entelor ( i a i,a0inilor etalon Zh sau neuronilor ?p& luai /n parante-e% !eplas#rile #11)))1 #V neuronilor ? se calculea-# cu a2utorul e4presiei H))I6

b@ F bB F 6 F bL F mMB F NMB F C.L+

H))I

H))I
Cuncia de activare a neuronilor ?& este redat# de e4presia H?I cu B1 3 C11 i Ub 31OB1 31OC)131C) Cunciile de activare a neuronilor ; le deter,in#, ca 1uncii H<I% Constanta f& deter,in# capacitatea invers# a le0#turilor /n subreeaua Ma4Net& vo, deter,ina e0alit#ile c 3 1On1 und

b 3 V1 i c 3 C1,)
tiind toi para,etrii reelei Ha,,in0& vo, ur,#ri 1unc ionarea ei la pre-entarea i,a0inii (1 3 0-11 -11 11 11 11 11 11-11 12& Fi'ur$ 7% !up# pre-entarea i,a0inii (1 la ieirea neuronilor (& cu toate se,nalele lor de ieire le repet# pe cele de intrare [rela ia H9I\& vo, ob ine vectorul de se,nale (out s 3 (1% Colosind se,nalele de ieire a ele,entelor se,nalelor (& 1iecare neuron ( calculea-# se,nalul propriu de intrare con1or, relaiei H>I& ,atricea capacit# ilor H)(I i deplasa,entul #B1 B311V H))I6

!up# se,nalul de intrare Uin ?B& 1olosind 1uncia proprie de activare H?I cu B13 C11 i Ub 31C& 1iecare neuron V deter,in# se,nalul s#u de ie ire6

Vectorul6 -out J F )I.BD I.OD I.PD I.CD I.C* H)'I

H)'I

repre-int# vectorul de intrarea a subreelei Ma4Net i /ncepe procesul iterativ de alocare a se,nalului ,a4i, de ieire cu condi iile ini iale H)'I% 3entru t 31 vo, avea

Colosind vectorul HUout A10121 )))1 Uout AV 0122 se,nalelor de ieire a ele,entelor A cu t 3 11 analo0ic se deter,in# se,nalele de ieire a neuronilor A cu t 3 ,1 7 i E% Re-ultatele calculelor sunt redate /n i$# &u& W)1

i$# &u& W)1 - Re-ultatele calculelor procesului iterativ /n subreeaua Ma4Net Ti"pu& Uout A1 ( ) ' * 9 (&'(( (&((( (&((( (&((( (&((( Di" nsiun $ s "n$& &or d i ir $ n uroni&or AB 0B311V2 Uout A, (&?(( (&'9( (&)99 (&(@A (&((( Uout A7 (&A(( (&9A( (&9*' (&9(* (&9(' Uout AE (&9(( (&((( (&((( (&((( (&((( Uout AV (&9(( (&((( (&((( (&((( (&(((

3rocesul iterativ /n subreeaua Ma4Net se ter,in# c.nd t 3 V& la acest pas 1uncionalitatea subreelei nu ,odi1ic# nici un se,nal de ie ire a ele,entelor A% Vectorul se,nalelor de ieire a ele,entelor A& /nscris /n ulti,ul r.nd din Tabelul )%)%& vine la intrarea ele,entelor ;% Neuronii ; av.nd 1uncia de activare H<I& la ieirea unui sin0ur ele,ent ;7 va ap#rea se,nalul unitate% Apariia acestui se,nal ne vorbete despre 1aptul c#& i,a0inea redat# (1 cel ,ai ,ult se asea,#n# cu i,a0inea etalon Z7% Co,paraia vi-ual# a Ci0ura A%' i Ci0ura A%* con1ir,# 1uncionarea corect# a reelei% Acu, vo, deter,ina 1uncionarea reelei la redarea i,a0inii (, 3 0-11 -11 11-11 11-11-11-11 -12) Calculele sunt identice& vo, pre-enta doar cele ,ai i,portante re-ultate inter,ediare 6

!eoarece vectorul de intrare )I.OD I.BD I.CD I.CD I.P* a subreelei Ma4Net conine doar un sin0ur ele,ent ,a4i, SE 1 F0G& atunci /n re-ultatul procesului iterativ& nu,ai la ieirea ele,entului gE vo, avea un se,nal po-itiv& care va provoca un se,nal unitate la ieirea neuronului ;V% Re-ult# c#& i,a0inea redat# se asea,#n# ,a4i, cu i,a0inea etalon ZV& ceia ce con1ir,# co,paraia vi-ual# a Ci0ura A%' i Fi'ur$ W)7 )

Vo, deter,ina reacia reelei Ha,,in0 la i,a0inea de intrare (7 3 0-1111-11-1111-11-1111-12 HFi'ur$ 7I% a pre-entare i,a0inii (7 vo, avea6

!eoarece se,nalele Uin ?10(72 3 Uin ?V0(72 sunt ,a4i,al identice cu se,nalele de intrare& atunci vor 1i identice i se,nalele ,a4i,e de la ieirea ele,entelor ? 0Uout ?10(72 3 Uout ?V0(72 3C1W2 i la intrarea a neuronilor A 0S1 0(72 3 SV0(72 3 C1W2) +n consecin#& subreeaua Ma4Net nu va putea aloca un se,nal ,a4i,al unic i /n re-ultatul 1uncion#rii la ieirile neuronilor A1 ; vo, avea se,nale nule% Re-ult# c# reeaua Ha,,in0 nu va putea deter,ina pentru 1iecare i,a0ine etalon 8 i,a0inea redat# de vectorul S*% PARTEA ,: D s9*ur$r $ &ucr*rii )% Elaborai o reea neuronal# Ha,,in0& care va putea identi1ica nu ,ai puin de ? caractere di1erite a nu,elui i prenu,elui d8voastr#& /n acelai ti,p ,otivai ale0erea6 nu,#rului de receptori a neuronilorG nu,#rului de neuroni a stratului de intrareG di,ensiunea para,etrului f /n subreeaua Ma4NetG tipul 1unciilor de activare a neuronilor 1iec#rui stratG di,ensiunea capacit#ilor HponderilorI de le0#tur# i de deplasare /n subreeaua Ha,,in0% '% Studiai reeaua neuronal# i,a0inilor etalon a caracterelor% Cace i cunotin# cu posibilit#ile reelei pentru deter,inarea i,a0inilor distorsionate HeronateI%

*% Ale0ei i,a0inea de intrare& e0al /ndep#rtat# pe distan a Ha,,in0 de la ' i,a0ini etalon% Care va 1i e1ectul anali-ei acestei i,a0iniN A i putea propune o ,etod# de co,portare ,ai in1or,ativ# a re elei la pre-entarea unor ast1el de i,a0ini N

LUCRAREA DE LABORATOR K R & & N uron$& G ## (copu&: C#p#tarea i consolidarea cunotinelor& precu, i 1or,area deprinderilor practice pentru lucrul cu reelele neuronale Hebb% PARTEA 1: Noiuni T or tic K)1 N uroni 9or"$&i $i r & &or n uron$& $rti9ici$& +n ti,pul ,odel#rii reelelor neuronale /n calitate de neuroni arti1iciali de obicei se 1olosete un si,plu ele,ent procesor& ilustrat /n % a intr#rile lui vine vectorul 530I11 )))1 In2 de se,nale de intrare& care la r.ndul lor sunt se,nale de ieire al altor neuroni& de ase,eni con ine i un se,nal unic de deplasare% Toate se,nalele de intrare& inclusiv i se,nalul de deplasare& se /n,ul esc la coe1icienii ponderilor de le0#tur# i se su,ea-#6

)@* )@* unde ( 7 su,a se,nalului de intrareG >i 0i 3 1))n2 7 coe1icienii ponderilor le0#turilor se,nalelor de intrare I11 )))1 In 6 >C 7 coe1icientul ponderii de le0#tur# al se,nalului de deplasare%

Fi'ur$ K)1 8 Ele,ent procesor& 1olosit /n reelele neuronale si,ple% Se,nalul pri,it ( vine la intrarea blocului& care reali-ea-# 1unc ia H de activare a neuronului% Cunciile tipice de activare sunt binare6

H'I sau bipolare 6 H*I

Muli autori la descrierea ,odelului neuronului 1olosesc nu se,nalul de deplasare& dar pra0ul g al neuronului& ceia ce ne duce la ,odelul ele,entului ec"ivalent% +n acest ca- e4presiile H'I i H*I vor avea 1or,a6

H9I

H@I

H?I

I,a0inea 0ra1ic# a 1unciei de activare binare i bipolare pentru acest caeste ar#tat# /n Ci0ura <% ' a i b%

Fi'ur$ K) , 8 Cuncia de activare a neuronilor%

!in relaiile H)I 7 H*I i H9I 7 H?I re-ult# c# pentru 1iecare valoare de pra0 j a neuronului& poate 1i pre-entat /n con1or,itate cu capacitatea coe1icientului )F de le0#tur# a se,nalului de deplasare i invers% Rar se utili-ea-# 1uncii liniare binare i liniare bipolare de activare HCi0ura <% ' c i dI6

unde a este e0al cu ( pentru se,nalele de intrare binare al

neuronilor i a este e0al cu 8) pentru se,nalele bipolareG /0 aF 7 coe1icieni per,aneni% +n a1ar# de cele pre-entate ,ai sus& /n teoria re elelor neuronale se 1olosesc i ur,#toarele 1uncii neliniare de activare6 sigmoida binar i sigmoida logic )Figura Be*"

HAI unde k 7 coe1icient per,anentG sigmoida bipolar )Figura N+ B f*"

H<I radial ; simetric )Figura N+ B g*"

H)(I binar de rangul % )Figura N+ B h*" H))I bipolar de rangul % )Figura N+ B i*"

H)'I Modelele neuronilor arti1iciali pre-entate anterior& i0norea-# ,ulte propriet#i cunoscute ale prototipurilor biolo0ice% !e e4e,plu& nu iau /n consideraie reinerile /n ti,p ale neuronilor& e1ectele ,odul#rii /n 1recven#& e4cit#rii locale i consecinele le0ate de ele a su,#rii spa iale i te,porale de pra0& atunci c.nd celula se e4cit# nu i,ediat cu venirea i,pulsurilor& dar cu secvene de se,nale de e4citare& care vin /n intervale scurte de ti,p% !e ase,eni nu se ia /n consideraie perioadele absolute de re1ractare& /n ti,pul c#rora celulele nervoase nu pot 1i e4citate& adic# ca i cu, ar avea o perioad# de e4citare in1init#& care apoi ti,p de c.teva ,ilisecunde dup# trecerea se,nalului& se ,ic orea-# la nivelul nor,al% Aceast# list# de deosebiri& pe care ,uli biolo0i le socot decisive& poate 1i uor continuat#& nu,ai c# reelele neuronale arti1iciale totu i depistea-# un ir de propriet#i interesante& caracteristice pentru prototipurile biolo0ice%

K), R 4o&H$r $ pro#& " &or p #$4* d n uroni ind p nd ni) R 'u&$ G ##

Reelele neuronale arti1iciale destinate pentru soluionarea di1eritor proble,e& pot conine de la c.iva neuroni p.n# la ,ii i ,ilioane de ele,ente% +ns# un neuron aparte cu 1uncie de activare bipolar# sau binar#& poate 1i 1olosit pentru re-olvarea proble,elor si,ple de recunoatere i clasi1icare a i,a0inilor% Ale0erea repre-ent#rii bipolare H)& 8)I sau binare H)& (I a se,nalelor /n reele neuronale se 1ace reie ind din proble,a re-olvat# i /n ,ulte ca-uri este ec"ivalent% Ave, un spectru de proble,e /n care codi1icarea binar# a se,nalelor este ,ai co,od#& /ns# este ,ai util de ales o pre-entare bipolar# a in1or,a iei% +ntruc.t se,nalul de ieire a neuronului binar HCi0ura )I pri,e te nu,ai dou# valori& atunci acest neuron poate 1i 1olosit pentru clasi1icarea i,a0inilor pre-entate /n dou# clase% Cie c# ave, o ,uli,e M de i,a0ini pentru care sunt cunoscute clasi1icarea corect# /n dou# clase 51 3 e5111 51,181 51Yf1 5, 3 e5,11 5,,181 5,pf1 51U 5, 3 M1 51l 5,31 i 1ie c# pri,ei clase 51 /i corespunde se,nalul de ieire .31& i clasei 5, se,nalul . 3 -1% !ac#& de e4e,plu este pre-entat# o i,a0ine oarecare Dh Y e51m181 5,mf1 5m n M i su,# capacit#ilor se,nalelor de intrare dep#e te valoare -ero6

atunci se,nalul de ieire .31 i& respectiv& i,a0inea de intrare 5m corespunde clasei 51% !ac# ( d C& atunci . 3 -1 i i,a0inea pre-entat# aparine clasei '% Este posibil# 1olosirea unui neuron aparte i pentru re-ervarea din ,uli,ea de clase M 3e 51 3 e511181 51Bf1)))1 5i 3 e5i1181 5iYf1 )))1 5p 3 e5p1181 5p"ff a i,a0inilor din clasa unic# 5i) +n acest ca- se consider# c# unul din dou# se,nale posibile de ieire ale neuronului Hde e4e,plu& )I corespunde clasei 5i1 al doilea 7 tuturor celorlalte clase% !e aceia& dac# i,a0inea de intrare 5m duce la apariia se,nalului . 3 1& atunci 5m n 5i& dac# . 3 -1 Hi . 3 C1 dac# se 1olosete codi1icarea binar#I& atunci aceasta ne arat# c# i,a0inea pre-entat# nu corespunde clasei re-ervate%

Siste,ul de recunoatere /n ba-a neuronului unic& /,parte toat# supra1a a de soluii posibile /n dou# supra1ee cu a2utorul "iperplanului 6 3entru vectori de intrare bidi,ensionali& pra0ul dintre dou# clase

de i,a0ini este o linie dreapt#6 vectori de intrare& care se a1l# ,ai sus de aceast# dreapt#& aparine unei sin0ure clase& dar ,ai 2os 7 alte clase% 3entru adaptarea& setarea sau /nv#area ponderilor Hcapacit# ilorI le0#turilor neuronilor pot 1i 1olosite ,ai ,ulte ,oduri% Vo, descrie unul din el& pri,ind nu,ele de =regula Hebb+ Hebb& studiind ,ecanis,ele de 1uncionare a siste,ului nervos central HSNCI& a presupus c# /nv# area se produce pe calea ,#ririi le0#turilor dintre neuroni& activitatea c#rora corespunde dup# ti,p% !ei /n siste,ele biolo0ice aceast# presupunere nu se e4ecut# /ntotdeauna i nu epui-ea-# toate 1elurile de /nv# are& nu,ai c# la /nv#area reelelor neuronale pe un strat cu se,nale bipolare este 1oarte e1ectiv#% +n con1or,itate cu re0ula Hebb& dac# i,a0inii bipolare pre-entate 530I11 )))1 In2 /i corespunde un se,nal incorect de ie ire .& atunci

ponderile >i 0i 3 1 )) n 2 ale le0#turilor neuronului se adaptea-# dup# 1or,ula6 unde >i 0t21 >i 0tU12 respective ponderea le0#turii i a neuronului p.n# i dup# adaptareG Ii 0i 3 1 )) n 2 7 co,ponentele i,a0inii de intrareG IC o 1 7 se,nalul de deplasareG . 7 se,nalul de ieire al neuronului% +ntr8o 1or,# ,ai co,plet# al0orit,ul de setare a ponderilor le0#turilor neuronului cu 1olosirea re0ulii Hebb arat# /n 1elul ur,#tor6

Iasul 3. Se d# ,uli,ea M 3e 0511 t12181 05"1 t"2f care const# din perec"i Hi,a0inea de intrare 5B 3 051B181 5nB21 este necesar se,nalul de ieire a neuronului tB21 B 3 1 )) "2) Se iniia-# ponderile le0#turilor neuronilor6

Iasul 4. 3entru 1iecare perec"e 05B1 tB21 B 3 1 )) ". p.n# ce nu se /ndeplinesc condiiile de stopare& se /ndeplinesc paii * 7 @% Iasul J. Se iniia-# ,uli,ea de intr#ri a neuronului6

Iasul K. Se iniia-# se,nalul de ieire a neuronului6 y 1 t/. Iasul E. Se corectea-# ponderile le0#turilor neuronului dup# re0ula6 Iasul L. Controlul condiiilor de stopare% 3entru 1iecare i,a0ine de intrare 5B se deter,in# se,nalul corespun-#tor de ieire .B6

!ac# vectorul 0.11 ))) 1 ."2 se,nalelor de ieire este identic vectorului 0t11 ))) 1 t"2 se,nalelor iniiale ale neuronului& adic# 1iec#rei i,a0ini de

intrare /i corespunde un se,nal de ieire dat anterior& atunci calculele se s1.resc Htrece, la pasul >I& dar dac# 0.11 ))) 1 ."2 p 0t11 ))) 1 t"21 atunci trece, la pasul ' al al0orit,ului% Iasul M. Stop !emplu" Cie c# trebuie s# /nv##, un neuron bipolar pentru recunoaterea i,a0inilor 51 i 5,1 ilustrate /n Ci0ura *%

Fi'ur$ K)7 8 I,a0inile de intrare% +n acelai ti,p vo, cere ca i,a0inii 51 s#8i corespund# se,nalul de ieire U1 al neuronului& i i,a0ini 5, 7 se,nalul -1% Aplicarea al0orit,ului Hebb ne o1er# ur,#toarele re-ultate6 Iasul 3. Se dau ,uli,ile6

se iniia-# ponderile le0#turilor neuronului6 >i 3 C1 i 3 C )) K) Iasul 4. 3entru 1iecare din perec"ile 0511121 05,1-121 se /ndeplinesc paii * 7 @% Iasul J. Se iniia-# ,uli,ea intr#rilor neuronului pentru i,a0inea pri,ei perec"i6 IC 3 11 Ii 3 Ii11 i 3 C )) K) Iasul K. Se iniia-# se,nalul de ieire al neuronului pentru i,a0inea pri,ei perec"i6 . 3 t1 3 1)

Iasul E. Se corectea-# ponderile le0#turilor neuronului dup# re0ula Hebb >i 3 >i U Ii1. 0i 3 C )) n2:

Iasul J. Se iniia-# ,uli,ea de intr#ri ale neuronului pentru i,a0inea D ' a perec"ii a doua6 IC 3 11 Ii 3 Ii,1 i 3 C )) K) Iasul K. Se iniia-# se,nalul de ieire al neuronului pentru i,a0inea din a doua perec"e 05,1 t,2: . 3 t, 3 -1 Iasul E. Se corectea-# ponderile le0#turilor neuronului6

Iasul L. Se veri1ic# condiiile de stopare% Se calculea-# se,nale de intrare i se,nalele de ie ire ale neuronului la pre-entare i,a0inii 516

Se calculea-# se,nalele de ieire i de intrare ale neuronului la pre-entarea i,a0inii 5,6

+ntruc.t vectorul 0.1 1.,2 3 011 -12 este e0al cu vectorul 0t1 1t,21 atunci calculele se stopea-#& deoarece a 1ost atins scopul 7 neuronul corect

recunoate i,a0inile pre-entate% Ideea esenial# a re0ulii H)*I 7 de a ,#ri le0#turile& care lea0# neuronii cu aceiai activitate /n ti,p& i de a ,icora le0#turile& care lea0# ele,entele cu activitate di1erit#& poate 1i 1olosit# la setarea re elelor neuronale cu ele,ente binare% Re0ula Hebb H)*I pentru reele binare cu un sin0ur strat poate 1i scris# /n 1or,a6

!emplu" Cie c# trebuie de /nv#at un neuron binar pentru recunoa terea i,a0inilor 51 i 5, ale e4e,plului precedent% I,a0inii 51 1ie c#8i va corespunde se,nalul de ieire U1 al neuronului& iar i,a0inii 5, [ C) Aplicarea re0ulii Hebb /n acest ca-& ne va da ur,#toarele re-ultate6 Iasul 3. Se d# ,uli,ea6 M 3 e051 3 011 C1 11 11 11 11 C1 C1 121 121 05, 3 011 11 11 11 C1 11 11 C1 121 C2f 1 i se iniia-# ponderile le0#turilor neuronului >i 3 C1 i 3 C )) K) Iasul 4. 3entru perec"ile 0511 121 05,1 C2 se /ndeplinesc paii * 7 @% Iasul J. Se iniia-# ,uli,ea intr#rilor neuronului cu ele,entele i,a0inii 516 Iasul K. Se iniia-# se,nalul de ieire al neuronului pentru i,a0inea 516

Iasul E. Se corectea-# ponderile le0#turilor neuronului cu a2utorul relaiilor H)9I& H)@I6

Iasul J. Se iniia-# ,uli,ea intr#rilor neuronului cu ele,entele i,a0inii 5,6

Iasul K. Se iniia-# se,nalul de ieire al neuronului pentru i,a0inea 5,6 Iasul E% Se corectea-# ponderile le0#turilor neuronului cu a2utorul relaiilor H)9I& H)@I6

Iasul L. Veri1icarea condiiilor de stopare% Se deter,in# se,nalele de intrare i de ieire ale neuronului la pre-entarea i,a0inilor 51 i 5, 6

+ntruc.t vectorul 0.1 1.,2 3 011 C2 este e0al cu vectorul 0t1 1t,21 atunci calculele se stopea-#& deoarece a 1ost atins scopul%

K)7 R $u$ n uron$&* G ## Utili-area 0rupului din , neuroni bipolari sau binari A)& %%% A, Ci0ura <%9 ne per,ite de a ,#ri considerabil posibilit#ile re elei neuronale i de a recunoate p.n# la ', i,a0ini di1erite% +ns# aplicarea acestei reele pentru recunoaterea a ', Hsau aproape de ',I de i,a0ini di1erite& poate duce la proble,e nere-olvabile pentru adaptarea ponderilor le0#turilor reelei neuronale% !e aceia& deseori se reco,and# 1olosirea acestei ar"itecturi doar pentru recunoaterea nu,ai a , i,a0ini di1erite& 1iec#rei atribuindu8i o ieire unic# nu,ai la ie irea unui ele,ent A Hie irile celorlali /n acelai ti,p trebuie s# pri,easc# valoarea -1 pentru neuroni bipolari i valoarea C 7 pentru cei binariI%

Fi'ur$ K)E 8 Reea neuronal# din m ele,ente% Reeaua neuronal# pe un sin0ur strat cu neuroni binari& ilustrat# /n Ci0ura <%9 & poate 1i /nv#at# cu a2utorul unui al0orit, ba-at pe re0ula Hebb% +n acest ca- se nu,ete reea Hebb% Colosirea /n denu,irea re elei al0orit,ul de /nv#are este caracteristic pentru teoria re elelor neuronale% 3entru pre-entarea bipolar# a se,nalelor este posibil# /nv# area reelei neuronale cu a2utorul ur,#torului al0orit, 6 Iasul 3% Se d# ,uli,ea M 3 e0511 t12181 05"1 t"2f1 care const# din perec"i Hi,a0inea de intrare 5B 3 051B1 5nB21 se,nalul necesar de ieire al neuronului tB1 B 31))") Se iniia-# ponderile neuronului6

Iasul 4. Ciecare perec"e )5B1 tB21 se veri1ic# la corectitudinea reaciei reelei neuronale la i,a0inea de intrare% !ac# vectorul de ie ire pri,it al reelei 0.1B1 )))1 ."B21 se deosebete de cel iniial t1 3 0t1B1 t"B21 atunci /ndeplini, paii * 7 @%

Iasul J. Se iniia-# ,uli,ea de intrar# a neuronilor6 IC 3 11 I% 3 I%B1 % 3 1 )) n) Iasul K. Se iniia-# se,nalele de ieire ale neuronilor6 .i 3 tiB1 i 3 C))") Iasul E. Se corectea-# ponderile le0#turilor neuronilor dup# re0ula6

Iasul L% Se veri1ic# condiia de stopare& adic# corectitudinea 1unc ion#rii reelelor la pre-entarea 1iec#rei i,a0ini de intrare% !ac# condi iile nu se /ndeplinesc& atunci trece, la pasul B al al0orit,ului& alt1el 7 se s1.resc calculele Htrece, la pasul QI% Iasul M. Stopare

PARTEA ,: D s9*ur$r $ &ucr*rii )% Elaborai structura reelei Hebb& care va 1i capabil# s# recunoasc# 9 litere di1erite ale nu,elui i prenu,elui d8voastr# i ,otiva i ale0erea6 nu,#rului de receptori ai neuronilor Hnu,#rul n de ele,ente ale reelei trebuie s# 1ie /n li,itele )' i n i *(IG nu,#rului de neuroni de ieireG ale0erea vectorului de se,nale de ieire% '% Elaborai al0orit,ul i pro0ra,ul de ,odelare al reelei Hebb% +n al0orit, nu,aidec.t luai /n considerare posibilitatea apariiei situa iei cu proble,e nere-olvabile la adaptarea ponderilor le0#turilor /n reeaua neuronal#% *% +nv#ai reeaua neuronal# Hebb recunoaterii a 9 caractere date% 9% 3re-entai un set d si,boluri de intrare i se,nale de ie ire dorite& c.nd /n reea apare situaia cu prole,e nere-olvabile de adaptare a ponderilor le0#turilor% @% Se va pre-enta darea de sea,# %

BIBLIOGRAFIE
C*ri: A% Clorea& A% :oan0iu% Ele,ente de Ineli0ena Arti1icial#% A% Clorea% :a-ele lo0ice ale Inteli0entei Arti1iciale% Cap% 9& ?% A% Clorea& :% !oro"onceanu& C% Crancu% 3ro0ra,are in 3rolo0%

Artico& on-&in : Turin0& A%M %Co,putin0 Mac"inerL and Intelli0ence&% Mind& @<& )<@(& 9**89?(% AIjs Breatest Trends and Controversies& IEEE Intelli0ent SLste,s UanuarLRCebruarL '(((% Marvin Mins=L% A Cra,eXor= 1or Representin0 cnoXled0e& MIT8AI aboratorL Me,o *(?& Uune& )<>9% U% Austin 8 HoX to do t"in0s Xit" Xords& )<?'& U% Searle 8 Speec" acts& )<?<

ANE5A 1 MEDIUL GNU PROLOG Introduc r BNU 3rolo0 este un co,pilator 3rolo0 0ratuit& de-voltat de !aniel !ia-% BNU 3rolo0 repre-int# un co,pilator ba-at pe ,a ina abstract# karren HkAMI% BNU 3rolo0& ,ai /nt.i& co,pilea-# pro0ra,ul /ntr8un 1iier kAM& care ,ai apoi este translat /n li,ba2ul mini/assembl5. care a 1ost elaborat special pentru BNU 3rolo0% Ci ierul ob inut este la 1el translat& /ns# de2a /n li,ba2ul asse,bler speci1ic sta iei pe care rulea-#% Acest 1apt per,ite BNU 3rolo0 s# produc# un e4ecutabil nativ& independent dintr8un 1iier surs# 3rolo0 H%pl& %proI% Avanta2ul principal acestei sc"e,e de co,pilare este producerea codului nativ i vite-a de co,pilare% O alt# caracteristic# este c# e4ecutabilele sunt de di,ensiune ,ic#% Caracteristicile 90- Prolog" este con1or, standardului ISO pentru 3rolo0G posed# e4tensii ca6 variabile 0lobale& soc=ets A3I& OS A3I& suport pentru 0ra,atica !C& etcG peste *(( de predicate 3rolo0 prede1initeG 3rolo0 debu00er i kAM debu00er de nivel 2osG 1acilitatea de editare a liniilor de cod prin inter,ediul interpretatorului interactivG inter1a# bidirecional# /ntre 3rolo0 i CG 0enerarea direct# de cod asse,bler de )@ ori ,ai rapid# dec.t /n 2amcc R gcc+

Int rpr t$toru& GNU Pro&o' BNU 3rolo0 o1er# dou# posibilit#i de e4ecutare a pro0ra,elor6 interpretarea lor& utili-.nd interpretatorul interactiv BNU 3rolo0G co,pilarea lor& utili-.nd co,pilatorul BNU 3rolo0%

Rularea pro0ra,ului /n cadrul interpretatorului per,ite utili-atorului vi-uali-area i depanarea codului% Co,pilarea pro0ra,elor /n cod nativ& per,ite producerea e4ecutabilelor de di,ensiune ,ic# i vite-# de e4ecuie opti,i-at#% Rularea unui pro0ra, co,pilat e de *8@ ori ,ai rapid# dec.t rularea unui pro0ra, interpretat% +ns#& nu e posibil de depanat pro0ra,ul precu, per,ite aceasta interpretatorul i nici de vi-uali-at codul surs#% !e re0ul#& se reco,and# rularea pro0ra,ului utili-.nd interpretatorul pe durata de-volt#rii lui& per,i .nd ast1el depanarea u oar#% Apoi& produsul 1inal ur,ea-# a 1i co,pilat /n cod nativ& pentru a produce un e4ecutabil autono,% L$ns$r $O!nc:id r $ int rpr t$toru&ui BNU 3rolo0 o1er# un interpretator interactiv 3rolo0 clasic nu,it top/le&el% Acesta per,ite utili-atorului s# e4ecute intero0#ri& s# consulte un pro0ra, 3rolo0& s#8l vi-uali-e-e i s#8l depane-e% Top/le&el poate 1i invocat utili-.nd ur,#toarea co,and# din ter,inal6 T .p$"l". [QBT!Q3]V Opiuni: 88init80oal 9SAL e4ecut# scopul /nainte s# intre /n top/le&el 88consult81ile FIL consult# 1iierul /n cadrul top/le&el 88entrL80oal 9SAL e4ecut# scopul /n cadrul top/le&el 88luerL80oal 9SAL e4ecut# scopul drept intero0are pentru top/le&el

88"elp 88version 88

a1iea-# co,en-ile disponibile a1iea-# nu,#rul versiunii curente evit# parsarea liniei curente

Rolul principal al co,en-ii 0prolo0 este s# e4ecute /ns#i interpretatorul& cu alte cuvinte& s# e4ecute predicatul prede1init topTlevelR( care va produce ur,#torul lucru6 BNU 3rolo0 )%9%( :L !aniel !iaCopLri0"t HCI )<<<8'()' !aniel !ia| H1

Interpretatorul este pre0#tit s# e4ecute intero0#rile prestate de utili-ator% 3entru a p#r#si interpretatorul e nevoie de tastat secven a de taste pentru end/of/file HCtrl8!I sau aliasul s#u endTo1T1ile% a 1el e posibil de 1olosit predicatul prede1init "altR( Hci1ra de dup# 5RM indic# nu,#rul de ar0u,ente a predicatuluiI% Cic&u& int r$ctiH d citir - I cui -$9i$r $& int rpr t$toru&ui BNU 3rolo0 top/le&el se ba-ea-# pe un ciclu interactiv de citire8e4ecu ie8 a1iare care per,ite re8e4ecut#ri dup# cu, ur,ea-#6 a1iarea pro,pt mW N8m% citirea unei intero0#ri e4ecutarea intero0#rii /n ca- de succes se a1iea-# valorile variabilelor din intero0are

dac# ,ai r#,.n alternative Hcu alte cuvinte intero0area nu este deter,inist#I& se a1iea-# T unde utili-atorul poate interveni cu una din co,en-ile disponibile6 RETURN pentru a stopa e4ecu ia& G pentru a esti,a ur,#toarea soluie sau a pentru esti,area tuturor solu iilor r#,ase% Mai 2os este pre-entat un e4e,plu de e4ecuie a unei intero0#ri H0#se te

listele ? i U /n aa ,od /nc.t concatenarea lor s# 1ie Va.b.cWI6 | H1 append(X,Y,[a,b,c]). X = [] Y = [a,b,c] H < Haici utili-atorul tastea-# jGj ca s# esti,e-e o soluieI X = [a] Y = [b,c] H a Haici utili-atorul tastea-# jaj ca s# esti,e-e toate soluiile r#,aseI X = [a,b] Y = [c] Haici utili-atorul nu ,ai este intero0at i soluia ur,#toare este esti,at# auto,atI X = [a,b,c] Y = [] Haici utili-atorul nu ,ai este intero0at i soluia ur,#toare este esti,at# auto,atI no Hnu ,ai sunt soluiiI

qnc*rc$r $ unui pro'r$" Pro&o' Interpretatorul per,ite utili-atorului s# /ncarce 1i iere surs# 3rolo0% 3redicatele /nc#rcate pot 1i vi-uali-ate& e4ecutate i depanate& /n ti,p ce cele co,pilate 7 nu% 3entru a /nc#rca /n ,e,orie un pro0ra, 3rolo0&

utili-#, predicatul prede1init consultR) ar0u,entul c#reia este calea relativ# sau absolut# c#tre 1iierul ce con ine pro0ra,ul 3rolo0% Aceasta per,ite utili-atorului s# introduc# predicatele direct /n ter,inal% O scurt#tur# pentru apelul consultH FIL I este [FIL \& de e4e,plu ur,#toarele sunt ec"ivalente6 | H1 c"ns'lt('L0We:a*ple.p$"'). | H1 ['L0We:a*ple.p$"']. C.nd predicatul consultR) este invocat asupra unui 1i ier surs#& BNU 3rolo0 /nt.i co,pilea-# acest 1iier pentru a 0enera un 1i ier kAM te,porar% !ac# co,pilarea nu euea-#& pro0ra,ul se /ncarc# /n ,e,oria calculatorului utili-.nd predicatul loadR)% Pr dic$t d d p*n$r $ pro'r$" &or 3redicatul t$aceM0 activea-# re0i,ul de depanare al interpretatorului% Orice ur,#toare invocare de predicate va 1i depanat#% 3redicatul deb'.M0 activea-# re0i,ul de depanare al interpretatorului% !oar ur,#toarea invocare a careva predicat va 1i depanat#% 3redicatul deb'..in.M0 a1iea-# /n ter,inal in1or,aii de depanare re1eritoare la starea curent#% 3redicatele notraceR( i nodebu0R( de-activea-# re0i,ul de depanare% 3redicatul Xa,Tdebu0R( invoc# re0i,ul de depanare speci1ic structurilor de date kAM% Acest re0i, la 1el ,ai poate 1i invocat utili-.nd co,anda k% Pr dic$t pr d 9init !n Pro&o' Speratorii de unificare"

(=)M2 7 operatorul de uni1icare /n 3rolo0 Te$*1 = Te$*2 (W=)M2 7 operatorul care veri1ic# dac# operatorii nu pot 1i uni1ica i Te$*1 W= Te$*2 Speratorii de comparare general a termenilor :n 90- Prolog" (==)M2 7 operatorul de e0alitate (W==)M2 7 operatorul di1erit de (XC)M2 7 operatorul ,ai ,ic ca (X=C)M2 7 operatorul ,ai ,ic sau e0al cu (XD)M2 7 operatorul ,ai ,are ca (XD=)M2 7 operatorul ,ai ,are sau e0al cu Speratorii aritmetici :n 90- Prolog" (=0=)M2 7 operatorul de e0alitate (=W=)M2 7 operatorul di1erit de (C)M2 7 operatorul ,ai ,ic ca (=C)M2 7 operatorul ,ai ,ic sau e0al cu (D)M2 7 operatorul ,ai ,are ca (D=)M2 7 operatorul ,ai ,are sau e0al cu (is)M2 7 evaluarea unei e4presii arit,etice& de e4e,plu6 Result is E4pression) Q E4pression' Predicatele de prelucrare a listelor" appendM3

append(?ist1, ?ist2, ?ist12) 7 concatenea-# lista ?ist1 i lista ?ist2 /n ?ist12.

*e*be$M2

*e*be$(Ale*ent, ?istI 7 veri1ic# dac# ele,entul Ele,ent aparine listei ?ist.


$e@e$seM2

$e@e$se(?ist1, ?ist2) 7 inversea-# lista ?ist1 /n ?ist2.


deleteM3

delete(?ist1, Ale*ent, ?ist2) 7 eli,in# toate apariiile a Ele,ent /n lista ?ist1 /n cadrul listei ?ist2.
p$efi:M2

p$efi:(B$efi:, ?ist) 7 veri1ic# dac# lista B$efi: este pre1i4ul listei ?ist.
s'ffi:M2

s'ffi:(8'ffi:, ?ist) 7 veri1ic# dac# lista 8'ffi: este su1i4ul listei ?ist.
s'blistM2

s'blist(?ist1, ?ist2) 7 veri1ic# dac# /n lista ?ist1 toate


ele,entele apar /n aceeai ordine ca i /n ?ist2%

lastM2 last(?ist, Ale*ent) 7 veri1ic# dac# ele,entul Ale*ent este ulti,ul /n cadrul listei ?ist% len.tEM2 len.tE(?ist, ?en.tE) 7 esti,ea-# lun0i,ea listei ?ist /n ?en.tE. s"$tM2 s"$t(?ist1, ?ist2) 7 sortea-# lista ?ist1 /n cadrul listei

?ist2 Hele,entele duplicate sunt eli,inateI% *s"$tM2 *s"$t(?ist1, ?ist2) 7 sortea-# lista ?ist1 /n cadrul listei ?ist2 Hele,entele duplicate nu sunt eli,inateI% ntEM3 ntE(3, ?ist, Ale*ent) 7 returnea-# al N8lea ele,ent din lista ?ist /n Ale*ent% *in_listM2 *in_list(?ist, #in) 7 returnea-# ele,entul ,ini,al din lista ?ist /n #in% *a:_listM2 *a:_list(?ist, #a:) 7 returnea-# ele,entul ,a4i,al din lista
ist /n Ma4%

s'*_listM2 s'*_list(?ist, ?ist /n 8'*%

8'*) 7 returnea-# su,a ele,entelor listei

ANE5A ,

Codu& surs* $& pro'r$"u&ui1 c$r r $&i4 $4* o r $ n uron$&* G$""in' !n &i"#$%u& d pro'r$"$r CUU)
Yincl'de Ci"st$ea*.ED Yincl'de Cst$in..ED Ydefine t$'e 1 Ydefine false 0 usi#g #amespace std1 class He**in. 2 p$i@ate: fl"at* Zin1 fl"at* Z"'t1 fl"at** J1 int 31 int #1 int* s1 fl"at e1 fl"at b1 fl"at G1 @"id !nitZin !1 @"id !nitZ"'t !1 fl"at . fl"at :!1 b""l L"*pa$e fl"at* @1, fl"at* @2!1 p'blic: int Pet%ect"$?en.tE !1 MM$et'$ns !*a.e's len.tE int PetAtal"nsL"'nt !1MM $et'$ns Atal"n c"'nt @"id 8et!*a.e int* i*a.e!1MM 8et $ec".ni;in. !*a.e's @ect"$ @"id 8etAtal"ns int** i*a.es!1MM set etal"ns @"id He**in.::Uinal int* $e;'lt, int 3c"'nte$!1MM $ec".ni;e !*a.e He**in. int n,int *!1 He**in. He**in.3 Ee**in.!1

4He**in. !1 51 @"id He**in.::!nitZin ! 2 int i,-1 for i - 01 i 6 31 i77! 2 fl"at te*p - 01 for - - 01 - 6 #1 -77! te*p 7- s%-) * J%-)%i)1 Zin%i) - te*p1 5 5 @"id He**in.::!nitZ"'t ! 2 int i1 for i - 01 i 6 31 i77! Z"'t%i) - Zin%i) * G1 5 fl"at He**in.::. fl"at :! 2 retur# : 6 0 8 0 : :1 5 b""l He**in.::L"*pa$e fl"at* @1, fl"at* @2! 2 int i1 for i - 01 i 6 31 i77! if @1%i) 9- @2%i)! retur# false1 retur# true1 5 int He**in.::Pet%ect"$?en.tE !2 retur# 315 int He**in.::PetAtal"nsL"'nt !2 retur# #15 @"id He**in.::8et!*a.e int* i*a.e! 2 int i1 for i-01 i6#1 i77! s%i)- i*a.e%i)1 5 @"id He**in.::8etAtal"ns int** i*a.es! 2 int i,-1 for i - 01 i 6 #1 i77! for - - 01 - 631 -77! J%i)%-) - fl"at!i*a.es%-)%i) / 21 5 @"id He**in.::Uinal int* $e;'lt, int 3c"'nte$! 2 !nitZin !1 !nitZ"'t !1 int i,-1 :;ile 9L"*pa$e Zin, Z"'t!!

for i-01 i631 i77! Zin%i)-Z"'t%i)1 for i - 01 i 6 31 i77! 2 MMZ"'t[i] = .(Zin[i] 1 e * (Zin.JEe$e(($, inde:) =D inde: [= i).8'*()))< fl"at te*p-01 for --01 -631 -77! if i9--! te*p7-Zin%-)1 Z"'t%i) - . Zin%i) < e*te*p!1 5 5 int *a: - 01 for i - 11 i 6 31 i77! if Z"'t%*a:) 6 Zin%i)! *a: - i1 c"'nte$ - 01 for i-*a:1 i631 i77! if Z"'t%*a:)--Z"'t%i)! 2 $e;'lt%c"'nte$)-i1 c"'nte$771 5 5 He**in.::He**in. int n,int *! 2 3-n1 #-*1 b - # / 21 e - 1 / 31 G - 0.11 s- #e: int%#)1 Zin - #e: fl"at%3)1 Z"'t - #e: fl"at%3)1 J- #e: fl"at*%#)1 for int i-01 i6#1 i77! J%i) - #e: fl"at%3)1 5 He**in.::He**in. He**in.3 Ee**in.! 2 3-Ee**in.,31 #-Ee**in.,#1 b - # / 21 e - 1 / 31 G - 0.11 int i1 s- #e: int%3)1 Zin - #e: fl"at%3)1 Z"'t - #e: fl"at%3)1 J- #e: fl"at*%#)1

for

i-01 i6#1 i77! J%i) - #e: fl"at%3)1 for i-01 i631 i77! 2 s%i) - Ee**in.,s%i)1 Zin%i)-Ee**in.,Zin%i)1 Z"'t%i)-Ee**in.,Z"'t%i)1 5 int -1 for i-01 i6#1 i77! for --01 -631 -77! J%i)%-) - Ee**in.,J%i)%-)1 5 He**in.::4He**in. ! 2 if s9-=>LL! delete s1 if Zin9-=>LL! delete Zin1 if Z"'t9-=>LL! delete Z"'t1 if J9-=>LL! 2 for int i-01 i6#1 i77! if J%i)9-=>LL! delete J%i)1 delete J1 5 5 int _t*ain int a$.c, _TLHR9* a$.@%)! 2 int $e;'lt%+)1 int n,*,i,-1 n-+1 *->1 int etal"ns%+)%>) 2 2 <1, 1, <1, <1, 1, <1, <1, 1, <1 5, 2 1, 1, 1, 1, <1, 1, 1, <1, 1 5, 2 1, <1, 1, 1, 1, 1, 1, <1, 1 5, 2 1, 1, 1, 1, <1, <1, 1, <1, <1 5, 2 <1, <1, <1, <1, 1, <1, <1, <1, <1 5 51 int** etal"nBt- #e: int* %+)1 for i -01 i6+1 i77! etal"nBt%i)-#e: int%>)1 for i-01 i6+1 i77! for --01 -6>1 -77! etal"nBt%i)%-) - etal"ns%i)%-)1 int s%>)- 2<1,<1,1,1,1,1,1,<1,151 MMs3=\11,11,11,1,11,11,11,1,11]< He**in. E n,*!1 E,8etAtal"ns etal"nBt!1 E,8et!*a.e s!1

int c"'nte$1 E,Uinal $e;'lt,c"'nte$!1 c"'t66^#acEed i*a.e inde:es0 ^66endl1 for i-01 i6c"'nte$1 i77! c"'t66$e;'lt%i)66^,^1 c"'t66endl1 cEa$ c1 cin??c1 for i -01 i6+1 i77! delete etal"nBt%i)1 delete etal"nBt1 retur# 01 5

ANE5A 7

Codu& surs* $& pro'r$"u&ui c$r r $&i4 $4* r $u$ n uron$&* G$""in'1 !n &i"#$%u& d pro'r$"$r Cr) C&$s$ n uronu&ui:
usi#g 8/ste*1 usi#g 8/ste*,L"llecti"ns,Pene$ic1 usi#g 8/ste*,?in_1 usi#g 8/ste*,Te:t1 #amespace Blia_!nte$face 2 public class 3e2$"ns 2 protected int _* - >1 protected int _n1 public 3e2$"ns int n, int *! 2 _* - *1 _n - n1 b - * / 21 e - 1 / _n1 G - 0.11 5 private d"'ble b1 private d"'ble e1 private sb/te%)%) etal"ns1 public sb/te%)%) Atal"ns 2 .et 2 retur# etal"ns1 5 set 2 if @al'e,Pet?en.tE 0! 9- _n ** @al'e,Rn/ @ -? @,?en.tE 9- _*!! t;ro: #e: R$.'*entA:cepti"n ^J$"n. si;e "f @ect"$^!1 etal"ns - @al'e1 !nitJ !1 5 5 private d"'ble%,) J1 private d"'ble%) Zin1 private d"'ble%) Z"'t1 private sb/te%) _s1

public sb/te%) 8 2 .et 2 retur# _s1 5 set 2 if @al'e,?en.tE 9- _*! t;ro: #e: R$.'*entA:cepti"n ^J$"n. @ect"$ si;e^!1 _s - @al'e1 5 5 private d"'ble G1 protected @"id !nitJ ! 2 J - #e: d"'ble%_*, _n)1 for int i - 01 i 6 J,Pet?en.tE 0!1 i77! for int - - 01 - 6 J,Pet?en.tE 1!1 -77! J%i, -) - d"'ble!etal"ns%-)%i) / 21 5 protected @"id !nitZin ! 2 Zin - #e: d"'ble%_n)1 for int i - 01 i 6 _n1 i77! 2 d"'ble te*p - 01 for int - - 01 - 6 _*1 -77! te*p 7- _s%-) * J%-, i)1 Zin%i) - te*p1 5 5 protected @"id !nitZ"'t ! 2 Z"'t - #e: d"'ble%_n)1 for int i - 01 i 6 _n1 i77! Z"'t%i) - Zin%i) * G1 5 protected d"'ble . d"'ble :! 2 retur# : 6 0 8 0 : :1 5 private b""l L"*pa$e d"'ble%) @1, d"'ble%) @2! 2 if @1,?en.tE 9- @2,?en.tE! retur# false1 for int i - 01 i 6 @1,?en.tE1 i77! if @1%i) 9- @2%i)! retur# false1 retur# true1 5 public ?ist6int? Uinal ! 2 !nitZin !1 !nitZ"'t !1

:;ile 9L"*pa$e Zin, Z"'t!! 2 R$$a/,L"p/ Z"'t, Zin, Z"'t,?en.tE!1 for int i - 01 i 6 Z"'t,?en.tE1 i77! Z"'t%i) - . Zin%i) < e * Zin,JEe$e $, inde:! -? inde: 9- i!,8'* !!!1 5 int *a: - 01 for int i - 11 i 6 Z"'t,?en.tE1 i77! if Z"'t%*a:) 6 Zin%i)! *a: - i1 retur# Z"'t,8elect ', inde:! -? #e: 2 Z - ', !nde: - inde: 5!,JEe$e ' -? ',Z -- Z"'t%*a:)!,8elect ' -? ',!nde:!,T"?ist !1 5 5 5

C&$s$ co& ci i d $#&o$n :


usi#g 8/ste*1 usi#g 8/ste*,L"llecti"ns,Pene$ic1 usi#g 8/ste*,?in_1 usi#g 8/ste*,Te:t1 usi#g 8/ste*,9'nti*e,8e$iali;ati"n,U"$*atte$s,`ina$/1 usi#g 8/ste*,!Q1 #amespace Blia_!nte$face 2 %8e$iali;able) public class 8/*b"l 2 public st$in. 3a*e 2 .et1 set1 5 public sb/te%) %ect"$ 2 .et1 set1 5 5 %8e$iali;able) public class 8/*b"lL"llecti"n 2 public 8/*b"lL"llecti"n ! 2 _s/*b"ls - #e: ?ist68/*b"l? !1 _n-01 _*-01 5 private ?ist68/*b"l? _s/*b"ls1 public ?ist68/*b"l? 8/*b"ls 2 .et 2 retur# _s/*b"ls1 5 set 2 _s/*b"ls - @al'e1 5 5 private int _n, _*1

public int 3 2 .et 2 retur# _n1 5 set 2 _n - @al'e1 _s/*b"ls,Llea$ !1 5 5 public int # 2 .et 2 retur# _*1 5 set 2 _* - @al'e1 _s/*b"ls,Llea$ !1 5 5 public sb/te%)%) Pet%ect"$s ! 2 retur# _s/*b"ls,8elect s -? s,%ect"$!,T"R$$a/ !1 5 public @"id Rdd8/*b"l 8/*b"l s! 2 if s,%ect"$,?en.tE 9- _n * _*! t;ro: #e: R$.'*entA:cepti"n !1 5 private static st$in. patE - ^data.dat^1 public @"id ?a;/!nit ! 2 _n - 31 _* - 31 @a$ etal"ns - #e: sb/te%+)%)1 etal"ns%0) - #e: sb/te%>) 2 <1, 1, <1, <1, 1, <1, <1, 1, <1 51 etal"ns%1) - #e: sb/te%>) 2 1, 1, 1, 1, <1, 1, 1, <1, 1 51 etal"ns%2) - #e: sb/te%>) 2 1, <1, 1, 1, 1, 1, 1, <1, 1 51 etal"ns%3) - #e: sb/te%>) 2 1, 1, 1, 1, <1, <1, 1, <1, <1 51 etal"ns%4) - #e: sb/te%>) 2 <1, <1, <1, <1, 1, <1, <1, <1, <1 51 for int i - 01 i 6 etal"ns,?en.tE1 i77! _s/*b"ls,Rdd #e: 8/*b"l ! 2 3a*e - i,T"8t$in. !,

%ect"$ - etal"ns%i) 5!1 5 public static 8/*b"lL"llecti"n ?"ad ! 2 `ina$/U"$*atte$ se$iali;e$ - #e: `ina$/U"$*atte$ !1 @a$ file - Uile,Qpen patE, Uile#"de,Qpen!1 @a$ $es'lt 8/*b"lL"llecti"n!se$iali;e$,5ese$iali;e file!1 retur# $es'lt1 5 public static @"id 8a@e 8/*b"lL"llecti"n c"llecti"n! 2 `ina$/U"$*atte$ se$iali;e$ - #e: `ina$/U"$*atte$ !1 @a$ file - Uile,L$eate patE!1 se$iali;e$,8e$iali;e file, c"llecti"n!1 5 5 5

C&$s$ d r d$ct$r $ & " nt &or:


usi#g 8/ste*1 usi#g 8/ste*,L"llecti"ns,Pene$ic1 usi#g 8/ste*,?in_1 usi#g 8/ste*,Te:t1 usi#g 8/ste*,Jind"2s,L"nt$"ls1 usi#g 8/ste*,Jind"2s,!np't1 usi#g 8/ste*,Jind"2s1 usi#g 8/ste*,Jind"2s,8Eapes1 usi#g 8/ste*,Jind"2s,#edia1 #amespace Blia_!nte$face 2 public class 8/*b"lAdit"$ 2 private int _n, _*1 private P$id _.$id1 private 8"lidL"l"$`$'sE selected1 private 8"lidL"l"$`$'sE deselected1 private ?inea$P$adient`$'sE E/li.Eted1 private 9ectan.le *asG1 public 8/*b"lAdit"$ int n, int *, P$id .$id! 2 _n - n1 _* - *1 _.$id - .$id1 Y$e.i"n Uit'$e !nitiali;ati"n _.$id,8E"2P$id?ines - true1 selected - #e: 8"lidL"l"$`$'sE L"l"$s,5a$G`l'e!1 deselected - #e: 8"lidL"l"$`$'sE L"l"$s,Rnti_'eJEite!1

E/li.Eted - #e: ?inea$P$adient`$'sE L"l"$s,R;'$e, L"l"$s,L$i*s"n, 0.+!1 *asG - #e: 9ectan.le !1 *asG,Uill - E/li.Eted1 *asG,9adi'sX - +1 *asG,9adi'sY - +1 *asG,Qpacit/ - 0.3+1 *asG,%isibilit/ - %isibilit/,%isible1 Yend$e.i"n !nitP$id !1 5 protected @"id !nitP$id ! 2 _.$id,LEild$en,Llea$ !1 _.$id,9"25efiniti"ns,Llea$ !1 _.$id,L"l'*n5efiniti"ns,Llea$ !1 for int i - 01 i 6 _n1 i77! 2 @a$ $"2 - #e: 9"25efiniti"n !1 _.$id,9"25efiniti"ns,Rdd $"2!1 5 for int - - 01 - 6 _*1 -77! 2 @a$ c"l'*n - #e: L"l'*n5efiniti"n !1 MMc"l'*n.JidtE = ne2 P$id?en.tE(0, P$idZnitT/pe.8ta$)< _.$id,L"l'*n5efiniti"ns,Rdd c"l'*n!1 5 for int i - 01 i 6 _n1 i77! 2 for int - - 01 - 6 _*1 -77! 2 @a$ panel - #e: 8tacGBanel !1 panel,`acG.$"'nd - deselected1 panel,8et%al'e P$id,9"2B$"pe$t/, i!1 panel,8et%al'e P$id,L"l'*nB$"pe$t/, -!1 panel,#"'seAnte$ 7- #e: #"'seA@entHandle$ Lan@as_#"'seAnte$!1 panel,#"'se?ea@e 7- #e: #"'seA@entHandle$ Lan@as_#"'se?ea@e!1 _.$id,LEild$en,Rdd panel!1 5 5 _.$id,#"'se5"2n 7- #e: #"'se`'tt"nA@entHandle$ #/P$id_#"'se5"2n!1 5 public sb/te%) Pet%ect"$ ! 2 @a$ panels - _.$id,LEild$en,QfT/pe68tacGBanel? !

,8elect p -? p,`acG.$"'nd -- selected 8 sb/te!<1 if

sb/te!1 :

!,T"R$$a/ !1 panels,?en.tE 6 _n * _*! t;ro: #e: A:cepti"n ^8"*etEin. 2$"n. Ee$e^!1 retur# panels1 5 public @"id Rppl/%ect"$ sb/te%) @! 2 if @,?en.tE 9- _n * _*! t;ro: #e: R$.'*entA:cepti"n ^a$.'*ent si;e is n"t *'cE t" tEe .$id^!1 @a$ panels _.$id,LEild$en,QfT/pe68tacGBanel? !1 for int i - 01 i 6 @,?en.tE1 i77! 2 @a$ panel - panels,8in.le p -? int!p,Pet%al'e P$id,9"2B$"pe$t/! * _* 7 int!p,Pet%al'e P$id,L"l'*nB$"pe$t/!! -- i!1 if @%i) -- 1! panel,`acG.$"'nd - selected1 else panel,`acG.$"'nd - deselected1 5 5 Y$e.i"n P'i A@ent Hendle$s private @"id s2itcEL"l"$ 8tacGBanel can@! 2 if can@,`acG.$"'nd,A_'als selected!! can@,`acG.$"'nd - deselected1 else can@,`acG.$"'nd - selected1 5 private @"id Lan@as_#"'seAnte$ ob$ect sende$, #"'seA@entR$.s e! 2 if 9 e,Q$i.inal8"'$ce is 8tacGBanel!! retur#1 @a$ can@ - 8tacGBanel!e,Q$i.inal8"'$ce1 *asG,JidtE - can@,Rct'alJidtE1 *asG,Hei.Et - can@,Rct'alHei.Et1 if e,?eft`'tt"n -- #"'se`'tt"n8tate,B$essed! s2itcEL"l"$ can@!1 can@,LEild$en,Rdd *asG!1 5 private @"id Lan@as_#"'se?ea@e ob$ect sende$, #"'seA@entR$.s e!

if 9 e,Q$i.inal8"'$ce is 8tacGBanel!! retur#1 @a$ can@ - 8tacGBanel!e,Q$i.inal8"'$ce1 can@,LEild$en,9e*"@e *asG!1

5 private @"id #/P$id_#"'se5"2n ob$ect sende$, #"'se`'tt"nA@entR$.s e! 2 if e,Q$i.inal8"'$ce 9- *asG! retur#1 @a$ can@ - *asG,Ba$ent as 8tacGBanel1 if can@ -- #ull! retur#1 s2itcEL"l"$ can@!1 5 Yend$e.i"n 5 5

S-ar putea să vă placă și