Вы находитесь на странице: 1из 10

Mquina de estados finitos

Origem: Wikipdia, a enciclopdia livre.

Este artigo ou seco contm fontes no fim do texto, mas que no so citadas no corpo do artigo, o que compromete aconfiabilidade d
informaes. (desde junho de 2010)
Por favor, melhore este artigo introduzindo notas de rodap citando as fontes, inserindo-as no corpo do texto quando necessrio.

Esta pgina precisa ser reciclada de acordo com o livro de estilo (desde Fevereiro de 2008).
Sinta-se livre para edit-la para que esta possa atingir um nvel de qualidade superior.
Uma mquina de estados finitos (FSM - do ingls Finite State Machine) ou autmato
finito um modelo matemtico usado para representar programas de
computadoresou circuitos lgicos. O conceito concebido como uma mquina abstrata
que deve estar em um de seus finitos estados. A mquina est em apenas um estado por
vez, este estado chamado de estado atual. Um estado armazena informaes sobre o
passado, isto , ele reflete as mudanas desde a entrada num estado, no incio do
sistema, at o momento presente. Uma transio indica uma mudana de estado e
descrita por uma condio que precisa ser realizada para que a transio ocorra. Uma
ao a descrio de uma atividade que deve ser realizada num determinado momento.
Mquinas de estado finito podem modelar um grande nmero de problemas, entre os
quais a automao de design eletrnico, projeto de protocolo de comunicao, anlise e
outras aplicaes de engenharia. Na biologia e na pesquisa da inteligncia artificial,
mquinas de estado ou hierarquias de mquinas de estado so, por vezes, utilizadas para
descrever sistemas neurolgicos e em lingustica para descrever as gramticas
das linguagens naturais.
ndice
[esconder]

1Conceitos e Vocabulrio
2Representao
o 2.1Diagrama de estados
o 2.2Mquinas de estados UML
o 2.3Mquinas de estados SDL
o 2.4Outros diagramas de estado
3Uso
4Classificao
o 4.1Aceitadores e reconhecedores
4.1.1Estado Inicial
4.1.2Estados de aceitao (ou Estados Finais)
o 4.2Transdutores
o 4.3Determinismo
5Semnticas Alternativas
6Lgica da FSM
7Modelo matemtico
8Implementao
o 8.1Aplicaes de Hardware
o 8.2Aplicaes de Software
9Referncias
10Ligaes externas

Conceitos e Vocabulrio[editar

| editar cdigo-fonte]

Um estado descreve um n de comportamento do sistema em que est espera de uma


condio para executar uma transio. Normalmente, um estado introduzido quando o

sistema no reage da mesma forma para uma mesma condio. No exemplo de um


sistema de rdio de carro, quando se est ouvindo uma estao de rdio, o estmulo
"prximo" significa ir para a prxima estao. Mas quando o sistema est no estado de
CD, o estmulo "prximo" significa ir para a prxima faixa. O mesmo estmulo desencadeia
aes diferentes, dependendo do estado atual. Em algumas representaes de estado
finito mquina, tambm possvel associar aes a um estado:

Ao de entrada: o que realizado ao entrar no estado,


Ao de sada: o que executado ao sair do estado.

A transio um conjunto de aes a serem executadas quando uma condio for


cumprida ou quando um evento recebido. Mquinas de estado so utilizadas para
descrever circuitos sequenciais. Diferentemente de um contador que em geral conta
eventos, uma mquina de estado costuma ser usada para controlar o evento.
A mquina est em apenas um estado por vez, este estado chamado de estado atual.
Um estado armazena informaes sobre o passado, isto , ele reflete as mudanas desde
a entrada num estado, no incio do sistema, at o momento presente. Uma transio indica
uma mudana de estado e descrita por uma condio que precisa ser realizada para que
a transio ocorra. Uma ao a descrio de uma atividade que deve ser realizada num
determinado momento.

Representao[editar

| editar cdigo-fonte]

Fig. 1 Exemplo de mquina de estados SDL

Fig. 2 Exemplo de uma mquina de estados finitos simples

Diagrama de estados[editar | editar cdigo-fonte]


