2 / 34
Automate cu 4 direcţii pe griduri
3 / 34
Griduri cu bord
4 / 34
Automate cu 4 direcţii pe griduri
5 / 34
Automate cu 4 direcţii pe griduri
6 / 34
Automate cu 4 direcţii pe griduri
Exemplu
L1 : griduri cu prima coloană egală cu ultima
Un 4DFA corespunzător
scanează w linie cu linie, verificând dacă prima şi ultima literă sunt
egale
Exemplu
L2 : griduri pătrate formate din a-uri
Un 4DFA corespunzator
scanează w pe diagonală (o poziţie la dreapta, apoi una jos) până
ajunge ı̂n colţul din dreapta-jos; apoi
verifică dacă toate literele din grid sunt a-uri
7 / 34
Automate cu 4 direcţii pe griduri
Exemplu
L3 : griduri pătrate peste {0, 1} de dimensiune impără şi cu un 1 ı̂n centru
Un 4NFA corespunzător
aplică testul de mai sus care ne asigură că avem pătrate
(scanează w pe diagonală până ajunge ı̂n colţul din dreapta-jos); apoi
se deplasează pe w pe diagonală
fiind nedeterminist, memorează litera curentă, apoi se deplasează pe
diagonala secundară (o poziţie la stânga, apoi una ı̂n jos)
dacă ajunge ı̂n colţul stânga-jos, e pătrat de dimensiune impară; dacă
litera memorată a fost 1 acceptă w , altfel ı̂l respinge
8 / 34
Automate cu 4 direcţii pe griduri
Teoremă
4NFA sunt strict mai tari decât 4DFA.
Dem:
Este suficient să vedem că exemplul L3 de mai sus nu poate fi realizat cu
4DFA-uri.
Să presupunem că există un 4DFA A care ı̂l acceptă. Atunci:
A poate intra ı̂ntr-un bloc b de dimensiune m × m ı̂n una din cele 4m
poziţii de pe bord ı̂n oricare din cele |Q| stări
similar, A poate ieşi din blocul b ı̂n 4m poziţii şi |Q| stări
deci blocul b defineşte o funcţie 4m|Q| → 4m|Q| sunt [4m|Q|]4m|Q|
funcţii
2
cum sunt 2m blocuri diferite peste 0, 1, pentru m suficient de mare,
două blocuri b1 , b2 au aceeaşi funcţie
9 / 34
Automate cu 4 direcţii pe griduri
Dem: (cont.)
fie (i, j) o poziţie ı̂n b1 care diferă de b2
fie p1 (resp. p2 ) un pătrat de dimensiune impară cu b1 (resp. b2 )
plasat cu poziţia (i, j) ı̂n centru şi ı̂n rest 0
cum b1 , b2 dau aceeaşi funcţie intrare-ieşire,
A acceptă p1 ddacă A acceptă p2 .
Contradicţie! (A nu işi poate da seama dacă ı̂n centru avem 1 sau 0)
10 / 34
Închidere la diverse operaţii
Limbajele 4DFA:
sunt ı̂nchise la complement, reuniune şi intersecţie
nu sunt ı̂nchise la compunere orizontală sau verticală
pentru neı̂nchiderea la compunerea orizontală, se ia limbajul gridurilor
cu două coloane egale: el nu este 4DFA, dar este compunere de astfel
de limbaje (L1 B V †∗ )
Limbajele 4NFA:
sunt ı̂nchise la reuniune şi intersecţie
nu sunt ı̂nchise la compunere orizontală sau verticală
Observaţie: Nu se ştie dacă 4NFA sunt ı̂nchise la complement!
11 / 34
Limbaje locale şi sisteme de pavare
12 / 34
Limbaje locale şi hv-locale
13 / 34
Limbaje recunoscute
Teoremă
Următoarele afirmaţii sunt echivalente:
1 Există un FIS care acceptă un limbaj de griduri L peste V .
2 Există un limbaj L0 local peste un alfabet V 0 şi un homomorfism
h : V 0 → V cu h(L0 ) = L.
3 Există un limbaj L00 hv-local peste un alfabet V 00 şi un homomorfism
h : V 00 → V cu h(L00 ) = L.
14 / 34
Limbaje recunoscute
15 / 34
Frontiera limbajelor de griduri
Teoremă
Imaginea prin frontieră a clasei limbajelor de griduri recunoscute
{fr (L) | L recunoscut} este clasa limbajelor context-senzitive.
16 / 34
Ierarhia Chomsky
17 / 34
Limbaje context-senzitive
Exemplu
L = {an b n c n | n ≥ 1}
18 / 34
Gramatici context-senzitive
αAβ → αγβ,
19 / 34
Gramatici context-senzitive
u ⇒∗ v dacă u = u1 ⇒ . . . ⇒ un = n
L(G ) = {w ∈ Σ∗ | S ⇒∗ w }
20 / 34
Gramatici context-senzitive
Exemplu
Fie următoarea gramatică G cu simbolul de start S, N = {S, B, C , Z , W },
Σ = {a, b, c} şi P formată din producţiile:
1. S → aB C
2. S → aS B C
3. C B → C Z
4. C Z → W Z
5. W Z → W C
6. W C → B C
7. a B → ab
8. b B → bb
9. b C → bc
10. c C → c c
L(G ) = {an b n c n | n ≥ 1}
21 / 34
De la griduri la cuvinte
Teoremă
Imaginea prin frontieră a clasei limbajelor de griduri recunoscute
{fr (L) | L recunoscut} este clasa limbajelor context-senzitive.
Dem:
Partea I: Dacă L este un limbaj de griduri recunoscut, atunci fr (L) este
context-senzitiv.
Cum limbajele context-senzitive sunt ı̂nchise la homomorfisme, este
suficient să arătăm că pentru un limbaj hv-local K ⊆ V †∗ , fr (K ) este
context-senzitiv.
Vom construi o gramatică context-senzitivă pentru ]fr (K )]].
]
Fie ∆ mulţimea dominourilor pentru K . Presupunem că ]] şi sunt ı̂n
]
∆ (altfel K este vid).
22 / 34
De la griduri la cuvinte
Dem: (cont.)
Intuiţie: Construim o gramatică context-senzitivă care verifică linie cu linie
dacă gridul w este ı̂n K
se pleacă cu linia de jos şi,
ı̂n cursul verificării, se ı̂nlocuieşte o linie (cea curentă) cu linia de
deasupra;
ı̂n final, când testul este gata, rămânem cu linia de sus a lui w .
Construcţia gramaticii G = (X , Y , P, S):
]
terminale sunt X = {a ∈ V | ∈ ∆} ∪ {]}
a
neterminale sunt Y = (V \ X ) ∪ {S, A, L, R}
S este simbolul de start
producţiile sunt grupate pe funcţionalităţi:
23 / 34
De la griduri la cuvinte
Dem: (cont.)
generarea liniei de jos:
a
S → ]aA, pentru ]a, ∈ ∆, a ∈ V
]
b
aA → abA, pentru ab, ∈ ∆, a, b ∈ V
]
aA → aL], pentru a] ∈ ∆, a ∈ V
revenire la prima coloană
aL → La, pentru a ∈ V
]L → ]R
verificare orizontală şi verticală (distrugând vechea linie)
c
bRa → bcR, pentru bc, ∈ ∆, a, c ∈ V , b ∈ V ∪ {]}
a
aR] → aL], pentru a] ∈ ∆, a ∈ V
24 / 34
De la griduri la cuvinte
Dem: (cont.)
sfârşit de derivare
L] → ]]
Se vede uşor că pentru un grid w ∈ K de tipul m × n cu liniile
w1 , . . . , wm , există derivarea
S →∗ ]wm L] →∗ ]Rwm ] →∗ ]wm−1 L]
→∗ . . . →∗ ]Rw2 ] →∗ ]w1 L] →∗ ]w1 ]]
În plus, toate literele din w1 sunt terminale, deci
]fr (w )]] = ]w1 ]] ∈ L(G ), adică ]fr (K )]] ⊆ L(G ).
25 / 34
De la griduri la cuvinte
Dem: (cont.)
Reciproc,
o derivare terminală ı̂n L(G ) se ı̂ncheie doar cu L] → ]]
apariţia lui L ı̂n faţa lui ] asigură verificarea condiţiilor de grid pentru
toate liniile produse de trecerile lui L prin secvenţă
singurul lucru neverificat este condiţia de grid pentru linia de sus (linia
1), dar acest lucru rezultă din faptul că derivarea e terminală (şi din
definiţia simbolurilor terminale)
26 / 34
De la cuvinte la griduri
Teoremă
Imaginea prin frontieră a clasei limbajelor de griduri recunoscute
{fr (L) | L recunoscut} este clasa limbajelor context-senzitive.
Dem: (cont.)
Partea II: Dacă L este un limbaj context-senzitiv, atunci există un limbaj
K 0 de griduri recunoscut cu fr (K 0 ) = L.
Pentru această implicaţie vom folosi o caracterizare echivalentă a
limbajelor context-senzitive, şi anume că ele sunt recunoscute de automate
liniare mărginite.
27 / 34
Automate liniare mărginite
δ : Q × Y → 2Q×Y ×{−1,0,1}
se foloseşte pentru a defini paşii de calcul:
ubqa.v ` uq 0 b.a0 v , cu u, v ∈ Y ∗ , a, b ∈ Y , (q 0 , a0 , −1) ∈ δ(q, a)
uqa.v ` uq 0 a0 .v , cu u, v ∈ Y ∗ , a ∈ Y , (q 0 , a0 , 0) ∈ δ(q, a)
uqa.v ` u.a0 q 0 v , cu u, v ∈ Y ∗ , a ∈ Y , (q 0 , a0 , 1) ∈ δ(q, a)
q0 w ` . . . ` w 0 q
28 / 34
De la cuvinte la griduri
Dem: (cont.)
Partea II: Dacă L este un limbaj context-senzitive, atunci există un limbaj
K 0 de griduri recunoscut cu fr (K 0 ) = L.
Pentru această implicaţie vom folosi o caracterizare echivalentă a
limbajelor context-senzitive, şi anume că ele sunt recunoscute de automate
liniare mărginite.
Un automat liniar mărginit M care acceptă L va fi simulat cu un limbaj
local folosind griduri de tipul 2 × 3, nu simple dominouri (dar se poate
arăta că sunt mecanisme echivalente).
Construcţia: Fie M = (Q, V , Y , δ, q0 , F ). Construim un limbaj local K
dat de următorul set de griduri 2 × 3 peste V ∪ (Q × Y ):
Punem starea iniţială pe prima celulă a primei linii:
] ] ] ] ] ] ] ] ]
, ,
] (q0 , a) c (q0 , a) b c a b c
cu a, b ∈ Y , c ∈ Y ∪ {]}
29 / 34
De la cuvinte la griduri
Dem: (cont.)
Simulăm tranziţia automatului prin trecerea de la o linie la alta
a (q, b) c
, cu (q 0 , b 0 , 0) ∈ δ(q, b), a, c ∈ Y ∪ {]}
a (q 0 , b 0 ) c
a (q, b) c
, cu (q 0 , b 0 , −1) ∈ δ(q, b), a ∈ Y , c ∈ Y ∪ {]}
(q 0 , a) b0 c
a (q, b) c
, cu (q 0 , b 0 , 1) ∈ δ(q, b), a ∈ Y ∪ {]}, c ∈ Y
a b0 (q 0 , c)
30 / 34
De la cuvinte la griduri
Dem: (cont.)
a1 a2 a3
În plus, folosim gridurile cu
a10 a20 a30
a1 , a10 , a3 , a30 , a20 ∈ Y ∪ {]}, a2 ∈ Y
a20 ∈ Q × Y ⇒ (a1 , a3 ) ∈ / (Y ∪ {]})2
ai ∈ Y ⇒ ai0 ∈ {ai } ∪ (Q × {ai })
pentru a ne asigura că literele fără stări nu se schimbă de la o linie la
alta.
În final, verificăm că ultima linie reprezintă o configuraţie finală
a b c
, cu a ∈ Y ∪ {]}, b ∈ Y , c ∈ V ∪ (Q × Y )
] ] ]
a (q, b) ]
, cu a ∈ Y ∪ {]}, b ∈ Y , (q 0 , c 0 , 1) ∈ δ(q, b),
] ] ]
q0 ∈ F , c 0 ∈ Y
31 / 34
De la cuvinte la griduri
Dem: (cont.)
Din simulare, rezultă că pentru un grid w ,
ŵ ∈ K
⇔
w are prima linie de forma (q0 , w11 )w12 . . . w1n , cu w11 w12 . . . w1n ∈ L(M).
Ca un ultim pas, aplicăm morfismul π care uită starea, adică, pentru orice
q ∈ Q şi a ∈ V ,
π(q, a) = a π(a) = a π(]) = ]
32 / 34
Limbaje 2-dimensionale
Corolar
Este nedecidabil dacă un limbaj de griduri recunoscut este vid sau nu.
33 / 34
Pe săptămâna viitoare!
34 / 34