Macchina di Moore

Una macchina di Moore è un modello di automa a stati finiti deterministico (DFA) che produce un evento in uscita in funzione dello stato in cui si trova. E' definito da una 6-upla $$ G_{mo}= \{ X,E,θ,δ,λ ,x_0 \} $$

dove i parametri hanno il seguente significo

  • X è l'insieme degli stati
  • x0 è lo stato iniziale
  • E è l'alfabeto di ingresso
  • θ è l'alfabeto in uscita
  • δ è la funzione di transizione da uno stato al successivo
  • λ è la funzione di trasformazione ( o funzione di uscita ) λ:X→θ

La macchina prende il nome del suo ideatore Edward F. Moore.

Cosa caratterizza la macchina di Moore?

Nella macchina di Moore l'uscita (risposta) dell'automa non è determinata dagli stati in ingresso ma soltanto dallo stato corrente.

Nota. La macchina di Moore è uno dei primi dispositivi di controllo basati sul controllo logico sequenziale. Un esempio tipico di macchina di Moore è un sistema sequenziale a impulsi di clock. L'impulso di clock determina l'uscita in base allo stato corrente che in genere è salvato in un flip flop.

Come funziona

Una sequenza di eventi in ingresso e ∈ E* compone una parola

$$ w=e_1 \: e_2 \: e_3 \: ... \: e_k $$

Una parola è associata a una produzione, ossia una sequenza di stati x ∈ X

$$ x_0 \overset{e_1}{\rightarrow} x_1 \overset{e_2}{\rightarrow} x_2 \: ... \overset{e_k}{\rightarrow} x_k $$

La funzione di uscita λ(x) genera l'evento in uscita dallo stato x.

La sequenza di stati in uscita determina una parola y ∈ θ.

$$ y=λ(x_0) \: λ(x_1) \: λ(x_2) \: ... \: λ(x_k) $$

Nota. La parola in uscita è sempre più lunga della parola in entrata perché y include anche lo stato iniziale x0 dell'automa.

Nella macchina di Moore non c'è l'insieme degli stati finali Xm.

L'uscita è più generale, l'automa può trovarsi in diverse classi y ∈ θ dell'alfabeto di uscita.

Un esempio pratico

Ho un automa composto dalle classi di uscita dove V=vero, F=falso, N=nulla.

$$ θ = \{ V, F, N \} $$

Gli stati della macchina sono sei

$$ X = \{ x_0, x_1, x_2, x_3, x_4, x_5 \} $$

L'alfabeto degli eventi è composto da due simboli 0 e 1.

$$ E = \{ 0, 1 \} $$

L'automa analizza i primi due caratteri di una stringa (parola w) e risponde in uscita V,F,N se trova 11, 00 o altro.

Stato corrente Evento input Stato successivo Uscita λ(x)
x0 0 x3 N
1 x1
x1 0 x4 N
1 x2
x2 0 x2 V
1 x2
x3 0 x5 N
1 x4
x4 0 x2 N
1 x2
x5 0 x5 F
1 x5

Il digrafo dell'automa è il seguente:

un esempio di Moore sotto forma di digrafo

L'uscita del sistema si verifica in tre stati tramite la funzione di trasformazione λ(x):

Ad esempio, la sequenza di eventi in ingresso 1,1,0

$$ w=110 $$

genera la sequenza di stati X dell'automa

$$ x_0 \overset{1}{\rightarrow} x_1 \overset{1}{\rightarrow} x_2 \overset{0}{\rightarrow} x_2 $$

e una sequenza di uscita y

$$ y = λ(x_0) \: λ(x_1) \: λ(x_2) \: λ(x_2) = NNVV $$

Nota. La lunghezza della parola y è maggiore rispetto a quella della parola w. Confrontando l'uscita della macchina di Moore con la macchina di Mealy, si nota facilmente che la macchina di Moore è più lunga di un simbolo. E' il simbolo generato dallo stato iniziale x0 al momento dell'inizializzazione.

Come anticipato, a differenza degli altri automi a stati finiti deterministici (DFA), l'automa di Moore non ha un insieme di stati finali Xm.

Tuttavia, è comunque possibile trasformarlo in un DFA aggiungendo due classi: marcato ( finale ) e non marcato ( non finale ).

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base