ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃOSeção 5.3: Redutilibidade por Mapeamento Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima 1 Nas aulas passadas... Redução: conversão de um problema A em outro problema B de forma que a solução de B seja usada para solucionar A Se A é redutível a B A não pode ser mais difícil do que B Se B for decidível, A também será Se A for indecidível, B também será Provamos que vários problemas são indecidíveis 2 Na aula de hoje Pularemos o cap. 5.2 Formalização de uma redução Redutibilidade por mapeamento Mapeamento por uma função f computável Funções computáveis e funções nãocomputáveis 3 Funções computáveis Uma função f: Σ* → Σ* é uma função computável se alguma máquina de Turing M, sobre toda entrada w, pára com exatamente f(w) sobre sua fita 4 pára com exatamente f(w) sobre sua fita Uma função é não-computável se não existe tal máquina (por mais que se possa calcular o valor de f para alguns pontos do Domínio) 5 . sobre toda entrada w.Funções computáveis Uma função f: Σ* → Σ* é uma função computável se alguma máquina de Turing M. problema ou linguagem indecidível e irreconhecível. linguagem recursiva Função computável Problema insolúvel. linguagem recursivamente enumerável não-recursiva Função incomputável Problema completamente insolúvel. linguagem não recursivamente enumerável Função incomputável 6 .Termos equivalentes ou relacionados Problema solúvel. problema ou linguagem indecidível ou semi-decidível (mas reconhecível). problema ou linguagem decidível. onde M' reconhece a mesma linguagem que M.Exemplos de funções computáveis Operações aritméticas sobre inteiros Transformações em descrições de máquinas de Turing Ex: f(<M>) = <M'>. mas nunca tenta mover a cabeça de fita para além da extremidade esquerda (adicionando estados). Retorna ε se M não for uma descrição de uma MT legítima 7 . se existe uma função computável f:Σ* → Σ* onde para toda w. A função f é denominada a redução de A para B. w pertence a A <=> f(w) pertence a B. 8 .Definição formal de redutibilidade por mapeamento A linguagem A é redutível por mapeamento à linguagem B (A ≤m B). Definição formal de redutibilidade por mapeamento 9 . N decide A.Definição formal de redutibilidade por mapeamento Teorema: Se A ≤m B e B é decidível. Prova: Seja M o decisor de B e f a redução de A para B. Um decisor N para A é: 1. então A é decidível. Portanto M aceita f(w) sempre que w pertencer a A e rejeita caso contrário. Compute f(w) 2.” N = “Sobre a entrada w: Se w pertence a A. f(w) pertence a B. Logo. 10 . Rode M sobre a entrada f(w) e dê como saída o que M der como saída. Definição formal de redutibilidade por mapeamento Corolário: Se A ≤m B e A é indecidível. então B é indecidível. 11 . 12 .PARAMT Redução de AMT para PARAMT Temos que mostrar uma função computável f onde: x Є AMT <=> f(x) Є PARAMT ou seja.Exemplo . onde f(<M.w>) = <M'. w> Є AMT <=> <M´.PARAMT Redução de AMT para PARAMT Temos que mostrar uma função computável f onde: x Є AMT <=> f(x) Є PARAMT ou seja. <M. w'> Є PARAMT . w'> 13 .Exemplo . PARAMT Redução de AMT para PARAMT Temos que mostrar uma função computável f onde: x Є AMT <=> f(x) Є PARAMT ou seja. w> Є AMT <=> <M´.w>) = <M'.Exemplo . w'> Є PARAMT . w'> Temos que mostrar uma MT F que compute f 14 . onde f(<M. <M. PARAMT Temos que mostrar uma MT F que compute f: 1. Se M aceita. f(y) deve 15 dar como saída uma cadeia que não pertence a B. Construa a seguinte máquina M' M' = “Sobre a entrada x: 1. ?” F = “Sobre a entrada <M. . w>” s. Se M rejeita. Rode M sobre x 2.Exemplo .w>: (Requisito: M’ para sobre x <=> M aceita x) 2. Dê como saída <M'. ? 3.: Se uma entrada y não está na forma correta (e portanto não pertence a A). Exemplo . Dê como saída <M'.w>: (Requisito: M’ para sobre x <=> M aceita x) 2. 16 f(y) deve dar como saída uma cadeia que não pertence a . entre em loop” F = “Sobre a entrada <M. Rode M sobre x 2. Se M aceita.: Se uma entrada y não está na forma correta (e portanto não pertence a A). w>” Obs.PARAMT Temos que mostrar uma MT F que compute f: 1. aceite 3. Construa a seguinte máquina M' M' = “Sobre a entrada x: 1. Se M rejeita. Exemplo .w>: 2. Rode M sobre x 2. Dê como saída <M'.PARAMT Temos que mostrar uma MT F que compute f: 1.: Se uma entrada y não está na forma correta (e portanto não pertence a A). entre em loop” F = “Sobre a entrada <M. w>” Obs. 17 . f(y) deve dar como saída uma cadeia que não pertence a B. aceite 3. Se M rejeita. Construa a seguinte máquina M' M' = “Sobre a entrada x: 1. Se M aceita. com uma adaptação: Se R aceita (indicando que M para sobre w.Diferença da prova das aulas passadas para a da aula de hoje Prova de que PARAMT é indecidível utilizando AMT Em ambos os casos.w> para decidir AMT sobre o mesmo <M. supomos que existe uma MT R que decide PARAMT Aulas passadas (redução informal) Utilizamos R sobre a entrada <M. precisamos rodar M sobre w para saber se M aceita ou rejeita w 18 .w> Porém. Diferença da prova das aulas passadas para a da aula de hoje Aula de hoje (redução formal por mapeamento) Criamos uma MT F que mapeia cada cadeia de AMT em uma cadeia de PARAMT : de <M.w>) para o problema PARAMT A resposta de R sobre <M'. um decisor N para AMT é R(F(<M.w> no problema AMT Ou seja.w> no problema AMT computamos <M'.w>)) 19 .w> = f(<M. w> é a resposta direta para <M. Diga como deveria ser a redução por mapeamento 20 ...... Vamos ver outra prova das aulas passadas.Para ver se entenderam. M2> | M1 e M2 são 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.Equivalência entre MTs EQMT = {<M1. então L(M) = Ø Assuma que R é uma MT que decide EQMT Vamos construir S que decide VMT usando R 21 . Se R aceita. aceite. 2. M1>. onde M1 é uma MT que rejeita todas as entradas. Rode R sobre a entrada <M. rejeite. então EQMT também é 22 .Equivalência entre MTs S = “Sobre a entrada <M> onde M é uma MT: 1. se R rejeita.” Mas VMT é indecidível. rejeite. então EQMT também é Como seria a redução por mapeamento? 23 . Rode R sobre a entrada <M. 2. se R rejeita. Se R aceita. onde M1 é uma MT que rejeita todas as entradas. M1>.” Mas VMT é indecidível. aceite.Equivalência entre MTs S = “Sobre a entrada <M> onde M é uma MT: 1. de forma que um decisor de VMT para uma dada entrada <M> seja R(F(<M>)) 24 .Equivalência entre MTs Assuma que R é uma MT que decide o problema EQMT Preciso escrever uma MT F que faça o mapeamento de VMT em EQMT. M1>” <M> VMT <=> f(M) = <M. Construa a seguinte máquina M1 M1 = “Sobre a entrada x: rejeite. Dê como saída <M. onde M é uma MT: 1. M1> EQMT Isso significa que: L(M) = Ø <=> M é equivalente a M1 25 .” 2.Equivalência entre MTs F = “Sobre a entrada <M>. .Outro exercício considerando uma prova de aulas passadas.. 26 . Se x ≠ w rejeite 2. e rejeite se M rejeita” 27 M1 = “Sobre a entrada x: .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 versão de M que apenas teste w 1. rode M sobre a entrada w e aceite se M aceita. Se x = w. Se R aceita. se R rejeita.Vacuidade de uma linguagem de uma MT S = “Sobre a entrada <M. Rode R sobre M1 3. rejeite. VMT é indecidível 28 . uma codificação de uma MT M e uma cadeia w: 1. aceite.w>.” Mas como AMT é indecidível. Use a descrição de M e w para construir M1 2. uma codificação de uma MT M e uma cadeia w: 1. Use a descrição de M e w para construir M1 2. rejeite. VMT é indecidível Como fazer uma redução por mapeamento? 29 . Se R aceita.” Mas como AMT é indecidível. aceite.w>.Vacuidade de uma linguagem de uma MT S = “Sobre a entrada <M. Rode R sobre M1 3. se R rejeita. provou-se que o complemento de VMT é indecidível Na verdade. formalmente.w> e dê como saída M1 faz um mapeamento entre AMT e o complemento de VMT! Logo. não existe uma redução por mapeamento de AMT para VMT A prova de que VMT é indecidível ainda funciona porque a decidibilidade não é afetada por complementação 30 .Vacuidade de uma linguagem de uma MT Uma MT F que receba <M. essa solução era criada caso a caso. Sei que o problema A é indecidível. Em redução por mapeamento..Resumindo. Como? Prova por contradição: assumo que B é decidível por uma MT R. CONTRADIÇÃO! Logo B é indecidível. Quero provar que o problema B é indecidível.. a solução é sempre a mesma: 31 . Usando informalmente “redução”. O que falta na prova é mostrar como R pode ser usado para decidir A. Se esse R puder ser usado para decidir o problema o A. Dê a resposta dada pela MT R sobre a entrada F(x). Onde F é a função de mapeamento de A para B que funciona de tal forma que: x pertence a A <=> f(x) pertence a B 32 .” D = “Sobre uma entrada x.Resumindo... Um decisor D de A seria: 1. qq x Є A f B Ā _ B 33 . x Є A Y Є B e y ≠ f (x).. A Y Є B e y = f (x).Resumindo.. Resumindo A tarefa fica então em construir a F para um dado A e um dado B 34 . Um reconhecedor N para A é: 1. Portanto M aceita f(w) sempre que w pertencer a A Logo. Rode M sobre a entrada f(w) e dê como saída o que M der como saída. 35 . N reconhece A. então A é Turing-reconhecível. Compute f(w) N = “Sobre a entrada w: 2.Redutibilidade por mapeamento e reconhecibilidade Teorema: Se A ≤m B e B é Turing-reconhecível. f(w) pertence a B. Prova: Seja M o reconhecedor de B e f a redução de A para B.” Se w pertence a A. então B não é Turing-reconhecível. 36 .Redutibilidade por mapeamento e reconhecibilidade Corolário: Se A ≤m B e A é não é Turing-reconhecível. então A é Turing-reconhecível.23 que AMT não é Turing-reconhecível.Aplicações do corolário Teorema: Se A ≤m B e B é Turing-reconhecível. Já sabemos que o complemento de AMT não é Turingreconhecível (ponto de partida para mostrar que outras linguagens também não são) A ≤m B implica que A m B Vimos pelo Corolário 4. Corolário: Se A ≤m B e A é não é Turing-reconhecível. então B não é Turing-reconhecível. Assim. para provar que uma linguagem B não é Turingreconhecível podemos usar AMT m B ou AMT m B 37 . Exemplo Teorema: EQMT não é Turing-reconhecível nem coTuring-reconhecível Prova: Provamos que EQMT não é Turing-reconhecível e depois que complemento(EQMT) também não é 38 . rejeite. Rode M sobre w.w>. Se M aceita. se M rejeita. Dê como saída <M1. aceite.” M2 = “Sobre qualquer cadeia de entrada: 1.Exemplo . Construa as seguintes MTs M1 e M2: M1 = “Sobre qualquer cadeia de entrada: 1.EQMT não é Turingreconhecível AMT ≤m complemento(EQMT) F = “Sobre a entrada <M. onde M é uma MT e w é uma cadeia: 1. M2>. rejeite.” 2.” 39 . ” M2 = “Sobre qualquer cadeia de entrada: 1. Se M aceita. aceite. M2>. rejeite. ou seja AMT ≤m EQMT F = “Sobre a entrada <M. Rode M sobre w. aceite. onde M é uma MT e w é uma cadeia: 1.w>. Dê como saída <M1.complemento(EQMT) não é Turing-reconhecível complemento(AMT) ≤m complemento(EQMT). se M rejeita.Exemplo . Construa as seguintes MTs M1 e M2: M1 = “Sobre qualquer cadeia de entrada: 1.” .” 40 2.