Automa a pila

Da testwiki.
Versione del 13 mar 2025 alle 02:54 di imported>FrescoBot (Bot: numeri di pagina nei template citazione e modifiche minori)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Template:F 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=(Σ,Γ,Z0,Q,q0,F,δ)[1], dove:

  1. Σ è l'alfabeto di input;
  2. Γ è l'alfabeto dei simboli della pila;
  3. Z0Γ è il carattere iniziale della pila;
  4. Q è un insieme finito e non vuoto di stati;
  5. q0Q è lo stato iniziale;
  6. FQ è l'insieme degli stati finali;
  7. δ:Q×(Σ{ε})×Γ𝒫finite(Q×Γ) è la funzione parziale di transizione (ε è la stringa vuota).

Automa a pila deterministico

Un automa a pila deterministico è un automa a pila M=(Σ,Γ,Z0,Q,q0,F,δ) tale che per ogni carattere a di Σ, per ogni stato Z di Γ e per ogni stato q di Q si ha |δ(q,a,Z)|+|δ(q,ε,Z)|<2

Configurazione di un automa a pila

Dato un automa a pila M=(Σ,Γ,Z0,Q,q0,F,δ) si dice configurazione di M una tripla (q,x,γ), dove q appartiene a Q, x a Σ e γ a Γ.

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, una sua configurazione è di accettazione se x=γ=ε. In base a tale definizione una stringa x è accettata da un automa a pila se e solo se al termine dell'elaborazione di x la pila è vuota.

Accettazione per stato finale

Template:Approfondimento

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

In generale, dato un automa a pila M, il linguaggio riconosciuto da M per pila vuota è diverso dal linguaggio riconosciuto da 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 è un linguaggio accettato per pila vuota da un automa a pila M1 se e solo se L è un linguaggio accettato per stato finale da un automa a pila M2. In particolare, la classe dei linguaggi accettati dagli automi a pila coincide con quella dei linguaggi liberi da contesto.

Note

Altri progetti

Template:Interprogetto

Template:Linguaggi formali e grammatiche Template:Portale