Redução
1
Problema
A é redutível ao problema B
Se, quando podemos resolver o problema B ,
então podemos também resolver o problema A
B
A
2
Problema
A é redutível ao problema B
Se B é decidível então
Se
A é decidível
A é não decidível então B é não decidível
3
Exemplo:
o problema da parada
é redutível ao
problema de entrada em um estado
4
Problema de entrada em um estado
Entradas: Máquina de Turing
Questão:
Estado
q
String
w
M
M entra no estado q
quando executa sobre
w?
5
Teorema:
O problema de entrada em um estado
não é decidível
Prova:
Reduza o problema da parada ao
problema de entrada em um estado
6
Suponha que temos um algoritmo (MT)
que resolve
o problema de entrada em um estado
Vamos construir um algoritmo
que resolve o problema da parada
7
Suponha que temos um algoritmo que resolve
o problema de entrada em um estado:
M
w
q
SIM
Algoritmo para
o problema de
entrada em
NÃO
um dado estado
M entra
q
não
entra
q
M
8
Queremos projetar um algoritmo:
M
w
Algoritmo para
o problema
da parada
SIM
M pára sobre w
NÃO
não
pára sobre
M
w
9
Modifique a máquina de entrada
•Adicione um novo estado
M :
q
•A partir de qualquer estado de parada
adicione transições para q
M
M
estados de parada
q
estado de parada
único
10
M pára
se e
somente
se
M  entra no estado q
11
Algoritmo para o problema da parada:
Entradas: máquina
1. Construa a máquina
M e string w
M  com estado q
2. Execute o algoritmo para o problema de
,
entrada em um estado,
com as entradas:
M , q , w
12
Algoritmo para o problema da parada
M
Gera
M
M
q algorimo p/
entrada em
w
estado
SIM
SIM
NÃO
NÃO
w
13
Reduzimos o problema da parada ao
problema de entrada em um estado
Como o problema da parada é não decidível,
então o problema de entrada em estado
é também não decidível
Fim da Prova
14
Outro exemplo:
o problema da parada
é redutível ao
problema da parada com a fita em branco
15
O problema da parada com a fita em branco
Entrada: Máquina de Turing
Questão:
M
M pára quando executada
tendo como entrada a fita em branco?
16
Teorema:
O problema da parada com a fita em branco
não é decidível
Prova: Reduza o problema da parada ao
problema da parada com a fita em branco
17
Suponha que temos um algoritmo para
o problema da parada com a fita em branco
Vamos construir um algoritmo
para o problema da parada
18
Suponha que temos um algoritmo para
o problema da parada com a fita em branco:
SIM
M
M pára sobre
a fita em branco
Algoritmo para
parada com
M não pára sobre
a fita em branco NÃO a fita em branco
19
Queremos projetar um algoritmo para
resolver o problema da parada:
M
w
Algoritmo para
o problema
da parada
SIM
M pára sobre w
NÃO
não pára
sobre
M
w
20
Construa uma nova máquina
• Sobre a fita escreva
Mw
w
• Então continue a execução como
M
Mw
passo 1
se fita em branco
passo 2
execute M
então escreva
com entrada w
w
21
M pára sobre a entrada w
se
e somente
se
M w pára quando executada
com a fita em branco
22
Algoritmo para o problema da parada:
Entradas: máquina
1. Construa
M e string w
Mw
2. Execute o algoritmo para o problema
da parada com a fita em branco
com entrada M w
23
M
w
Algoritmo para o problema da parada
Gera
Mw
algoritmo p/
Mw
parada com
fita em branco
SIM
SIM
NÃO
NÃO
24
Reduzimos o problema da parada
ao problema da parada com fita em branco
Como o problema da parada não é decidível,
o problema da parada com a fita em branco
também não é decidível
Fim da Prova
25
Resumo de Problemas Não Decidíveis
Problema da Parada:
Máquina
M pára sobre a entrada w ?
Problema de pertinência:
Máquina M aceita o string
w?
Em outras palavras: O string w é elemento de uma linguagem
recursivamente enumerável
L
?
26
Problema da parada com a fita em branco:
Máquina M pára quando executada
sobre a fita em branco?
Em outras palavras: O string vazio é elemento de uma linguagem
recursivamente enumerável
L
?
Problema de entrada em um dado estado:
Máquina M entra em um estado q
quando executada sobre a entrada w ?
27
Funções Não Computáveis
28
Funções Não Computáveis
Domínio
f
Contradomínio
Uma função é não computável se ela não
pode ser computada para todo o seu domínio
29
Uma função não computável:
f (n) 
número máximo de passos até que
uma máquina de Turing com n estados
páre quando executada sobre
a fita em branco
30
Teorema: A função
Prova:
f (n) é não computável
Suponha, por contradição, que
f (n) seja computável
Então o problema da parada para
a fita em branco é decidível
31
Algoritmo para a parada com fita em branco:
Entrada: máquina
M
1. Conte os estados de
2. Compute
M:
m
f (m)
3. Simule M por f (m) passos
começando com a fita em branco
Se
M pára enão retorne SIM
caso contrário retorne NÃO32
Portanto, o problema da parada com fita
em branco é decidível
Entretanto, já provamos que o problema
da parada com fita em branco é
não decidível
Contradição!!!
33
Portanto, a função
f (n) é não computável
Fim da Prova
34
Teorema de Rice
35
Definição:
Propriedades não triviais de
linguagens recursivamente enumeráveis:
qualquer propriedade de alguma (não todas)
as linguagens recursivamente enumeráveis
36
Algumas propriedades não triviais de
linguagens recursivamente enumeráveis:
• L é vazia
• L é finita
• L contém dois strings diferentes
com o mesmo comprimento
37
Teorema de Rice:
Qualquer propriedade não trivial de
uma linguagem recursivamente enumerável
é não decidível
38
Vamos provar para algumas propriedades
não triviais, sem usar o teorema de Rice
39
Teorema:
Para qualquer linguagem recursivamente
enumerável L
não é decidível determinar se
L é vazia
Prova:
Vamos reduzir o problema de pertinência
a este problema
40
Seja
M uma máquina que aceita
L( M )  L
L
Suponha que temos um algoritmo para o
problema da linguagem vazia:
M
Algoritmo para
o problema da
linguagem vazia
SIM
L(M ) vazia
NO
L(M ) não vazia
41
Vamos construir um algoritmo para
o problema de pertinência:
M
w
SIM
Algoritmo para
o problema de
NÃO
pertinência
M aceita
w
M rejeita w
42
Primeiro construa a máquina
Mw
:
Quando M entra em um estado final,
compare a entrada original com w
Aceite se a entrada original é
igual ao string w
43
w L
se e
somente se
L( M w )
é não vazia
L( M w )  {w}
44
Algoritmo para o problema de pertinência:
Entradas: máquina
1. Construa
M e string w
Mw
2. Determine se
L( M w )
é vazia
SIM: então w L(M )
NÃO: então w L(M )
45
Algoritmo de pertinência
M
w
construa
Mw
verifique se
Mw
SIM
NÃO
NÃO
SIM
L( M w )
é vazia
Fim da Prova
46
Download

ftc21 - Decom