Mquinas de estados finitos podem ser representadas por meio de um diagrama de
estados (ou diagrama de transio de estados). Diversas tabelas de transio de estados
so usadas, a mais famosa a mostrada abaixo. A combinao do estado atual (ex: B)
com uma condio (ex: Y) determina o prximo estado (ex: C). Atravs do uso das tabelas
podemos representar uma de mquina finita de estados que contenha informaes
completas sobre as aes.
Tabela de transio de estados

Estado Atual
Estado A Estado B Estado C
Condio

Condio X

...

...

...

Condio Y

...

Estado C

...

Condio Z

...

...

...

Mquinas de estados UML[editar | editar cdigo-fonte]


A UML tem uma notao para descrever mquinas de estado. Mquinas de estado UML
superam as limitaes das FSMs tradicionais, mantendo os seus principais benefcios.
Mquinas de estados UML introduzem os novos conceitos de estados aninhados
hierarquicamente e regies ortogonais, enquanto estende a noo de aes. Mquinas de
estado UML tm as caractersticas de ambas as mquinas de Mealy e Moore. Elas
suportam aes que dependem tanto do estado do sistema quanto da condio, como em

mquinas de Mealy, assim como aes de entrada e sada que esto associadas com os
estados em vez de transies, como em mquinas de Moore.

Mquinas de estados SDL[editar | editar cdigo-fonte]


A SDL um padro da Unio Internacional de Telecomunicaes e uma das melhores
linguagens para descrever mquinas de estado, pois inclui smbolos grficos para
descrever as aes na transio:

enviar um evento
receber um evento
iniciar um temporizador
cancelar um temporizador
iniciar uma nova mquina de estado simultnea
deciso

SDL incorpora tipos bsicos de dados chamado Abstract Data Types, uma linguagem de
ao, e uma semntica de execuo, a fim de tornar a mquina de estados finitos
executvel. Um exemplo visto na figura 1.

Outros diagramas de estado[editar | editar cdigo-fonte]


Existem vrias outras maneiras de se representar uma FSM, assim como mostrado na
figura 2.
Um exemplo o HDL:
Em HDL (Hardware Description Language) ou LDH(Linguagem de Descrio de Hardware)
possvel criar mquinas de estado simples e de descrio intuitiva. feito o uso de
estados nomeados para os quais no h valores binrios definidos. Em VHDL existem as
palavras-chave como TYPE por exemplo, que define o tipo enumerado em VHDL. O
projetista lista em nomes simblicos (diferentes das palavras-chave) todos os possveis
valores que um sinal, varivel ou porto que declarado como sendo deste tipo pode
assumir. O valor binrio determinado pelo compilador, deixando o trabalho do projetista
mais simples.

Uso[editar

| editar cdigo-fonte]

Alm de seu uso na modelagem de sistemas reativos aqui apresentados, autmatos de


estados finitos so significativos em diversas reas, incluindo engenharia eltrica,
lingustica, cincia da computao, filosofia, biologia, matemtica e lgica. Mquinas de
estados finitos so uma classe de autmatos estudada na teoria dos autmatos e teoria da
computao. Em cincia da computao, mquinas de estados finitos so amplamente
utilizados na modelagem do comportamento do aplicativo, design de sistemas digitais de
hardware, engenharia de software, compiladores, protocolos de rede, e o estudo da
computao e linguagens.

Classificao[editar

| editar cdigo-fonte]

Existem dois grupos: Aceitadores/Reconhecedores e Transdutores.

Aceitadores e reconhecedores[editar | editar cdigo-fonte]

Fig. 3 FSM aceitador: analisando a palavra "nice"

Aceitadores e reconhecedores produzem uma sada binria, dizendo sim ou no para


responder se a entrada aceita pela mquina ou no. Todos os estados do FSM esto a
dizer se quer aceitar ou no quer aceitar. No momento em que todas as entradas so
processadas, se o estado atual um estado de aceitao, a entrada aceita, caso
contrrio rejeitada. Como regra a entrada so smbolos (caracteres); aes no so
usadas. O exemplo da figura 3 mostra uma mquina de estados finitos que aceita a
palavra "nice". Neste FSM o nico estado de aceitao o nmero 7.
A mquina tambm pode ser descrita como a definio de uma linguagem, que conteria
todas as palavras aceitas pela mquina e nenhuma das que so rejeitadas; dizemos ento
que a linguagem aceita pela mquina. Por definio, linguagens aceitas por FSMs so
as linguagens regulares, isto , uma linguagem regular se existe alguma FSM que a
aceita.
Estado Inicial[editar | editar cdigo-fonte]
O estado inicial geralmente mostrado desenhando uma seta "apontando para ele a partir
de qualquer lugar" (Sipser (2006) p. 34).
Estados de aceitao (ou Estados Finais) [editar | editar cdigo-fonte]

