Automi: Il distributore di bevande

A. Costantini | (la videolezione) Per descrivere il funzionamento di una macchina stati finiti (automa) immaginiamo di analizzare il funzionamento di una macchina distributrice di bevande. Dovendone rappresentare il funzionamento con un modello (“modellizzare”) è opportuno introdurre delle semplificazioni. Immaginiamo che la bibita costi 50 centesimi e che la macchina possa accettare solo monete da 50 centesimi oppure da 20 centesimi. Per semplificare ulteriormente, immaginiamo che la macchina accetti solo sequenze di 20 centesimi oppure una moneta da 50. In altri termini, nella semplificazione che stiamo facendo, è impossibile inserire 20 centesimi e poi 50. Immaginiamo poi di avere un pulsante da premere per dare il consenso alla macchina a fornire la bevanda, una volta che abbia raggiunto il credito. Infine immaginiamo di avere due uscite: la bibita e il resto di 10 centesimi (necessario quando introduciamo tre monete da 20). Ovviamente stiamo parlando di un sistema a stati finiti, cioè un sistema che si può trovare il numero finito di stati. Ricordiamo, a tal proposito, che lo stato rappresenta la memoria del sistema: il fatto che la macchina si trovi in un certo stato vuol dire che precedentemente è accaduto qualcosa che la macchina deve ricordare. In altri termini, ogni stato rappresenta una diversa condizione di memoria della macchina stessa. Con le semplificazioni introdotte, nel caso in esame sono sufficienti cinque stati (x1, x2, x3, x4, x5) e la macchina evolverà tra gli stati a seconda di quello che accade in ingresso. Come detto in precedenza, il “grafo di transizione” rappresenta un modello per rappresentare il funzionamento dell’automa. X1 è lo stato iniziale, cioè lo stato in cui si trova la macchina inizialmente e in assenza di credito. Nel momento in cui immaginiamo di inserire una moneta da 50 centesimi, si ha la transizione nel lo stato x2: la macchinetta cambia stato per ricordarsi che è stata introdotta la moneta da 50 centesimi. Attenzione! In uscita non accade nessun evento perché il credito è stato raggiunto ma non è stato premuto il pulsante! Nel momento in cui premiamo il pulsante, il sistema torna nel lo stato iniziale e fornisce la bibita in uscita. Ora, immaginiamo di essere nello stato X1 (stato iniziale), se inseriamo una moneta da 20 lo stato cambia e si passa nello stato X3 per ricordare l’introduzione della moneta da 20 e, se non accade nulla in ingresso, il sistema rimane in X3. L’introduzione di un’altra moneta da 20 provoca la transizione nello stato X4 (memoria di 40 centesimi di credito). Ovviamente il credito di 40 centesimi non è ancora sufficiente per produrre la bibita. Introducendo ulteriori 20 cent, la macchina si porta nello stato X5 per ricordare che il credito è 60 centesimi. Il sistema rimane in X5 fino a quando non viene premuto il pulsante. Quando avviene la pressione, il sistema  fornisce la bibita , restituisce il resto di 10 centesimi e ritorna nello stato iniziale.