Académique Documents
Professionnel Documents
Culture Documents
al Republicii Moldova
UNIVERSITATEA TEHNIC A MOLDOVEI
Catedra Tehnologii Informaionale Aplicate
ndrumar de laborator
Redactor responsabil
Recenzent -
U.T.M., 2013
Cuprins:
CAPITOL I........................................................................................5
LUCRAREA DE LABORATOR 1................................................5
Introducere n Limbajul Prolog.........................................................5
PARTEA 1: Noiuni Teoretice.......................................................5
1.1 Entitile limbajului PROLOG............................................5
Observaii:...............................................................................13
Observaii:...............................................................................16
PARTEA 2: Desfurarea lucrrii................................................19
LUCRAREA DE LABORATOR 2..............................................20
Mecanisme de control al procesului de backtracking.....................20
PARTEA 1: Noiuni Teoretice.....................................................20
PARTEA 2: Desfurarea lucrrii................................................27
LUCRAREA DE LABORATOR 3..............................................29
Structuri de date n Prolog...............................................................29
PARTEA 1: Noiuni Teoretice.....................................................29
3.1. Listele n Prolog.............................................................29
3.2 Exemple de utilizare..........................................................31
PARTEA 2: Desfurarea lucrrii................................................35
CAPITOL II.....................................................................................38
Exemple i Probleme n Limbajul Prolog.......................................38
LUCRAREA DE LABORATOR 4..............................................38
Sisteme Expert.................................................................................38
PARTEA 1: Noiuni Teoretice.....................................................38
4.1 Scopul i structura general a sistemelor expert...............38
4.2 Determinarea rezultatului (rspunsului) expert.................39
4.3 Sistem Expert, bazat pe reguli i realizarea lui.................40
4.4 Sistem Expert bazat pe logic i realizarea lui..................43
PARTEA 2: Desfurarea lucrrii................................................47
LUCRAREA DE LABORATOR 5..............................................49
Prelucrarea Limbajului Natural.......................................................49
PARTEA 1: Noiuni Teoretice.....................................................49
5. 1 Prelucrarea Limbajului Natural........................................49
5.2 Modele de analiz sintactic a propoziiilor......................56
PARTEA 2: Desfurarea lucrrii..................................................1
LUCRAREA DE LABORATOR 6................................................2
Algoritmi de recunoatere.................................................................2
PARTEA 1: Noiuni Teoretice.......................................................2
PARTEA 2: Desfurarea lucrrii..................................................8
LUCRAREA DE LABORATOR 7................................................9
Algoritmi de recunoatere a imaginilor.............................................9
PARTEA 1: Noiuni Teoretice.......................................................9
7.1 Recunoatere n dependen de unghiul dintre vectori......11
7.2 Recunoaterea imaginilor dup produsul lor scalar...........12
7.3 Recunoaterea imaginilor dup apartenena acestora la o
zon de spaiu dat...................................................................13
PARTEA 2: Desfurarea lucrrii................................................16
LUCRAREA DE LABORATOR 8..............................................17
Reelele Neuronale Hamming.........................................................17
PARTEA 1: Noiuni Teoretice.....................................................17
PARTEA 2: Desfurarea lucrrii................................................30
LUCRAREA DE LABORATOR 9..............................................31
Reelele Neuronale Hebb.................................................................31
PARTEA 1: Noiuni Teoretice.....................................................31
9.1 Neuroni formali ai reelelor neuronale artificiale..............31
9.2 Rezolvarea problemelor pe baz de neuroni independeni.
Regula Hebb............................................................................37
9.3 Reeaua neuronal Hebb....................................................45
PARTEA 2: Desfurarea lucrrii................................................48
BIBLIOGRAFIE.............................................................................49
ANEXA 1........................................................................................50
ANEXA 2........................................................................................58
ANEXA 3........................................................................................63
CAPITOL I
LUCRAREA DE LABORATOR 1
1.1.1 Fapte
Exemple:
Fapt: Aritate:
cine(bobi). 1
place(ion, ioana). 2
place(ion, ana). 2
frumoas(ana). 1
bun(daniel). 1
deplaseaz(cub, camera1, camera2). 3
Interpretarea particular a predicatului i a argumentelor acestuia
depinde de programator. Ordinea argumentelor este important, i odat
fixat trebuie pstrat pentru orice utilizare ulterioar a faptului cu aceeai
semnificaie. Mulimea faptelor i regulilor unui program Prolog
formeaz baza de cunotine Prolog.
1.1.2 Scopuri
Exemple:
?- caine(CineEste).
CineEste = bobi
?- deplaseaza(Ce, DeUnde, Unde).
Ce = cub, DeUnde = camera1, Unde = camera2
?- deplaseaza(Ce, Aici, Aici).
No
Exemple:
?- place(ion, X).
X = ioana;
X = ana;
no
1.1.3 Reguli
O regul Prolog exprim un fapt care depinde de alte fapte i
are forma:
S :- S1, S2, Sn.
Fiecare Si, i =1,n i S au forma faptelor Prolog, deci sunt
predicate cu argumente constante, variabile sau structuri. Faptul S
care definete regula, se numete antet de regul, iar S1, S2, Sn
formeaz corpul regulii i reprezint conjuncia (unificarea)
scopurilor care trebuie satisfcute pentru satisfacerea ulterioar a
antetul regulii..
Observaii:
Observaii:
f(X, 0) :- X < 3. %1
f(X, 2) :- 3 =< X, X < 6. %2
f(X, 4) :- 6 =< X. %3
La ntrebarea:
?- f(1, Y).
Y=0
rspunsul sistemului indic faptul c valoarea funciei pentru X=1
este Y=0. Dac se pune ntrebarea format din conjuncia de
scopuri:
?- f(1, Y), 2 < Y.
no
bun(gelu).
bun(vlad).
bun(mihai.
rau(X) :- bun(X), !,
fail. rau(X).
?-rau(gelu).
no
?- rau(petru).
yes
n cazul n care predicatul fail este folosit pentru a determina un eec,
cum i n cazul exemplului de mai sus, acesta este de obicei precedat
de predicatul cut, deoarece procesul de backtracking pe scopurile
care l preced este inutil, scopul eund oricum datorit lui fail.
Exist cazuri n care predicatul fail este introdus intenionat pentru a
genera procesul de backtracking pentru scopurile care l preced,
proces interesant nu att din punctul de vedere al posibilitii de re-
satisfacere a scopului ce conine fail, ct din punctul de vedere al
efectului lateral al acestuia.
rosu(mar).
rosu(cub).
rosu(soare.
afisare(X) :- rosu(X),
write(X),fail.
afisare( _ ).
Predicatul cut utilizat aici este un cut rou. Combinaia !, fail este
deseori utilizat n Prolog i are rolul de negaie. Se mai spune c
limbajul Prolog modeleaz negaia ca eec al satisfacerii unui scop
(negaia ca insucces), aceasta fiind de fapt o particularizare a ipotezei
lumii nchise. Combinaia !, fail este echivalent cu un predicat
standard existent n Prolog - predicatul not. Predicatul not permite
drept argument un predicat Prolog i reuete dac predicatul
argument eueaz. Utiliznd acest predicat, ultimul exemplu dat se
poate exprima n Prolog astfel:
iubeste(mihai, X) :-sport(X),not(box(X)).
iubeste(mihai, X) :- sport(X).
Exemple:
[] lista vid;
[X, Y, Y] list ale crei elemente sunt variabilele X, Y i Z;
[[0, 2, 4], [1, 3]] list de liste de numere ntregi;
tip_lista = tip*
unde tip este un tip standard sau definit de utilizator. O list este
compus conceptul din dou pri:
cap (head), care desemneaz primul element din list;
rest (tail), care desemneaz lista elementelor rmase dup
eliminarea primului element.
Restul unei liste se mai numete corpul sau coada unei liste, i este
ntotdeauna o list. Exemplele urmtoare ilustreaz modul n care se
structureaz o list:
luni_prima_jumatate_an([ianuarie, februarie,
martie, aprilie, mai, iunie]).
Goal: afis
ianuarie februarie martie aprilie mai iunie
yes
Goal: afis_p(1)
ianuarie
yes
Goal: afis_p(3)
ianuarie februarie martie
yes
Goal: afis_n(3)
Martie
yes
/* program_2 */
Domains
luni=symbol*
predicates
prima_jumat_an(luni)
clauses
prima_jumat_an([ianuarie,februarie,martie,aprilie
,mai,iunie]).
Goal: prima_jumat_an(X)
X = [ianuarie, februarie, martie,
aprilie, mai,iunie]
1 Solution
Goal: prima_jumat_an([X|Y])
X = ianuarie, Y = [ februarie, martie,
aprilie, mai, iunie]
1 Solution
Goal: prima_jumatate_an([X|_])
X = ianuarie
1 Solution
n exemplul ce urmeaz obiectele de tip lista sunt liste ale cror elemente
pot fi numere ntregi, reale sau complexe.
domains
complex=z(real,real)
numar=r(real);i(integer);c(complex)
lista=numar*
predicates
p(lista)
clauses.
p([r(2.8),i(9),r(0.89),i(77),c(z(2,6))]).
Goal: p([X|Y])
X = r(2.8), Y = [i(9),r(0.89),i(77),c(z(2,6))]
1 Solution
11. S se scrie un program Prolog care calculeaz i afieaz cel mai mare
divizor comun al tuturor numerelor dintr-o list.
LUCRAREA DE LABORATOR 4
Sisteme Expert
dog_is(buldog englez): -
it_is(cu par scurt),
positive(are,mai mic de 22 inch),
positive(are, coada atrnata),
positive(are, caracter bun), !.
dog_is(cocher-spaniel): -
it_is(cu par lung),
positive(are, mai mic de 22 inch),
positive(are, coad atrnat),
positive(are, urechi lungi),
positive(are, caracter bun), !.
Mai mult dect att, n scopul de a limita spaiul de cutare care descrie
fragmentele de cunotine de reguli, ultimele pot fi grupate n baz prin
introducerea de reguli auxiliare pentru identificarea sub-categoriilor. De
exemplu, n SE alegerea rasei de cine va fi regula it_is, care identific
rasa de cine pe motive de apartenen la un grup de cini cu prul lung
sau cu prul scurt:
positive(X, Y):
xpositive(X,Y), !.
positive(X, Y):
not(negative(X,Y)), !, ask(X,Y).
negative(X, Y):
xnegative(X,Y), !.
ask(X, Y):
concat(Intrebare : X, Temp),
concat(Temp, , Temp1),
concat(Temp1, Y, Temp2),
concat(Temp2, ?, Quest),
Reply1=dlg_Ask(Consultare, Quest, [D, Nu]),
Reply=Reply1+1,
remember(X, Y, Reply).
remember(X, Y, 1): !,
assertz(xpositive(X, Y)).
remember(X, Y, 2): !, assertz(xnegative(X, Y)), fail.
2) n cazul n care este posibil apelarea a mai multor dect unei singure
reguli pentru a rezolva conflictul sistemul utilizeaz mecanismul intern de
unificare a Prolog-ului.
3) Sistemul primete rezultatele procesului de unificare n mod automat,
de aceea ele sunt trimise pe dispozitivul necesar (logic) pentru output-ul
informaiei.
go(_, Mygoal):
not(rule(_, Mygoal, _, _)), !, concat(Rasa recomandata : ,
Mygoal, Temp), concat(Temp, ., Result),
dlg_Note(Concluzia expertului : , Result).
go(History, Mygoal):
rule(Rule_number, Mygoal, Type_of_breed, Conditions),
check(Rule_number, History, Conditions), go([Rule_number|
History], Type_of_breed).
do_answer(Cond_number, 2): !,
assertz(no(Cond_number)), fail.
Varianta Domeniul
1,5 Microprocesoare
2,6 Dispozitive mobile
3,10 Sisteme operaionale
4,11 Limbaje de programare
7,12,19 Jocuri pe computere
8,15,20 Virui de computere
9,16 Reele de calculatoare
13,17 Algoritmi de sortare
14,18 Algoritmi de cutare
E emitor
C - bloc de codificare
Z - zgomot extern
D - bloc de decodificare
R receptor
M - mesaj
f(M) mesajul codificat n limbaj
f1(M) codificarea modificat de zgomot
M1 mesajul nou
Emitor:
Intenie - dorina emitorului de a transmite un mesaj ctre un
receptor;
Generare - crearea inteniei de a comunica i a coninutului ei ntr-
un limbaj;
Sintez - procesul efectiv de trimitere a mesajului.
Receptor:
Percepie - procesul de primire al mesajului;
Analiza - interpretarea mesajului din punct de vedere lexical,
sintactic, semantic, pragmatic
Dezambiguizarea selecia dintre posibilele rezultate ale analizei
ncorporare introducerea coninutului mesajului
Actul de comunicare:
Acesta conine mai multe interpretri/sensuri:
Locuia fraza, aa cum e spus de locutor (emitor);
Ilocuie nelesul frazei ce se dorete a fi comunicat;
interlocuiune aciunea ce rezult din locuie.
Exemplu:
Maria i-a spus lui Gigel: "Te rog nchide ua"
locuie ilocuie
interlocuiune ua nchis
Categorii locuionale:
Asertive asculttorul e informat n legtur cu fraza;
Directive asculttorul efectueaz o aciune dup aflarea
informaiei;
Comisive (angajamente) asculttorul afl de aciuni viitoare;
Expresive mesaje ce exprim atitudinea emitorului legat
de un fapt.
Ele se pot defini n mai multe moduri, unul dintre ele folosind urmtoarele
concepte:
n DCG:
Fiecare regul din gramatica poate fi vzut ca o regul din DCG
Fiecare categorie sintactic se reprezint printr-un predicat cu un
argument ir.
Proprieti :
Aceeai gramatic se folosete i pentru analiz (recunoatere) i
pentru generare.
Procesul de analiz lexical (parsing) se realizeaz exclusiv prin
inferene logice
Ca abordare:
a. Bottom-up parsing forward chaining
b. Top-down parsing backward chaining
n BNF:
S NP VP
n LP / DGC:
NP(s1) VP(s2) S(append(s1, s2))
n BNF:
NP Pronoun | Noun
n LP / DGC:
Pronoun(s) Noun(s) NP(s)
n BNF:
Noun ball | book
n LP / DGC
(s = ball s = book) Noun(s)
Tabel 1 - Soluia comparativ cu limbajul PROLOG.
BNF FOPL/DCG PROLOG
S NP VP NP(s1) VP(s2) sentence([S1, S2])
S(append(s1,s2)) :- np(S1), vp(S2).
NP Noun
Noun(s) NP(s) np(S):- noun(S).
Noun
stench (s = stench s = wumpus) noun(stench).
noun(wumpus).
Noun Noun(s)
wumpus
vp(S):- verb(S).
Verb(s) VP(s)
verb(smells).
VP Verb (v = smells v = kills) verb(kills).
Verb Verb(v)
smells ?-
Verb kills sentence([wumpus,
smells]).
?-sentence([S1,
S2]).
Acest automat are 8 stri, starea 1 fiind starea iniial i starea 8 starea
final. Cele opt stri sunt conectate prin 10 arce etichetate.
Exemplu:
initial(1).
final(8).
arc(1,n,2).
arc(1,pron,2).
arc(2,v,3).
Atunci cnd reeaua este utilizat pentru generare aceste elemente vor fi
nlocuite cu urmtoarele
G1. numele unui nod (locaia curent)
G2. irul de ieire generat pn la acel moment
Exemplu:
recognize(X).
Lexicon:
Noun (n) - Moldova | culture | language | things | english
Verb (v) - has | is | enjoy |
Participle (part) - learning
Article (art) a | the | I
Adjective (adj) rich | most | widespread | new
Gramatica:
S NP VP
NP N | Adj N | Art Adj Adj N |
VP V | V Part
Codul surs:
config([],State):-final(State).
config([Word|Rest],State):-
word(Word,Cat),
arc(State,Cat,State1),
config(Rest,State1).
recognize(String):-
initial(State),
config(String,State).
initial(1). word(rich,adj).
final(8). word(culture,n).
arc(1,n,2). word(english,n).
arc(1,pron,2). word(is,v).
arc(2,v,3). word(the,art).
arc(3,part,6). word(most,adv).
arc(3,art,4). word(widespread,adj)
arc(4,adj,5). .
arc(5,n,8). word(language,n).
arc(6,adj,5). word(i,pron).
arc(4,adv,7). word(enjoy,v).
arc(7,adj,5). word(learning,part).
word(moldova,n). word(new,adj).
word(has,v). word(things,n).
word(a,art).
?- recognize([i,enjoy,learning,new,things]).
Yes.
?-
transform([english,is,the,most,widespread,language],
CatString).
CatString=[n,v,art,adj,n]
Codul surs:
s(s(GN1,GV))-->gn1(GN1),gv(GV).
gn1(gn1(PRON,N))-->pron(PRON),n(N).
gv(gv(V,GN3,GN2))-->v(V),gn3(GN3),gn2(GN2).
gn3(gn3(ADJ1,N1,PREP1,ADJ2,N2))--
>adj1(ADJ1),n1(N1),prep1(PREP1),adj2(ADJ2),n2(N2).
gn2(gn2(PREP2,ART,N3))--
>prep2(PREP2),art(ART),n3(N3).
pron(pron(my))-->[my].
n(n(husband))-->[husband].
v(v(drinks))-->[drinks].
adj1(adj1(innumerable))-->[innumerable].
n1(n1(cups))-->[cups].
prep1(prep1(of))-->[of].
adj2(adj2(black))-->[black].
n2(n2(coffee))-->[coffee].
prep2(prep2(during))-->[during].
art(art(the))-->[the].
n3(n3(day))-->[day].
?-phrase(s(X),[my, husband, drinks, innumerable,
cups, of, black, coffee, during, the, day]).
Yes.
% Final configuration
config(s:State,[],[]):-
final(s,State).
?-consult(rtn.pl).
?-consult(lex.pl).
?-recognize([our,students,enjoy,learning,new,things]).
Yes.
PARTEA 2: Desfurarea lucrrii
Algoritmi de recunoatere
ik
2
(1)
k 1
L2 S i , X j s x jk
n
ik
(2)
k 1
L3 S i , X j sik x jk
n
(3)
k 1
Unde
L p S i , X j , p 1,3
corespunde distanei dintre imaginea de intrare (4)
S i si1 ,..., sin
cu imaginea model (5)
X i xi1 ,..., xin
iar parametrul j reprezint numrul modelului i (6) un rezultat
pozitiv ntreg, mai mare ca doi.
Distanele (1) - (3) pot fi de asemenea, utilizate cu coeficieni de
greutate. Codificarea binar a caracteristicilor calitative poate fi
aplicat i la distana Hamming, care este introdus pentru toi
vectorii binari. Distana Hamming dintre doi vectori binari este
numrul de componente distincte de vectori binari. n cazul n
care vectorii au aceleai componente, atunci distana dintre ei
este zero, n cazul n care vectorul nu are o component echivalent,
atunci distana este egala cu dimensiunea vectorilor.
O clasificare mai fin a obiectelor cu caracteristici calitative se
obine prin introducerea compatibilitii sau diferenei, pentru
fiecare pereche de obiecte Xj, Xi pentru care sunt introduse
caracteristici calitative binare de codare, cu ajutorul .
n
h 1 xik x jk (10)
k 1 .
Din analiza variabilelor a, b, g, h, rezult urmtoarele: cu ct este
mai mare asemnarea dintre obiectele Xj i Xi , cu att mai
mare trebuie s fie variabila a. Msura de apropiere a
obiectelor sau a funciei de asemnare trebuie s fie o funcie
cresctoare a lui a, funcia de asemnare trebuie s fie simetric n
raport cu variabilele g i h.
Relativ la ncheiere, variabila b nu poate fi utilizat, pentru c pe de
o parte lipsa caracteristicilor similare n obiecte poate fi un indiciu
al asemnrii lor, pe de alt parte, n cazul n care obiectul nu are
aceleai semne, nseamn c aceste obiecte nu se pot
referi la aceeai clas.
De cele mai multe ori sunt utilizate n mod obinuit funciile de
similitudine reprezentate mai jos:
funcia de similitudine de Russell i Rao
S1 X i , X j
a a
(11)
ab g h n
funcia de similitudine Zhokara si Nidmena
S2 X i , X j
a
(12)
nb
funcia de similitudine Dice
S3 X i , X j
a (13)
2a g h
funcia de similitudine de Snifa i Sokal
S4 X i , X j
a (14)
a 2( g h )
funcia de similitudine de Sokal i Michener
ab
S5 X i , X j (15)
n
funcia de similitudine Kulzhinskogo
S6 X i , X j
a (16)
gh
funcia de similitudine Yule
ab gh
S7 X i , X j (17)
ab gh
PARTEA 2: Desfurarea lucrrii
L S k , S k max L S k , Si
(1)
i
L S k , S k min L S k , Si (2)
i
unde |Si|, |Xj| - lungimile vectorilor Si i Xj.
S i X j , dac L S i , X j min L S i , X j
j
(4)
n acelai timp, n aceast regul i mai departe n text, pentru
notarea imaginii j i a imaginii etalon se folosete aceiai notare
X j j 1, m .
(6)
n
L S i , X j sik x jk
k 1
Si X j , dac L S i , X j x*jk sik
k 1
n
2
Rj (9)
L Si , X j s x jk
n
2 (10)
k ik
k 1
L Si , X j s x jk
n
(11)(11)
k ik
k 1
L Si , X j k sik x jk
n
(12)
k 1
sik x jk (13)
L Si , X j
n
k 1 sik x jk
(13)
unde Rij distana dat din una din relaiile (10) (13), ntre imaginea
prezentat Si i centrul sferei, care conine imaginea virtual j;
Rj raza sferei, care conine imaginea virtual j.
LUCRAREA DE LABORATOR 8
(1)
Definiie:
Distana Hamming dintre doi vectori binari prezint componenta
numeric n care vectorii sunt diferii.
SZ = 2 - m.
(3)
(4)
Unde, Uout > U ieire
Uin -> U intrare ;
rezult c semnalul de ieire a elementului S, repet semnalul lui de
intrare:
Uout Si = Uin Si = sqi .
Fiecare neuron Sj (j=1, m) este legat cu intrarea fiecrui element Zk (k=1,
n). Capacitatea acestor
legturi W1k, , Wmk conine
informaia despre
imaginea etalon k:
Vk = (v1k,, vmk):
w1k = v1k/2, , wmk=vmk/2. (5)
(6)
(7)
i cu ajutorul funciei de activare, determin semnalul de ieire UinZk.
Semnalele de ieire UinZ1, , UinZn a Z-elemente sunt semnale de intrare
1, ..., n a subreelei de sus, care este o reea MaxNet. Funcia de activare
a neuronilor Ap (p=1,n) i capacitatea lor de legtur se dau de relaia:
(8)
cu condiiile iniiale
Ui(0)=ai=UinZi, i=1,n
(9)
Exemple:
De elaborat o reea Hamming, avnd n calitate de etalon 5 imagini alb-
negru V1, ..., V5; artate n Figura 2. De determinat influena imaginilor
prezentate n Figura 3.
Vectorul:
Uout Z = (0,2; 0,6; 0,8; 0,4; 0,4) (12)
(12)
Deoarece vectorul de intrare (0,6; 0,2; 0,4; 0,4; 0,8) a subreelei MaxNet
conine doar un singur element maxim 5 = 0,8, atunci n rezultatul
procesului iterativ, numai la ieirea elementului 5 vom avea un semnal
pozitiv, care va provoca un semnal unitate la ieirea neuronului Y5.
Rezult c, imaginea redat se aseamn maxim cu imaginea etalon V5,
ceia ce confirm comparaia vizual a Figura 8.2 i Figura 8.3 .
LUCRAREA DE LABORATOR 9
(1)
(1)
(2)
sau bipolare :
(3)
(5)
(6)
Din relaiile (1) (3) i (4) (6) rezult c pentru fiecare valoare de prag
a neuronului, poate fi prezentat n conformitate cu capacitatea
coeficientului w0 de legtur a semnalului de deplasare i invers.
(8)
(9)
(10)
(11)
bipolar de rangul k (Figura 9. 2 i):
(12)
de imagini este o linie dreapt: vectori de intrare, care se afl mai sus de
aceast dreapt, aparine unei singure clase, dar mai jos alte clase.
Dac vectorul (y1, ... , ym) semnalelor de ieire este identic vectorului
(t1, ... , tm) semnalelor iniiale ale neuronului, adic fiecrei imagini de
intrare i corespunde un semnal de ieire dat anterior, atunci calculele se
sfresc (trecem la pasul 7), dar dac
(y1, ... , ym) (t1, ... , tm), atunci trecem la pasul 2 al algoritmului.
Pasul 7. Stop
Exemplu:
Fie c trebuie s nvm un neuron bipolar pentru recunoaterea
imaginilor X1 i X2, ilustrate n Figura 3.
ntruct vectorul (y1 ,y2) = (1, -1) este egal cu vectorul (t1 ,t2), atunci
calculele se stopeaz, deoarece a fost atins scopul neuronul corect
Pasul 1. Se d mulimea:
M = {(X1 = (1, 0, 1, 1, 1, 1, 0, 0, 1), 1), (X2 = (1, 1, 1, 1, 0, 1, 1, 0, 1), 0)} ,
i se iniiaz ponderile legturilor neuronului wi = 0, i = 0 .. 9.
Pasul 7. Stopare
PARTEA 2: Desfurarea lucrrii
Cri:
A. Florea, A. Boangiu. Elemente de Ineligena Artificial.
A. Florea. Bazele logice ale Inteligentei Artificiale. Cap. 4, 6.
A. Florea, B. Dorohonceanu, C. Francu. Programare in Prolog.
Articole on-line:
Turing, A.M .Computing Machinery and Intelligence,. Mind, 59,
1950, 433-460.
AI's Greatest Trends and Controversies, IEEE Intelligent Systems
January/February 2000.
Marvin Minsky. A Framework for Representing Knowledge, MIT-
AI Laboratory Memo 306, June, 1974.
J. Austin - How to do things with words, 1962, J. Searle - Speech
acts, 1969
ANEXA 1
Introducere
Lansarea/nchiderea interpretatorului
% gprolog [OPTION]
Opiuni:
ANEXA 1 (continuare)
| ?- append(X,Y,[a,b,c]).
ANEXA 1 (continuare)
X = []
X = [a]
X = [a,b]
Y = [c] (aici utilizatorul nu mai este interogat i soluia urmtoare este
estimat automat)
X = [a,b,c]
Y = [] (aici utilizatorul nu mai este interogat i soluia urmtoare este
estimat automat)
| ?- consult('C:\example.pro').
| ?- ['C:\example.pro'].
Cnd predicatul consult/1 este invocat asupra unui fiier surs, GNU
Prolog nti compileaz acest fiier pentru a genera un fiier WAM
temporar. Dac compilarea nu eueaz, programul se ncarc n memoria
calculatorului utiliznd predicatul load/1.
Operatorii de unificare:
Term1 = Term2
append/3
append(List1, List2, List12) concateneaz lista
List1 i lista List2 n List12.
ANEXA 1 (continuare)
member/2
member(Element, List) verific dac elementul Element
aparine listei List.
reverse/2
reverse(List1, List2) inverseaz lista List1 n List2.
delete/3
delete(List1, Element, List2) elimin toate apariiile a
Element n lista List1 n cadrul listei List2.
prefix/2
prefix(Prefix, List) verific dac lista Prefix este
prefixul listei List.
suffix/2
suffix(Suffix, List) verific dac lista Suffix este
sufixul listei List.
sublist/2
sublist(List1, List2) verific dac n lista List1 toate
last/2
last(List, Element) verific dac elementul Element este
ultimul n cadrul listei List.
length/2
length(List, Length) estimeaz lungimea listei List n
Length.
ANEXA 1 (continuare)
sort/2
sort(List1, List2) sorteaz lista List1 n cadrul listei
List2 (elementele duplicate sunt eliminate).
msort/2
msort(List1, List2) sorteaz lista List1 n cadrul listei
List2 (elementele duplicate nu sunt eliminate).
nth/3
nth(N, List, Element) returneaz al N-lea element din lista
List n Element.
min_list/2
min_list(List, Min) returneaz elementul minimal din lista
List n Min.
max_list/2
max_list(List, Max) returneaz elementul maximal din lista
List n Max.
sum_list/2
sum_list(List, Sum) returneaz suma elementelor listei
List n Sum.
ANEXA 2
Codul surs al programului, care realizeaz o reea
neuronal Hamming n limbajul de programare C++.
#include <iostream.h>
#include <string.h>
#define true 1
#define false 0
using namespace std;
class Hemming
{
private:
float* Uin;
float* Uout;
float** W;
int N;
int M;
int* s;
float e;
float b;
float k;
void InitUin();
void InitUout();
float g(float x);
bool Compare(float* v1, float* v2);
public:
int GetVectorLength(); //returns Image's length
int GetEtalonsCount();// returns Etalon count
void SetImage(int* image);// Set recognizing Image's
vector
void SetEtalons(int** images);// set etalons