1 / 23

Vztah mezi koloniemi s paralelním přepisováním

Vztah mezi koloniemi s paralelním přepisováním. Šárka Vavrečková sarka.vavreckova @ fpf.slu.cz. Kolonie. Kolonie. C = (V,T,R), kde V je abeceda kolonie, T je množina terminálních symbolů, T  V, R je množina komponent (S i , F i ), S i  V, F i = {f m  (V- {S i })*, 1mn i }.

niles
Download Presentation

Vztah mezi koloniemi s paralelním přepisováním

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vztah mezi koloniemis paralelním přepisováním Šárka Vavrečková sarka.vavreckova@fpf.slu.cz

  2. Kolonie Kolonie • C = (V,T,R), kde • V je abeceda kolonie, • T je množina terminálních symbolů, T  V, • R je množina komponent (Si, Fi), Si  V, • Fi ={fm (V-{Si})*, 1mni}. • Axiom kolonie w0 je libovolný řetězec nad množinou V. Například C = ({M, N, P, a, b}, {a, b}, R), R = { (M, {PPPN, PPNP, PNPP, NPPP, }), (N, {M}), (P, {a}), (P, {b}) }, w0 = MM

  3. Paralelní přepisování Paralelní odvozování • Každá komponenta je použita nejvýše jednou, • pokud je možné komponentu použít, musí být použita, • může existovat více komponent se stejným startovacím symbolem. • wp(weakly competitive parallel derivation step): • = slabý paralelismus; když je počet výskytů symbolu menší • než počet komponent s tímto startovacím symbolem, • vybereme tolik komponent, kolik budeme potřebovat. • sp(strongly competitive parallel derivation step): • = silný paralelismus; pokud je počet výskytů symbolu menší • než počet komponent s tímto startovacím symbolem, • výpočet je zablokován.

  4. Příklad: R = { (M, {PPPN, PPNP, PNPP, NPPP, }), (N, {M}), (P, {a}), (P, {b}) } w0 = MM MM wp PPNPM wp PaMb wp bab MM sp PPNPM sp PaMb spBLOKOVÁNO MM sp PPNPM sp PaMbPNPP sp babPMaP sp sp babaab L1wp = {w  {a,b}*; |w|=3n, n0, | |w|a-|w|b | 1} L1sp = {w  {a,b}*; |w|=6n, n0, |w|a = |w|b}

  5. Dosavadní výsledky Dosavadní výsledky CF  COLsp, CF  COLwp L2 = {aibjaibj; i, j 1}  COLsp - CF R = {(A, {aA', a}), (A, {aA', a}), (A', {A}), (A', {A}), (B, {bB', b}), (B, {bB', b}), (B', {B}), (B', {B}) }, w0 = ABAB L3 = {aibjck; i, j, k 1, ij, j k, ik}  COLwp - CF R = { (A, {aA', aX}), (A', {A}), (B, {bB', bX}), (B', {B}), (C, {cC', cX}), (C', {C}), (Y, {Z}), (Z, {Y}), (X, {}), (X, {Y}), (X, {Y}) }, w0 = ABC COLwp ? COLsp 

  6. Demonstrační příklady Demonstrační příklady Krok 1 algoritmu popíšeme na této kolonii: C4wp = ({A, B, C, a, b, c}, {a, b, c}, R), w0 = AAC, R = { (A, {aB, }), (A, {bB, }), (B, {A}), (B, {A}), (C, {a,b,c}) } L4 = {w {a,b}*; w = ' nebo w = ', kde ' je inverzí  (záměna symbolů a, b)} ° {a,b,c} Kroky 2 a 3 ukážeme na kolonii C5wp = ({A, B, C, a, b}, {a, b}, R), w0 = BBC, R = { (A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) } L5 = {w {a,b}*; |w| = 5n+2, n1, | |w|a-|w|b | 1}

  7. Použité značení Použité značení: S ... množina symbolů množiny V, které jsou startovacími symboly ve více než jedné komponentě, počet prvků této množiny budeme označovat s, Sj ... obecně j-tý symbol množiny S (tj. S = {S1, S2, ..., Ss}), k ... počet komponent s tím startovacím symbolem, který je právě zpracováván, obecně můžeme psát k1, k2, ..., ks pro různé prvky množiny S, pokud není přímo vymezeno, s kterým symbolem právě pracujeme.

  8. Krok 1 Krok 1 Pro každý symbol A  S přidáme nové symboly: Ve větné formě je výskytů symbolu A: Nové symboly: 1 A(1), A(1,1), A(1,2), …, A(1,k) 2 A(2), A(2,1), A(2,2), …, A(2,počet_dvojic) 3 A(3), A(3,1), A(3,2), …, A(3,počet_trojic) ... k A(k), A(k,1) a další - pomocné - symboly.

  9. Ukázka derivace: Kolonie C4wp: w0 = AAC, R = { (A, {aB, }), (A, {bB, }), (B, {A}), (B, {A}), (C, {a,b,c}) } S = {A, B}, k1 = k2 = 2. Kolonie C4sp: sudé kroky odvození jsou obrazy kroků v původní kolonii, liché kroky odvození jsou pomocné. AAC wp aBbBa wp aAbAa wp abbBa wp abbAa wp abba S0sp A(2)[A,2]A(2)[A,2]CXAXAXBXB sp A(2,1)[A,2]'A(2,1)[A,2]'C'[A,2]'YA([B,0]')3YB sp... sp aB(2)[B,2]bB(2)[B,2]aXAXAXBXB sp aB(2,1)[B,2]'bB(2,1)[B,2]'a([A,0]')3YA[B,2]'YB sp aA(2)[A,2]bA(2)[A,2]aXAXAXBXB sp aA(2,1)[A,2]'bA(2,1)[A,2]'a[A,2]'YA([B,0]')3YB sp abbB(1)[B,1]aXAXAXBXB sp abbB(1,1)[B,1]'a([A,0]')3YA([B,1]')2YB sp abbA(1)[A,1]aXAXAXBXB sp abbA(1,2)[A,1]'a([A,1]')2YA([B,0]')3YB sp abbaXAXAXBXBsp abba

  10. Celá derivace Celá derivace v kolonii C4wp: AAC wp aBbBa wp aAbAa wp abbBa wp abbAa wp abba Celá derivace v kolonii C4sp: S0sp A(2)[A,2]A(2)[A,2]CXAXAXBXB sp A(2,1)[A,2]'A(2,1)[A,2]'C'[A,2]'YA([B,0]')3YB sp aB(2)[B,2]bB(2)[B,2]aXAXAXBXB sp aB(2,1)[B,2]'bB(2,1)[B,2]'a([A,0]')3YA[B,2]'YB sp aA(2)[A,2]bA(2)[A,2]aXAXAXBXB sp aA(2,1)[A,2]'bA(2,1)[A,2]'a[A,2]'YA([B,0]')3YB sp abbB(1)[B,1]aXAXAXBXB sp abbB(1,1)[B,1]'a([A,0]')3YA([B,1]')2YB sp abbA(1)[A,1]aXAXAXBXB sp abbA(1,2)[A,1]'a([A,1]')2YA([B,0]')3YB sp abbaXAXAXBXBsp abba

  11. Komponenty: R = {(A, {aB,}), (A, {bB,}), (B, {A}), (B, {A}), (C, {a,b,c})}, w0 = AAC, S = {A, B}, k1= k2=2. (C, {C'}), (C', {a,b,c}), (B(1), {B(1,1), B(1,2)}), (B(2), {B(2,1)}), (B(2), {B(2,1)}) (A(1), {A(1,1), A(1,2)}) , (A(2), {A(2,1)}) , (A(2), {A(2,1)}) , (A(1,1), {aB(1)[B,1], aB(2)[B,2], }), (A(1,2), {bB(1)[B,1], bB(2)[B,2], }), (A(2,1), {aB(1)[B,1], aB(2)[B,2], }), (A(2,1), {bB(1)[B,1], bB(2)[B,2], }), (B(1,1), {A(1)[A,1], A(2)[A,2]}), (B(1,2), {A(1)[A,1], A(2)[A,2]}), (B(2,1), {A(1)[A,1], A(2)[A,2]}), (B(2,1), {A(1)[A,1], A(2)[A,2]}), ([B,1], {[B,1]'}), ([B,2], {[B,2]'}), ([B,2], {[B,2]'}), ([A,1], {[A,1]'}), ([A,2], {[A,2]'}), ([A,2], {[A,2]'}), ([A,0]',{}), ([A,0]',{}), ([A,0]', {XA}), ([A,1]',{}), ([A,1]',{}), ([A,1]', {XA}), ([A,2]',{}), ([A,2]',{}), ([A,2]', {XA}), ([B,0]',{}), ([B,0]',{}), ([B,0]', {XB}), ([B,1]',{}), ([B,1]',{}), ([B,1]', {XB}), ([B,2]',{}), ([B,2]',{}), ([B,2]', {XB}), (XA, {([A,0]')3YA, ([A,1]')2YA, [A,2]'YA, }), (XA, {}), (YA, {XA}), (XB, {([B,0]')3YB, ([B,1]')2YB, [B,2]'YB, }), (XB, {}), (YB, {XB}), (S0, {A(2)A(2)CXAXAXBXB})

  12. Použitelnost algoritmu po kroku 1 Použitelnost algoritmu po kroku 1: Algoritmus můžeme aplikovat na kolonie, kde všechny výskyty symbolů v přepisovaném slově, které lze přepsat, jsou v každém kroku odvození přepsány. Algoritmus stále ještě není použitelný na kolonie, kde v některých krocích odvození zůstávají nepřepsané (čekající) symboly.

  13. Krok 2 KROK 3 Některý výskyt symbolu Sj  S má zůstat nepřepsán: [Sj,t,v] • t je počet kroků (dvojkroků vytvářené kolonie), po které • bude symbol čekat, • vje počet symbolů [Sj,t,v] pro určité Sj a t, při změně t se v může zvýšit. Například[A,1,2], [A,3,1] [Sj,-,-] pro symboly, které budou čekat déle, než chceme zachytit číslem t (zde použijeme tyto symboly pro t > k). Pro symboly Si  S vytvoříme navíc symboly [Si,-,-] pro případ, že je ve větné formě více výskytů tohoto symbolu.

  14. Ukázka derivace: Kolonie C5wp: w0 = BBC, R = {(A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) }, S = {A}, k = 2. BBC wp BAAAAA wp AAaAbAA wp bAaAbAa wp baaAbba wp baabbba S0sp [B,-,-]BCXXsp [B,-,-]'B'C'([A,0]')3Y sp... sp BA(2)[A,2][A,-,-]A(2)[A,2][A,2,1][A,1,1]XX sp B'A(2,1)[A,2]'[A,-,-]'A(2,1)[A,2]'[A,2,1]'[A,1,1]'[A,2]'Y sp A(2)[A,2][A,1,2]a[A,2,1]b[A,1,2]A(2)[A,2]XX sp A(2,1)[A,2]'[A,1,2]'a[A,2,1]'b[A,1,2]'A(2,1)[A,2]'[A,2]'Y sp bA(2)[A,2]a [A,1,1]bA(2)[A,2]aXX sp bA(2,1)[A,2]'a [A,1,1]'bA(2,1)[A,2]'a[A,2]')Y sp baaA(1)[A,1]bbaXX sp baaA(1,2)[A,1]'bba([A,1]')2Y sp baabbbaXXsp baabbba

  15. Celá derivace Celá derivace v kolonii C5wp: BBC wp BAAAAA wp AAaAbAA wp bAaAbAa wp baaAbba wp baabbba Celá derivace v kolonii C5sp: S0sp [B,-,-]BCXX sp [B,-,-] 'B'C'([A,0]')3Y sp BA(2)[A,2][A,-,-]A(2)[A,2][A,2,1][A,1,1]XX sp B'A(2,1)[A,2]'[A,-,-]'A(2,1)[A,2]'[A,2,1]'[A,1,1]'[A,2]'Y sp A(2)[A,2][A,1,2]a[A,2,1]b[A,1,2]A(2)[A,2]XX sp A(2,1)[A,2]'[A,1,2]'a[A,2,1]'b[A,1,2]'A(2,1)[A,2]'[A,2]'Y sp bA(2)[A,2]a[A,1,1]bA(2)[A,2]aXX sp bA(2,1)[A,2]'a[A,1,1]'bA(2,1)[A,2]'a[A,2]')Y sp baaA(1)[A,1]bbaXX sp baaA(1,2)[A,1]'bba([A,1]')2Y sp baabbbaXXsp baabbba

  16. Komponenty: R = { (A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) }, w0 = BBC, S = {A}, k = 2 (A(1,1), {a, aBC, a[B,-,-]C, aB[C,-,-], a[B,-,-][C,-,-], (A(1,2), {b}), BCa, [B,-,-]Ca, B[C,-,-]a, [B,-,-][C,-,-]a}), (A(2,1), {a, aBC, a[B,-,-]C, aB[C,-,-], a[B,-,-][C,-,-], (A(2,1), {b}), BCa, [B,-,-]Ca, B[C,-,-]a, [B,-,-][C,-,-]a}), (A(2), {A(2,1)}) 2x, (A(1), {A(1,1),A(1,2)}), ([A,1]', {}) 2x, ([A,1]', {X}), ([A,2]', {}) 2x, ([A,2]', {X}), ([A,0]', {}) 2x, ([A,0]', {X}), ([A,1], {[A,1]'}), ([A,2], {[A,2]'}) 2x, ([A,1,1]', {A(1)[A,1], A(2)[A,2]}), ([A,1,2]', {A(1)[A,1], A(2)[A,2]}) 2x, ([A,2,1]', {[A,1,1],[A,1,2]}), ([A,2,2]', {[A,1,2]}) 2x, ([A,1,1], {[A,1,1]'}), ([A,1,2], {[A,1,2]'}) 2x, ([A,2,1], {[A,2,1]'}), ([A,2,2], {[A,2,2]'}) 2x, (X, {([A,0]')3Y, ([A,1]')2Y, [A,2]'Y,}), (X, {}), (Y, {}), ([A,-,-], {[A,-,-]'}), ([A,-,-]', {[A,-,-],[A,2,1],[A,1,2]}),

  17. další komponenty (B, {B'}), ([B,-,-], {[B,-,-]'}), ([B,-,-]', {B}), (C, {C'}), ([C,-,-], {[C,-,-]'}), ([C,-,-]', {C}), (B', {A(2)[A,2]A(2)[A,2], [A,-,-][A,-,-], A(2)[A,2][A,1,1], A(2)[A,2][A,1,2], ..., A(2)[A,2][A,-,-], [A,1,1]A(2)[A,2], [A,1,2]A(2)[A,2], ..., [A,-,-]A(2)[A,2], [A,1,1][A,2,1], [A,1,1][A,2,2], [A,1,2][A,1,2], [A,1,2][A,2,1], [A,1,2][A,2,2], [A,2,1][A,1,1], [A,2,1][A,1,2], [A,2,2][A,1,1], [A,2,2][A,1,2], [A,2,2][A,2,2], [A,-,-][A,1,1], [A,-,-][A,1,2], [A,-,-][A,2,1], [A,-,-][A,2,2], [A,1,1][A,-,-], [A,1,2][A,-,-], [A,2,1][A,-,-], [A,2,2][A,-,-]}), (C', {obdobně, všechny použitelné variace s opakováním délky 3}) (S0, {[B,-,-]BCXX, B[B,-,-]CXX})

  18. Použitelnost algoritmu po kroku 2 Použitelnost algoritmu po kroku 2: Kolonie po aplikaci algoritmu po krok 2 včetně generuje již všechna slova patřící do jazyka původní kolonie a blokuje generování slov do tohoto jazyka nepatřících, s výjimkou: pokud pro nějaký symbol Sj  S použijeme v přepisovaném slově pouze symboly [Sj,t,v], resp. [Sj,-,-] (čekající), ale žádný symbol Sj(k). Například: R = { (B, {AAB', }), (B', {AAB}), (A, {a}), (A, {b}) }, w0 = B, L = {ab, ba}* Možnost derivace v původní kolonii nepřípustné: B  AAB'  AAAAB  aAAbAAB'  aabbAAAAB  …

  19. Krok 3 Řešení: Pro každé Sj  S přidáme nové komponenty: ([Sj,t,-], {}) 2xpro každé t: 1  t  k ([Sj,-], {}) 2x Upravíme existující komponenty: ([Sj,k]', {}) ([Sj,k]', {}) ..., ([Sj,k]', {}) ([Sj,k]', {XSj}) ([Sj,k]', {,[Sj,1,-]}) ([Sj,k]', {,[Sj,2,-]}) ..., ([Sj,k]', {,[Sj,k,-]}) ([Sj,k]', {XSj, [Sj,-]XSj}) Čekající symboly nebudou zablokovány, pokud se ve slově nacházejí symboly [Sj,k]'. ([Sj,1,v]', {Sj(v)[Sj,v], …, Sj(k)[Sj,k]}) ([Sj,t,v]', {[Sj,t-1,v], [Sj,t-1,v+1], …, [Sj,t-1,k]}) - pro všechna t > 1 ([Sj,1,v]', {Sj(v)[Sj,v][Sj,1,-], …, Sj(k)[Sj,k][Sj,1,-]}) ([Sj,t,v]', {[Sj,t-1,v][Sj,t,-], [Sj,t-1,v+1][Sj,t,-],…,[Sj,t-1,k][Sj,t,-]}) - pro všechna t > 1, vždy jen jediná komponenta

  20. Pro každé Si  S přidáme nové komponenty ([Si,-], {}) 2x Upravíme existující komponenty: ([Si,-,-], {[Si,-,-]'}) (Si, {Si'}) ([Si,-,-], {[Si,-,-]'[Si,-]}) (Si, {Si', Si'[Si,-]}) Tedy v předchozím příkladu přidáme ([B,-], {}) 2x ([C,-], {}) 2x Upravíme ([B,-,-], {[B,-,-]'[B,-]}) ([C,-,-], {[C,-,-]'[C,-]}) (B, {B', B'[B,-]}) (C, {C', C'[B,-]})

  21. Doplnění vztahu Doplnění vztahu L = {anbncn; n1} COLsp – COLwp Csp = ({A, B, C, A', B', C', D, a, b, c}, {a, b, c}, R) w0 = ABC, R = { (A, {aA', aD}), (B, {bB', bD}), (C, {cC', cD}), (A', {A}), (B', {B}), (C', {C}), (D, {}), (D, {}), (D, {}) }.

  22. Závěrem Závěrem Důsledkem práce je vztah COLwp  COLsp

  23. Závěrem Děkuji za pozornost.

More Related