Sei sulla pagina 1di 7

Note del corso di Calcolabilit`a e Linguaggi

Formali - Lezione 3
Alberto Carraro
26 ottobre 2011
DAIS, Universit` a Ca Foscari Venezia http://www.dsi.unive.it/
~
acarraro
1 Automi a a pila deterministici e non
Tra gli automi a pila si distinguono due categorie: quelli deterministici (DPDA,
abbreviazione di Deterministic Push-Down Automata) e quelli non-deterministici
(NPDA, abbreviazione di Non-deterministic Push-Down Automata). I primi
sono un caso particolare dei secondi.
Denition 1 (NPDA). Un automa a pila non-deterministico (NPDA, in breve)
`e una settupla / = (Q, , , , q
0
, Z
0
, F) dove
Q `e linsieme nito degli stati,
`e lalfabeto di input,
`e lalfabeto di pila,
: Q( ) T
f
(Q

) `e la funzione di transizione,
q
0
Q `e lo stato iniziale,
Z
0
`e il simbolo iniziale nella pila,
F Q `e linsieme degli stati nali.
Nella Denizione 1 vediamo chiamato in causa un altro alfabeto , che rap-
presenta i simboli che possono essere messi nella pila: si noti che , in quanto
alfabeto, `e un insieme nito. Per evitare confusione si assume che = ; si
utilizzano le ultime lettere maiuscole dellalfabeto inglese X, Y, Z, . . . per indicare
generici elementi di mentre si utilizzano le prime lettere minuscole dellalfabeto
greco , , , . . . per indicare generici elementi di

.
La prossima tappa `e denire il linguaggio accettato da un automa a pila non-
deterministico. A tal ne dobbiamo precisare cosa signica dire che una stringa
`e accettata da un automa.
Al contrario di quanto fatto per gli automi niti, nel caso dei PDA non si
pu`o denire una funzione di transizione estesa

: Q

T
f
(Q

).
Il motivo `e che a causa transizioni con etichetta di input , ci potrebbero essere
delle triple (q, w, X) tali per cui

(q, w, X) `e un sottoinsieme innito di Q

,
dato che il contenuto della pila pu`o crescere arbitrariamente.
Per tale motivo in luogo della funzione di transizione estesa si denisce una
relazione binaria su Q

che svolge un compito analogo a quello della


funzione di transizione estesa nel caso degli automi niti.
2 A. Carraro
Denition 2 (Relazione di transizione estesa). Dato un NPDA / = (Q, , , , q
0
, Z
0
, F)
deniamo la sua relazione di transizione estesa su Q

come la pi` u
piccola che soddisfa le seguenti propriet`a:
se (p, ) (q, , X), allora (q, x, X) (p, x, )
se (p, ) (q, a, X), allora (q, ax, X) (p, x, )
dove x e a sono, rispettivamente, elementi qualunque di

e .
Una tripla (q, x, ) `e detta una descrizione istantanea (o congurazione)
dellautoma: q indica lo stato attuale, x una stringa di input da analizzare e `e
il contenuto attuale della pila, dove il simbolo pi` u a sinistra sta in testa alla pila
e quello pi` u a destra sta in fondo.
La relazione spiega completamente il funzionamento di un NPDA. Infatti
(q, ax, X) (p, x, ) dice che se lautoma si trova nello stato q, in testa alla
pila c`e il simbolo X, ed in input arriva una stringa che inizia con il simbolo a,
allora lautoma
passa nello stato p,
sostituisce il simbolo X in testa alla pila con la stringa , il cui simbolo pi` u
a sinistra diviene la nuova testa della pila,
scarta il simbolo a appena analizzato dallinput, cosicch`e il prossimo simbolo
in input sar`a il primo della stringa x.
Chiaramente la sequenza di azioni descritta qui sopra si pu`o vericare solo se
(p, ) (q, a, X); inoltre a partire dalla medesima congurazione (q, ax, X)
lautoma potrebbe compiere una transizione diversa ed ha tante scelte quanti
sono gli elementi dellinsieme (q, a, X). Questo fenomeno spiega laggettivo
non-deterministico inserito nel nome degli NPDA.
Similmente una transizione (q, x, X) (p, x, ) dice che se lautoma si
trova nello stato q, in testa alla pila c`e il simbolo X, ed in input arriva una
stringa che inizia con il simbolo a, allora lautoma
passa nello stato p,
sostituisce il simbolo X in testa alla pila con la stringa , il cui simbolo pi` u
a sinistra diviene la nuova testa della pila,
il prossimo simbolo in input sar`a il primo della stringa x.
Chiaramente la sequenza di azioni descritta qui sopra si pu`o vericare solo se
(p, ) (q, , X).
Indichiamo con

