Você está na página 1de 14

Teoria da Computação

Aula 4: Autômatos Finitos – parte 1

Apresentação
Esta aula consiste em apresentar as de nições básicas de alfabeto e linguagens e de nições e propriedades de árvores e
grafos.

Objetivos
De nir as características de um autômato nito determinístico e indeterminístico;

Narrar os conteúdos a serem estudados em autômatos nitos;

Averiguar a semelhança na construção dos autômatos.

Autômatos
Como visto anteriormente, grafos e árvores dependem de uma sequência de estados nitos:

1 2

Sistema de estados nitos é um sistema que tem entradas e Estado é uma representação de uma ação passada ou
saídas de estados nitos. próxima.

Autômatos nitos
Um autômato nito pode ser de nido pelos seguintes conceitos:
Controle
Conjunto de estados Conjunto de transições
Dispositivo que lê uma entrada
Cada estado recorda o que já foi Movimentos possíveis de um
externa e move de um estado para
feito na história de um sistema. estado para outro.
outro.

Atenção

Algumas transições não mudam de estado.

De nição formal de autômato nito


Dizemos que um autômato nito é representado por uma quíntupla (Q, Ʃ, δ, q0, F), onde Q é o conjunto nito de estados, Ʃ é o
conjunto nito de símbolos de entrada, δ é a função de transição, q0 é o estado inicial (q0 ∈ Q  o estado inicial é apontado por
uma seta) e F o conjunto de estados nais ou de aceitação (os estados de aceitação são apontados por um círculo dentro de
outro ou asterisco e um estado inicial também pode ser nal).

Função de transição
De nição formal de autômato nito
A função de transição é a função que de ne o funcionamento do autômato, ou seja, é o mapeamento de todas as ligações de
cada estado com determinado símbolo entrada resultando em um próximo estado.
 
Exemplo: Dado o autômato abaixo, indique os elementos da quíntupla de um autômato nito.
Seguindo a propriedade de um autômato nito que é representado por uma quíntupla (Q, Ʃ, δ, q0, F):
Q = número de estados = {q0, q1, q2, q3}
Ʃ = símbolos de entrada = {0,1}
δ = transições =
        δ (q0, 0) = q2
        δ (q0, 1) = q1
       δ (q1, 0) = q3
       δ (q1, 1) = q0
       δ (q2, 0) = q0
       δ (q2, 1) = q3
       δ (q3, 0) = não tem = Ø (vazio)
       δ (q3, 1) = q2
q0 = estado inicial = {q0}
F = conjunto de estados nais = {q0}

Atenção

Note que o estado inicial também é o estado nal.


Autômato nito determinístico
Um autômato nito determinístico é um autômato onde, para cada estado e para cada entrada, só há zero ou uma transição
possível.

Clique nos botões para ver as informações.

Propriedades de um autômato nito determinístico (AF det) 

As transições estão completas.

Para todo estado e todo símbolo de entrada sempre há zero ou uma transição possível.

São de nidas pelas propriedades do determinismo.

De nição formal 

Um autômato nito determinístico também é representado por uma quíntupla, seguindo as mesmas propriedades de um
autômato nito, ou seja, (Q, Ʃ, δ, q0, F), sendo Q o conjunto nito de estados, Ʃ o conjunto nito de símbolos de entrada, δ a
função de transição, q0 o estado inicial (q0 ∈ Q - o estado inicial é apontado por uma seta) e F o conjunto de estados nais
ou de aceitação (os estados de aceitação são apontados por um círculo dentro de outro ou asterisco e um estado inicial
também pode ser nal).

Noções 

Um autômato nito determinístico pode ser representado por meio de:


Diagramas (exemplo mais comum).

Tabelas de transição (versão tabular do diagrama). 

Ambos representam completamente a quíntupla do autômato.

Diagramas de estados
Nos diagramas de estados, cada estado tem um nó correspondente, um estado inicial (seta apontando para o estado), estados
de aceitação/ nal (círculo duplo) e setas saindo de um estado para outro, que vimos que são chamadas de transições e a
representação visual da função δ.

Versão tabular
Na versão tabular as linhas correspondem aos estados, as colunas correspondem às entradas, o estado inicial é marcado com
uma seta e os estados de aceitação são marcados com asterisco.
Exemplo:
Aceitação de linguagem
O autômato nito determinístico aceita uma sequência de caracteres chamada de w, porém ele só aceita se houver uma
sequência de transições correspondentes aos símbolos de w que partindo de um estado inicial leva a um estado nal.

