Finite state machine (FSM) é um termo usado por programadores, matemáticos, engenheiros e outros profissionais para descrever um modelo matemático para qualquer sistema que tenha um número limitado de estados condicionais de ser. Um exemplo prático de uma máquina de estado finito é um conjunto de botões em um controlador de videogame que estão conectados a um conjunto específico de ações dentro do jogo. Quando um usuário pressiona certos botões, o sistema sabe implementar as ações que correspondem.
A composição de uma máquina de estado finito consiste no seguinte:
- Um conjunto de eventos de entrada potenciais.
- Um conjunto de eventos de saída prováveis que correspondem aos eventos de entrada potenciais.
- Um conjunto de estados esperados que o sistema pode exibir.
Uma máquina de estado finito pode ser implementada através de software ou hardware para simplificar um problema complexo. Dentro de um FSM, todos os estados em consideração existem em uma lista finita e a máquina abstrata só pode assumir um desses estados de cada vez. Esta abordagem permite que cada cenário de entrada e saída seja estudado e testado.
Um FSM pode ser algo muito abstrato, como um modelo para um negócio representado por uma ilustração, ou pode ser algo concreto, como uma máquina de venda automática ou um computador. A lista de combinações possíveis destes elementos é limitada dentro de uma máquina de estado finito. Alternativamente, uma máquina de estado pode ser difusa. A fuzzy state machine permite a possibilidade de pontos de dados que não estão dentro de categorias discretas e pré-designadas.
Automata theory
Enquanto a palavra máquina tradicionalmente inclui um componente físico, neste contexto refere-se a uma abstração que poderia tomar a forma de qualquer coisa desde um conjunto de eventos de entrada, até um computador, máquina analógica simples ou modelo teórico de um conceito abstrato na teoria dos autômatos. Automata é um ramo teórico da ciência da computação e da matemática discreta que se concentra na lógica das máquinas simples. Os tipos de modelos computacionais dentro da teoria dos autômatos incluem:
- Máquinas de estado finito - Modelos para qualquer sistema com um número limitado de estados condicionais de ser.
- Máquinas de estado finito - Mais complicados que as máquinas de estado finito, estas usam regiões de memória chamadas pilhas para armazenar informação como parte de um modelo.
- Autômatos de estado finito (LBA) - Similar a uma máquina Turing, mas os dados são limitados a uma porção de entrada dentro de um grupo finito de entradas.
- Máquinas Turing - O modelo matemático mais complexo dentro da teoria dos autômatos para testar diferentes combinações de entradas para analisar um sistema ou problema maior.
Transição de estados
Quando uma máquina de estados finitos alterna entre estados, ela é chamada de transição de estados. O teste da qualidade de um sistema inclui a verificação de cada estado e transição de estados, considerando todas as entradas potenciais que podem ser introduzidas. Em alguns casos, a máquina de estados finitos é configurada usando uma linguagem de programação, e as funções de transição de estados são executadas. Além disso, a inteligência artificial pode ser usada para coletar dados sobre sistemas com reconhecimento de padrões e modelos automatizados.
Para problemas mais simples, a mesma informação pode ser exibida em tabelas, matrizes, ilustrações e fluxogramas, mas as máquinas de estados finitos permitem aos pesquisadores modelar cenários maiores e mais complicados. Os diagramas de máquinas de estado finito mostram o fluxo de lógica entre as combinações de entrada e saída que podem aparecer dentro de uma máquina específica.