Sunteți pe pagina 1din 34

Curs 4: Limbaje 2-dimensionale

2016-2017 Dezvoltarea aplicaţiilor interactive


1 / 34
Cuprins

1 Automate cu 4 direcţii pe griduri

2 Limbaje locale şi sisteme de pavare

2 / 34
Automate cu 4 direcţii pe griduri

3 / 34
Griduri cu bord

Pentru V un alfabet finit, notăm


Vm,n mulţimea gridurilor cu m linii şi n coloane
V †∗ = m,n Vm,n mulţimea tuturor gridurilor
S

Fie w ∈ V †∗ un grid m × n. Notăm cu ŵ ∈ (V ∪ {]}) gridul cu bord de


tip (m + 2) × (n + 2) obţinut bordând laturile lui w cu ], anume:
(
w (i − 1, j − 1), pentru 2 ≤ i ≤ m + 1, 2 ≤ n ≤ n + 1
ŵ (i, j) =
], altfel

4 / 34
Automate cu 4 direcţii pe griduri

Un automat finit nedeterminist cu 4 direcţii (resp. determinist), notat


4NFA (resp. 4DFA), este un 7-tuplu A = (V , Q, D, q0 , qa , qr , δ), unde:
V este alfabetul de intrare
Q este o mulţime finită de stări
D = {R, L, U, D} este mulţimea direcţiilor
q0 ∈ Q este starea iniţială
qa , qr ∈ Q sunt stările de acceptare şi, respectiv, respingere
δ : Q \ {qa , qr } × V → 2Q×D este relaţia de tranziţie (resp.
δ : Q \ {qa , qr } × V → Q × D)

5 / 34
Automate cu 4 direcţii pe griduri

Un 4NFA (resp. 4DFA) A poate fi utilizat pentru a accepta griduri w


(operând pe gridurile cu bord ŵ ) ı̂n felul următor:
Automatul pleacă din starea iniţială cu capul de citire pe poziţia (1, 1)
(simbolul stânga-sus din w )
Citeşte simbolul curent şi, ı̂n funcţie de relaţia de tranziţie, trece
ı̂ntr-o nouă stare şi se deplaseaza ı̂ntr-o celulă vecină
(R,L,U,D semnifică dreapta, stânga, sus, şi, respectiv, jos)
Dacă se ajunge pe bord, convenţia este că ı̂n mutarea următoare
automatul revine la o poziţie din w
w este acceptat dacă există o procesare a lui w conducând la starea
de acceptare qa
Nu este necesar să se parcurgă tot gridul pentru a-l accepta!

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

Limbajele de griduri acceptate de FIS-uri pot fi reprezentate şi cu ajutorul


dominourilor:
Pentru un grid cu bord ŵ , notăm cu Br ,s (ŵ ) mulţimea subgridurilor
sale de dimensiune r × s.
Un limbaj L ⊆ V †∗ este local dacă există o mulţime ∆ de griduri
2 × 2 peste V ∪ {]} astfel ı̂ncât
L = {w ∈ V †∗ | B2,2 (ŵ ) ⊆ ∆}

Un limbaj L ⊆ V †∗ este hv-local dacă există o mulţime ∆ de


dominouri orizontale şi verticale peste V ∪ {]} astfel ı̂ncât
L = {w ∈ V †∗ | B1,2 (ŵ ) ∪ B2,1 (ŵ ) ⊆ ∆}

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.

Un astfel de limbaj se numeşte limbaj recunoscut.

14 / 34
Limbaje recunoscute

Combinaţia limbaj local + homomorfism se numeşte sistem de pavare


(engl. tiling system).

Clasa de limbaje definită de sistemele de pavare rămane invariantă dacă se


folosesc blocuri mai complexe ı̂n ∆ (de exemplu, griduri 2 × 3).

15 / 34
Frontiera limbajelor de griduri

Frontiera unui grid w ∈ V †∗ de tip m × n este linia de sus, anume


fr (w ) = w (1, 1)w (1, 2) . . . w (1, n).

Frontiera unui limbaj L ⊆ V †∗ este


fr (L) = {fr (w ) | w ∈ L}.

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

O gramatică G = (N, Σ, P, S) este context-senzitivă dacă


N este o mulţime de simboluri neterminale
Σ este o mulţime de simboluri terminale
S ∈ N este simbolul de start
P este o mulţime de producţii de forma

αAβ → αγβ,

unde A ∈ N, α, β ∈ (N ∪ Σ)∗ şi γ ∈ (N ∪ Σ)+ .

19 / 34
Gramatici context-senzitive

u ⇒ v dacă u se scrie lαAβr şi v se scrie lαγβr , pentru o producţie


αAβ → αγβ ∈ P şi l, r ∈ (N ∪ Σ)∗ .

u ⇒∗ v dacă u = u1 ⇒ . . . ⇒ un = n

Limbajul gramaticii G este dat de mulţimea cuvintelor peste simbolurile


terminale, derivabile din simbolul de start:

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

Un automat liniar mărginit este un 6-tuplu M = (Q, V , Y , δ, q0 , F ) format


din stări, limbaj de intrare, alfabet de bandă (care conţine intrările),
funcţie de tranziţie, stare iniţială şi stări finale.
Funcţia de tranziţie

δ : 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)

Un cuvânt w este acceptat dacă există o stare finală q şi un calcul

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 π(]) = ]

Atunci L(M) = fr (π(K )), deci un limbaj context-senzitive este frontiera


unui limbaj de griduri recunoscut.


32 / 34
Limbaje 2-dimensionale

Între diferitele clase de limbaje 2-dimensionale avem relaţiile:


4DFA ⊂ 4NFA ⊂ FIS = sisteme de pavări,
incluziunile fiind stricte.

Se ştie că proprietatea dacă un limbaj context-senzitiv este sau nu vid


este nedecidabilă. Obţinem următorul rezultat important:

Corolar
Este nedecidabil dacă un limbaj de griduri recunoscut este vid sau nu.

33 / 34
Pe săptămâna viitoare!

34 / 34

S-ar putea să vă placă și