P. Blauth Menezes
blauth@inf.ufrgs.br
Cincia da Computao
conhecimento sistematizado relativo computao
Gramtica Irrestrita
sem restries sobre a forma das produes mesmo poder computacional que o formalismo Mquina de Turing
10
Linguagens Recursivas
subclasse da Classe das Linguagens Enumerveis Recursivamente existe pelo menos uma mquina de Turing que pra para qualquer entrada, aceitando ou rejeitando
11
12
Universo de Todas as Linguagens Linguagens Enumerveis Recursivamente Linguagens Recursivas Linguagens Sensveis ao Contexto Linguagens Livres do Contexto
Linguagens Regulares
13
14
15
16
8.1.1
Noo Intuitiva
17
Hipteses aceitveis
natureza bidimensional do papel no essencial para os clculos fita infinita organizada em quadrados conjunto de smbolos: finito possvel utilizar seqncias de smbolos
19
20
21
8.1.2
Modelo
22
Smbolos podem
pertencer ao alfabeto de entrada pertencer ao alfabeto auxiliar ser "branco" ser "marcador de incio de fita"
23
Inicialmente palavra a ser processada: clulas mais esquerda (aps o marcador de incio de fita) demais clulas: "branco"
entrada
branco
...
unidade de controle
24
Unidade de controle
nmero finito e predefinido de estados cabea da fita l um smbolo de cada vez e grava um novo smbolo move uma clula para a direita ou para a esquerda smbolo gravado e o sentido do movimento definidos pelo programa
25
q 0 - estado inicial: elemento distinguido de Q F - conjunto de estados finais: subconjunto de Q V - alfabeto auxiliar (pode ser vazio) - smbolo especial branco - smbolo de incio ou marcador de incio da fita
26
Funo programa
considera estado corrente smbolo lido da fita determina novo estado smbolo a ser gravado sentido de movimento da cabea (E e D)
27
smbolo gravado
Linguagens Formais e Autmatos - P. Blauth Menezes
28
29
Aceita a entrada w
atinge um estado final mquina pra w aceita
Rejeita a entrada w
funo programa indefinida para o argumento (smbolo lido e estado corrente) mquina pra w rejeitada argumento define um movimento esquerda, e a cabea da fita j se encontra na clula mais esquerda mquina pra w rejeitada
30
31
32
*
ACEITA(M) REJEITA(M) LOOP(M)
33
34
q0
q1
q2
(, , D) (B, B, D)
(a, a, D) (B, B, D)
(a, a, E) (B, B, E)
(, , D)
q3
(B, B, D)
(, , D)
q4
35
36
...
a q0
...
a q1
...
q0
b q1
...
a q2
...
A q2
...
a q0
...
B q1
...
b q1
...
B q2
...
A q2
...
B q0
...
B q3
...
... q3
... q4
37
38
39
Uma razo para considerar a mquina de Turing como o mais geral dispositivo de computao
todos os demais modelos e mquinas propostos bem como as diversas modificaes da mquina de Turing possuem, no mximo, o mesmo poder computacional da mquina de Turing
40
41
...
a-3
a-2
a-1
a1
a2
a3
... ...
42
a1
a-1
a2
a-2
a3
a-3
43
44
45
46
47
Em outras palavras
qualquer outra forma de expressar algoritmos ter, no mximo, a mesma capacidade computacional da mquina de Turing
48
50
51
w MT w MT
ou
LOOP
Aparente contradio
reconhecer o complemento de uma linguagem pode ser impossvel, mesmo que seja possvel reconhecer a linguagem
52
8.4.1
54
55
56
57
58
Portanto, computacionalmente existem mais problemas do que algoritmos para resolv-los. Exemplo { f: N N f funo } classe muito particular de problemas (linguagens) prova-se: isomorfo a R (cardinal 2 )
0
59
8.1.2
Linguagem Recursiva
60
61
62
63
Prova: (direta)
Suponha L linguagem recursiva. Ento existe M, mquina de Turing ACEITA(M) = L REJEITA(M) = ~L LOOP(M) =
64
Seja Inverte uma mquina de Turing que inverte ACEITA / REJEITA M mquina de Turing resultante da composio de Inverte e M M aceita a linguagem ~L sempre pra para qualquer entrada Portanto, o complemento de uma linguagem recursiva recursiva
M'
Inverte
p M
Inverte
65
Prova:
( direta) Suponha L linguagem recursiva. Ento (teorema anterior) ~L recursiva Como toda linguagem recursiva tambm recursivamente enumervel L e ~L so recursivamente enumerveis
66
( direta) Suponha L linguagem tal que L e ~L so recursivamente enumerveis Ento existem M1 e M2, mquinas de Turing, tais que ACEITA(M1) = L ACEITA(M2) = ~L Seja M mquina de Turing resultante da composio
M w M1
M2
Inverte
67
M w
M1
M2
Inverte
composio no-determinista de M1 com M2 composio seqencial de M1 com Inverte Para qualquer palavra de entrada M aceita se M1 aceita M rejeita se M2 aceita Logo, L recursiva
Linguagens Formais e Autmatos - P. Blauth Menezes
68
69
L Recursivamente Enumervel
M gera palavras X1, X2, em ordem lexicogrfica compara com w quando Xi = w, w a i-sima palavra na enumerao M gera Ti, a i-sima mquina de Turing (exerccios) M simula Ti para a entrada w = Xi se w pertence a ACEITA(Ti), ento w pertence a ACEITA(M) simulador: exerccio M aceita w sse Xi = w aceita por Ti Logo, L recursivamente enumervel
70
L no Recursiva
J foi visto L recursiva sse L e ~L so recursivamente enumerveis Complemento de L no recursivamente enumervel ento L no-recursiva
71
72
Gramtica Irrestrita
gramtica sem qualquer restrio nas produes
73
74
75
76
77
78
Gera o primeiro w aps X, e o segundo w aps Y a cada terminal gerado aps X gerada correspondente varivel varivel "caminha" na palavra at passar por Y deriva o correspondente terminal para encerrar X deriva subpalavra de dois terminais e correspondente varivel a qual "caminha" at encontrar Y quando derivada a mesma subpalavra de dois terminais se X derivar uma subpalavra de somente um terminal (e a correspondente varivel) ?
80
81
82
No-Determinismo?
no conhecido se aumenta o poder computacional
83
q 0 - estado inicial: elemento distinguido de Q F - conjunto de estados finais: subconjunto de Q V - alfabeto auxiliar (pode ser vazio) - smbolo de incio ou marcador de incio da fita - smbolo de fim ou marcador de fim da fita
84
85
q0 (, , D)
q1 (a, X, D) (b, X, D) (, , E) (a, a, D) (b, b, D) q2 (a, Y, E) q4 q3 (b, Y, E) (a, a, E) (b, b, E) (a, a, D) (b, b, D)
(X, X, D)
(a, a, D) (b, b, D)
q6
q8
(a, a, D) (b, b, D)
q11
(Y, Y, D)
(Y, Y, D)
(Y, Y, D)
(, , E)
(Y, Y, D)
q9 (b, Y, E)
(Y, Y, D)
qf
86
87
89