O AF det age como um controle nito que parte do estado inicial (q0) para ler a sequência (w) de símbolos gravada em uma
ta.

No processo de leitura, estando no estado q (estado qualquer), o controle nito lê a entrada a (entrada qualquer) e faz as
seguintes veri cações:

Se não existir uma transição para esse estado e essa entrada no AF det, o controle para e não aceita a sequência w.

Se ele passa para outo estado qualquer e move o seu ponteiro para a direita, então a sequência w será aceita se o ponteiro
ultrapassar a extremidade direita da ta, mostrando que a sequência toda foi lida e o controle chega a um estado nal do
AF det.

Leiamos, a seguir, um passo a passo resumido

 Passo a passo resumido

 Clique no botão acima.


Passo a passo resumido
1. O autômato recebe uma cadeia de entrada. 

2. Processa a cadeia e produz uma saída: aceita ou rejeita. 

3. Começa no estado inicial.

4. Lê símbolos da esquerda para a direita.

5. Após ler um símbolo, move-se de um estado para outro, de acordo com a função de transição.

6. Quando lê o último símbolo, produz a saída.

7. Se o autômato estiver em estado de aceitação, a saída será aceita.

8. Caso contrário, será rejeitada.

Exemplo: Veri car se a sequência w = 0010111 é lida pelo AF det x.

Veri cação de uma sequência em um AF det


Para que esse processo de investigação (realizado por um humano) possa ser realizado por uma máquina, é
necessário que um algoritmo possa ser criado e implementado em uma linguagem de programação.

Realizar a veri cação de uma sequência em um AF det é possível, porém é preciso uma função de transição. Uma
função de transição δ^ mapeia Q x ∑* em Q, ou seja, quando o AF det está inicialmente no estado q, δ^(q, w) será o
estado do AF det após a leitura de uma sequência w.
Para essa veri cação seguimos os passos:

  (1) δ^ (q, Є) = q

Onde Є pode ser substituído por qualquer sequência ou vazio (Ø).

O AF det não muda de estado se não houver a leitura de um símbolo de entrada.

δ^ pode ser de nido recursivamente em função de δ.

E ainda w = w' a.

  (2) δ^ (q, w)= δ^(q, w' a) = δ(δ^(q, w'), a)

Após a leitura da sequência w', o estado do AF det será δ(p, a)

Onde p = δ^(q, w'), ou seja o próximo δ^.

Uma sequência w será aceita por um AF det = (Q, ∑, δ, q0, F)

Onde δ^(q0, w) = p e p Є F

Exemplo:
Tendo como base a tabela de transições a seguir, veri car se a sequência w = 101011 Є L(AF det).
Estados Entradas

0 1

 * q0 q2 q1

q1 q3 q0

q2 q0 q3

q3 q1 q2

δ^ (q0, 101011) = q0
δ^ (q0, 101011) = δ (δ^ (q0, 10101), 1)
δ (δ (δ^ (q0, 1010), 1), 1)
δ (δ (δ (δ^ (q0, 101), 0), 1), 1)
δ (δ (δ (δ (δ^ (q0, 10), 1), 0), 1), 1)
δ (δ (δ (δ (δ (δ^ (q0, 1), 0), 1), 0), 1), 1)       -> (q0, 1) = q1
δ (δ (δ (δ (δ (q1, 0), 1), 0), 1), 1)                   -> (q1, 0) = q3
δ (δ (δ (δ (q3, 1), 0), 1), 1)                             -> (q3, 1) = q2
δ (δ (δ (q2, 0), 1), 1)                                       -> (q2, 0) = q0
δ (δ (q0, 1), 1)                                                 -> (q0, 1) = q1
δ (q1, 1)                                                           -> (q1, 1) = q0
q0         
                                                                     Chegou ao estado q0 que é estado nal, logo a sequência 101011 Є L(AF det).
Autômato nito indeterminístico
Um autômato nito indeterminístico é um autômato que permite zero, uma ou mais transições a partir de um estado e para um
mesmo símbolo de entrada. Ele pode estar em muitos estados ao mesmo tempo.

Clique nos botões para ver as informações.

Propriedades de um autômato nito indeterminístico (AF ind) 

As transições estão completas.

Para todo estado e todo símbolo de entrada sempre há zero ou uma ou n transições possíveis.

De nição formal 

Um autômato nito indeterminístico também é representado por uma quíntupla, seguindo as mesmas propriedades de
um autômato nito, ou seja, (Q,Ʃ,δ,q0,F), sendo Q o conjunto nito de estados, Ʃ o conjunto nito de símbolos de entrada, δ
a função de transição, q0 o estado inicial (q0 ∈ Q o estado inicial é apontado por uma seta) e F o conjunto de estados
nais ou de aceitação (os estados de aceitação são apontados por um círculo dentro de outro ou asterisco e um estado
inicial também pode ser nal).

Noções 

Um autômato nito indeterminístico pode ser representado por meio de:


Diagramas (exemplo mais comum).

Tabelas de transição (versão tabular do diagrama). 

Ambos representam completamente a quíntupla do autômato.

Diagramas de estados 

Nos diagramas de estados, cada estado tem um nó correspondente, apresenta um estado inicial (seta apontando para o
estado), estados de aceitação/ nal (círculo duplo) e setas saindo de um estado para outro, que vimos que são chamadas
de transições e a representação visual da função δ.
Versão tabular 

Na versão tabular as linhas correspondem aos estados, as colunas correspondem às entradas, o estado inicial é marcado
com uma seta e os estados de aceitação são marcados com asterisco.
Exemplo:

Aceitação de linguagem 

O autômato nito indeterminístico aceita uma sequência de caracteres chamada de w, porém ele só aceita se houver uma
sequência de transições correspondentes aos símbolos de w que, partindo de um estado inicial, leva a um estado nal.
Veri cação de uma sequência em um AF ind 

Para que esse processo de investigação (realizado por um humano) possa ser realizado por uma máquina, é necessário
que um algoritmo possa ser criado e implementado em uma linguagem de programação.
Realizar a veri cação de uma sequência em um AF ind é possível, porém é preciso uma função de transição. Uma função
de transição δ^ mapeia Q x ∑* em 2Q, ou seja, quando o AF ind está inicialmente no estado q, δ^(q, w) será o estado do AF
ind após a leitura de uma sequência w.
Para essa veri cação seguimos os passos:
  (1) δ^ (q, Є) = q
Onde Є pode ser substituído por qualquer sequência ou vazio (Ø).

O AF ind não muda de estado se não houver a leitura de um símbolo de entrada.

δ^ pode ser de nido recursivamente em função de δ.

E ainda w = w' a.

 (2) δ^ (q, w)= δ^(q, w' a) = δ(δ^(q, w'), a)