la chiusura riessiva e transitiva della relazione , cio`e la


pi` u piccola relazione riessiva e transitiva contenente .
Denition 3 (Accettazione per stati nali). Diciamo che una stringa w

`e accettata ( per stati nali) da un NPDA / sse esiste una congurazione


(p, , ) tale che p F e (q
0
, w, Z
0
)

(p, , ).
Denition 4 (Linguaggio di un NPDA). Sia / = (Q, , , , q
0
, Z
0
, F) un
NPDA. Il linguaggio accettato ( per stati nali) da /, indicato con L(/), `e
linsieme delle stringhe accettate da /, ovvero L(/) = w

: p F.

. (q
0
, w, Z
0
)

(p, , ).
Note del corso di Calcolabilit` a e Linguaggi Formali - Lezione 3 3
Denition 5 (DPDA). Un automa a pila deterministico (DPDA, in breve) `e
una settupla / = (Q, , , , q
0
, Z
0
, F) dove
Q `e linsieme nito degli stati,
`e lalfabeto di input,
`e lalfabeto di pila,
: Q() Q

`e la funzione (parziale) di transizione, soggetta


alla condizione che se (q, a, X) `e denita, allora (q, , X) `e indenita
q
0
Q `e lo stato iniziale,
Z
0
`e il simbolo iniziale nella pila,
F Q `e linsieme degli stati nali.
Chiaramente vi sono degli NPDA che non sono dei DPDA. Viceversa, si pu`o
constatare direttamente che ogni DPDA `e un NPDA in cui
(1) ogni valore (q, a, X) della funzione di transizione `e un insieme di cardinalit`a
uno,
(2) se (q, a, X) ,= , allora (q, , X) = .
Grazie a questosservazione le Denizioni 2, 3, e 4 si estendono immediata-
mente anche ai DPDA.
1.1 Una rappresentazione graca dei PDA
Come nel caso degli FA, la descrizione formale di un automa pu`o essere com-
plicata da cogliere immediatamente. Vediamo ora brevemente come si possono
disegnare dei PDA con una notazione che dia le stesse informazioni di quella
formale, ma che sia pi` u semplice da capire. Introdurremo questa notazione con
due esempi, che speriamo diano lidea di come applicare la notazione graca ad
ogni caso possibile.
Example 1. Sia / = (q
0
, q
1
, q
2
, 0, 1, Z
0
, X
0
, X
1
, , q
0
, Z
0
, q
2
) con la fun-
zione di transizione denita come segue:
(q
0
, 0, Z
0
) = (q
0
, X
0
Z
0
); (q
0
, 1, Z
0
) = (q
0
, X
1
Z
0
);
(q
0
, 0, X
0
) = (q
0
, X
0
X
0
); (q
0
, 1, X
0
) = (q
0
, X
1
X
0
);
(q
0
, 0, X
1
) = (q
0
, X
0
X
1
); (q
0
, 1, X
1
) = (q
0
, X
1
X
1
);
(q
0
, , Z
0
) = (q
1
, Z
0
); (q
0
, , X
0
) = (q
1
, X
0
); (q
0
, , X
1
) = (q
1
, X
1
);
(q
1
, 0, X
0
) = (q
1
, ); (q
1
, 1, X
1
) = (q
1
, ); (q
1
, , Z
0
) = (q
2
, Z
0
).
Gracamente lautoma si pu`o rappresentare come segue:
GG ?>=< 89:;
q
0
1, X
1
/X
1
X
1
1, X
0
/X
1
X
0
1, Z
0
/X
1
Z
0
%%
0, X
0
/X
0
X
0
0, X
1
/X
0
X
1
0, Z
0
/X
0
Z
0
ii
, Z
0
/Z
0
, X
0
/X
0
, X
1
/X
1
GG ?>=< 89:;
q
1
0, X
0
/

