Diagramma del distributore automatico allo stato finito

0

In classe, ci viene chiesto di disegnare una macchina a stati finiti con le seguenti istruzioni:

Design a finite state machine to model a vending machine that accepts only quarters and gives a container of juice when 75 cents have been deposited, followed by a button being pushed. If a fourth quarter is deposited before the button has been pushed, this quarter is immediately returned. If the button is pushed before three quarters are deposited, nothing will happen. The machine is in state Si (i = 0; 1; 2; 3) when it has been given i quarters towards the next purchase. Inputs to the machine are Q (inserting a quarter) and B (pushing a button). After one request is processed, it is ready for another request.

Non sono del tutto sicuro di quello che sto facendo è anche remotamente corretto. Per esempio, non sono sicuro di come rappresentare le azioni di "ritorno" o "dispensare", in questo momento, sono rappresentati come stati, ma non so se questo sia legalmente corretto o meno. Inoltre, non so se il mio ritorno Q4 sia corretto. Non ci sono input sulle linee che collegano S4 a Return to S3, e speravo che ciò significherebbe che quelli avvengono automaticamente senza input, è corretto?

originale:

Migliorata:

    
posta joe_04_04 20.10.2017 - 00:08
fonte

1 risposta

2

Il ritorno di un quarto non è uno stato. È un'azione. S4 deve essere rimosso. Anche dispensare non è uno stato. Quelle sono le tue uscite. È possibile inserirli in stati ma ciò significa che QUALSIASI transizione verso quello stato causa quell'output. Il vero errore qui è che non puoi lasciare uno stato gratis solo perché c'è una sola scelta. Le transizioni avvengono solo a causa dell'input, a meno che tu non esca non deterministico .

Una distinzione importante da fare qui è quale tipo di macchina a stati finiti stai costruendo. Esistono due tipi:

In Moore gli stati determinano l'output (S1, S2).
In Mealy le transizioni determinano l'output (/ 0, / 1).

Il tuo secondo diagramma sembra che voglia essere un ibrido. Ti consiglio di scegliere un tipo e seguirlo. Una parola di cautela: se scegli Moore e sposta Dispense nello stato S0 avrai un problema perché le persone saranno in grado di ottenere il succo senza pagare semplicemente premendo il pulsante.

    
risposta data 20.10.2017 - 01:19
fonte

Leggi altre domande sui tag