Fig. 4: Representao de uma FSM. Este exemplo mostra uma FSM que determina se um nmero
binrio tem um nmero par ou mpar de 0's, onde S1 um estado de aceitao.

Estados de aceitao so aqueles em que a mquina relata que a seqncia de entrada,


como processadas at agora, membro da linguagem que ela aceita. geralmente
representado por um crculo duplo. Um exemplo de um estado de aceitao aparece na
figura 4: um autmato finito determinstico (AFD) que detecta se a seqncia de
entrada binria contm um nmero par de 0's. S1 (que tambm o estado inicial) indica o
estado no qual um nmero par de 0's foi dado na entrada. S1 , portanto, um estado de
aceitao. Esta mquina vai terminar em um estado de aceitao se a seqncia binria
contm um nmero par de 0's (incluindo qualquer seqncia binria que no contenham
0's). Exemplos de cadeias aceitas por este AFD so: epsilon (a cadeia vazia), 1, 11, 11 ...,
00, 010, 1010, 10110, etc.

Transdutores[editar | editar cdigo-fonte]


Transdutores geram uma sada baseada em uma entrada e/ou um estado utilizando
aes. Eles so utilizados para aplicaes de controle.
A sada produzida por um contador ou uma mquina de estado pode vir diretamente das
sadas do flip-flop, ou alguns circuitos lgicos. As duas variaes so chamadas de
modelo Mealy de circuitos sequencial e modelo Moore.
No modelo Mealy, os sinais de sada tambm so controlados por sinais de entrada
adicionais, enquanto o modelo Moore no possui nenhum controle externos para os sinais
de sada gerados.A sada do modelo Moore funo apenas do estado atual do flip-flop.
As sadas de um circuito de tipo Moore sero completamente sncronas em relao ao
clock do circuito, enquanto sadas produzidas por um circuito de tipo Mealy podem mudar
assincronamente.
Mquina de Moore
A FSM utiliza apenas aes de entrada, i.e. a sada depende somente do estado.
A vantagem do modelo de Moore a simplificao do comportamento.
Consideremos por exemplo uma FSM de Moore de uma porta de elevador com 4
estados "Aberta", "Fechada", "Abrindo", "Fechando". A mquina de estados
reconhece dois comandos: "comando_abrir" e "comando_fechar" que disparam a
alterao de estado. A ao de entrada (E:) no estado "Abrindo" liga o motor que
abre a porta, a ao de entrada no estado "Fechando" liga o motor na outra
direo, fechando a porta. Os estados "Aberta" e "Fechada" no desempenham
nenhuma ao. Eles sinalizam para o mundo externo (e.g. para outras mquinas
de estado) a situao: "porta est aberta" ou "porta est fechada".

Fig. 5 FSM transdutor: exemplo do modelo de Mealy

Mquina de Mealy
A FSM utiliza apenas input actions, i.e. a sada depende da entrada e do estado. O
uso de uma FSM de Mealy normalmente leva a uma reduo no nmero de
estados. Por exemplo uma FSM de Mealy implementando o mesmo
comportamento visto no exemplo de Moore (o comportamento depende no modelo
de execuo implementado na FSM e ir funcionar e.g. para uma FSM virtual mas
no para uma FSM de eventos dirigidos). Existem duas input actions(I:): inicie o
motor para fechar a porta se o comando_fechar (sensor_closed na figura 5)
chegar e inicie o motor na direo oposta para abrir a porta se o comando_abrir
(sensor_opened na figura 5) chegar.
Na prtica modelos mistos so muito utilizados.
Mais detalhes sobre as diferenas e usos dos modelos de Moore e Mealy,
incluindo um exemplo executvel, podem ser encontrados na nota tcnica
externa "Modelo de Moore ou Mealy?"(documento em ingls)