1, X
1
/

, Z
0
/Z
0
GG ?>=< 89:; 7654 0123
q
2
4 A. Carraro
Example 2. Sia / = (q
0
, q
1
, q
2
, 0, 1, c, Z
0
, X
0
, X
1
, , q
0
, Z
0
, q
2
) con la fun-
zione di transizione denita come segue:
(q
0
, 0, Z
0
) = (q
0
, X
0
Z
0
); (q
0
, 1, Z
0
) = (q
0
, X
1
Z
0
);
(q
0
, 0, X
0
) = (q
0
, X
0
X
0
); (q
0
, 1, X
0
) = (q
0
, X
1
X
0
);
(q
0
, 0, X
1
) = (q
0
, X
0
X
1
); (q
0
, 1, X
1
) = (q
0
, X
1
X
1
);
(q
0
, c, Z
0
) = (q
1
, Z
0
); (q
0
, c, X
0
) = (q
0
, X
0
); (q
0
, c, X
1
) = (q
1
, X
1
);
(q
1
, 0, X
0
) = (q
1
, ); (q
1
, 1, X
1
) = (q
1
, ); (q
1
, , Z
0
) = (q
2
, Z
0
).
Gracamente lautoma si pu`o rappresentare come segue:
GG ?>=< 89:;
q
0
1, X
1
/X
1
X
1
1, X
0
/X
1
X
0
1, Z
0
/X
1
Z
0
%%
0, X
0
/X
0
X
0
0, X
1
/X
0
X
1
0, Z
0
/X
0
Z
0
ii
c, Z
0
/Z
0
c, X
0
/X
0
c, X
1
/X
1
GG ?>=< 89:;
q
1
0, X
0
/

1, X
1
/

, Z
0
/Z
0
GG ?>=< 89:; 7654 0123
q
2
2 Accettazione per pila vuota
Esiste un modo alternativo di denire il linguaggio accettato da un NPDA. Lo
vediamo nella prossima denizione.
Denition 6. Sia / = (Q, , , , q
0
, Z
0
, F) un NPDA. Il linguaggio accettato
( per pila vuota) da / `e linsieme ^(/) = w

: p Q. (q
0
, w, Z
0
)

(p, , ).
Si noti la dierenza rispetto alla Denizione 4. Non si richiede pi` u di arrivare
in uno stato nale, ma piuttosto di vuotare la pila.
`
E naturale a questo punto
domandarsi quale sia il rapporto tra ^(/) ed L(/) ed in generale come siano
correlati i due criteri di accettazione. Le risposte sono le seguenti:
i due linguaggi ^(/) ed L(/) non sono necessariamente uguali, ma
i due criteri di accettazione sono equivalenti, nel senso dei seguenti Teoremi
1 e 2.
Theorem 1. Sia / = (Q
A
, , ,
A
, q
0
, Z
0
, F
A
) un PDA e sia L = ^(/). Al-
lora esiste un PDA B tale che L(B) = L.
Proof. Lidea `e di costruire un nuovo automa a partire da / nel modo seguente.
Prendiamo due nuovi stati q

0
, q
f
, Q
A
e un nuovo simbolo di pila Z

0
, .
Gli stati q

0
e q
f
saranno, rispettivamente, il nuovo stato iniziale e nale, ed il
simbolo Z

0
sar`a il nuovo simbolo iniziale di pila. Creiamo un nuovo automa B
come segue:
Note del corso di Calcolabilit` a e Linguaggi Formali - Lezione 3 5
GG GFED @ABC
q

0
, Z

0
/Z
0
Z

0
GG
, Z

0
/
88
?>=< 89:;
/
, Z

0
/
GG GFED @ABC ?>=< 89:; q
f
Nel disegno qui sopra il cerchio contenente /rappresenta lintero disegno dellautoma
/. Larco uscente da q

0
che punta a / rappresenta un arco che entra in q
0
, il
vecchio stato iniziale. Deniamo G = p Q
A
: r Q.w

. (q
0
, w, Z
0
)

(p, , ). Larco entrante in q


f
ed uscente da / indica un insieme di archi uscenti
da ogni stato nellinsieme G. Pi` u precisamente se chiamiamo
B
la funzione di
transizione di B, allora
B
estende
A
ed inoltre

