Вы находитесь на странице: 1из 10

TUTORIAL 1

Mediul de programare CLIPS; baza de cunoine


1. Sisteme expert bazate pe strategia de control nainte.
Se definete un sistem expert (SE) ca fiind un sistem software care nmagazinnd
cunotine ale unui expert poate rezolva probleme complexe dintr-un anumit domeniu de
expertiz.
Elementele tipice ale unui SE sunt prezentate n fig. 2.
Baza de cunotine este format din dou pri: baza de reguli (BR) care conine
Baz de cunotine

Motor de inferene
(Sistem de control)

Baz de reguli

Subsistem de generare
a explicaiilor

Baz de fapte
(Memorie de lucru)

Subsistem de achiziie a
cunotinelor

Fig. 1. Arhitectura unui sistem expert/sistem


bazat pe cunotine

Interfa a
utilizatorului

cunotine generale din domeniul de expertiz i baza de fapte (BF) format n special din
cunotinele specifice problemei ce se rezolv.
Elementele din baza de reguli sunt enunuri de forma:
Dac <parte de condiie> atunci <parte de aciune>.
Regulile au fost preluate n SE din structurile matematice de gramatic, unde se numesc
reguli de producie; de aici denumirea iniial a SE de sisteme de reguli de producie sau sisteme
de producie. Partea de condiie a unei reguli se mai numete i antecedent, sau parte stng (n
englez, Left Hand Side LHS), iar partea de aciune se mai numete consecin, sau parte de
concluzie, sau parte dreapt a regulii (n englez, Right Hand Side RHS). Partea de condiie a

unei reguli poate conine unul sau mai multe elemente, care se numesc tipare. Sintactic, acestea
vor fi de aceeai form cu faptele din BF i ntre toate tiparele din partea de condiie a unei reguli
este subneleas operaia de conjuncie. Elementele din partea dreapt a unei reguli se vor numi
aciuni i, la fel ca pentru partea stng, ntre aciuni exist n mod implicit operaia de
conjuncie.
O regul este asemntoare din punct de vedere constructiv cu o instruciune IF ... THEN
din programarea convenional. Deosebirea esenial este aceea c o instruciune IF ... THEN se
execut numai atunci cnd rularea programului ajunge la ea, n timp ce o regul ntr-un SE este n
orice moment gata de execuie.
Baza de fapte se mai numete i memorie de lucru i conine enunuri considerate
adevrate la momentul respectiv, adic fapte; acestea trebuie s fie sintactic de aceeai form cu
tiparele regulilor. La nceputul lucrului SE memoria de lucru trebuie s conin situaia iniial
valabil pentru problema respectiv i care trebuie s fie ncrcat de utilizator printr-o interfa
adecvat.
Motorul de inferene conine un mecanism de control ce permite efectuarea de
raionamente, prin gsirea legturilor dintre fapte i determinarea a noi fapte adevrate, prin
folosirea regulilor. Acest mecanism de control are un caracter generic; el va fi acelai (exist dou
tipuri de mecanisme de control / motoare de inferene) indiferent de problema care se rezolv. De
aici apare o deosebire important i un avantaj al SE fa de programarea convenional:
separarea ntre cunotinele din domeniul problemei care se rezolv i elementele de control al
programului. n plus, n programarea convenional nceperea i terminarea programului, ca i
secvena de operaii de efectuat sunt definite n mod explicit de ctre programator, n timp ce n
cazul unui SE programatorul nu trebuie i adesea nu poate s mai anticipeze rularea att de
precis. Cunotinele domeniului sunt nmagazinate n reguli, datele problemei sunt memorate ca
fapte, iar motorul de inferene determin aplicarea cunotinelor domeniului pe datele problemei,
fr intervenia programatorului.
Cele dou tipuri de motoare de inferene sunt:
a)

motor de inferene lucrnd dup strategia de cutare nainte, cnd se pleac de


la fapte i se urmresc prile de condiie ale regulilor gsindu-se noi fapte (toate
faptele care se pot determina ca fiind valide) prin execuia regulilor cu partea de
condiie satisfcut.

b)

motor de inferene lucrnd dup strategia de cutare napoi, cnd se pleac de


