Você está na página 1de 40

ACH2043 INTRODUO TEORIA DA COMPUTAO

Seo 5.3: Redutilibidade por Mapeamento


Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima
1

Nas aulas passadas...

Reduo: converso de um problema A em outro problema B de forma que a soluo de B seja usada para solucionar A Se A redutvel a B

A no pode ser mais difcil do que B

Se B for decidvel, A tambm ser


Se A for indecidvel, B tambm ser

Provamos que vrios problemas so indecidveis


2

Na aula de hoje

Pularemos o cap. 5.2 Formalizao de uma reduo

Redutibilidade por mapeamento


Mapeamento por uma funo f computvel

Funes computveis e funes nocomputveis

Funes computveis

Uma funo f: * * uma funo computvel se alguma mquina de Turing M, sobre toda entrada w, pra com exatamente f(w) sobre sua fita

Funes computveis

Uma funo f: * * uma funo computvel se alguma mquina de Turing M, sobre toda entrada w, pra com exatamente f(w) sobre sua fita Uma funo no-computvel se no existe tal mquina (por mais que se possa calcular o valor de f para alguns pontos do Domnio)

Termos equivalentes ou relacionados

Problema solvel, problema ou linguagem decidvel, linguagem recursiva

Funo computvel

Problema insolvel, problema ou linguagem indecidvel ou semi-decidvel (mas reconhecvel), linguagem recursivamente enumervel no-recursiva

Funo incomputvel

Problema completamente insolvel, problema ou linguagem indecidvel e irreconhecvel, linguagem no recursivamente enumervel

Funo incomputvel

Exemplos de funes computveis


Operaes aritmticas sobre inteiros Transformaes em descries de mquinas de Turing

Ex: f(<M>) = <M'>, onde M' reconhece a mesma linguagem que M, mas nunca tenta mover a cabea de fita para alm da extremidade esquerda (adicionando estados). Retorna se M no for uma descrio de uma MT legtima

Definio formal de redutibilidade por mapeamento

A linguagem A redutvel por mapeamento linguagem B (A m B), se existe uma funo computvel f:* * onde para toda w, w pertence a A <=> f(w) pertence a B.

A funo f denominada a reduo de A para B.

Definio formal de redutibilidade por mapeamento

Definio formal de redutibilidade por mapeamento

Teorema: Se A m B e B decidvel, ento A decidvel. Prova: Seja M o decisor de B e f a reduo de A para B. Um decisor N para A : 1. Compute f(w) 2. Rode M sobre a entrada f(w) e d como sada o que M der como sada.

N = Sobre a entrada w:

Se w pertence a A, f(w) pertence a B. Portanto M aceita f(w) sempre que w pertencer a A e rejeita caso contrrio. Logo, N decide A.
10

Definio formal de redutibilidade por mapeamento

Corolrio: Se A m B e A indecidvel, ento B indecidvel.

11

Exemplo - PARAMT

Reduo de AMT para PARAMT Temos que mostrar uma funo computvel f onde:

x AMT <=> f(x) PARAMT ou seja,

12

Exemplo - PARAMT

Reduo de AMT para PARAMT Temos que mostrar uma funo computvel f onde:

x AMT <=> f(x) PARAMT ou seja, <M, w> AMT <=> <M, w'> PARAMT , onde f(<M,w>) = <M', w'>

13

Exemplo - PARAMT

Reduo de AMT para PARAMT Temos que mostrar uma funo computvel f onde:

x AMT <=> f(x) PARAMT ou seja, <M, w> AMT <=> <M, w'> PARAMT ,

onde f(<M,w>) = <M', w'> Temos que mostrar uma MT F que compute f
14

Exemplo - PARAMT

Temos que mostrar uma MT F que compute f:


1. Construa a seguinte mquina M'
M' = Sobre a entrada x:
1. Rode M sobre x 2. Se M aceita, ? 3. Se M rejeita, ?

F = Sobre a entrada <M,w>:

(Requisito: M para sobre x <=> M aceita x)

2. D como sada <M', w>

s.: Se uma entrada y no est na forma correta (e portanto no pertence a A), f(y) deve 15 dar como sada uma cadeia que no pertence a B.

Exemplo - PARAMT

Temos que mostrar uma MT F que compute f:


