Den finita tillståndsmaskin ( FSM ) är en viktig abstraktion där driften av digitala datorer bygger . En FSM består av en uppsättning av stater , är bara en av dem kan vara " upptagen " på en gång , och en uppsättning regler som bestämmer vilken stat kommer att bebos nästa utifrån som för närvarande ockuperat och en ingång . I en deterministisk FSM , leder varje stat endast till en annan stat ( eller sig själv ) för varje möjlig input . De är lätta att rita och analysera på papper med cirklar och pilar . Saker du behöver
Pencil
Paper
Visa fler instruktioner
1
rita en cirkel ca 1 tum över på papper för att representera Mikronesiens börjar staten . Ange att det är utgångspunkten staten genom att rita en pil om en tum lång som pekar på det . Skriv ett unikt namn för staten inuti cirkeln , ett gemensamt system är att märka varje stat med " S " och ett nedsänkt ( t.ex. " S0 , S1 , S2 " och så vidare ) , men använder mer beskrivande namn för din stater om det gör FSM lättare att förstå .
2
Rita en annan cirkel för att representera ett andra tillstånd . Skriv en etikett för den andra staten i sin krets . Varje stat måste ha ett " svar " definieras för varje möjlig input som den får . Rita så många pilar som leder ut från start staten som det finns möjliga ingångar , märkning varje pil med ingången det motsvarar . Varje pil måste leda tillbaka till utgångsläget staten eller till den andra staten . Som ett exempel , tänk att maskinen har tillgång till en korg av bananer , äpplen och apelsiner som det kommer att plocka igenom en bit i taget tills korgen är tom . Rita en pil märkt med ingången " bananen " från start tillståndet till det andra tillståndet . Rita två pilar , motsvarande " äpple " och "orange ", som leder ut från start staten men looping tillbaka till den . Om två eller flera pilar börjar på samma ställe och slutar på samma plats som denna , kombinera dem för att göra ritningen mindre rörigt , etikett enda pil med alla ingångar den motsvarar
3 .
Rita fler stater och ange sina pilar tills maskinen har nått ett tillstånd där den har stött på ingångarna eller sekvens av insignaler den är avsedd att identifiera . För det aktuella exemplet , rita en tredje stat och märka det . Rita en " banan " pilen som leder ut ur det andra tillståndet till det tredje , och en " äpple /orange " pilen som leder ut ur det andra tillståndet tillbaka till sig själv. Rita en enda pil från tredje stat som leder tillbaka till sig själv , märkt med alla tre typer av frukt .
4
Rita en något mindre koncentrisk cirkel i den tredje staten att visa att det är ett " acceptera "-tillstånd . Din FSM är klar , men vad gör det ? Simulera vad som skulle hända för ett par korgar exempel frukt du gör upp , och du kommer snabbt att inse att detta FSM kommer att förkasta korgar som inte har 2 bananer ( en korg " avvisas " om frukten tar slut när den mottagande staten ISN 't ockuperade ) . Deterministiska FSM kan ha betydligt mer komplexa funktioner än detta , med flera acceptera stater och komplexa möjliga vägar .