Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como fazer uma Máquina de Estado Finito Determinístico
A máquina de estados finitos (FSM ) é uma abstração chave em que a operação de computadores digitais se baseia. Uma FSM é constituído por um conjunto de estados , dos quais apenas um pode ser "ocupado " em um momento, e um conjunto de regras que determinam qual estado será ocupada próxima com base no qual é atualmente ocupado e uma entrada . Em um FSM determinista, cada Estado só leva a um outro Estado ( ou o próprio ) para cada entrada possível. Elas são fáceis de desenhar e analisar em papel, utilizando círculos e flechas. Coisas que você precisa Lápis

Papel
Show Mais instruções
1

Desenhe um círculo de cerca de 1 polegada de diâmetro em seu papel de representar estado inicial do FSM . Indicar que é o estado inicial , desenhando uma seta sobre uma longa apontando polegadas a ele. Escreva um nome exclusivo para o Estado dentro do círculo ; um regime comum é rotular cada estado usando o " S " e um índice (por exemplo, " S0, S1 , S2 " e assim por diante ), mas usar nomes mais descritivos para seus estados se faz o FSM mais fácil de entender .
2

Desenhe outro círculo para representar um segundo estado . Escrever um rótulo para o segundo estado dentro de seu círculo. Cada estado deve ter uma "resposta ", definida para cada entrada possível que possa receber . Desenhe como muitas setas que levam para fora do estado inicial , pois há possíveis entradas , rotulando cada seta com a entrada corresponde. Cada seta deve levar de volta para o estado inicial ou para o segundo estado . Como exemplo , imagine a máquina ter acesso a uma cesta de bananas , maçãs e laranjas que ele vai escolher através de uma peça de cada vez até que o carro está vazio. Desenhe uma seta rotulada com a entrada de "banana " a partir do estado inicial para o segundo estado . Desenhe mais duas setas , correspondente a " maçã " e " laranja ", levando para fora do estado inicial , mas looping de volta a ele. Se duas ou mais setas começam no mesmo lugar e terminar no mesmo lugar como este , combiná-los para fazer o desenho menos confuso ; rotular a seta única com todos os insumos que corresponde a
3.

Desenhe mais estados e especificar suas flechas até sua máquina atingiu um estado em que encontrou as entradas ou seqüência de entradas que se destina a identificar . Para o exemplo atual , desenhe um terceiro estado e rotulá-la . Desenhe uma seta "banana" que levam para fora do segundo para o terceiro estado , e um " maçã /laranja" arrow que levam para fora do segundo estado de volta para si mesmo. Desenhe uma única flecha do terceiro estado levando de volta para si mesma, rotulados com os três tipos de frutas.
4

Desenhe um pouco menor círculo concêntrico no terceiro estado para indicar que é um estado de " aceitar " . O FSM é completo , mas o que ele faz? Simule o que aconteceria por algumas cestas exemplo frutas que você faz , e você vai logo perceber que este FSM rejeita cestas que não têm 2 bananas ( uma cesta é " rejeitado ", se o fruto esgotar quando o isn estado de aceitação ' t ocupada ) . FSMs determinísticas pode ter muito mais complexas funções do que este , com vários estados de aceitação e caminhos complexos possíveis .

Anterior :

Próximo : No
  Os artigos relacionados
·Quais são Sintaxe Protocolos 
·Como escrever Pseudocódigo para uma calculadora 
·Como mudar o foco ao clicar em um Row DataGrid 
·Como ajustar RGB Programação Intensidade 
·Como remover uma caixa de listagem de entrada em MATLAB…
·Como construir uma caixa flutuante 
·O que é SQL Sintaxe Destacando 
·Que tipos de do lado do servidor As línguas são para …
·Como criar uma variante para SM30 
·Funções embutidas em T-SQL 
  Artigos em destaque
·Como converter texto para CSV no KiXtart 
·Como usar o Stack STL Container Classe 
·Como acessar uma impressora USB Enquanto Programação …
·Como posso abrir um arquivo EPR ​​at Home 
·Como formatar Duplas em C 
·Como atualizar vBulletin 4 Ícones 
·Como criar um formulário em tempo de execução em VB6…
·O que faz Alias ​​média no I /O de arquivos 
·Tutorial WPF 
·Como usar Arrays de caracteres Two- Dimensional em C 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados