Você está na página 1de 18

Prof.

Digenes Furlan

Teoria da
Computao
Linguagens Formais e Autmatos

Mdulo 1

2013
Bibliografia
VII BIBLIOGRAFIA BSICA
HOPCROFT, John E. Introduo teoria de autmatos, linguagens e computao. Rio de Janeiro: Elsevier;
Campus, 2002. 560 p. ISBN 8535210725
LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de teoria da computao. 2. ed. Porto Alegre, RS:
Bookman, 2000. 339 p. ISBN 8573075341
MENEZES, Paulo Blauth. Linguagens formais e autmatos. 4. ed. Porto Alegre, RS: Sagra Luzzatto, 2002. 192 p.
(Srie Livros didticos n.3) ISBN: 8524105542
VIII BIBLIOGRAFIA COMPLEMENTAR
DIVERIO, Tiaraj Asmuz; MENEZES, Paulo Blauth. Teoria da computao: mquinas universais e
computabilidade. 2. ed. Porto Alegre, RS: Sagra, 2003. 205 p. (Srie livros didticos, 5)
GERSTING, Judith. Fundamentos matemticos para a cincia da computao. 4. ed. Rio de Janeiro: LTC, 2001.
538 p.
BROOKSHEAR, J. Glenn. Cincia da computao: uma viso abrangente. 5. ed. Porto Alegre, RS: Bookman,
2000. 499 p. ISBN 8573075376
SEBESTA, Robert W. Conceitos de linguagens de programao. 5. ed. Porto Alegre, RS: Bookman, 2003. 638 p.
ISBN 8536301716

2
Captulo 1

Noes de Linguagens
Um Smbolo a,b,c,...1 um elemento de um conjunto, representado por algarismos (letras,
caracteres, nmeros, ...).
Um Alfabeto (ou vocabulrio)  um conjunto finito, no vazio, de smbolos.
So exemplos de alfabetos
1 = {0,1} => o alfabeto binrio
2 = {a,b,...,z}
3= ASCII
(Linguagem C) ASCII
Alfabeto das expresses numricas, com 4 operaes bsicas e parnteses
balanceados = {(,),0,1,2,3,4,5,6,7,8,9,+,-,*,/}

Uma Palavra (ou sentena ou string ou cadeia) x,y,w,... uma sentena sobre um alfabeto
A, uma seqncia (ou cadeia) finita de smbolos do alfabeto justapostos por concatenao.
Seja = {a,b} ento a, b, aa, ab, aba, , ... so palavras.
Para a Linguagem C,for e void main() {} so palavras.

A Palavra vazia  uma sentena constituda de nenhum smbolo; isto , uma palavra de
comprimento igual a 0 (zero).
O Comprimento de uma palavra |w|: Seja w uma palavra. O tamanho (ou comprimento)
desta sentena, denotado por |w|, definido pelo nmero de smbolos que a compem.
Exemplos: Seja A = {a,b,c}
|aba| = ______ 3

|c|

= ______ 1

|| = ______ 0

A Concatenao . uma operao binria que associa a cada par de smbolos uma palavra
formada pela justaposio da primeira com a segunda.
Seja x = 01101 e y = 110
ento xy = ________ e yx = _______

Elemento neutro:

x. = .x = x

Concatenao sucessiva (ou Potncia de uma palavra): Seja w uma sentena.


A concatenao de w consigo mesmo n vezes, pode ser representado por um exponencial: wn.
Exemplos:

seja x = 110
ento x1 = 110

x2 = 110110

x3 = ________ 110110110

OBS: 1) Para toda palavra x, x0 = .


2) xR = reverso de x, ou seja, x escrito de trs para frente

  Conveno para tipos de algarismos utilizados

3
Potencias de um Alfabeto: Definimos k como o conjunto de strings de comprimento k sobre o
alfabeto .
Exemplos:

seja = (0,1}
2=______

3=______

1=______

0=______

Fechamento de um Alfabeto
Seja um alfabeto.
O fechamento reflexivo (ou simplesmente fechamento) de *, dado pelo conjunto de
todas as possveis palavras que podem ser formadas a partir de , inclusive a sentena vazia.
* 0+ 1+ 2+...
O fechamento transitivo (ou fechamento positivo) de +, dado por - { }.
Exemplos: Seja = {0,1}, temos que:
* = {, 0, 1, 00, 01, 11, 000,...}
+ = {0, 1, 00 ,01, 11, 000,...}

Uma Linguagem L sobre um alfabeto , um subconjunto de *; isto ,

L A

(ou seja, um conjunto de palavras ou de sentenas).


Seja
L1 =
L2 =
L3 =
L4 =

={a,b}

{}
{w |w palndromo} = __________________________________
*

O que um Problema?
Linguagem Finita: uma Linguagem que pode ser representada por enumerao.
Exemplo: A linguagem definida como sendo o conjunto dos inteiros positivos
pares maiores que 0 e menores que 20, pode ser representado por: L = {2,
4, 6, 8, 10, 12, 14, 16, 18}.

Linguagem Infinita: Neste caso, na impossibilidade de usarmos enumerao, precisamos


encontrar uma representao finita para estas linguagens.
Exemplo: A linguagem definida como sendo o conjunto dos inteiros pares
poderia ser representada por V ={2, 4, 6, 8, 10,...} que, apesar de
intuitiva, no finita e nem precisa.
O que seria uma representao precisa aqui? x*2 | x Natural

Linguagens Formais: So linguagens que podem ser representadas de maneira finita e precisa
atravs de sistemas com sustentao matemtica (dispositivos formais ou modelos matemticos).
O que um Programa?

Formalismos Finitos para Representao de Linguagens Infinitas


Classificam-se em Descritores, Reconhecedores e Geradores:

4
Descritores so formalismos que representam os elementos de uma linguagem, descrevendo
cada um deles usando uma notao matemtica. So formalismos abstratos, para verificaes
matemticas, como calculo proposicional, calculo de predicados, expresses regulares, entre
outros.
Reconhecedores So dispositivos formais que nos permitem verificar se uma determinada
sentena pertence ou no a uma determinada linguagem ( uma representao das sentenas de
uma linguagem sob o ponto de vista do reconhecimento de tais sentenas). Esses dispositivos
denominam-se autmatos; autmatos finitos, autmatos de pilha e mquinas de Turing, por
exemplo, podem ser destacados como importantes tipos de autmatos.
Geradores So dispositivos formais dotados de mecanismos que permitem a gerao
sistemtica das sentenas de uma linguagem (representao sob o ponto de vista da gerao das
sentenas de uma linguagem). Os principais sistemas geradores disponveis so as gramticas,
dentre as quais, por exemplo, podemos destacar as gramticas de CHOMSKY.
Observaes: Todo reconhecedor e todo sistema gerador pode ser representado por algoritmos
e/ou procedimentos.

Exerccios
1) Quais dos seguintes conjuntos so alfabetos?
nao
a) nmeros racionais
b) letras gregas
c) algarismos arbicos
d) 2{a,b,c}
e) {a,b,c}3
f) nmeros primos
nao
2) Mostre os prefixos e os sufixos de 001122.
3) D alguns exemplos de palavras que pertencem (e que no pertencem)
seguintes linguagens, sendo ={a,b}:
a) L = {w | w 3}
b) L = {w | para algum u , w = uau}
c) L = {w | para algum u , w = uuRu}
uR reverso de u
d) L = {w | ww = www}
e) L = {w | para algum u, v *, uvw = wvu}
f) L = {w | para algum u *, www = uu}
4) Sendo a Linguagem C++, d exemplos de:
a) Smbolo do alfabeto
b) Smbolo que no pertence ao alfabeto
c) Palavra valida
d) Palavra invalida
5) Qual smbolo da Linguagem C denota o elemento vazio?
6) Qual o significado de void na Linguagem C?
7) Prove que a concatenao satisfaz as propriedades de:
a) Associatividade
b) Elemento neutro
8) Prove que a concatenao NO satisfaz as propriedades de:
a) Comutatividade
b) Fechamento.

