380 likes | 541 Views
RECUNOASTEREA FORM ELOR (2/2) METODE STRUCTURALE Potrivirea numerelor de forma Potrivirea de siruri Recunoasterea sintactica a sirurilor Recunoasterea sintactica a arborilor. Potrivirea numerelor de forma ~ distanta minima
E N D
RECUNOASTEREA FORMELOR (2/2) METODE STRUCTURALE Potrivirea numerelor de forma Potrivirea de siruri Recunoasterea sintactica a sirurilor Recunoasterea sintactica a arborilor
Potrivirea numerelor de forma ~ distanta minima Gradul de simiaritate k intre doua granite de regiuni (forme) = cel mai mare ordin pentru care numerele de forma ale acestora inca coincid. Exemplu: doua forme a si b (coduri inlantuite cu 4 directii) grad de similaritate k daca: sj(a) = sj(b) pentru j = 4, 6, 8, ... , k sj(a) ≠ sj(b) pentru j = k+2, k+4, ... (s= numar de forma, j= ordinul numarului de forma = numar de cifre pentru reprezentare). Obs. k mare => forme asemanatoare,k =∞ =>forme identice. Distanta dintre doua forme a si b: D(a,b) = 1/k Proprietati: D(a,b) ≥ 0 D(a,b) = 0 daca a = b D(a,c) ≤ max [D(a, b), D(b, c)]
Aplicatie. (a) Care forma a-e se potriveste cel mai bine cu f ? (b) => arborele de similaritate (radacina ~ grad de similaritate minim, 4 in acest exemplu)=> f grad maxim de similaritate cu c;(c) aceleasi informatii si din matricea de similaritate. a)
b) c)
Potrivirea de siruri -a1a2...an si b1b2...bn= siruri codificand granite de regiuni a si b; -α= numar de potriviri intre cele doua siruri (potrivire in pozitia k:ak = bk); -numarul de simboluri care nu se potrivesc: β = max (|a|, |b|) - α ( |arg| = lungimea sirului, numar de simboluri) =>β = 0 siruri identice. Masura de similaritate, raportul: (R= ∞ potrivire perfecta,R = 0 nu se potriveste niciun simbol). Important punctul de start!
Aplicatie. (a), (b) granite, doua clase; (c), (d)apoximate prin poligoane, unghiul dintre segmente succesive codificate cu opt posibile simboluriα1: 0˚ < θ ≤ 45˚; α2: 45˚ < θ ≤ 90˚; ... ; α8: 315˚ < θ ≤ 360˚; (e) R pentru cinci esantioane de obiecte din clasa 1 (ex: notatia 1.c indica al treilea sir din clasa 1); (f) analog pentru clasa 2; (g) R la compararea de siruri din clase diferite. a) b) c) d)
e) f) g)
Recunoasterea sintactica a sirurilor Baza: -set de primitive de forme; -set de reguli (gramatica) interconectarea acestora; -automat de recunoastere.
Gramatici de siruri - ω1 si ω2 doua clase de forme ~ siruri de primitive (descriptori relationali); -primitiva ~ simbol permis in alfabetul unei gramatici; -gramatica= set de reguli de sintaxa genereazapropozitii formate din simboluri apartinand alfabetului; - limbajL(G) =setul de propozitii generate de o gramatica G. Gramatici G1 si G2: -G1 propozitii ~ forme din clasa ω1; -G2 propozitii ~ forme din clasa ω2. Procesul de recunoastere de forme: o propozitie (forma necunoscuta) in care limbaj forma reprezinta o propozitie valida? -propozitia ЄL(G1) => forma Є ω1; -propozitia ЄL(G2) => forma Є ω2; -propozitia invalida in ambele limbaje => forma rejectata. Asemanatorpentru mai multe clase.
Gramatica: G = {N, ∑, P, S} unde N = set finit de variabile numite nonterminali; ∑ = set finit de constante numite terminali; P = set de reguli de rescriere numite productii; S = simbolul de start, apartinand lui N. (N si ∑ disjuncte). Conventii de notatie: A, B, ... ,S, ... : nonterminali; a, b, c, ... (litere mici la inceputul alfabetului): terminali; v, w, x, y, z (litere mici la sfarsitul alfabetului): siruri de terminali; α, β, θ, ... (litere mici grecesti): siruri cu terminali si nonterminali; λ : propozitia vida (fara simboluri); V* : setul tuturor propozitiilor compuse cu elemente din setul de simboli V.
Exemplu. Obiect reprezentat prin schelet primitive pentru descriere.Gramatica G = {N, ∑, P, S}, cu N = {A, B, S}, ∑ = {a, b, c} si P = {S aA, A bA, A bB, B c} (terminalele a, b, c corespund primitivelor). Aplicand aceste productii => sirul abbbbbc (~ structurii obiectului). Limbajul generat: L(G) = {abnc | n≥1} => schelete de forma din figura de lungime arbitrara.
Utilizarea semanticilor -forme complicate reguli de conectivitate, alti factori (lungimea si directia primitivelor), de cate ori se pot aplica productiile => reguli semantice memorate in baza de cunostinte. Exemplul precedent: informatii semantice: => clasa de forme larga, dar limitata!
Automate de recunoastere a sirurilor Problema: recunoasterea daca o forma apartine limbajului L(G) generat de o gramatica G =>automat: recunoaste daca un sir de intrare (forma) Є limbajului asociat (automate finite care recunosc limbaje generate de gramatici regulate). Automat finit: Af= (Q, ∑, δ, q0, F) unde Q = set finit si nevid de stari; ∑ = alfabet finit de intrare; δ = o mapare de la Qx∑ la colectia tuturor subseturilor lui Q; q0 = starea de start; F = set de stari finale sau acceptabile (un subset al lui Q).
Exemplu. automat Q = {q0, q1, q2}, ∑ = {a, b}, F = { q0} si maparile δ(q0,a) ={ q2}, δ(q0,b) ={ q1}, δ(q1,a) ={ q2}, δ(q1,b ={ q0}, δ(q2,a) ={ q0}, δ(q2,b) ={q1}. Diagrama de stari: (aici starea initiala si starea finala coincid) Sir w acceptat (recunoscut): starea initiala starea finala (ex: automatul recunoaste abbabb, dar rejecteaza aabab).
Proiectarea unui automat finit (recunoastere sintactica de siruri ) dintr-o gramatica regulata data. Fie gramatica G = {N, ∑, P, X0}, unde X0 ≡ S, N= X0 plus n nonterminali suplimentari X1 , X2 , .... , Xn . => Q (automat)= n + 2 stari {q0, q1,...., qn, qn+1,} (qi~Xi pentru 0 ≤ i ≤ n si qn+1starea finala). => ∑ (set de simboluri de intrare pentru automat) =∑ (set terminali din G). => maparile δ: utilizarea a doua reguli bazate pe productiile lui G, adica pentru fiecare i si j cu 0 ≤ i ≤ n, 0 ≤ j ≤ n: 1. daca Xi aXj este in P atunci δ(qi, a) contine pe qj. 2. daca Xi a este in P atunci δ(qi, a) contine pe qn+1.
Proiectarea gramaticii regulate dintr-un automat finit dat. Fieun automat finit Af= (Q, ∑, δ, q0, F) => gramatica regulata corespunzatoare G = {N, ∑, P, X0}: => N= elemente din Q cu X0(simbolul de start ) ~q0; => productiile P: 1. qjЄδ(qi, a)=> Xi aXjЄ P. 2. o stare FЄ δ(qi, a)=> Xi aЄ P. => setul terminali ∑ acelasi. Exemplu. Automatul finit pentru gramatica din exemplul precedent de la "Gramatici de siruri“: => productiileX0 aX1, X1 bX1, X1 bX2, X2 c. => Af= (Q, ∑, δ, q0, F) cuQ = {q0, q1, q2, q3}, ∑ = {a, b, c}, F = { q3} si maparile δ(q0,a) ={ q1}, δ(q1,b) ={ q1, q2}, δ(q2,c) ={ q3}. Pentru a fi complet:δ(q0,b) = δ(q0,c) = δ(q1,a) = δ(q1,c = δ(q2,a) = δ(q2,b) = Ø (multimea vida) ~ tranzitii nedefinite.
Recunoasterea sintactica a arborilor regiunile / obiectele de interes ~ arbori Gramatici de arbori Gramatica de arbori: G = (N, ∑, P, r, S) N = set finit de variabile - nonterminali; ∑ = set finit de constante - terminali; P = set de reguli de rescriere - productii Ti Tj, (Ti,Tj arbori); r = functie de rang = numarul de descendenti directi (fii) ai unui nod a carui eticheta este un terminal din gramatica; S = simbolul de start (in general poate fi un arbore)ЄN. Gramatica de arbori expansivi cu productii de forma: (X1, X2, ... , Xn nonterminali,k terminal)
Exemplu. scheletul unei structuri generat cu gramatica N = { X1, X2, X3, S}, ∑ = {a, b, c, d, e} (terminali ~ primitivele din figura).
-conectivitate cap-la-coada ("head-to-tail") a primitivelor linie; -conexiuni arbitrare la cerc de-a lungul circumferintei; => productii: (5) X2a => functiile de rang r(a) ={0, 1}, r(b) = r(d) = {1}, r(e) = {0,1}, r(c) = {2}. Restrictii: -productiile 2, 4 si 6 aplicate de acelasi numar de ori => structura cu cele trei picioare de aceeasi lungime. -productiile 4 si 6 aplicate de acelasi numar de ori => structura simetrica dupa axa verticala (informatii semantice~ gramatici de siruri).
Automate de arbori Automat de arbori: -incepescanarea simultan la fiecare nod de pe frontiera (frunzele de la stanga la dreapta); -continua dupa cai paralele spre radacina. Automat frontiera-la-radacina: At= (Q, F, { fk | kЄ ∑ } ) Q = set finit de stari; F = subset al lui Q, set al starilor finale; fk = relatie in QmxQ(deci un subset al setului QmxQ)astfel incat m este un rang al lui k. Gramatica de arboriexpansiviG = (N, ∑, P, r, S) => automatul de arbori corespunzator: Q = N, F = {S}, pentru fiecare simbol kЄ∑se defineste o relatie fk astfel incat (X1, X2, ... , Xm, X) Єfk daca si numai daca exista in G o productie:
Exemplu. Gramatica de arbori G = (N, ∑, P, r, S) cu N = {S, X}, ∑ = {a, b, c, d}, productiile: rangurile:r(a) = {0}, r(b) = {0}, r(c) = {1}, r(d) = {2} => automatul de arbori corespunzator At= (Q, F, { fk | kЄ ∑ } ) cu Q = {S, X}, F = {S} si { fk | kЄ ∑ } = { fa, fb, fc, fd } relatiile: fa = {(Ø, X)}, provenind din productia Xa fb = {(Ø, X)}, provenind din productia X b fc = {(X, X)}, provenind din productia fd = {(X, X, S)}, provenind din productia
Interpretare: -relatiafa: un nod cu eticheta a fara fii (Ø) i se asigneaza starea X; -relatiafc: un nod cu eticheta c cu un fiu avand starea X, i se asigneaza starea X; -relatiafd: un nod cu eticheta d cu doi fii, fiecare avand starea X, i se asigneaza starea S.
Arbore generat de gramatica recunoscut de automatul de arbori:
Aplicatie. Imagine din fizica energiilor inalte (ciocniri intre particule). Remarca: structura naturala de arbore a unei ciocniri(mijlocul imaginii). Experiment tipic => sute de mii de fotografii, multe fara evenimente de interes => prelucrare automata.
Gramatica de arbori G = (N, ∑, P, r, S) => arbori ~ evenimente tipice din experiment. N = {S, X1, X2}, ∑ = {a, b}, interpretate astfel: Productiile in P:
rangurile:r(a) ={0, 1, 2, 4, 6} si r(b) = {0, 1} (productiile de ramificare ~ numarul de urme rezultate dintr-o coliziune, perechi, maxim 6). Ex: coliziune segmentata in sectiuni convexe si concave => arbore (acesta + variatii generate cu gramatica precedenta). Automatul de arbori:At= (Q, F, { fk | kЄ ∑ } ) cu Q = {S, X1, X2}, F = {S} si { fk | kЄ ∑ } = { fa, fb,} relatiile: fa = {(S,S), (X1, X2, S), (X1, X1, X2, X2, S), (X1, X1, X1, X2, X2, X2, S), (X1, X1), (Ø, X1)} fb = { (X2, X2), (Ø, X2)} Tema. Sa se arate ca acest automat accepta arborele de mai sus.
Invatare In aplicatii complexe: algoritm de invatare a automatelor din esantioane de forme (siruri / arbori). Presupuneri: -toate formele unei clase generate de o gramatica necunoscuta G; -este disponibil un set finit de esantioane R+ cu proprietatea: (“set de esantioane pozitive”= set de forme de antrenare din clasa asociata cu gramatica G) -set de esantioane complet structural~ fiecare productie in G este utilizata sa genereze cel putin un element din R+. Problema: invatarea (sinteza) unui automat finit Af care va accepta siruri din R+ si posibil anumite siruri care seamana cu cele din R+.
corespondenta dintre G si Af=> • (∑*= setul tuturor sirurilor compuse cu elemente din ∑) • Definitie. Pentru un intreg pozitiv k se defineste coada k a lui zЄ∑*fata de R+ ca fiind setul h(z, R+ , k): • h(z, R+ , k) = { w | zwЄR+, |w| ≤ k } • Definitie echivalenta. Coada k a lui z este setul de siruri w cu proprietatile: • (1) zwЄR+; • (2) lungimea lui w este ≤ k.
Procedura de invatare a unui automat Af (R+,k)= (Q, ∑, δ, q0, F) dintr-un set de esantioane R+ si o valoare particulara k: 1) seteaza Q = { q | q = h(z, R+ , k) pentru zЄ∑* } 2) seteaza q0 = h(λ, R+,k) 3) pentru fiecare aЄ∑ δ (q, a) = { q'ЄQ | q' = h(za, R+ , k), cu q = h(z, R+ , k) } 4) seteaza F = { q | qЄQ, λЄq} (λ= sirul vid, fara simboluri)
Exemplu. R+ = {a, ab, abb},k = 1 => 1) , 2) z = λ, h(λ, R+,1) ={ w | λwЄR+, |w| ≤ 1 } = {a} = q0 z = a, h(a, R+,1) ={ w | awЄR+, |w| ≤ 1 } = { λ,b} = q1 z = ab, h(ab, R+,1) = { λ,b} = q1 z = abb, h(abb, R+,1) = { λ} = q2 Alte siruri zЄ∑* furnizeaza siruri zw care nu apartin lui R+=> a patra stare notata qØ, corespunzand conditiei ca h este setul nul. => starile:q0 = {a}, q1 = {λ,a}, q2 = { λ} si qØ =>Q = { q0, q1, q2, qØ,}
3) functiile de tranzitie. Deoarece q0 = h(λ, R+,1) => δ (q0, a) = h(λa, R+,1) = h(a, R+,1) = q1 δ (q0, b) = h(λb, R+,1) = h(b, R+,1) = qØ Deoarece q1 = h(a, R+,1)= h(ab, R+,1) => δ (q1, a) = h(aa, R+,1) = h(aba, R+,1) = qØ => δ (q1, b)={ q1, q2 } Analog: δ (q2, a)= δ (q2, b)= δ (qØ, a)= δ (qØ, b)= qØ
4) setul starilor finale = stari care au sirul vid λ in reprezentarea lor de tip coada k => q1 = { λ , b},q2 = { λ } =>F = { q1, q2 }. Automatul de inferenta obtinut: Af( R+,1)= (Q, ∑, δ, q0, F) unde Q = { q0, q1, q2, qØ,}, ∑ = {a, b}, F= { q1, q2 } si functiile de tranzitie precedente. Diagrama de stari: Automatul accepta siruri de forma: a, ab, abb, ... , abn.
Valoarea lui k controleaza natura automatului rezultatAf( R+,k)! Proprietati (exemplifica dependenta de k): Proprietatea 1. unde L[Af( R+,k)] = limbajul accetat de Af( R+,k). Proprietatea 2. L[Af( R+,k)] = R+ daca k ≥ lungimea celui mai lung sir din R+; L[Af( R+,k)]= ∑* daca k = 0. Proprietatea 3.
Observatii. Proprietatea 1 garanteaza ca Af( R+,k) va accepta sirurile din setul de esantioane R+. Daca k ≥ lungimea celui mai lung sir din R+=> automatul va accepta numai sirurile din R+ (proprietatea 2). Daca k = 0 =>Af( R+,0) cu o singura stare q0 ={ λ } (stare initiala si stare finala),functiile de tranzitie de forma δ (q0, a) = q0 pentru aЄ∑=> L[Af( R+,k)] = ∑* (automatul va accepta sirul vid λ si toate sirurile compuse din simboluri din ∑). Proprietatea 3: sfera (intinderea) limbajului acceptat de Af( R+,k) scade cu cresterea lui k.
Exemplu. R+ = {caaab, bbaab, caab, bbab, cab, bbb, cb},k = 1=> 1. z = λ, h(λ, R+,1) = {Ø} = qØ; 2. z = c, h(λ, R+,1) = {b} = q1; 3. z = cah(λ, R+,1) = {b} = q1; 4. z = cb, h(λ, R+,1) = { λ } = q0; 5. z = caa, h(λ, R+,1) = {b} = q1; 6. z = cab, h(λ, R+,1) = { λ } = q0; 7. z = caaa, h(λ, R+,1) = {b} = q1; 8. z = caab, h(λ, R+,1) = { λ } = q0; 9. z = caaab, h(λ, R+,1) = { λ } = q0; 10. z = b, h(λ, R+,1) = {Ø} = qØ; 11. z = bb, h(λ, R+,1) = {b} = q1; 12. z = bba, h(λ, R+,1) = {b} = q1; 13. z = bbb, h(λ, R+,1) = { λ } = q0; 14. z = bbaa, h(λ, R+,1) = {b} = q1; 15. z = bbab, h(λ, R+,1) = { λ } = q0; 16. z = bbaab, h(λ, R+,1) = { λ } = q0;
Automatul: Af( R+,1)= (Q, ∑, δ, q0, F) unde Q = { q0, q1, qØ,}, ∑ = {a, b, c}, F= { q0 } si functiile de tranzitie date in diagrama de stari: Pentru a fi acceptat un sir trebuie sa inceapa cu a, b sau c si sa se termmine cu un simbol b. De asemenea sunt acceptate siruri cu repetitii ale lui a, b sau c. Avantajul metodei: simplitatea implementarii. Dezavantaj: decizia pentru o valoare potrivita a lui k.