Automa a pila

Niente fonti!
Questa voce o sezione sull'argomento teorie dell'informatica non cita le fonti necessarie o quelle presenti sono insufficienti.

Un automa a pila o (noto anche con la sigla PDA, dall'inglese pushdown automaton) è un tipo di macchina astratta, in particolare un automa la cui memoria di lavoro è costituita da una pila, una struttura dati i cui dati possono essere estratti in ordine necessariamente inverso rispetto a quello di inserimento. Un automa a pila è in grado di riconoscere ed accettare tutti i linguaggi che nella teoria delle grammatiche formali sono detti non contestuali, ovvero di tipo 2 secondo la classificazione gerarchica di Chomsky.

Definizione formale

Automa a pila non deterministico

L'automa a pila non deterministico è un sistema formale composto da M = ( Σ , Γ , Z 0 , Q , q 0 , F , δ ) {\displaystyle M=(\Sigma ,\Gamma ,Z_{0},Q,q_{0},F,\delta )} [1], dove:

  1. Σ {\displaystyle \Sigma } è l'alfabeto di input;
  2. Γ {\displaystyle \Gamma } è l'alfabeto dei simboli della pila;
  3. Z 0 Γ {\displaystyle Z_{0}\in \Gamma } è il carattere iniziale della pila;
  4. Q {\displaystyle Q} è un insieme finito e non vuoto di stati;
  5. q 0 Q {\displaystyle q_{0}\in Q} è lo stato iniziale;
  6. F Q {\displaystyle F\subseteq Q} è l'insieme degli stati finali;
  7. δ : Q × ( Σ { ε } ) × Γ P f i n i t e ( Q × Γ ) {\displaystyle \delta :Q\times (\Sigma \cup \{\varepsilon \})\times \Gamma \to {\mathcal {P}}_{finite}(Q\times \Gamma ^{\star })} è la funzione parziale di transizione ( ε {\displaystyle \varepsilon } è la stringa vuota).

Automa a pila deterministico

Un automa a pila deterministico è un automa a pila M = ( Σ , Γ , Z 0 , Q , q 0 , F , δ ) {\displaystyle M=(\Sigma ,\Gamma ,Z_{0},Q,q_{0},F,\delta )} tale che per ogni carattere a di Σ {\displaystyle \Sigma } , per ogni stato Z {\displaystyle Z} di Γ {\displaystyle \Gamma } e per ogni stato q {\displaystyle q} di Q {\displaystyle Q} si ha | δ ( q , a , Z ) | + | δ ( q , ε , Z ) | < 2 {\displaystyle |\delta (q,a,Z)|+|\delta (q,\varepsilon ,Z)|<2}

Configurazione di un automa a pila

Dato un automa a pila M = ( Σ , Γ , Z 0 , Q , q 0 , F , δ ) {\displaystyle M=(\Sigma ,\Gamma ,Z_{0},Q,q_{0},F,\delta )} si dice configurazione di M {\displaystyle M} una tripla ( q , x , γ ) {\displaystyle (q,x,\gamma )} , dove q {\displaystyle q} appartiene a Q {\displaystyle Q} , x {\displaystyle x} a Σ {\displaystyle \Sigma ^{\star }} e γ {\displaystyle \gamma } a Γ {\displaystyle \Gamma ^{\star }} .

Accettazione degli automi a pila

Un automa a pila ha due diversi modi di accettare un linguaggio:

Accettazione per pila vuota

Dato un automa a pila M {\displaystyle M} , una sua configurazione è di accettazione se x = γ = ε {\displaystyle x=\gamma =\varepsilon } . In base a tale definizione una stringa x {\displaystyle x} è accettata da un automa a pila se e solo se al termine dell'elaborazione di x {\displaystyle x} la pila è vuota.

Accettazione per stato finale

Dato un automa a pila M {\displaystyle M} , una sua configurazione ( q , x , γ ) {\displaystyle (q,x,\gamma )} è di accettazione se x = ε {\displaystyle x=\varepsilon } e q {\displaystyle q} appartiene a F {\displaystyle F} . Secondo questa definizione una stringa x {\displaystyle x} è accettata da M {\displaystyle M} se e solo se al termine dell'elaborazione di x {\displaystyle x} stringa l'automa si trova in uno stato finale.

In generale, dato un automa a pila M {\displaystyle M} , il linguaggio riconosciuto da M {\displaystyle M} per pila vuota è diverso dal linguaggio riconosciuto da M {\displaystyle M} per stato finale. È importante notare, tuttavia, che la classe dei linguaggi riconosciuti dagli automi a pila non cambia sia che si scelga l'accettazione per pila vuota che per stato finale. Vale, cioè che L {\displaystyle L} è un linguaggio accettato per pila vuota da un automa a pila M 1 {\displaystyle M_{1}} se e solo se L {\displaystyle L} è un linguaggio accettato per stato finale da un automa a pila M 2 {\displaystyle M_{2}} . In particolare, la classe dei linguaggi accettati dagli automi a pila coincide con quella dei linguaggi liberi da contesto.

Note

  1. ^ (EN) Dexter C. Kozen, Pushdown Automata, Springer Berlin Heidelberg, 1977, pp. 157–163, DOI:10.1007/978-3-642-85706-5_27, ISBN 978-3-642-85708-9. URL consultato il 3 novembre 2020.

Altri progetti

Altri progetti

  • Wikiversità
  • Wikimedia Commons
  • Collabora a Wikiversità Wikiversità contiene risorse su Automa a pila
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su Automa a pila
Teoria degli automi: linguaggi formali e grammatiche formali
Gerarchia di Chomsky Grammatica formale Linguaggio Automa minimo
Tipo-0 (illimitato) Ricorsivamente enumerabile Macchina di Turing
(illimitato) Ricorsivo Decider
Tipo-1 Dipendente dal contesto Dipendente dal contesto Automa lineare
Tipo-2 Libera dal contesto Libero dal contesto Automa a pila ND
Tipo-3 Regolare Regolare A stati finiti
Ciascuna categoria di linguaggio o grammatica è un sottoinsieme proprio della categoria immediatamente sovrastante.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica