Você está na página 1de 6

Ficha 2

Autómatos Finitos Determinı́sticos

2.1 Introdução
Se olharmos, de forma simplificada, para um computador encontramos três
componentes principais:

a) A unidade de processamento central

b) As unidades de entrada e saı́da

c) A memória

Um Autómato Finito (AF) não é mais do que um computador amputado


de algumas partes: a memória e a unidade de saı́da1 (ver figura 2.1. Apesar
destas limitações os AF permitem resolver problemas importantes, seja no
campo das linguagens de programação seja como modelos de processos. Esta
folha destina-se a exercitar alguns aspectos dos AFs.
Antes de passarmos aos exercı́cios alguns aspectos importantes que deve
ter em conta.

a) A definição de Autómato Finito Determinista dada supõe que a função


de transição δ é total. Isso significa, entre outras coisas que para todos
os estados do autómato e para todos os sı́mbolos do alfabeto de entrada
existe uma (e só uma) transição para outro2 estado;
1
Existem máquinas que produzem saı́da, os transdutores, como teremos ocasião de ver.
2
Eventualmente o mesmo.

2
Figura 2.1: Autómato Finito como Máquina de Estados

b) Como método de construção de um AF, nem sempre é importante con-


siderar desde logo a obrigatoriedade acima referida. Muitas vezes o pro-
blema resolve-se nos seus aspectos essenciais deixando alguns estados
sem transição para algumas entradas. Essas transições acrescentam-se
depois e vão para o mesmo estado único denominado estado ratoeira
(trap state).
c) A função de transição estendida, δ ∗ , materializa a ideia da dinâmica
do autómato.3
d) Não possuindo memória, será possı́vel resolver problemas que envol-
vam essa caracterı́stica? Nalguns casos sim! A memória pode estar
associada ao estado ou ainda a determinados caminhos envolvendo
estados e transições.
e) Nalguns problemas, é mais simples desenhar o autómato que reconhece
a linguagem complementar e, depois, transformar os estados finais
em não finais e vice-versa.
f) As linguagens associadas aos autómatos finitos dizem-se regulares.
g) Em problemas do tipo “Desenhe um autómato que reconheça a lin-
guagem sobre o alfabeto Σ = {a1 , a2 , . . . , an } cujas palavras têm a ca-
3
Esta mesma ideia pode ser capturada através de uma relação binária envolvendo con-
figurações. Uma configuração é um par (estado,palavra). A dinâmica é neste caso dada
pelo fecho reflexivo e transitivo da relação binária.

3
racterı́stica x...”, o método usual é começar por desenhar a parte do
autómato que satisfaz a caracterı́stica x e depois preocuparmo-nos como
o facto de todas as transições terem que estar definidas.

h) Um AF pode ser representado por um grafo de transição (também


chamado de diagrama de estados) ou por uma tabela de transição.

2.2 Os autómatos finitos como modelos


Problema 1 Imagine uma porta automática com duas zonas de sensores
(entrada, saı́da)(ver figura 2.2).

Figura 2.2: Porta Automática

Modele por meio de um autómato finito o funcionamento da porta au-


tomática. Sugestão: comece por identificar as situações possı́veis, e os es-
tados do seu autómato.

Problema 2 Acontece com frequência a necessidade de determinar a pre-


sença de determinado padrão. Suponha que um autómato deve ler uma
sequência binária e determinar quais as sequências que contêm um número
ı́mpar de 1’s4 . Como implementaria o seu autómato?

2.3 O método
Problema 3 Admita um alfabeto de entrada Σ = {0, 1}. Desenhe um
autómato finito determinista sobre este alfabeto, que aceite todas as palavras:

a) Com exactamente um 1;
4
Trata-se de um exemplo simples de um detector de paridade ı́mpar

4
b) Com pelo menos um 1;

c) Sem qualquer 1;

d) Em que todas as posições ı́mpares têm um 1;

e) Que começam por um 1 e terminam com um 0;

f) Com pelo menos três sı́mbolos, sendo que o terceiro é zero;

g) Que não contêm a sequência 110;

2.4 A memória
Problema 4 Admita um alfabeto de entrada Σ = {0, 1}. Desenhe um
autómato sobre este alfabeto, que aceita a linguagem em que todas as pala-
vras:

a) São da forma w1 01w2 , com w1 e w2 ∈ {0, 1}∗ ;

b) Têm o sı́mbolo inicial e final diferentes;

c) Todas as palavras são da forma vwv, com |v| = 2 e v, w ∈ {0, 1}∗ ;

d) (difı́cil) Todas as palavras que, quando interpretadas como um número


binário, resultam num número x > 0, tal que x mod 5 = 0.

e) Têm pelo menos dois 1s consecutivos mas não contêm dois 0s consecu-
tivos.

f) Que contenha a sequência 0101

2.5 Autómatos e Linguagens


Problema 5 Defina, usando a notação de conjuntos, a linguagem aceite pe-
los autómatos da figura 2.3. Para além disso proponha uma caracterização
verbal, simples, dessa linguagem.

Problema 6 Seja L uma linguagem num alfabeto Σ e seja a um sı́mbolo do


alfabeto. O quociente O quociente L/a de L por a, é a linguagem composta
por todas as cadeias w de Σ tais que wa ∈ L. Por exemplo, para Σ = {0, 1},
L = {0, 01, 10, 001, 100} e a = 0, L/a = {λ, 1, 10}. Dado um autómato finito
determinista que aceita L, como se poderá obter um para L/a?

5
Exemplo 1

Exemplo 2

Figura 2.3: Autómatos Finitos Deterministas

2.6 JFLAP: Uma ferramenta simples


Problema 7 Implemente no JFLAP os seguintes autómatos e caracterize
a linguagem por eles aceite. Pode usar as diferentes funcionalidades do
JFLAP para o ajudar na tarefa.

Autómato 1

Autómato 2

Figura 2.4: Autómatos Finitos Deterministas

Problema 8 Admita um alfabeto de entrada Σ = {0, 1}. Implemente no

6
JFLAP um autómato finito determinista que aceite todas as palavras que
não contêm sequências de 0s ou 1s de comprimento inferior a 3.

Problema 9 (Moroso) Implemente no JFLAP um autómato finito de-


terminista que aceite a linguagem de composta por todas as palavras em
Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} tais que a soma dos algarismos da palavra é
divisı́vel por 7 (por exemplo λ, 7, 07, 86, 16).

Problema 10 Implemente no JFLAP um autómato finito determinista


que aceite a palavra TELA com tolerância de um carácter (isto é, também
aceita as palavras *ELA, T*LA, TE*A, TEL*, em que * quer dizer qualquer
carácter do alfabeto Σ = {a, b, ..., z}).
Sugestão: Para evitar trabalho repetitivo, poderá considerar um alfabeto
mais reduzido.

Você também pode gostar