Determinismo[editar | editar cdigo-fonte]


Uma distino adicional est entre autmato determinstico (AFD) e nodeterminstico (AFN). No autmato determinstico, para cada estado h
exatamente uma transio para cada entrada possvel. No autmato no
determinstico, pode haver nenhuma, uma ou mais de uma transio de um
determinado estado para uma entrada possvel.

A FSM com apenas um estado chamada de FSM combinatria e utiliza apenas


input actions. Este conceito til quando um nmero de FSM devem trabalhar
juntas, e onde conveniente considerar uma parte puramente combinatria como
uma forma de FSM para se adequar s ferramentas de projeto.

Semnticas Alternativas[editar

| editar cdigo-fonte]

H outros conjuntos de semntica disponvel para representar mquinas de


estado. Por exemplo, existem ferramentas para modelagem e lgica para projetar
controladores incorporados.[1] Eles combinam mquinas de estado hierrquico,
grficos de fluxo e tabelas de verdade para uma linguagem, resultando em um
diferente formalismo e conjunto de semntica.[2] A Figura 6 ilustra esta mistura de
mquinas de estado e grficos de fluxo com um conjunto de estados para
representar o estado de um cronmetro e um grfico de fluxo para controlar os
tiques do relgio. Estes grficos, como mquinas de estado originais de
Harel,[3] apoiam os estados hierarquicamente aninhados, regies ortogonais,
aes do estado, e as aes de transio.[4]

Lgica da FSM[editar

| editar cdigo-fonte]

Fig. 6 Lgica da FSM (Mealy)

O prximo estado e a sada de uma FSM so uma funo da entrada e do atual


estado. A lgica da FSM mostrada na figura 6.

Modelo matemtico[editar

| editar cdigo-fonte]

Dependendo do tipo podem haver vrias definies.


Uma mquina de estados finitos tipo aceitador uma quntupla <, S, s0, , F>,
onde:

o alfabeto de entrada (um conjunto de smbolos finitos no vazio),


S um conjunto finito de estados no vazio,
s0 o estado inicial, um elemento de S,
a funo de transio de estados: : S x S (em um AFN,
seria : S x P(S), isto , iria retornar um conjunto de estados),

F o conjunto de estados finais, um (possivelmente vazio) subconjunto de S.

Para ambos os FSMs determinsticas e no-deterministica, convencional para


permitir ser uma funo parcial, ou seja, (q, x) no tem que ser definida para
cada combinao de q S e x . Se uma FSM M est em um estado q, o
smbolo seguinte x e (q, x) no est definida, ento M pode anunciar um erro
(ou seja, rejeitar a entrada). Isso til em definies de mquinas de estado em
geral, mas menos til ao transformar a mquina. Alguns algoritmos em sua forma
padro podem exigir funes totais.
Uma mquina de estados finitos uma mquina de Turing restrita em que a
cabea s pode "ler" as operaes, e sempre se move da esquerda para a
direita.[5]
Uma mquina de estados finitos tipo transdutor
uma sxtupla <, , S, s0, , >, onde:

o alfabeto de entrada (um conjunto de smbolos finitos no vazio),


o alfabeto de sada (um conjunto de smbolos finitos no vazio),
S um conjunto finito de estados no vazio,
s0 o estado inicial, um elemento de S,
a funo de transio de estados: : S x S (em um AFN,
seria : S x P(S), isto , iria retornar um conjunto de estados),
a funo de sada.

Se a funo de sada uma funo do estado e do alfabeto de entrada


(: S x )essa definio corresponde ao modelo de Mealy. Se a funo de
sada depende somente do estado (: S ) essa definio corresponde
ao modelo de Moore.
Se desconsiderarmos o smbolo primeira sada de uma mquina de Moore, (s0),
ento ela pode ser facilmente convertida em uma mquina de Mealy de sada
equivalente definindo a funo de sada de cada transio da de Mealy (isto ,
rotulando cada extremidade) com o smbolo de sada dado ao estado de destino
da de Moore. A transformao inversa menos simples, porque um estado da
mquina de Mealy pode ter rtulos de sada diferentes em suas transies de
entrada (extremidades). Cada estado tem de ser dividido em vrios estados da
mquina de Moore, uma para cada smbolo de sada incidente.[6]
Teoria de autmatos: linguagem formal e gramtica formal
Hierarquia
Chomsky