B
(q

0
, , Z

0
) = (q
0
, Z
0
Z

0
),

B
(q
0
, , Z

0
) = (q
f
, ),
per ogni p G si ha la transizione
B
(p, , Z

0
) = (q
f
, ).
A questo punto non `e dicile vericare che
p Q
A
. (q
0
, w, Z
0
)

A
(p, , ) sse (q

0
, w, Z

0
)

B
(q
f
, , )
e pertanto ^(/) = L(B). .
Theorem 2. Sia / = (Q, , , , q
0
, Z
0
, F) un PDA e sia L = L(/). Allora
esiste un PDA B tale che ^(B) = L.
Proof. Lidea `e di costruire un nuovo automa a partire da / nel modo seguente.
Prendiamo due nuovi stati q

0
, q

, Q e un nuovo simbolo di pila Z

0
, . Lo stato
q

0
sar`a il nuovo stato iniziale, ed il simbolo Z

0
sar`a il nuovo simbolo iniziale di
pila. Creiamo un nuovo automa B come segue:
GG GFED @ABC
q

0
, Z

0
/Z
0
Z

0
GG ?>=< 89:;
/
, ?/
GG GFED @ABC
q

, ?/
jj
Ancora una volta il cerchio contenente /rappresenta lintero disegno dellautoma
/. Larco uscente da q

0
entra in q
0
, il vecchio stato iniziale mentre larco en-
trante in q

che non `e un cappio indica un insieme di archi uscenti da ogni stato


nale di /: letichetta , ?/ sta ad indicare che su ogni arco uscente da un o
stato nale di / apponiamo letichetta , X/, per ogni possibile simbolo X di
pila. Pi` u precisamente se chiamiamo
B
la funzione di transizione di B, allora
B
estende
A
e

B
(q

0
, , Z

0
) = (q
0
, Z
0
Z

0
) e
per ogni stato nale p F
A
ed ogni simbolo X Z

0
si ha la transizione