la scop (un fapt care trebuie determinat ca fiind valid) i prin folosirea regulilor de
la partea dreapt nspre partea stng se rezolv scopul respectiv.

Exist medii de programare, aa cum este CLIPS, care au motorul de inferene gata
construit, situaie n care utilizatorul trebuie s alctuiasc numai baza de cunotine, cu cele dou
componente ale ei: BF i BR. Considernd cazul mediului CLIPS, acesta folosete un motor de
inferene lucrnd dup strategia de cutare nainte i care este reprezentativ pentru clasa
respectiv de motoare de inferen. Ciclul de lucru al motorului de inferene n CLIPS este:
Pas 1. Se determin toate regulile care au partea de condiie satisfcut, innd seama de
starea BF din momentul respectiv; regulile activate sunt trecute n agend.
Pas 2. Dac este admis o evaluare dinamic a prioritilor regulilor, atunci se reevalueaz
prioritile tuturor regulilor din agend. Se ordoneaz regulile din agend n funcie de valorile
prioritilor acestora i de strategia de rezolvare a conflictului folosit (setat). Dac agenda este
vid, sau s-a atins numrul impus de reguli de executat, atunci ciclul (rularea) se oprete.
Pas 3. Se execut aciunea/aciunile din partea dreapt a regulii aflate pe prima poziie n
agend (regula respectiv este eliminat din agend, aspect aflat n legtur cu proprietatea de
refracie a sistemelor bazate pe reguli). Se incrementeaz contorul cu privire la numrul regulilor
executate i se revine la pasul 1 (prin execuia regulii baza de cunotine poate fi modificat,
astfel c la revenirea la pasul 1 este justificat).
n legtur cu acest ciclu de lucru se pot face urmtoarele observaii:
a. Dac paii 1 i 2 se execut de la sine, de ndat ce exist BR i BF, fr nici o alt
comand suplimentar, pasul 3 intr n funciune (i cu aceasta rularea, repetarea ciclului) numai
dac utilizatorul transmite comanda run. Dup ce a fost dat aceast comand, ciclul de mai sus
este declanat, oprirea putnd s apar n conformitate cu condiia precizat la pasul 2.
b. Cei trei pai de mai sus au denumiri n funcie de scopul lor. Pasul 1 se numete de
potrivire, fiind vorba de gsirea regulilor ale cror tipare se potrivesc pe faptele din BF. Procesul
de potrivire are o serie de aspecte specifice, ce vor fi discutate separat. Pasul 2 se numete de
rezolvare a conflictului; denumirea provine din aceea c mulimea regulilor activate la un
moment dat (agenda) se mai numete i mulime conflictual; explicaia denumirii este aceea c
regulile din agend sunt n conflict, n ceea ce privete obinerea execuiei; rezolvarea conflictului
se face n conformitate cu o anumit strategie i exist mai multe strategii, ce vor fi prezentate
ulterior. Pasul 3 se numete de execuie.
c. Prin repetarea ciclului de mai sus se produce o evoluie a BF: dup fiecare execuie a
unei reguli BF se poate modifica, deoarece n majoritatea cazurilor aciunile regulilor sunt i de
tipul celor care afecteaz BF (de exemplu, assert, retract). Dup efectuarea pasului 3, BF

putnd fi modificat, pasul 1 are consisten, n sensul c noi reguli pot fi satisfcute, n timp ce
altele nu mai sunt satisfcute.
d. innd seama de observaia a i de bucla pe care o determin ciclul de lucru al
motorului de inferene, rezult c agenda este recalculat n urmtoarele momente:

naintea rulrii, ori de cte ori BF este modificat;

n pasul 1 al ciclului de lucru, dup execuia unei reguli.


e. ntr-un SE, n mod normal agenda va conine la rulare, n majoritatea timpului, un

