
(la videolezione) Nella quotidianità siamo letteralmente circondati da automi: sono infatti automi (anche detti sistemi a stati finiti) la lavatrice, la lavastoviglie, il frullino, gli orologi che si vincono nei detersivi, i sistemi di controllo di apertura/chiusura delle banche, i bancomat, i sistemi di controllo degli ascensori, i distributori automatici di bevande, i distributori di gettoni telefonici, i distributori automatici di benzina. Ma sono rappresentabili come automi anche "cose" più astratte come automi riconoscitori di sequenze, automi analizzatori di linguaggio, automi traduttori, automi decodificatori. I computer sono anch'essi automi, in particolare automi a programma, cioè possono svolgere il ruolo di un automa o di un altro a seconda del programma che in quel momento sta "girando". In realtà i sistemi a stati finiti (o macchine a stati finiti) sono modelli matematici fondamentali per descrivere comportamenti di sistemi logici, informatici e automatici. Sono utilizzati ovunque: dai videogiochi alle automobili, passando per la programmazione e la robotica.

Volendo essere più rigorosi, potremmo dire che un sistema a stati finiti (automa) è un modello costituito da:
Un insieme finito di stati
Un insieme di input (o eventi)
Una funzione di transizione che dice come il sistema passa da uno stato all’altro in base all’input
Uno stato iniziale e, in certi casi, uno o più stati finali
Un esempio pratico? Pensiamo a un distributore automatico:
Stati: "in attesa", "credito inserito", "prodotto selezionato", "prodotto erogato"
Input: inserire monete, selezionare prodotto Ogni azione comporta una transizione da uno stato a un altro.
Perché è importante?
Permette di modellare e analizzare sistemi complessi in modo semplice e chiaro. È alla base del funzionamento di molti linguaggi di programmazione, sistemi embedded, e persino videogiochi con NPC intelligenti.