Máquina de Estados
Catraca, semáforo e elevador em 3D controlados por um autômato que você desenha. A máquina obedece ao diagrama: faltou uma seta, ela trava; seta errada, o elevador dá a volta.
Como usar
A ideia: à esquerda está a máquina; à direita, o diagrama que manda nela. Cada disco é um estado (catraca travada, semáforo verde, elevador no térreo). Cada seta é uma transição: “se estou neste estado e acontece este evento, vou para aquele estado”. A seta solta, sem origem, aponta o estado inicial. O disco amarelo é o estado em que a máquina está agora.
Experimente: escolha a máquina, desenhe as setas na tabela abaixo da cena e dispare eventos com os botões. A máquina faz exatamente o que o diagrama diz, mesmo quando ele está errado. Se o estado atual não tem seta para o evento, a máquina trava. Quando achar que acabou, use “Conferir as regras”.
Arraste o fundo da cena para girar; use a roda do mouse ou dois dedos para aproximar. Clique em um disco para colocar a máquina naquele estado. Pelo teclado: Tab até a cena, setas giram e as teclas + e − aproximam. Todos os comandos também estão nos botões e na tabela.
Diagrama em tabela
Cada caixa é uma seta do diagrama: do estado da linha, com o evento da coluna, a máquina vai para o estado escolhido. “?” quer dizer que ainda não há seta.
Máquina
Estado atual
Regras da máquina
O diagrama precisa cumprir todas:
- estado atual
- última transição usada
- sem seta: a máquina não sabe o que fazer
Desafios
- Faça a máquina travar: dispare um evento para o qual o estado atual ainda não tem seta.
- Complete o diagrama da catraca até cumprir todas as regras.
- Desenhe o semáforo inteiro, com o botão do pedestre.
- Conserte o elevador: há uma seta errada e faltam outras.
Para o professor
O que está por trás: um autômato finito descreve um comportamento com três ingredientes: um conjunto pequeno de estados, os eventos que podem acontecer e as transições que dizem para onde ir em cada caso. A mesma descrição serve para a catraca, o semáforo, o elevador, um personagem de jogo ou a validação de uma senha. A tabela abaixo da cena é a forma de tabela do mesmo diagrama: cada caixa é uma seta. Nesta página o comportamento é determinístico (cada estado tem no máximo uma seta por evento) e o aluno descobre na prática o que é um autômato completo: quando falta uma seta, a máquina trava.
Metodologia sugerida: encenação e depois investigação em duplas, como no plano Máquinas de estados: do semáforo ao jogo. Primeiro a turma encena a catraca com cartões de estado; depois as duplas desenham o semáforo na página e só então o elevador, que já vem com um defeito para consertar. Para levar ao Scratch, a variável “estado” e os blocos “quando receber” fazem o mesmo papel da tabela; a ficha Máquina de estados de um personagem ajuda nesse passo.
- Por que a catraca precisa de uma seta de “Travada” para “Travada” com o evento “Empurrar”? O que aconteceria numa catraca de verdade sem essa regra?
- No elevador que vem pronto, o que acontece quando alguém aperta “Subir” no 2º andar? Como uma regra errada vira um problema de segurança?
- O semáforo tem 3 estados e 2 eventos. Quantas setas o diagrama completo precisa ter? E uma máquina com 4 estados e 3 eventos?
- Onde mais vocês encontram máquinas de estados? Pensem em jogos (parado, andando, pulando), no micro-ondas, no celular bloqueado e desbloqueado, num chatbot que segue um roteiro.
Habilidade: EF09CO03; também serve para Ensino Médio e para cursos introdutórios de linguagens formais. Material concreto equivalente: discos de papel com o nome de cada estado, barbantes ou setas recortadas com o nome do evento e um aluno que faz o papel da máquina, andando de disco em disco.