B
(p, , X) = (q

, ).
A questo punto non `e dicile vericare che
p F
A
. (q
0
, w, Z
0
)

A
(p, , ) sse (q

0
, w, Z

0
)

B
(q

, , )
e pertanto L(/) = ^(B). .
6 A. Carraro
3 Linguaggi liberi dal contesto
Denition 7 (Linguaggio libero dal contesto). Un linguaggio L `e libero
dal contesto sse esiste un NPDA / tale che L = L(/).
Indichiamo con CFL la classe dei linguaggi liberi dal contesto.
Ci si pu`o legittimamente porre la questione se, come nel caso degli automi
niti, nella Denizione 7 non si possa equivalentemente richiedere lesistenza di
un DPDA / tale che L = L(/). Abbiamo osservato che la classe degli NPDA
contiene propriamente quella dei DPDA. Fino a qui la situazione `e analoga al con-
testo degli automi niti. Tuttavia in questa sezione dimostreremo che le due classi
non hanno la stessa potenza, ovvero che la classe dei linguaggi accettati dagli
NPDA include propriamente quella dei linguaggi accettati dai DPDA, in con-
trasto con ci`o che accade nel contesto degli automi niti. Dimostrare linclusione
`e banale: se L `e un linguaggio tale che esiste un DPDA / per cui L = L(/),
allora esiste anche un NPDA B tale che L = L(B).
3.1 Linguaggi di NPDA, DPDA e DFA a confronto
Rimane da esibire un linguaggio accettato da un NPDA che non sia il linguaggio
accettato da alcun DPDA. Questo viene fatto nella Proposizione 1 che segue.
Proposition 1. Sia L = ww
R
: w 0, 1

. Allora
(i) esiste un NPDA / tale che L = L(/);
(ii) non esiste alcun DPDA B tale che L = L(B).
Proof. (i) Basta prendere per / lautoma dellEsempio 1.
(ii) Non daremo una dimostrazione formale e precisa, ma diamo lintuizione
che porta ad essa. Essensialmente un automa che riconosce tutte e sole le
stringe di L deve implementare un meccanismo che memorizzi stringhe ar-
bitrariamente lunghe e sia poi in grado di ripercorrerle allindietro. Per fare
ci`o vi sar`a uno stato dellautoma in cui avviene il cambio di direzione. Il
punto `e che siccome il processo di riconoscimento in avanti pu`o protrarsi
abitrariamente a lungo, si dovranno lo stato dellautoma da cui pu`o par-
tire il cambio di direzione deve anche permettere, a parit`a di condizioni, di
continuare il riconoscimento in avanti.
.
In seguito alla Proposizione 1, `e evidente che la classe degli automi a pila
deterministici `e strettamente meno potente di quella degli automi a pila non-
deterministici.
Denition 8 (Linguaggio deterministicamente libero dal contesto). Un
linguaggio L `e deterministicamente libero dal contesto sse esiste un DPDA /
tale che L = L(/).
Note del corso di Calcolabilit` a e Linguaggi Formali - Lezione 3 7
Indichiamo con dCFL la classe dei linguaggi deterministicamente liberi dal
contesto. Per quanto detto sopra quindi dCFL `e strettamente contenuta in CFL.
Ora poniamo a confronto le classi dCFL e REG.
Proposition 2. Sia L = wcw
R
: w 0, 1

. Allora
(i) esiste un DPDA / tale che L = L(/);
(ii) non esiste alcun DFA B tale che L = L(B).
Proof. (i) Basta prendere per / lautoma dellEsempio 2.
(ii) Applichiamo il Pumping Lemma tipo 3. Sia n un numero naturale 1
e consideriamo la stringa w = 0
n
c0
n
. Siano u, v, z tre stringhe tali che
w = uvz. Allora abbiamo le seguenti possibilit`a:
(1) v = 0
h
, con 1 h n;
(2) v = 0
m
c0
h
, con 0 m, h n.
A questo punto si vede immediatamente che uv
k
z , L, per ogni k 0. Il
fatto che il Pumping Lemma tipo 3 non `e soddisfatto implica che L non
pu`o essere regolare.
.
Proposition 3. Sia / un DFA. Allora esiste un DPDA B tale che L(/) =
L(B).
Proof. Sia / = (Q
A
, ,
A
, q
0
, F
A
) un DFA. Deniamo un PDAB = (Q
B
, , ,
B
, q
0
, Z
0
, F
B
)
come segue:
Q
B
= Q
A
,
= Z
0
,
F
B
= F
A
,

B
(q, a, Z
0
) = (
A
(q, a), Z
0
).
.
Le Proposizioni 2 e 3 insieme dimostrano che REG `e strettamente contenuta
in dCFL, come recita il seguente teorema.
Theorem 3. Ogni linguaggio regolare `e deterministicamente libero dal contesto.
Proof. Sia L un linguaggio regolare. Allora esiste un DFA / tale che L = L(/)
e quindi per la Proposizione 3 esiste un DPDA B tale che L = L(B). .

Potrebbero piacerti anche