Hierarquia de Chomsky
A hierarquia de Chomsky consiste em quatro classes
classes bsicas de linguagens, classificadas
segundo uma ordem de complexidade. Noam Chomsky 2 as definiu como potenciais
modelos para linguagens naturais.
LINGUAGENS ENUMERVEIS
ENUMERVEI RECURSIVAMENTE - TIPO 0
LINGUAGENS SENSVEIS AO CONTEXTO TIPO 1
LINGUAGENS LIVRES DE CONTEXTO TIPO 2
LINGUAGENS REGULARES TIPO 3

Linguagens Regulares
Classe de Linguagens mais simples (conforme Hierarquia de Chomsky)

Formalismos

Denotacional ou Descritor:
Descritor Expresso Regular
Operacional ou Reconhecedor: Autmato Finito
Axiomtico ou Gerador: Gramtica Regular

Noam Chomsky,, lingista e ativista poltico, pesquisador do Massachusetts Institute of


Technology (MIT), EUA. Em 1955, aos 27 anos, recebeu seu PhD em Lingstica da Universidade da
Pennsylvania. Aos 32 anos tornou-se
se professor-titular
professor
do MIT. Revolucionou a lingstica nos anos 60 com sua
teoria sobre a gramtica gerativa. Entre seus trabalhos fundamentais sobre
sobr o tema esto Aspectos da teoria da
sintaxe e Linguagem e mente. Em 1969, com o livro O poder americano e os novos mandarins
mandarins, comeou sua
trajetria como ativista dos direitos civis e seu combate contra a interveno dos EUA no Vietn. Publicou cerca
de 23 livros sobre poltica internacional e questes internas dos EUA. autor, entre outros, de 11 de Setembro
(Bertrand Brasil, 2001).

6
Captulo 2

Expresses Regulares
Uma Expresso Regular (ER) sobre um alfabeto A definida como segue:
seja r = ER(R) e s = ER(S)

(1)

LR

ER

(2)

{}

(3)

{a}

aA,a

(4)

R S (unio)

r+s

(5)

R x S (concatenao)

r . s ou rs

(6)

R* (fechamento)

r*

Somente as 3 operaes acima definem conjuntos regulares.


Exemplos
Para ={a,b}:
1) L =
2) L = {}
3) L = {a}
4) L = {a,b} = {a}{b}
5) L = {aa} = {a}x{a}
6) L = {a,b}x{b,c}
7) a*
8) a+
9) (a+b)*
10) (ab)*
11) b+a*

12)
13)
14)
15)
16)
17)
18)
19)
20)
21)
22)

(b+a)*
ba*
(ba)*
(a+b*)*
a*.b*
(a+b)2
(ab)2
a2.b2
(a+b)3
a0-5
a3 b4

Omisso de Parnteses
(1) Como a unio associativa, pode-se escrever (r1,r2+...+rn) omitindo-se os
parnteses internos
(2) Idem para a concatenao
(3) Parnteses externos podem ser omitidos
(4) Prioridades:
Fecho de Kleene (*) concatenao (.) unio (+)
Exemplos:
((a+(bb))+b)
((ab)((aa)b))
a+(b(a)*)

1 (a+(bb)+b)
2 (abaab)
4 a+ba*

3 a+(bb)+b
3 abaab

4 a+bb+b

Exerccios
23) Retire o mximo de parnteses das ERs seguintes, sem alterar seu
significado:
a) ((a+((a+b)a))+(bb))
b) (((aa)+(b(bb*)))*((ab)((ab)(a+b))))
c) (((aa)a+b)+((aa)+(a+(bb))))
d) (((a)(a)+(ab))+((ba)+(b)(b)))*+(a(b(c)))

