The endelig tilstandsmaskin ( FSM ) er et sentralt abstraksjon som drift av digitale datamaskiner er basert på. En FSM består av et sett av tilstander , blir bare en av dem kan være " opptatt " i en tid , og et sett av regler for hvilke tilstanden vil bli okkupert neste basert på hvilke for tiden opptatt og en inngang. I en deterministisk FSM , fører hver stat bare til en annen stat (eller seg selv) for hver mulige innspill . De er enkle å tegne og analysere på papir ved hjelp av sirkler og piler. Du trenger
Blyant
Papir
Vis flere instruksjoner
en
Tegn en sirkel ca 1 cm over på papiret til å representere FSM startoppstilling tilstand. Indikere at det er start tilstand ved å tegne en pil omtrent en tomme lang peke på den. Skriv inn et unikt navn for staten inne i sirkelen , en felles ordning er å merke hver stat med " S" og senket (for eksempel " S0 , S1 , S2 " og så videre ) , men bruke mer beskrivende navn for stater hvis det gjør FSM lettere å forstå.
2
Tegn en sirkel for å representere en annen stat . Skriv en etikett for den andre tilstanden inni sirkelen sin . Hver stat må ha et "svar " definert for alle mulige innspill det kan få. Trekke så mange piler som fører ut av start staten som det er mulige innganger , merking hver pil med innspill den tilsvarer . Hver pil må føre tilbake til start tilstand eller til den andre staten . Som et eksempel , tenk at maskinen har tilgang til en kurv av bananer , epler og appelsiner som den vil plukke gjennom en brikke om gangen til handlekurven din er tom . Tegn en pil som er merket med input " banan " fra utgangs- tilstanden til den andre tilstanden . Tegn to piler , tilsvarende " eple " og " oransje ", som fører ut av start staten, men looping tilbake til det. Hvis to eller flere piler starter på samme sted og ende på samme sted som dette , kan du kombinere dem til å gjøre tegningen mindre rotete ; etiketten én pil med alle innganger det tilsvarer
tre .
Tegn flere stater og spesifisere sine piler inntil maskinen har nådd en tilstand der det har oppstått innganger eller sekvens av innganger den er utformet for å identifisere. For inneværende eksempel tegne en tredje stat og merker den. Tegn et " banan "-pilen fører ut av den andre tilstanden til den tredje, og en " eple /orange" pil fører ut av den andre tilstanden tilbake inn i seg selv . Tegne én pil fra tredje tilstand som fører tilbake til seg selv , merket med alle tre typer frukt .
4
Tegn en litt mindre konsentrisk sirkel i tredje stat for å indikere at det er en " godta " state . Din FSM er fullført, men hva gjør det? Simulere hva som ville skje for et par eksempel fruktkurver du gjør opp , og du vil raskt innse at dette FSM vil avvise kurver som ikke har to bananer ( en kurv er " avvist" hvis frukten renne ut når akseptere staten isn 't okkupert ) . Deterministiske FSMS kan ha langt mer komplekse funksjoner enn dette , med flere akseptere stater og komplekse mulige veier.