numr mare de reguli. Dac n agend s-ar gsi n orice moment o singur regul, atunci
rezolvarea conflictului nu ar mai fi necesar. O asemenea situaie indic faptul c problema n
lucru are o rezolvare secvenial i n consecin trebuie abordat prin programarea
convenional.
Aa cum s-a menionat la pasul 3 al ciclului de lucru, motoarele de inferene lucrnd dup
strategia de cutare nainte, i n particular CLIPS, sunt dotate cu o caracteristic important,
numit refracie. Se consider c aceast proprietate a fost copiat de la celula nervoas (dup ce
un neuron a transmis un impuls ca urmare a unui stimul, acelai stimul nu-l va mai putea excita
din nou, pentru o anumit perioad de timp). n cazul unui SE refracia nseamn c o regul nu
va fi activat de un acelai fapt (sau de un acelai grup de fapte) n mod repetat. Fr aceast
proprietate, conform ciclului de lucru al motorului de inferene, un SE ar fi blocat ntr-o bucl
infinit. Pentru materializarea refraciei, motorul de inferene reine faptele care au determinat
activarea, mpreun cu identificatorii acestor fapte (adresele acestora n BF). Aceeai combinaie
de identificatori nu va putea face o nou activare, n schimb n combinaia respectiv ordinea
conteaz, astfel c aceleai fapte pot determina mai multe activri, considerate n ordini diferite,
evident cu condiia asigurrii potrivirilor necesare. Dac la un moment dat este necesar
depirea refraciei, n legtur cu o anumit regul, exist mai multe posibiliti, care trebuie
manevrate cu precauie, pentru a nu se ajunge la situaia de nedorit n care sistemul este prins ntro bucl infinit.
2. Optimizarea funcionrii motorului de inferene
n privina ciclului de lucru al motorului de inferene din CLIPS, ncepnd de la versiunea
6, se pot face unele reglaje ale acestuia, care se refer la pasul al doilea (cel de rezolvare a
conflictului). Astfel, regulile sunt plasate n agend n funcie de prioritile ataate explicit
(conform declaraiei salience) sau implicit. Din acest punct de vedere exist dou comportri

posibile pentru motorul de inferene: evaluarea static i respectiv dinamic a prioritilor