7
24) Verificar se a palavra dada pertence ao conjunto regular dado.
a) aaba
(a+b).a.b
b) abaaabaa
(a+b)*.a.a.(a+b)*
c) abaaabaa
(b+ab)*aa(a+b)*
//determinismo
d) abbbabbb
(b*a.b)*.(b.b+a*)
e) bbbaabbb
((b*.a)*+a*.b.b)
f) abbbaabab
a.b*.b.a*.(b.b*.a)
g) baaaabb
(b.a*+b.b)*.(a*.b)*

Lendo as propriedades das ERs


a)
b)
c)
d)

(a+b)*aa(a+b)*
(a+b)aa(a+b)*
a*aa(a+b)*
Todas as palavras iniciadas por exatamente 2 as.

Exerccios
25) Descreva, em portugus, as LRs sobre {a,b} denotadas pelas seguintes
ERs:
a) (a+b)*a
g) (a+b)(a+b)(a+b).a.b
b) (a+b)*aa(a+b)*
h) a*.b.(a+b)
c) a(a+b)*b
i) (ab)*(a+)+(ba)*(b+)
d) a*(a+b)b*
j) b*(abb*)*(a+)
e) (a+ba)(a+b)*
k) (a+)(ba+b)*
f) (a+b)*b(a+b)(a+b)
Usando = {a,b} ou = {0,1}, mostre a ER dos seguintes conjuntos:
26) todas as palavras que contm bab
27) todas as palavras iniciadas por pelo menos 1 a
28) todas as palavras iniciadas por pelo menos 2 as
29) todas as palavras iniciadas por exatamente 1 a
30) todas as palavras iniciadas por exatamente 2 as
31) todas as palavras iniciadas por exatamente k as, k>=1 e k<=10
32) todas as palavras iniciadas por as
33) todas as palavras de comprimento maior ou igual a 3
34) todas as palavras de comprimento menor ou igual a 3
35) todas as palavras sem a
36) {101,1001,10001,100001,....}
37) todas as palavras onde cada 0 seguido de dois 1.
38) todas as palavras contendo exatamente dois 0s.
39) todas as palavras com nmero par de as
40) todas as palavras com nmero impar de as
41) todas as palavras que no comeam por aa
42) todas as palavras com nmero igual de as e bs ?

8
Captulo 3

Autmatos Finitos
Um autmato finito (AF) ou (FA) um modelo matemtico de um sistema com entradas e
sadas discretas.
O sistema pode estar em qualquer uma de suas configuraes internas, chamadas de estados.
Estados contm informaes relevantes a respeito do passado do sistema. Cada entrada causa
uma mudana de estado, chamada de transio.
Exemplos
1) Autmato que modela um interruptor liga/desliga.
2) Autmato que modela um elevador.
3) Autmato que modela o reconhecimento da palavra ELSE.

Modelo de Maquina de Estados


Fita de entrada
a
b
a

cabea de leitura

controle finito

Entrada: palavra (na fita).


Sada: uma indicao informando se a entrada foi ou no considerada aceitvel.
Mudana de estado: depende somente do estado atual e do smbolo entrada.
Restrio do modelo: completa falta de memria (somente a fita, que imutvel).

Definio Formal
Um autmato finito3 (AF) uma quntupla (Q,A,,s,F)
Q: conjunto de estados
A: alfabeto de entrada
: funo de transio (define os estados do passo seguinte)
s Q: estado inicial (somente um)
F Q: conjunto de estados finais

Os autmatos finitos foram propostos originalmente para modelar a funo do crebro humano.

Representao da funo de transio ( - delta)


Grfica
qi

smbolo

qj

Estado inicial:
Estados finais: dois crculos
Funcionamento
Inicial
Cabea da fita: esquerda
Controle: aponta para o estado inicial

Para cada passo:


Cabea da fita: l um smbolo e move-se para direita
Controle: muda de estado conforme funo programa

