Escolar Documentos
Profissional Documentos
Cultura Documentos
Teoria da Computação:
Linguagens Formais e Autômatos
1 0 0
q0 q1 q2 q3
1
Estado 0 1
1 q0 - q1
( q 0, 1 ) = q 1
q2 q3 q1
( q 1, 0 ) = q 2 ( q 1, 1 ) = q 1
( q 2, 0 ) = q 3 ( q 2, 1 ) = q 1
( q 3, 0 ) = q 3 ( q 3, 1 ) = q 1 q3 q3 q1
Resumindo
• Diagrama de Transição
– Outra maneira de representar um autômato finito;
– Grafo direcionado e rotulado;
– Os vértices representam os estados, desenhados como círculos;
– As arestas representam as transições entre dois estados, sendo o rótulo o
símbolo reconhecido na entrada;
– O estado inicial é marcado com uma seta;
– Os estados finais são indicados por círculos duplos.
Autômato Finito
• Um autômato finito M = { Q, Σ, , q0, F } pode ser interpretado como
um controle finito que está em algum estado de Q, e processa
símbolos de entrada do alfabeto Σ, que estão escritos numa fita, de
forma sequêncial e da esquerda para a direita.
• Num dado momento, o AF estando no estado q1 e lendo a símbolo a
na fita, faz uma movimento que é determinado pelo mapeamento ,
passando a ler o símbolo à direita de a e passa para o estado (q1, a ).
Controle Finito
• No início o controle finito está no estado q0 e lendo o símbolo mais a
esquerda da entrada. Através dos movimentos determinados por , o
AF pode atingir um estado final ( um estado do conjunto F ) e se não
tiver mais símbolos para serem processados dizemos que está numa
configuração de aceitação da entrada.
Controle Finito Fita contendo
símbolos de entrada.
Controle Finito
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q1 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q1 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q2 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q1 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q2 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 0 0 0 1 0 0
q0 q1 q2 q3
1
Controle Finito
q3 Estado 0 1
q0 - q1
q1 q2 q1
A cadeia terminou e o autômato está em seu
estado final. Dizemos então que a cadeia foi
q2 q3 q1
reconhecida pelo autômato.
q3 q3 q1
Quando a cadeia não é reconhecida pelo
autômato?
• Quando a função não está definida para o estado
em questão e a entrada.
• Quando a cadeia termina e o autômato não está em
um de seus estados finais.
1 0
1 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q1 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q1 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
1 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q2 Estado 0 1
q0 - q1
q1 q2 q1
A cadeia terminou e o autômato não está em
seu estado final. Dizemos então que a cadeia
q2 q3 q1
não foi reconhecida pelo autômato.
q3 q3 q1
1 0
0 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
q2 q3 q1
q3 q3 q1
1 0
0 1 0 1 1 0 0
q0 q1 q2 q3
1
Controle Finito
q0 Estado 0 1
q0 - q1
q1 q2 q1
Não existe transição na tabela para o estado q0
e o símbolo 0. O autômato “trava” e não q2 q3 q1
processa o resto da cadeia. O autômato então
não reconhece a cadeia, independente do
q3 q3 q1
estado em questão ser ou não um estado final.
Outro exemplo M = ( { q0, q1, q2 }, { a, b }, δ, q0 , {q2 })
δ(q0,a) = q1
a
b δ(q1,a) = q1
a q2
q0 q1 δ(q1,b) = q2
L (M ) = { anb | n ≥ 1 }
Linguagem aceita por um AF
Qual a linguagem aceita pelo autômato finito cujo grafo é dado abaixo?
1 0 0
q0 q1 q2 q3
1
Solução: Resolver por partes. A cadeia deve começar por 1. Depois pode ter uma
quantidade qualquer de 1s, inclusive 0, pode então ser seguida por “01” uma
quantidade qualquer de vezes, inclusive 0 vezes. Depois do 1, dentro da cadeia 10,
pode haver um número qualquer de 1s, inclusive 0 e a cadeia deve terminar com 0.
Linguagem aceita por um AF
1
1 0 0
q0 q1 q2 q3
1
L (M ) = { 1 1n (0 1 1m )p 00 | n,m,p ≥ 0 }
Observe que a cadeia 11m pode ser reescrita como 1m com m ≥ 1. Neste caso, podemos reescrever L (M )
como:
L (M ) = { 1 1n (0 1m )p 00 | n,p ≥ 0 e m ≥ 1}
Expressões regulares
L (M ) = { 1 1n (0 1 1m )p 00 | n,m,p ≥ 0 }
Pode ser descrita como:
E (M ) = 1 1* (0 1 1* )* 00 ou como:
E (M ) = 1+ (0 1+ )* 00
Expressões regulares
Exemplo: Qual a expressão regular que define a linguagem do autômato N cujo
grafo é dado abaixo?
1 0,1
1 0
q0 q1 q3
Solução: L(N) = 1 1* 0 (0 | 1 )* ou
L(N) = 1+ 0 (0 | 1 )*
Autômatos Finitos Determinísticos (AFD)
1 0 0
q1 q2 q1
q0 q1 q2 q3
1
q2 q3 q1
1
q3 q3 q1
Autômatos Finitos Não Determinísticos
(AFND)
• Já os autômatos finitos não determinísticos (AFND ou
NDFA – Non Deterministic Finite Automata), para cada
estado e para cada símbolo da entrada, está associado
um conjunto de estados. Esse conjunto pode inclusive
ser unitário ou pode ser o conjunto vazio.
Autômatos Finitos Não Determinísticos
(AFND)
Estado 0 1
q0 {} {q1}
1 0
1 0 0
q1 {q2} {q1}
q0 q1 q2 q3
1
q2 { q3 } {q1}
1,0
q3 { q 1, q 3 } {q1}