Gramtica

Linguagem

Reconhecedor

Tipo-0

Irrestrita

Recursivamente enumervel Mquina de Turing

--

--

Recursiva

Tipo-1

Sensvel ao contexto Sensvel ao contexto

Autmato linearmente limitado

Tipo-2

Livre de contexto

Livre de contexto

Autmato com pilha

Tipo-3

Regular

Regular

Autmato finito

Implementao[editar

Mquina de Turing que sempre para

| editar cdigo-fonte]

Aplicaes de Hardware[editar | editar cdigo-fonte]

Fig. 7 O diagrama de circuito para um contador TTL de 4bits, um tipo de mquina de


estados

Em um circuito digital, uma FSM pode ser construda utilizando um dispositivo


lgico programvel. Um controlador lgico programvel, portas lgicas e flipflops ou relays. Mais especificamente, a implementao de hardware requer
um registrador para armazenar o estado das variveis, um bloco de lgica
combinacional que determina o estado de transio e um segundo bloco de lgica
combinacional que determina a sada da FSM.
O mais famoso o controlador de Richards
Mquinas de Mealy e de Moore produzem lgica com sada assncrona, porque h
um atraso de propagao entre o flip-flop e sada. Isso causa frequncias mais
lentas operando na FSM. Uma mquina de Mealy ou de de Moore pode ser
convertida para uma FSM tal qual a sada diretamente de um flip-flop, o que faz
a FSM funcionar em frequncias mais altas. Este tipo de FSM chamado s
vezes FSM de Medvedev.[7] Um contador a forma mais simples desse tipo de
FSM.

Aplicaes de Software[editar | editar cdigo-fonte]


Os seguintes conceitos so comumente usados para construir aplicaes de
software com mquinas de estados finitos:

Programao baseada em autmatos


FSM orientada a eventos
FSM Virtual (VFSM)

Referncias[editar

| editar cdigo-fonte]

1. Ir para cima Tiwari, A. (2002). Formal Semantics and Analysis Methods for
Simulink Stateflow Models.
2. Ir para cima Hamon, G. (2005). A Denotational Semantics for Stateflow.
International Conference on Embedded Software (pp. 164172). Jersey
City, NJ: ACM.
3. Ir para cima Harel, D. (1987). A Visual Formalism for Complex Systems.
Science of Computer Programming , 231274.
4. Ir para cima Alur, R., Kanade, A., Ramesh, S., & Shashidhar, K. C. (2008).
Symbolic analysis for improving simulation coverage of Simulink/Stateflow
models. Internation Conference on Embedded Software (pp. 8998).
Atlanta, GA: ACM.
5. Ir para cima Black, Paul E (12 May 2008). "Finite State
Machine". Dictionary of Algorithms and Data Structures U.S. National
Institute of Standards and Technology [S.l.]
6. Ir para cima James Andrew Anderson; Thomas J. Head (2006). Automata
theory with modern applications Cambridge University Press [S.l.]
pp. 105108. ISBN 9780521848879.
7. Ir para cima "FSM: Medvedev".

Timothy Kam, Synthesis of Finite State Machines: Functional Optimization.


Kluwer Academic Publishers, Boston 1997, ISBN 0-7923-9842-4
Tiziano Villa, Synthesis of Finite State Machines: Logic Optimization. Kluwer
Academic Publishers, Boston 1997, ISBN 0-7923-9892-0
Carroll, J., Long, D. , Theory of Finite Automata with an Introduction to Formal
Languages. Prentice Hall. Englewood Cliffs, 1989.
Hopcroft, J.E., Ullman, J.D., Introduction to Automata Theory, Languages and
Computation. Addison -Wesley, 1979.
Kohavi, Z., Switching and Finite Automata Theory. McGraw-Hill, 1978.
Gill, A., Introduction to the Theory of Finite-state Machines. McGraw-Hill, 1962.
Cassandras, C., Lafortune, S., "Introduction to Discrete Event Systems".
Kluwer, 1999, ISBN 0-7923-8609-4
Tocci, Ronald J., "Sistemas digitais:Princpios e aplicaes.", 10 edio, 2007

Вам также может понравиться