Condies de parada
Palavra da Fita

Aceita
Rejeitada

Funo de Transio
Enquanto processa smbolos Aps processar o ltimo
da fita
smbolo da fita
Estado atual final
Indefinida para o argumento Estado atual no-final
(estado atual x smbolo lido)

Criando AFs a partir de ERs


1) ab(c+d)
2) (a+b)(a+b)
3) ab + ba
4) (ba)*
5) b*(a+b)a*
6) (aaa)*
7) a(ba)*
8) a(b+a)*
9) ba(baa)*
10)
a(ba+abb)

11)

a(ba+abb)*

Problemas
com
Loops:
uso
transio nula obrigatrio
12)
13)
14)
15)
16)

a*b*
a+(ba)*ab+
ab + b*
a*b*a*
a*(ba)*b*

de

10

Exerccios
1) Palavras que contm bab.
2) Palavras iniciadas por pelo menos 2 as.
3) Palavras iniciadas por exatamente 2 as.
4) Palavras onde cada 0 seguido de dois 1.
5) Palavras contendo exatamente dois 0s.
6) Palavras com comprimento maior que 2 smbolos.
7) Palavras com comprimento menor que 4 smbolos.
8) Palavras com nmero par de as
9) b*(abb*)*(a+)
10)

L =

11)

Palavras terminadas em bb.

12)

L = {w | w possui aa ou bb como subpalavra}

13)

Palavras iniciadas com nmero >= 1 de as, seguido por qualquer


numero >=2 de bs, seguido por a.

14)

Palavras contendo a substring abba.

15)

Todos os prefixos de aba.

16)

Palavras sem aa

17)

Palavras que no iniciam por bb.

18)

Refazer o exerccio 12 com OU exclusivo (se tiver aa" no pode ter


bb.

11

Autmato Finito No Determinstico (NFA)


A abordagem no determinstica permite, para cada par (q, x), um numero qualquer de
possveis estados seguintes em .
Cada uma destas possibilidades tentada aleatoriamente e exaustivamente para a
validao de uma entrada.
So 3 casos:
i)
(q,x) = {qi}
ii)
(q,x) = {qi,qj,...qz}
iii) (q,x) =

Representao Tabular
Smbolos do alfabeto (x) ...

Estados (q)
...

Teste de Mesa
Deve aceitar qq palavra vlida e rejeitar qq invlida.
Exemplo
1) Para o FA que aceita a.b, verificar
aceitas:
ab:
(q0,a)=q1 (q1,b)=q2 q2F
ba:
(q0,b)=?
a:
(q0,a)=q1 q1F
Fita

Estados

q0 q1 q2

se

as

q0 ? ?

palavras

sim
no
no

b a
q2F

seguintes

q0 q1

q1F

2) Palavras que contm a seqncia de smbolos aba.


a b a
0 1 2 3
0 0 0 0

a a b a




0 0 0 0 0
0 1 ?
0 0 1 2 3

aceita

aceita

Exerccios
19)
20)

a*(a+b)b*
a*b*a*

Testar com a, aabb, e ba


Testar com aaa

a b b





0 1 2 ?
0 0 0 0

rejeita




so

12

Uso de Transies Nulas para Unificar NFAs (NFA-)


Transies
simples.

podem ser usadas para se construir NFAs mais complexos, partindo-se de NFAs mais

Operaes
OBS: Ver quadro pagina 52 (livro Menezes).

Exerccios
1) Construir o NFA que aceita palavras com qualquer quantidade de 0s.
2) Seja
L1 = ab
a) L1 + L2
b) L1 . L2
c) L1*
3) Seja
e
a) L1 +
b) L2 .
c) L1*

L1 = (a+b)*(aa+bb)(a+b)*
L2 = palavras sem aa
L2
L1

4) L = (b+a + ab* + ab*a)*


5) L = a*b*c*
6) Seja
e
a) L1 +
b) L2 .
c) L2*

L2 = ba