Após a leitura da sequência w', o estado do AF ind será δ(p, a)

Onde p= δ^(q, w'), ou seja o próximo δ^.

Uma sequência w será aceita por um AF ind = (Q, ∑, δ, q0, F)

Onde δ^(q0, w) = p e p Є F.
Atividade
1: O AFD M = <{a, b, c, d}, {0, 1}, δ, a, {a}>, onde o mapeamento é dado a seguir, desenhar o autômato AFD.

2. Baseado no exercício anterior, veri car se as seguintes sequências são lidas pelo AFD gerado:

a) 00110
b) 01010
c) 00110011
d) 0101
e) 011001
3. O AF ind M = <{a, b, c, d}, {0, 1}, δ, a, {a}>, onde o mapeamento é dado a seguir, desenhar o autômato AF ind.

4. Baseado no exercício anterior, veri car se as seguintes sequências são lidas pelo AF ind gerado:

a) 00110
b) 01010
c) 00110011
d) 0101
e) 011001
5. Para o AF ind a seguir, fazer o mapeamento de maneira tabular.

Notas

Título modal 1

Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ ca e de impressos.

Título modal 1
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ ca e de impressos.

Referências

HOPCROFT, Ullman and Motwani. Introdução à teoria dos autômatos, linguagens e computação. Tradução da 2.ed. original de
Vandenberg D. de Souza. Rio de Janeiro: Elsevier, 2002 (tradução de: Introduction to automata theory, languages, and
computation – ISBN 85-352-1072-5).

SIPSER, Michael. Introdução à teoria da computação. Tradução técnica de Rui José Guerra Barretto de Queiroz. Revisão
técnica de Newton José Vieira. São Paulo: Thomson Learning, 2007 (título original: Introduction to the theory of computation.
“Tradução da segunda edição norte-america” – ISBN 978-85-221-0499-4).

Próxima aula

Equivalência entre autômatos nitos indeterminísticos e determinísticos;

Autômatos nitos indeterminísticos com transições espontâneas;

Equivalência entre autômatos nitos indeterminísticos e com autômatos nitos indeterminísticos com transições
espontâneas;

Expressões regulares.

Explore mais

Leia os seguintes livros:

Linguagens Formais e Autômatos, de Paulo Blauth Menezes (Editora Sagra Luzzatto).

Automata Theory with Modern Applications, de James A. Anderson (Cambridge University Press).

Você também pode gostar