Automa a stati finiti deterministico
Nella teoria del calcolo, un automa a stati finiti deterministico (ASFD) o deterministic finite automaton (DFA) è un automa a stati finiti dove per ogni coppia di stato e simbolo in ingresso c'è una ed una sola transizione allo stato successivo.
Indice |
Definizione formale [modifica]
Un ASFD è una quintupla
con:
insieme finito di simboli chiamato alfabeto
insieme finito di stati
funzione di transizione
stato iniziale
insieme di stati finali
Dato un ASFD
, una configurazione di
è una coppia
, dove
è uno stato e
una stringa dell'alfabeto.
Una configurazione
è detta:
- iniziale se s è lo stato iniziale,
; - finale se la stringa in input è vuota,
; - accettante se la stringa in input è vuota e l'automa si trova in uno stato finale,
e
.
La funzione di transizione induce una relazione di transizione
tra due configurazioni, che associa ad una configurazione dell'automa la configurazione successiva.
Dato un ASFD
e due configurazioni
e
di
, avremo tra loro una relazione di transizione
se valgono:
- esiste un simbolo
tale che 

L'insieme delle stringhe riconosciute dall'automa
forma un linguaggio formale chiamato linguaggio riconosciuto o linguaggio accettato dall'automa. Possiamo quindi dire che
, ovvero che il linguaggio riconosciuto dall'ASFD A è composto da tutte le stringhe x sull'alfabeto dato tali che, partendo dalla configurazione iniziale con la stringa x ed applicando iterativamente le relazioni di transizione, pervengono ad una configurazione accettante.
Il teorema di Kleene dimostra che la collezione dei linguaggi accettati da automi a stati finiti deterministici coincide sia con la collezione dei linguaggi regolari che con i linguaggi definiti da espressioni regolari.
Le espressioni regolari sono chiamate anche espressioni razionali e di conseguenza i linguaggi che esse forniscono sono detti linguaggi razionali; questi termini sono giustificati dal fatto che questi oggetti si possono studiare con metodi algebrici, più precisamente mediante semigruppi finiti.[senza fonte]
Funzione delta estesa [modifica]
Un modo alternativo per descrivere il comportamento dell'automa è quello di definire la funzione di transizione estesa che estende la funzione di transizione dai simboli alle stringhe. Indichiamo la nuova funzione come
.
La sua definizione viene data induttivamente sulla lunghezza della stringa.
- Base:
. - Ipotesi induttiva:
. - Passo induttivo:
, con
.
Sfruttando la funzione delta estesa è possibile ridefinire il linguaggio accettato dall'automa come:

Esempio [modifica]
Il seguente esempio è una ASFD
, con un alfabeto binario, che determina se l'input contiene un numero pari di zeri.
con:
alfabeto binario
stati
stato iniziale
stati finali
La tabella di transizione è la seguente:
-
-
0 1 S1 S2 S1 S2 S1 S2
-
Semplicemente, lo stato
rappresenta lo stato in cui abbiamo sempre un numero pari di zeri nell'input, mentre
indica un numero dispari di zeri. Un 1 in input non cambia lo stato dell'automa. Quando l'input termina, lo stato mostrerà se l'input conteneva un numero pari di zeri, o no.
Da questo ASFD possiamo ricavare la grammatica regolare che genera il linguaggio regolare riconosciuto dall'ASFD:
Il linguaggio riconosciuto da
può essere descritto dal linguaggio regolare dato dalla seguente espressione regolare:
Bibliografia [modifica]
- Giorgio Ausiello; Fabrizio d’Amore; Giorgio Gambosi, Linguaggi, Modelli, Complessità, Franco Angeli Editore, 2003. ISBN 88-464-4470-1
- finite state machine (FSM) in Hargrave's Communications Dictionary (in inglese), Hoboken, Wiley, 2001.
- Sequential machine in Encyclopedia of Computer Science (in inglese), Hoboken, Wiley, 2003.
- John E. Hopcroft; Rajeev Motwani; Jeffrey D. Ullman, Finite Automata in Introduction to Automata Theory, Languages, and Computation (in inglese), Addison Wesley, 15 luglio 2006. 978-0321462251
- Martin Davis; Ron Sigal; Elaine J. Weyuker, Finite Automata in Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science (in inglese), Morgan Kaufmann, 17 febbraio 1994. 978-0122063824
Voci correlate [modifica]
- Automa a stati finiti non deterministico
- Automa a stati finiti
- Macchina di Moore
- Macchina di Mealy
- Linguaggio regolare
- Grammatica regolare
- Espressione regolare
| Teoria degli automi: linguaggi formali e grammatiche formali | |||
|---|---|---|---|
| Gerarchia di Chomsky | Grammatica | 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 del proprio sovrainsieme di categoria direttamente sottostante. | |||
|
|
insieme finito di simboli chiamato alfabeto
insieme finito di stati
funzione di transizione
stato iniziale
insieme di stati finali
;
;
.
tale che 

.
.
, con
.
alfabeto binario
stati
stato iniziale
stati finali