L1 = (a+b)*aa
L2 = a*b*
L2
L1

13

Eliminao de transies
Algoritmo:
Calcule o Fecho- para cada estado
Fecho-(q) = {todos os estados onde pode levar transitivamente a partir de q}
qQ,xA, seja D = (q,x).
Substituir D por:
se D vazio
dD, d Fecho-(d)
se D = vazio
fFecho-(q),
se G=(f,x) vazio, g Fecho-(g), gG
se G=vazio, vazio
Resultado:
Todos os estados so mantidos.
Os estados que contiverem um elemento de F no Fecho- se tornam finais

Exerccios
1) Palavras onde todos os as antecedem todos os bs (a*b*).
2) Palavras onde todos os 0s antecedem todos os 1s e estes antecedem
todos os 2s (0*1*2*)
3)
4)
5)
6)

ab + b*
a*(ba)*b*
a*b*a*
0*1*2*3*

Seja L1 = (a+b)*(aa+bb)(a+b)*
7) L1 + L2
8) L2 . L1
9) L1*
10) L = (b+a + ab* + ab*a)+

L2 = palavras sem aa (aula passada)

14

Autmato Finito Determinstico (DFA)


A mudana de estados segue uma regra nica: para cada combinao de estado e smbolo
de entrada (q Q, x A) no existe mais de uma possibilidade de escolha, sendo:
totalmente determinstico (DFA-t): se existe uma e apenas uma possibilidade de
escolha (completo);
parcialmente determinstico (DFA-p): se existe uma ou nenhuma possibilidade de
escolha.

Funcionamento

Condies de parada
Palavra da Fita
Aceita
Rejeitada

Funo de Transio
Aps processar o ltimo smbolo da fita
Estado atual final
Estado atual no-final

Algoritmo para construir um DFA Mtodo Direto


Seja a linguagem cujas palavras contm a seqncia de smbolos ab em qualquer parte.
i)
ii)
iii)

Definir o estado inicial


Definir as transies mnimas
Completar todas as transies, uma a uma, com exemplos

Exemplos
1)
2)
3)
4)
5)
6)
7)

Palavras
Palavras
Palavras
Palavras
Palavras
Palavras
Palavras

terminadas em ab. A={a,b}.


com comprimento 2.
com comprimento par.
com numero par de as.
iniciadas em 10. A={0,1,2}.
que tm abab como uma substring.
sem abab.

8) Palavras onde cada a imediatamente seguido por um b.


9) Palavras onde cada a imediatamente precedido por um b.
10) Palavras onde todos os as antecedem todos os bs.
11) Palavras com tamanho igual ou maior a 3.
12) Palavras com no mximo dois smbolos.
13) Palavras que tm ab ou ba como substrings.
14) Palavras que tm ab e ba como substrings.
15) Palavras
16) Palavras
17) Palavras
18) Palavras

que
com
que
com

no tm aa como uma substring.


aa.
no iniciam por bb.
numero de bs divisvel por 3.

15

Transformao de NFA para DFA Mtodo Indireto


Algoritmo:
Seja K uma fila, q um estado, e (A,Q,,s,F) um FA
insira s em K
q=s
faa
para x como cada elemento de A
insira (q, x) em K como um nico estado r (e sem repetio)
(q, x) = r
q = prximo elemento de K
at q = nulo
Resultado:
A = A
Q = Todos os estados em K
s = s
F = Os estados que contiverem um elemento de F em seu nome

Exemplos
1) Converter o seguinte NFA para DFA:
a
NFA
q1
q2
q3

a
{q1}
{q1;q3}

b
{q2}
{q1;q2}
{q1}

q1

s = q1
F = q3
DFA
q1
q2
q1q2
q1q3

b
a,b

q2

a
q1
q1q3
q1q3
q1

b
q2
q1q2
q1q2
q1q2

Q = {q1, q2, q1q2, q1q3}


F = {q1q3}
2) Uso do Estado MORTO
q1

