Escolar Documentos
Profissional Documentos
Cultura Documentos
Volume 1
Recife, 2009
Universidade Federal Rural de Pernambuco
Captulo 1 Introduo....................................................................................4
Consideraes Finais.....................................................................................60
Teoria da Computao
Captulo 1 Introduo
4
Teoria da Computao
5
Teoria da Computao
A1 = { a, b, c, d }
A2 = { 0, 1 }
A3 = { x, +, (, *, ) }
6
Teoria da Computao
Ateno
L2 = { 1, 000 }
L3 = { }
7
Teoria da Computao
L4 = { da, db, daa, dbb, dba, dac, dcaa, dadaa, dacddbd, ... }
Esperamos que tenha ficado claro pra voc, aluno, que uma
linguagem meramente um conjunto. Por isso, tudo que voc j
aprendeu antes sobre conjuntos pode ter aplicao no estudo formal
de linguagens.
Aprenda Praticando
8
Teoria da Computao
e, a, a0a, b101a.
b. Crie duas linguagens finitas sobre o alfabeto.
{ a, a0a, 1bb, 10 }
{ }
9
Teoria da Computao
| a1..an | = n
Alguns exemplos:
|a|=1
| aba | = 3
| 000 | = 3
|e|=0
10
Teoria da Computao
ou
01 . 10 = 0110
a . bb = abb
e . 101 = 101
abba . e = abba
Ateno
(101)1 = 101
11
Teoria da Computao
(baa)0 = e
e2 = e.e = e
Os dois ltimos exemplos mostram duas propriedades que
merecem ser comentadas. A primeira delas est relacionada ao
expoente zero: toda cadeia autoconcatenada zero vezes d ser
sempre a cadeia vazia (independentemente de qual seja a primeira
cadeia). J o ltimo exemplo ilustra a seguinte propriedade: a cadeia
vazia autoconcatenada qualquer nmero k de vezes d sempre ela
prpria (independente do valor do expoente k).
Subcadeia
ou
bb no subcadeia de aabaa
0 subcadeia de 100
01 no subcadeia de 100
e subcadeia de 100
Mais uma vez, colocamos, nos dois ltimos exemplos, dois casos
especiais da operao. O penltimo exemplo mostra que a cadeia
12
Teoria da Computao
Aprenda Praticando
a) aaa . bbc
Resposta: aaabbc
b) e . bba
Resposta: bba
c) (ca)3
Resposta: cacaca
d) (aaab)1
Resposta: aaab
e) ca subcadeia de ccca?
Resposta: verdadeiro
Resposta: falso
a) 1 . 223
b) 3212 . e
13
Teoria da Computao
c) (11)2
d) (123)0
e) 11 subcadeia de 2131?
Unio de L e M:
LM
Exemplos:
{ 1, 11 } { 0, 11 } = { 0, 1, 11 }
{ aa, b } { } = { aa, b }
14
Teoria da Computao
exemplo).
Interseco de L e M:
LM
{ aa, a } { a, bb } = {a}
{ 01, 111 } { } = { }
Concatenao de L com M:
LM
Alguns exemplos:
{ 101, 000 } { } ={ }
15
Teoria da Computao
Aprenda Praticando
a) { a, aa } o { bc, cc }
16
Teoria da Computao
Resposta: { cab }
a) { e, 11 } { 11, 2, 2112 }
17
Teoria da Computao
18
Teoria da Computao
19
Teoria da Computao
20
Teoria da Computao
Agora lendo m:
Lendo o:
21
Teoria da Computao
Lendo r:
Lendo a:
Lendo a:
Agora lendo m:
22
Teoria da Computao
Lendo o:
Lendo r:
23
Teoria da Computao
24
Teoria da Computao
25
Teoria da Computao
Talvez parea difcil para voc, neste momento, aceitar que esse
autmato consegue testar qualquer cadeia se h uma quantidade
mpar de zeros, mas ns vamos esclarecer adiante. Na definio
formal de D1, precisamos preencher os cinco parmetros da quntupla
D1 = (Q, , , s, F). O primeiro o conjunto de estados Q, que ser
simplesmente {q0, q1}.
0 1
q0
q1
26
Teoria da Computao
0 1
q0 q1 q0
q1 q0 q0
(q0, 1) = q0
(q1, 0) = q0
(q1, 1) = q0
27
Teoria da Computao
0 1
q0 q1 q0
q1 q0 q1
Voc j consegue entender por que ele parcial? Uma dica: tente
representar as transies dele com tabela para descobrir se alguma
clula fica vazia. Como voc deve observar, as clulas da linha q1
ficam todas vazias naquele AFD. Isso porque ele no tem transies
saindo do estado q1 para nenhum smbolo. Desse modo, confirmamos
que ele no um AFD completo um AFD parcial.
28
Teoria da Computao
Aprenda Praticando
29
Teoria da Computao
Resposta:
D2 = ({q0, q1, q2, q3, q4, q5}, {a, b, c}, , q0, {q5}), onde dado por:
a b c
q0 q1 - -
q1 - - q2
q2 q3 - -
30
Teoria da Computao
q3 - q4 -
q4 q5 - -
q5 - - -
Note que uma vez que o autmato chega em q6, qualquer que
seja o restante da cadeia, o autmato no sai mais do estado.
Agora, podemos refazer a definio formal assim:
D2 = ({q0, q1, q2, q3, q4, q5, q6}, {a, b, c}, , q0, {q5}), onde dado por:
a b c
q0 q1 q6 q6
q1 q6 q6 q2
q2 q3 q6 q6
q3 q6 q4 q6
q4 q5 q6 q6
q5 q6 q6 q6
31
Teoria da Computao
32
Teoria da Computao
33
Teoria da Computao
0 1
X q1 q6
Y q6 q6
Z q3 q6
34
Teoria da Computao
Aprenda Praticando
35
Teoria da Computao
36
Teoria da Computao
D4 = ({q0, q1, q2}, {0, 1}, , q0, {q2}), onde dado por:
0 1
q0 q1 q0
q1 q1 q2
q2 q2 q2
37
Teoria da Computao
38
Teoria da Computao
D5 = ({q0, q1, q2}, {0, 1}, , q0, {q2}), onde dado por:
0 1
q0 q0 q1
q1 q0 q2
q2 q0 q2
39
Teoria da Computao
40
Teoria da Computao
0 1
q0 q0 q1
q1 q1 q1
Exerccios Propostos
41
Teoria da Computao
42
Teoria da Computao
43
Teoria da Computao
{q0} lendo 1 {q0, q1} lendo 1 {q0, q1} lendo 0 {q0, q2}
Isso significa que nem sempre voc vai precisar calcular todos os
caminhos possveis no AFND para uma certa cadeia. Bastar que
voc ache um caminho que chegue ao estado de aceitao e voc
poder concluir imediatamente que a cadeia aceita, mesmo sem
voc ter calculado os outros caminhos!
44
Teoria da Computao
N = (Q, , , s, F) onde:
o alfabeto de entrada.
s Q o estado inicial.
45
Teoria da Computao
0 1
q1 {q2}
q2
46
Teoria da Computao
0 1
q1 {q2}
q2
47
Teoria da Computao
0 1
{q0}
0 1
Agora, veja que, nas clulas da tabela, apareceu o conjunto {q0, q1}.
Este conjunto representa um novo estado e dever ser representado
por uma nova linha da tabela:
0 1
{q0, q1}
0 1
48
Teoria da Computao
0 1
0 1
{q0, q2}
0 1
49
Teoria da Computao
0 1
Voc, agora, pode fazer alguns testes e verificar que este autmato
50
Teoria da Computao
51
Teoria da Computao
Ateno
52
Teoria da Computao
53
Teoria da Computao
Aprenda Praticando
54
Teoria da Computao
0 1
q0 {q0,q1} {q0}
q1 {q2}
* q2 {q2} {q2}
55
Teoria da Computao
l 0 {q0, q2}
56
Teoria da Computao
eles esto sempre prontos para tirar suas dvidas e lhe orientar nos
exerccios.
Saiba Mais
Internet:
57
Teoria da Computao
Resumo
o alfabeto de entrada.
a funo de transio.
s0 Q o estado inicial.
58
Teoria da Computao
Referncias
Leitura Adicional:
59
Teoria da Computao
Consideraes Finais
60