Sto giocando attorno al concetto di macchina statale cercando di capire meglio le migliori aree della loro applicazione. La definizione formale di un FSM contiene i seguenti elementi:
- set non finito di stati consentiti;
- uno stato iniziale;
- un alfabeto ("simboli di input consentiti");
- funzione di transizione di stato;
- e un insieme di stati finali .
Ho esaminato alcune fonti online su questo argomento e ho notato che tutte si concentrano sull'aspetto di transizione ( stato + input = nuovo stato ) di FSM. Tuttavia, si dice molto poco sugli stati finali di una macchina.
Quindi quello che vorrei sapere è:
- o [la definizione di] che cos'è esattamente lo stato finale ;
- o qual è lo scopo dello stato finale (comprese le applicazioni pratiche) .
Questo potrebbe farmi inferire le risposte a un sacco di altre domande correlate che ho. Ad esempio, che cosa dovrebbe accadere se la macchina a stati riceve un simbolo di input che non è consentito; se questo è un errore allora qual è il modo per recuperare; dovrebbe un sistema basato su FSM pronto per una possibilità di non raggiungere mai uno stato finale; cosa succede se la configurazione di una macchina rende impossibile raggiungere uno stato finale in primo luogo; se uno stato di errore è un oggetto di prima classe di un FSM o meno, se la macchina di stato deve o non deve memorizzare la sequenza di simboli di input nei sistemi di vita reale ...