a,b
a

q2

3) Converter o seguinte NFA para DFA:


NFA
q1
q2
q3
q4

b
a
{q1;q2}

{q1;q2}
{q1;q2;q3}

b
{q2;q3}
{q3;q4}
{q3}

q3

16

s = q1
F = {q4}
DFA
q1
q1q2
q2q3
q2q3q4
q3q4
q1q2q3
q3

a
q1q2
q1q2
q1q2
q1q2q3
q1q2q3
q1q2
q1q2

b
q2q3
q2q3q4
q3q4
q3q4
q3
q2q3q4
q3

Q = {q1, q3, q1q2, q2q3, q3q4, q1q2q3, q2q2q4}


F = {q2q3q4, q3q4}

Exerccios
1) Palavras terminadas em bb. A={a,b}
2) L = {w | w possui aa ou bb como subpalavra}
3) Palavras contendo a substring abba.
4) Todos os prefixos de aba.
5) Palavras sem aa
6) Palavras que no iniciam por bb.
7) (aab + aba + baa).(a+b)*
8) Sufixos de aba.

17

Minimizao de Estados de DFA


Algoritmo:
1a Fase: Eliminar estados inalcanveis
(aqueles em que no h caminho do estado inicial para ele no diagrama de estados do
autmato)
2a Fase: Encontrar estados equivalentes
(a partir de qualquer um deles, precisamente as mesmas strings conduzem o
autmato aceitao) encontrar Classes de Equivalncia.
Algoritmo: encontrando Classes de Equivalncia
Seja (A,Q,,s,F) um FA
separa-se F e Q-F em duas parties s1 e s2
x = um elemento de A
faa
para cada q em Q
encontra-se a partio de (q, x)
se dois estados em uma partio tem resultados diferentes, devem ser criadas novas
parties de forma que somente estados com o mesmo resultado fiquem na mesma
partio
x = prximo smbolo de A
at no haver criao de novas parties para cada smbolo

Resultado:
Q = Cada partio criada se torna um estado
s = partio que contiver s
F = parties formadas com elementos de F

Exemplo
1) Minimizar o seguinte DFA:
DFA
q1
q2
q3
q4
q5
q6
q7
q8

a
q2
q5
q2
q1
q5
q3
q6
q7

s = q1
F = {q1, q3, q7}
a) Eliminao: q7 e q8

b
q4
q3
q6
q5
q5
q5
q8
q3

18
Estados
q1
q2
q3
q4
q5
q6
q7
q8

Alcanveis
X
X
X
X
X
X

Visitados
X
X
X
X
X
X

b) Equivalncia:
Parties iniciais: estados no-finais (s0) e finais (s1)
s0:{q2 q4 q5 q6}
s0 s1 s0 s1

a:

s1:{q1 q3}
s0 s0

Separam-se estados numa mesma partio que tiveram imagem diferentes: q2 e q5 de q4 e


q6
s0:{q2 q5}
s2 s0

b:

a:
b:

s0:q2
s1
s3

s1:{q4 q6}
s0 s0
s1:q5
s1
s1

s2:{q4 q6}
s3 s3
s1 s1

s2:{q1 q3}
s0 s0
s3:{q1 q3}
s0 s0
s2 s2

Exerccios
2)

s = q1
DFA
a
q1
q2
q2
q7
q3
q7
q4
q8
q5
q3
q6
q8
q7
q7
q8
q1

F = {q8}
b
q6
q8
q8
q7
q6
q7
q5
q8

3)

s = 1
DFA
a
1
1
2
1
3
1
4
1
5
4
6
3

F = {4}
b
4
5
6
4
2
4

4) Palavras que contm abba. (o de 8 estados) pag 18, ex 3


5) Palavras que contm ab e ba (o de 9 estados) pag 19, ex 4
6) Palavras que contm ab ou ba (o de 9 estados) pag 19, ex 5
7) Palavras que tm aa ou bb como substrings. A={a,b}.