regulilor.
n cazul variantei statice, prioritile regulilor sunt stabilite la definirea acestora, i
schimbarea prioritii fixate pentru o regul se poate face numai prin redefinirea ei; de aceea,
interpretorul CLIPS numete aceast situaie ca evaluarea la definire (n englez: when
defined).
n cazul evalurii dinamice, exist dou subvariante:
a) se reevalueaz prioritile regulilor de fiecare dat cnd acestea sunt plasate n agend
(activate); de aceea denumirea variantei este la activare (n englez: when activated);
b) se reevalueaz prioritile tuturor regulilor din agend dup fiecare execuie a unei
reguli, adic la fiecare ciclu de lucru al motorului de inferene; de aici denumirea variantei, ca la
fiecare ciclu (n englez every cycle).
Aceste variante pot fi alese din meniul Execution, opiunea Options, sau folosind
comanda:
(set-salience-evaluation {when-defined, when-activated, every-cycle})
Metoda implicit, adic aceea cu care pornete motorul de inferene, este cea static. Cele
trei variante sunt incluse una n alta: cnd opiunea este la activare, evaluarea prioritilor se
face i la definirea regulilor, iar dac este la fiecare ciclu, atunci evaluarea se face i la definire
i la fiecare plasare a unei reguli n agend.
La folosirea comportrii dinamice, prioritatea unei reguli se poate modifica n timpul
rulrii unui program. n acest fel, se creeaz posibilitatea ca un program bazat pe reguli s-i
poat mbunti pe parcursul rulrii funcionarea, prin creterea sau scderea adecvat a
prioritilor anumitor reguli. Se obine astfel capacitatea ca programul s evolueze, s fie
adaptabil. n acest sens va fi aleas de ctre programator una din cele dou variante de evaluare
dinamic a prioritilor, iar n definirea regulilor, n declararea prioritii, vor fi folosite variabile
globale, ale cror valori vor fi schimbate n mod corespunztor prin program. O asemenea
definiie a unei reguli va fi sub formele sugerate mai jos:
(defrule R-adaptabila-1
(declare (salience ?*prioritate*) )

(defrule R-adaptabila-2
(declare (salience ( ?*p* 5) ) ) )

...

...

Trebuie remarcat c o regul de forma:


(defrule r (declare (salience ?x) ) . . .)

este evident greit, variabila local, nelegat la momentul respectiv, neavnd cum s furnizeze
valoarea prioritii.
La comportarea dinamic privind prioritile, numai declaraia salience este reevaluat.
Plasarea sau nu n agend este legat de mecanismul de potrivire i de cel de refracie (forarea
replasrii n agend, n sensul depirii refraciei, se poate obine prin comanda refresh). n
plus, exist comanda (refresh-agenda) care determin, la execuie, reevaluarea prioritilor
regulilor din agend, indiferent de tipul de comportare setat pentru motorul de inferene la
momentul respectiv. Folosind-o n partea de aciune a unei reguli, vom putea obine adaptarea
programului la anumite momente, acelea ale execuiei regulii respective.
Un alt aspect al reglajului pe care l poate face programatorul asupra motorului de
inferene este acela cu privire la strategia de rezolvare a conflictului. Aceasta intervine n pasul 2
al ciclului motorului de inferene, care se refer la ordonarea regulilor n agend. Acest pas, mai
n detaliu fa de cele spuse anterior, presupune urmtoarele criterii:
1. O regul nou activat este plasat n agend deasupra tuturor regulilor de prioritate mai
mic dect a ei, i sub regulile de prioritate mai mare dect a ei.
2. ntre regulile de prioritate egal plasarea se face n conformitate cu tipul de strategie de
rezolvare a conflictului care este activat (setat).
Trebuie menionat c, n cazul n care mai multe reguli sunt activate de aceeai
introducere sau tergere a unui fapt sau a unor fapte din BF i criteriile de mai sus nu determin
fixarea ordinii ntre regulile respective, atunci plasarea lor n agend se face ntr-o ordine
arbitrar, care nu este influenat de ordinea n care au fost definite regulile respective. Aceasta
nseamn c metoda de rezolvare a problemei nu trebuie s depind de o anumit ordine de
execuie a regulilor care se afl n situaia menionat.
n ceea ce privete primul criteriu de mai sus, dac fiecare regul a unui SE ar avea o
prioritate distinct atunci fixarea agendei ar fi dat numai de acest criteriu. O asemenea situaie
nu este normal ntr-un SE. Dac fiecare regul are o prioritate distinct, atunci nseamn c se
cunoate dinainte secvena de rezolvare a problemei i ntr-un asemenea caz este mai eficient de
folosit un program ntr-un limbaj procedural. Un SE se folosete pentru o problem nestructurat,
pentru care se cunosc metode sau principii care aplicate conduc (sau pot conduce) la rezolvare,

dar nu i paii precii ai rezolvrii, acetia depinznd de datele de intrare specifice ale problemei
n lucru i fiind greu de anticipat. Metodele de rezolvare sunt transpuse n reguli, care vor fi
activate la momentul oportun n funcie de datele problemei n lucru. De aceea ntr-un SE se
ataeaz puine nivele de prioritate. Un numr mare de nivele de prioritate stric modularitatea i
caracterul oportun al interveniei regulilor. n mod obinuit se folosesc, dac este cazul, 2 4
nivele de prioritate, afirmndu-se ca ntr-un SE bine construit nu vor fi necesare mai mult de 7
nivele de prioritate.
n ceea ce privete criteriul al doilea, exist n CLIPS apte strategii de rezolvare a
conflictului. Deoarece acestea se refer la ordonarea ntre regulile de prioritate egal, n
continuare ne vom referi numai la reguli aflate n aceast situaie. Cele apte strategii sunt
urmtoarele.
1. Strategia n adncime (n englez: depth) o regul nou activat este plasat naintea
oricrei reguli existente n agend; aceasta nseamn c agenda se comport ca o stiv (LIFO).
2. Strategia n lrgime (n englez: breadth) o regul nou activat este plasat dup
regulile existente n agend; aceasta nseamn c agenda se comport ca o coad (FIFO).
3. Strategia simplitii (n englez: simplicity) o regul nou activat este plasat
deasupra tuturor regulilor care au un coeficient de simplitate/complexitate strict mai mare dect al
ei i sub regulile avnd un coeficient de complexitate egal, sau mai mic. Coeficientul de
complexitate este dat, n principiu, de numrul de comparaii care se efectueaz n partea de
condiie a regulii, n procesul de potrivire. Practic acest coeficient se calculeaz n felul urmtor.
Se pleac de la valoarea 0. Fiecare comparaie n procesul de potrivire al unui tipar cu o constant
sau o variabil deja legat adaug 1 la coeficientul de simplitate. Fiecare apel al unei funcii ntrun tipar, n cadrul operatorilor =,

:,

test, adaug 1 la coeficientul de simplitate. Apelul

predicatelor and, or, not nu adaug nimic la coeficientul de simplitate; n schimb,


argumentele lor adaug 1 la coeficientul de simplitate. Apelul unei funcii n interiorul altei
funcii nu adaug nimic la coeficientul de simplitate.
Fie, ca exemplu, regula:
(defrule exemplu
(a ?x ?y ?x)
(test (and (numberp ?x) (> ?x (+ 10 ?y) ) (< ?x 100) ) )

=>. . .)

Aceasta are coeficientul de simplitate 5, determinat de: comparaia primului cmp al


primului tipar cu constanta a, comparaia ultimului cmp al tiparului respectiv cu cmpul 2 (cu
valoarea unei variabile deja legate), testarea tipului pentru variabila ?x, n predicatul numberp,
argument al predicatului and, cele dou testri prin predicatele > i <, aflate de asemenea ca
argumente ale lui and.
4. Strategia complexitii (n englez: complexity) o regul nou activat este plasat
deasupra tuturor regulilor avnd coeficientul de complexitate strict mai mic i sub regulile avnd
coeficientul de complexitate mai mare sau egal cu al ei.
5. Strategia LEX se ine seama n primul rnd de noutatea faptelor care au determinat
activarea, i apoi de complexitate. O regul activat de un fapt mai nou n BF (deci avnd un
index mai mare) este plasat deasupra tuturor regulilor activate de fapte mai vechi. Dac ntre
tiparele care activeaz o regul exist i tipare de tip not, atunci acestea se consider a avea n
coresponden un fapt fictiv, cu indexul mai mic dect al oricrui fapt satisfcnd un tipar
obinuit (care nu este de tip not). ntre mai multe tipare not se ine seama de ordinea n care
au fost satisfcute, preferndu-se regula cu tiparul not satisfcut cel mai recent. ntre mai multe
reguli pentru care criteriul noutii faptelor ce le-au satisfcut nu poate face discriminare, se va
prefera regula cu coeficientul de simplitate mai mare. De exemplu, agenda ar putea arta la un
moment dat n felul urmtor:
0 R-6: f-1, f-4
0 R-5: f-1, f-2, f-3,
0 R-1: f-1, f-2, f-3
0 R-2: f-3, f-1
0 R-4: f-1, f-2,
0 R-3: f-2, f-1
Se observ c n vrful agendei apare regula R-6, n a crei activare a intervenit faptul de
la identificatorul f-4, adic faptul cel mai recent din BF. Regula R-5 este pus nainte de regula R1, deoarece are un coeficient de simplitate mai mare, avnd un tipar n plus, de tip not. Prezena
acestuia este identificat prin , care apare dup f-3 (un tipar not dintr-o regul activat este
marcat prin semnul , n vizualizare agendei). La fel (prin complexitatea mai mare) se explic
ordonarea ntre R-1 i R-2, i respectiv ntre R-4 i R-3.

Strategia LEX poate fi util n probleme de monitorizare, deoarece ea poate favoriza un


rspuns prompt la modificarea datelor din proces, date reflectate de faptele din BF.
6. Strategia MEA se face o ordonare a regulilor innd seama de noutatea faptului care a
determinat satisfacerea primului tipar al regulilor. Dac mai multe reguli aflate n conflict au
primul tipar satisfcut de un acelai fapt, atunci decizia ntre acestea se ia n funcie de celelalte
tipare, conform strategiei LEX. De exemplu, pe cazul agendei discutate la strategia LEX,
ordonarea regulilor respective dup strategia MEA va fi:
0 R-2: f-3, f-1
0 R-3: f-2, f-1
0 R-6: f-1, f-4
0 R-5: f-1, f-2, f-3,
0 R-1: f-1, f-2, f-3
0 R-4: f-1, f-2,
Strategia MEA este legat de o metod de rezolvare a problemelor folosit n IA, numit
analiza mijloacelor de obinere a scopului (n engleza: Means Ends Analysis) [Gia 89]. n
aceast metod se face o comparaie ntre starea final i cea prezent, cutndu-se apoi mijloace
de a reduce aceast diferen. Dac metoda se materializeaz ntr-un program bazat pe reguli,
atunci se poate folosi strategia MEA de rezolvare a conflictului, avnd grij ca primul tipar al
regulilor s aib importana maxim n reducerea diferenei ntre starea prezent i starea scop.
7. Strategia aleatoare (n englez: random) n momentul activrii unei reguli i se
atribuie un numr aleator, care servete la rezolvarea conflictului. Acest numr se pstreaz dac
strategia de rezolvare a conflictului este schimbat, i la o revenire la strategia aleatoare se obine
o aceeai ordonare ca nainte de schimbarea tipului de strategie.
Aceste strategii au caracter de generalitate, fiind cele mai ntlnite pentru motoarele de
inferene ale SE. n enumerarea lor s-au fcut unele aprecieri privind adecvarea la anumite tipuri
de probleme. Situaia ideal, aceea n care regulile unui SE sunt total independente, ar nsemna c
motorul de inferene poate determina soluia indiferent cu care strategie se lucreaz. n realitate,
se poate ntmpla ca natura problemei s fac foarte dificil sau imposibil obinerea soluiei pe
anumite strategii. De aceea, cunoaterea lor poate permite adaptarea funcionrii motorului de
inferene la specificul problemei, i n plus, experimentele fcute cu diferite strategii ne pot ajuta

s nelegem interdependenele care exist ntre reguli, punctele slabe ale funcionrii SE, sau
chiar erorile existente n acesta.
Caracteristica de adaptabilitate n CLIPS se poate obine i prin aceea c noi reguli (sau n
general noi definiii de construcii) pot fi create n timpul rulrii programului. n acest sens exist
comanda:
(build {ir de caractere, simbol})
irul de caractere sau simbolul respectiv trebuie s reprezinte o definiie de construcie
(defrule, deffacts, defglobal, etc.), efectul fiind acela de introducere a definiiei respective n baza
de definiii de construcii a sistemului. Comanda build va fi util n partea de aciune a
regulilor, caz n care va determina introducerea definiiei respective, la momentul execuiei
regulii, ca i cum aceasta ar fi fost dat de la nivel superficial. Ca exemplu, regula urmtoare
determin, la execuie, introducerea n BR a unei noi reguli: r-urgenta. Aceasta va determina, prin
aciunile ei, modificri ale comportrii sistemului: reevaluarea prioritilor pentru toate regulile
din agend i trecerea strategiei de rezolvare a conflictului pe varianta LEX.
(defrule r-adaptare
(faza adaptare)
(valoare-senzor S ?x&:(or (and (numberp ?x)(> ?x 100))
(and (symbolp ?x) (eq ?x mare))) )
=>
(assert (urgenta) )
(build (defrule r-urgenta
(urgenta)
=>
(refresh-agenda)
(set-strategy lex) ) ) )
Se observ, din regula de mai sus, c exist, n afar de meniul Execution, i posibilitatea
de schimbare a strategiei de rezolvare a conflictului prin comanda:
(set-strategy {depth, breadth, simplicity, complexity, lex, mea, random})

Вам также может понравиться

  • Alesul
    Alesul
    Документ327 страниц
    Alesul
    mrsnecula
    100% (8)
  • Sinteza Geometriei Cls. A VII A
    Sinteza Geometriei Cls. A VII A
    Документ9 страниц
    Sinteza Geometriei Cls. A VII A
    evablnt
    100% (3)
  • Alesul
    Alesul
    Документ2 страницы
    Alesul
    Constantin Tomulesei
    Оценок пока нет
  • Fisa Postului
    Fisa Postului
    Документ2 страницы
    Fisa Postului
    Constantin Tomulesei
    Оценок пока нет
  • Ghid AP2
    Ghid AP2
    Документ46 страниц
    Ghid AP2
    arasvan12
    Оценок пока нет
  • Geometrie Partea 1 PDF
    Geometrie Partea 1 PDF
    Документ11 страниц
    Geometrie Partea 1 PDF
    cneamtu0075281
    Оценок пока нет
  • Portamente
    Portamente
    Документ4 страницы
    Portamente
    Melissa Black
    Оценок пока нет
  • Metodica
    Metodica
    Документ131 страница
    Metodica
    harangusv
    100% (13)
  • Barometru Cultural 2016
    Barometru Cultural 2016
    Документ272 страницы
    Barometru Cultural 2016
    Cosmin Postolache
    Оценок пока нет
  • Teorie Geometrie
    Teorie Geometrie
    Документ17 страниц
    Teorie Geometrie
    Remus Bobe
    83% (12)
  • Rezultate Examen MS Ianuarie 2015
    Rezultate Examen MS Ianuarie 2015
    Документ6 страниц
    Rezultate Examen MS Ianuarie 2015
    Constantin Tomulesei
    Оценок пока нет
  • Joc Saptamana Altfel
    Joc Saptamana Altfel
    Документ28 страниц
    Joc Saptamana Altfel
    Matthew Benton
    Оценок пока нет
  • IRA
    IRA
    Документ15 страниц
    IRA
    Constantin Tomulesei
    Оценок пока нет
  • Formule Matematice Cls. V - VIII in Doua Pagini PDF
    Formule Matematice Cls. V - VIII in Doua Pagini PDF
    Документ2 страницы
    Formule Matematice Cls. V - VIII in Doua Pagini PDF
    cneamtu0075281
    Оценок пока нет
  • Formule Algebra Viorel Ignatescu
    Formule Algebra Viorel Ignatescu
    Документ23 страницы
    Formule Algebra Viorel Ignatescu
    Skater Gaby
    100% (2)
  • Crazy Frog
    Crazy Frog
    Документ24 страницы
    Crazy Frog
    Luminita Nastasa
    Оценок пока нет
  • Geometrie Partea 2
    Geometrie Partea 2
    Документ8 страниц
    Geometrie Partea 2
    GogaMircea
    Оценок пока нет
  • Joc Saptamana Altfel
    Joc Saptamana Altfel
    Документ28 страниц
    Joc Saptamana Altfel
    Matthew Benton
    Оценок пока нет
  • Crazy Frog
    Crazy Frog
    Документ24 страницы
    Crazy Frog
    Luminita Nastasa
    Оценок пока нет
  • Joc Saptamana Altfel
    Joc Saptamana Altfel
    Документ28 страниц
    Joc Saptamana Altfel
    Matthew Benton
    Оценок пока нет
  • Set2 P1
    Set2 P1
    Документ2 страницы
    Set2 P1
    Constantin Tomulesei
    Оценок пока нет
  • Descriere - Instalatie 3 Rezervoare
    Descriere - Instalatie 3 Rezervoare
    Документ1 страница
    Descriere - Instalatie 3 Rezervoare
    Constantin Tomulesei
    Оценок пока нет
  • CPT Scada
    CPT Scada
    Документ12 страниц
    CPT Scada
    Constantin Tomulesei
    Оценок пока нет
  • Curs MSRU - 2012-2013
    Curs MSRU - 2012-2013
    Документ102 страницы
    Curs MSRU - 2012-2013
    Cornelius Dragan
    Оценок пока нет
  • Capitolul 1
    Capitolul 1
    Документ10 страниц
    Capitolul 1
    Bianca-Denisa Vrînceanu
    Оценок пока нет
  • Fertea Adrian
    Fertea Adrian
    Документ13 страниц
    Fertea Adrian
    Constantin Tomulesei
    Оценок пока нет
  • CPT Scada
    CPT Scada
    Документ12 страниц
    CPT Scada
    Constantin Tomulesei
    Оценок пока нет
  • RADULESCU, Valentin - Duelul Mintii
    RADULESCU, Valentin - Duelul Mintii
    Документ153 страницы
    RADULESCU, Valentin - Duelul Mintii
    autentic123
    Оценок пока нет