Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vztah mezi koloniemi s paralelním přepisováním Šárka Vavrečková

Podobné prezentace


Prezentace na téma: "Vztah mezi koloniemi s paralelním přepisováním Šárka Vavrečková"— Transkript prezentace:

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

2 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 }. Axiom kolonie w 0 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}) }, w 0 = MM Kolonie

3 à 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. Paralelní odvozování Paralelní přepisování

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

5 COL wp ? COL sp CF  COL sp, CF  COL wp L 2 = {a i b j a i b j ; i, j  1}  COL sp - CF R = {(A, {aA', a}), (A, {aA', a}), (A', {A}), (A', {A}), (B, {bB', b}), (B, {bB', b}), (B', {B}), (B', {B}) }, w 0 = ABAB L 3 = {a i b j c k ; i, j, k  1, i  j, j  k, i  k}  COL wp - 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}) }, w 0 = ABC Dosavadní výsledky 

6 Demonstrační příklady Krok 1 algoritmu popíšeme na této kolonii: C 4wp = ({A, B, C, a, b, c}, {a, b, c}, R), w 0 = AAC, R = { (A, {aB,  }), (A, {bB,  }), (B, {A}), (B, {A}), (C, {a,b,c}) } Demonstrační příklady L 4 = {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 C 5wp = ({A, B, C, a, b}, {a, b}, R), w 0 = BBC, R = { (A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) } L 5 = {w  {a,b}*; |w| = 5n+2, n  1, | |w| a -|w| b |  1}

7 Použité značení: S 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, SS S j... obecně j-tý symbol množiny S (tj. S = {S 1, S 2,..., S s }), S k... počet komponent s tím startovacím symbolem, který je právě zpracováván, obecně můžeme psát k 1, k 2,..., k s pro různé prvky množiny S, pokud není přímo vymezeno, s kterým symbolem právě pracujeme. Použité značení

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

9 Kolonie C 4wp : w 0 = AAC, R = { (A, {aB,  }), (A, {bB,  }), (B, {A}), (B, {A}), (C, {a,b,c}) } S S = {A, B}, k 1 = k 2 = 2. Kolonie C 4sp : sudé kroky odvození jsou obrazy kroků v původní kolonii, liché kroky odvození jsou pomocné. AAC  wp aAbAa  wp abbBa  wp abbAa  wp abba S 0  sp A (2) [A,2]A (2) [A,2]CX A X A X B X B  sp A (2,1) [A,2]'A (2,1) [A,2]'C'[A,2]'Y A ([B,0]') 3 Y B  sp...  wp aBbBa Ukázka derivace:  sp aB (2) [B,2]bB (2) [B,2]aX A X A X B X B  sp aB (2,1) [B,2]'bB (2,1) [B,2]'a([A,0]') 3 Y A [B,2]'Y B  sp aA (2) [A,2]bA (2) [A,2]aX A X A X B X B  sp aA (2,1) [A,2]'bA (2,1) [A,2]'a[A,2]'Y A ([B,0]') 3 Y B  sp abbB (1) [B,1]aX A X A X B X B  sp abbB (1,1) [B,1]'a([A,0]') 3 Y A ([B,1]') 2 Y B  sp abbA (1) [A,1]aX A X A X B X B  sp abbA (1,2) [A,1]'a([A,1]') 2 Y A ([B,0]') 3 Y B  sp abbaX A X A X B X B  sp abba

10 Celá derivace Celá derivace v kolonii C 4sp : S 0  sp A (2) [A,2]A (2) [A,2]CX A X A X B X B  sp A (2,1) [A,2]'A (2,1) [A,2]'C'[A,2]'Y A ([B,0]') 3 Y B  sp aB (2) [B,2]bB (2) [B,2]aX A X A X B X B  sp aB (2,1) [B,2]'bB (2,1) [B,2]'a([A,0]') 3 Y A [B,2]'Y B  sp aA (2) [A,2]bA (2) [A,2]aX A X A X B X B  sp aA (2,1) [A,2]'bA (2,1) [A,2]'a[A,2]'Y A ([B,0]') 3 Y B  sp abbB (1) [B,1]aX A X A X B X B  sp abbB (1,1) [B,1]'a([A,0]') 3 Y A ([B,1]') 2 Y B  sp abbA (1) [A,1]aX A X A X B X B  sp abbA (1,2) [A,1]'a([A,1]') 2 Y A ([B,0]') 3 Y B  sp abbaX A X A X B X B  sp abba Celá derivace v kolonii C 4wp : AAC  wp aBbBa  wp aAbAa  wp abbBa  wp abbAa  wp abba

11 Komponenty: R = {(A, {aB,  }), (A, {bB,  }), (B, {A}), (B, {A}), (C, {a,b,c})}, S w 0 = AAC, S = {A, B}, k 1 = k 2 =2. (C, {C'}), (C', {a,b,c}), (A (1), {A (1,1), A (1,2) }), (A (2), {A (2,1) }), ([A,1], {[A,1]'}), ([A,2], {[A,2]'}), (B (1), {B (1,1), B (1,2) }), (B (2), {B (2,1) }), (B (2), {B (2,1) }) ([B,1], {[B,1]'}), ([B,2], {[B,2]'}), ([A,0]',{  }), ([A,0]',{  }), ([A,0]', {X A }), ([A,1]',{  }), ([A,1]',{  }), ([A,1]', {X A }), ([A,2]',{  }), ([A,2]',{  }), ([A,2]', {X A }), (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,0]',{  }), ([B,0]',{  }), ([B,0]', {X B }), ([B,1]',{  }), ([B,1]',{  }), ([B,1]', {X B }), ([B,2]',{  }), ([B,2]',{  }), ([B,2]', {X B }), (X A, {([A,0]') 3 Y A, ([A,1]') 2 Y A, [A,2]'Y A,  }), (X A, {  }), (Y A, {X A }), (X B, {([B,0]') 3 Y B, ([B,1]') 2 Y B, [B,2]'Y B,  }), (X B, {  }), (Y B, {X B }), (S 0, {A (2) A (2) CX A X A X B X B })

12 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. Použitelnost algoritmu po kroku 1

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

14 Ukázka derivace: Kolonie C 5wp : w 0 = BBC, R = {(A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) }, S S = {A}, k = 2. BBC S 0  sp [B,-,-]BCXX  sp [B,-,-]'B'C'([A,0]') 3 Y  wp BAAAAA  wp AAaAbAA  wp bAaAbAa  wp baaAbba  wp baabbba  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]') 2 Y  sp baabbbaXX  sp baabbba

15 Celá derivace Celá derivace v kolonii C 5sp : S 0  sp [B,-,-]BCXX  sp [B,-,-] 'B'C'([A,0]') 3 Y  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]') 2 Y  sp baabbbaXX  sp baabbba Celá derivace v kolonii C 5wp : BBC  wp BAAAAA  wp AAaAbAA  wp bAaAbAa  wp baaAbba  wp baabbba