1. Construa a seguinte mquina M'
M' = Sobre a entrada x:
1. Rode M sobre x 2. Se M aceita, aceite 3. Se M rejeita, entre em loop

F = Sobre a entrada <M,w>:

(Requisito: M para sobre x <=> M aceita x)

2. D como sada <M', w>

Obs.: Se uma entrada y no est na forma correta (e portanto no pertence a A), 16 f(y) deve dar como sada uma cadeia que no pertence a

Exemplo - PARAMT

Temos que mostrar uma MT F que compute f:


1. Construa a seguinte mquina M'
M' = Sobre a entrada x:
1. Rode M sobre x 2. Se M aceita, aceite 3. Se M rejeita, entre em loop

F = Sobre a entrada <M,w>:

2. D como sada <M', w>

Obs.: Se uma entrada y no est na forma correta (e portanto no pertence a A), f(y) deve dar como sada uma cadeia que no pertence a B.
17

Diferena da prova das aulas passadas para a da aula de hoje


Prova de que PARAMT indecidvel utilizando AMT Em ambos os casos, supomos que existe uma MT R que decide PARAMT Aulas passadas (reduo informal)

Utilizamos R sobre a entrada <M,w> para decidir AMT sobre o mesmo <M,w>

Porm, com uma adaptao: Se R aceita (indicando que M para sobre w, precisamos rodar M sobre w para saber se M aceita ou rejeita w
18

Diferena da prova das aulas passadas para a da aula de hoje

Aula de hoje (reduo formal por mapeamento)

Criamos uma MT F que mapeia cada cadeia de AMT em uma cadeia de PARAMT :

de <M,w> no problema AMT computamos <M',w> = f(<M,w>) para o problema PARAMT

A resposta de R sobre <M', w> a resposta direta para <M,w> no problema AMT Ou seja, um decisor N para AMT R(F(<M,w>))

19

Para ver se entenderam....


Vamos ver outra prova das aulas passadas... Diga como deveria ser a reduo por mapeamento

20

Equivalncia entre MTs

EQMT = {<M1, M2> | M1 e M2 so MTs e L(M1) = L(M2)}

Podemos usar EQMT para resolver VMT! Ideia: se uma MT M for equivalente a outra que rejeita qualquer cadeia, ento L(M) = Assuma que R uma MT que decide EQMT

Vamos construir S que decide VMT usando R

21

Equivalncia entre MTs

S = Sobre a entrada <M> onde M uma MT: 1. Rode R sobre a entrada <M, M1>, onde M1 uma MT que rejeita todas as entradas. 2. Se R aceita, aceite; se R rejeita, rejeite. Mas VMT indecidvel, ento EQMT tambm

22

Equivalncia entre MTs

S = Sobre a entrada <M> onde M uma MT: 1. Rode R sobre a entrada <M, M1>, onde M1 uma MT que rejeita todas as entradas. 2. Se R aceita, aceite; se R rejeita, rejeite. Mas VMT indecidvel, ento EQMT tambm Como seria a reduo por mapeamento?

23

Equivalncia entre MTs

Assuma que R uma MT que decide o problema EQMT

Preciso escrever uma MT F que faa o mapeamento de VMT em EQMT, de forma que um decisor de VMT para uma dada entrada <M> seja R(F(<M>))

24

Equivalncia entre MTs

F = Sobre a entrada <M>, onde M uma MT:


1. Construa a seguinte mquina M1
M1 = Sobre a entrada x:
rejeite.

2. D como sada <M, M1>


<M> VMT <=> f(M) = <M, M1> EQMT

Isso significa que:

L(M) =

<=>

M equivalente a M1

25

Outro exerccio considerando uma prova de aulas passadas...

26

Vacuidade de uma linguagem de uma MT


VMT = { <M>: M uma MT e L(M) = } Usar um decisor R de VMT para decidir AMT

Ideia: construir uma verso de M que apenas teste w


1. Se x w rejeite 2. Se x = w, rode M sobre a entrada w e aceite se M aceita, e rejeite se M rejeita
27

M1 = Sobre a entrada x:

Vacuidade de uma linguagem de uma MT

S = Sobre a entrada <M,w>, uma codificao de uma MT M e uma cadeia w: 1. Use a descrio de M e w para construir M1 2. Rode R sobre M1 3. Se R aceita, rejeite; se R rejeita, aceite.

Mas como AMT indecidvel, VMT indecidvel

28

Vacuidade de uma linguagem de uma MT

S = Sobre a entrada <M,w>, uma codificao de uma MT M e uma cadeia w: 1. Use a descrio de M e w para construir M1 2. Rode R sobre M1 3. Se R aceita, rejeite; se R rejeita, aceite.

Mas como AMT indecidvel, VMT indecidvel Como fazer uma reduo por mapeamento?
29

Vacuidade de uma linguagem de uma MT

Uma MT F que receba <M,w> e d como sada M1 faz um mapeamento entre AMT e o complemento de VMT! Logo, formalmente, provou-se que o complemento de VMT indecidvel Na verdade, no existe uma reduo por mapeamento de AMT para VMT A prova de que VMT indecidvel ainda funciona porque a decidibilidade no afetada por complementao

30

Resumindo...

Sei que o problema A indecidvel. Quero provar que o problema B indecidvel. Como? Prova por contradio: assumo que B decidvel por uma MT R. Se esse R puder ser usado para decidir o problema o A, CONTRADIO! Logo B indecidvel. O que falta na prova mostrar como R pode ser usado para decidir A. Usando informalmente reduo, essa soluo era criada caso a caso. Em reduo por mapeamento, a soluo sempre a mesma:
31

Resumindo...

Um decisor D de A seria: 1. D a resposta dada pela MT R sobre a entrada F(x).

D = Sobre uma entrada x,

Onde F a funo de mapeamento de A para B que funciona de tal forma que: x pertence a A <=> f(x) pertence a B

32

Resumindo...
A

Y B e y = f (x), x A Y B e y f (x), qq x A

_ B

33

Resumindo
A tarefa fica ento em construir a F para um dado A e um dado B

34

Redutibilidade por mapeamento e reconhecibilidade

Teorema: Se A m B e B Turing-reconhecvel, ento A Turing-reconhecvel. Prova: Seja M o reconhecedor de B e f a reduo de A para B. Um reconhecedor N para A : 1. Compute f(w)

N = Sobre a entrada w:

2. Rode M sobre a entrada f(w) e d como sada o que M der como sada.
Se w pertence a A, f(w) pertence a B.

Portanto M aceita f(w) sempre que w pertencer a A


Logo, N reconhece A.
35

Redutibilidade por mapeamento e reconhecibilidade

Corolrio: Se A m B e A no Turing-reconhecvel, ento


B no Turing-reconhecvel.

36

Aplicaes do corolrio

Teorema: Se A m B e B Turing-reconhecvel, ento A Turing-reconhecvel.


Corolrio: Se A m B e A no Turing-reconhecvel, ento B no Turing-reconhecvel. J sabemos que o complemento de AMT no Turingreconhecvel (ponto de partida para mostrar que outras linguagens tambm no so)

A m B implica que A m B
Vimos pelo Corolrio 4.23 que AMT no Turing-reconhecvel. Assim, para provar que uma linguagem B no Turingreconhecvel podemos usar

AMT m B ou AMT m B
37

Exemplo

Teorema: EQMT no Turing-reconhecvel nem coTuring-reconhecvel Prova:

Provamos que EQMT no Turing-reconhecvel e depois que complemento(EQMT) tambm no

38

Exemplo - EQMT no Turingreconhecvel


AMT m complemento(EQMT) F = Sobre a entrada <M,w>, onde M uma MT e w uma cadeia: 1. Construa as seguintes MTs M1 e M2: M1 = Sobre qualquer cadeia de entrada: 1. rejeite. M2 = Sobre qualquer cadeia de entrada: 1. Rode M sobre w. Se M aceita, aceite; se M rejeita, rejeite. 2. D como sada <M1, M2>.
39

Exemplo - complemento(EQMT) no Turing-reconhecvel


complemento(AMT) m complemento(EQMT), ou seja AMT m EQMT F = Sobre a entrada <M,w>, onde M uma MT e w uma cadeia: 1. Construa as seguintes MTs M1 e M2:

M1 = Sobre qualquer cadeia de entrada: 1. aceite. M2 = Sobre qualquer cadeia de entrada: 1. Rode M sobre w. Se M aceita, aceite; se M rejeita, rejeite. 40 2. D como sada <M1, M2>.