Introduzione alla teoria degli automi
Automi: che cos'è?
Il termine "automi" deriva dalla parola greca "αὐτόματα" che significa "auto-agente". Un automa (Automata al plurale) è un dispositivo informatico semovente astratto che segue automaticamente una sequenza predeterminata di operazioni.
Un automa con un numero finito di stati è chiamato a Finite Automaton (FA) o Finite State Machine (FSM).
Definizione formale di un automa finito
Un automa può essere rappresentato da una tupla di 5 (Q, ∑, δ, q 0 , F), dove -
Q è un insieme finito di stati.
∑ è un insieme finito di simboli, chiamato alphabet dell'automa.
δ è la funzione di transizione.
q0è lo stato iniziale da cui viene elaborato qualsiasi input (q 0 ∈ Q).
F è un insieme di stati finali di Q (F ⊆ Q).
Terminologie correlate
Alfabeto
Definition - An alphabet è un insieme finito di simboli.
Example - ∑ = {a, b, c, d} è un alphabet set dove sono "a", "b", "c" e "d" symbols.
Corda
Definition - A string è una sequenza finita di simboli presi da ∑.
Example - 'cabcad' è una stringa valida nel set alfabetico ∑ = {a, b, c, d}
Lunghezza di una stringa
Definition- È il numero di simboli presenti in una stringa. (Denotato da|S|).
Examples -
Se S = 'cabcad', | S | = 6
Se | S | = 0, viene chiamato un empty string (Denotato da λ o ε)
Kleene Star
Definition - La star di Kleene, ∑*, è un operatore unario su un insieme di simboli o stringhe, ∑, che fornisce l'insieme infinito di tutte le possibili stringhe di tutte le lunghezze possibili ∑ Compreso λ.
Representation- ∑ * = ∑ 0 ∪ ∑ 1 ∪ ∑ 2 ∪ ……. dove ∑ p è l'insieme di tutte le possibili stringhe di lunghezza p.
Example - Se ∑ = {a, b}, ∑ * = {λ, a, b, aa, ab, ba, bb, ……… ..}
Chiusura Kleene / Plus
Definition - Il set ∑+ è l'insieme infinito di tutte le possibili stringhe di tutte le lunghezze possibili su ∑ escluso λ.
Representation- ∑ + = ∑ 1 ∪ ∑ 2 ∪ ∑ 3 ∪ …….
∑ + = ∑ * - {λ}
Example- Se ∑ = {a, b}, ∑ + = {a, b, aa, ab, ba, bb, ……… ..}
linguaggio
Definition- Una lingua è un sottoinsieme di ∑ * per alcuni alfabeti ∑. Può essere finito o infinito.
Example - Se la lingua accetta tutte le possibili stringhe di lunghezza 2 su ∑ = {a, b}, allora L = {ab, aa, ba, bb}