16 Komponenty: R = { (A, {a, aBC, BCa}), (A, {b}), (B, {AA}), (C, {AAA}) }, S w 0 = 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,1]', {  }) 2x, ([A,1]', {X}), ([A,1,1], {[A,1,1]'}), ([A,1,2], {[A,1,2]'}) 2x, ([A,1], {[A,1]'}), ([A,1,1]', {A (1) [A,1], A (2) [A,2]}), ([A,1,2]', {A (1) [A,1], A (2) [A,2]}) 2x, ([A,-,-], {[A,-,-]'}), ([A,-,-]', {[A,-,-],[A,2,1],[A,1,2]}), (A (1), {A (1,1),A (1,2) }), (A (2), {A (2,1) }) 2x, ([A,2], {[A,2]'}) 2x, ([A,2]', {  }) 2x, ([A,2]', {X}),([A,0]', {  }) 2x, ([A,0]', {X}), ([A,2,1], {[A,2,1]'}), ([A,2,2], {[A,2,2]'}) 2x, (X, {([A,0]') 3 Y, ([A,1]') 2 Y, [A,2]'Y,  }), (X, {  }), (Y, {  }), ([A,2,1]', {[A,1,1],[A,1,2]}), ([A,2,2]', {[A,1,2]}) 2x,

17 další komponenty (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,-,-]}), (B, {B'}),([B,-,-], {[B,-,-]'}),([B,-,-]', {B}), (S 0, {[B,-,-]BCXX, B[B,-,-]CXX}) (C, {C'}),([C,-,-], {[C,-,-]'}),([C,-,-]', {C}), (C', {obdobně, všechny použitelné variace s opakováním délky 3})

18 Proč je nutné řešit čekající symboly tak složitě: Kdybychom použili místo [A,t,v] a [A,-,-] například pouze symboly A (tedy nerozlišovali bychom různé doby čekání), pak by byly zablokovány derivace některých slov do jazyka patřících. Možnosti: 1) více komponent pro A, A'  nebezpečí zablokování správných slov (pokud bude výskytů symbolu A například o 1 více než je těchto komponent, v pomocném kroku je derivace zablokována) 2) jediná komponenta pro A, jediná komponenta pro A'  pokud z čekajících má být více přepsáno v následujícím kroku, nestačíme z nich vytvořit A (p) [A,p]. S 0  sp BCXX  sp B'C'([A,0]') 3 Y  sp A (2) [A,2]AAA (2) [A,2]AXX  sp A (2,1) [A,2]'A'A'A (2,1) [A,2]'A'[A,2]'Y  sp aBCAA (2) [A,2]bA (2) [A,2]XX...  Na toto jediná komponenta nestačí

19 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: S pokud pro nějaký symbol S j  S použijeme v přepisovaném slově pouze symboly [S j,t,v], resp. [S j,-,-] (čekající), ale žádný symbol S j (k). Například: R = { (B, {AAB',  }), (B', {AAB}), (A, {a}), (A, {b}) }, w 0 = B, L = {ab, ba}* Možnost derivace v původní kolonii nepřípustné: B  AAB'  AAAAB  aAAbAAB'  aabbAAAAB  … Použitelnost algoritmu po kroku 2

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

21 S Pro každé S i  S přidáme nové komponenty ([S i,-], {  }) 2x Upravíme existující komponenty: ([S i,-,-], {[S i,-,-]'}) (S i, {S i '}) ([S i,-,-], {[S i,-,-]'[S i,-]}) (S i, {S i ', S i '[S i,-]}) 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,-]})

22 L = {a n b n c n ; n  1}  COL sp – COL wp C sp = ({A, B, C, A', B', C', D, a, b, c}, {a, b, c}, R) w 0 = ABC, R = { (A, {aA', aD}), (B, {bB', bD}), (C, {cC', cD}), (A', {A}), (B', {B}), (C', {C}), (D, {  }), (D, {  }), (D, {  }) }. Doplnění vztahu

23 Sporem: L  COL wp, pak musí existovat kolonie C wp generující tento jazyk a kolonie C sp ', která by byla obrazem této kolonie podle uvedeného alogoritmu. Nejdřív sestrojíme C sp '. Odvození v kolonii C sp ' : S 0  * a i A  b i B  c i C  XX  a i A'  'b i B'  'c i C'  '([0]') 4 Y   a i+1 D (3) [3]  ''b i+1 D (3) [3]  ''c i+1 D (3) [3]  ''XX   a i+1 D (3,1) [3]'  '''b i+1 D (3,1) [3]'  '''c i+1 D (3,1) [3]'  '''[3]'Y   a i+1 b i+1 c i+1 XX  a i+1 b i+1 c i+1 Proto existují komponenty (D (3,1), {  }), (D (3,1), {  }), (D (3,1), {  }), dále (D (2,1), {  }),... Rekonstruujeme kolonii C wp : (D,{  }) 3-krát, (A, {a  a, aD}), (B, {bD  b, bD}),(C, {cD  c, cD}), … ABC  * a i D  a b i D  b c ...  L  SPOR, ztratili jsme možnost synchronizace tří částí slova

24 Závěrem Důsledkem práce je vztah COL wp  COL sp

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


Stáhnout ppt "Vztah mezi koloniemi s paralelním přepisováním Šárka Vavrečková"

Podobné prezentace


Reklamy Google