Informática Teórica Engenharia da Computação. REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de.

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

FAPE - Curso de Ciência da Computação
Algoritmo e Programação
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Teoria da Computação Unipac – Computação
Sinais e Sistemas – Capítulo 4
Mestrado em Ciência da Computação Profa. Sandra de Amo
Complexidade de Linguagens Influência do Modelo de Computação
Teorema da Recursão Teoria da Computação
Linguagens Não Decidíveis
Problemas Algoritmicos
Lema da Bomba (Pumping Lemma) para linguagens livre de contexto
esquerda p/ direita,read only
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
Identificando Linguagens Não Regulares
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Carolina Fonseca Neumar Ribeiro
Métodos de Demonstração
Informática Teórica Engenharia da Computação
Prof. Roberto Cristóvão
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Cálculo Numérico / Métodos Numéricos
Operações com grafos União Exemplo
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
Aulas 9,10 Fábio Nakano.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
GEOMETRIA AXIOMÁTICA, SEGMENTOS DE RETA
4 - DECIDIBILIDADE Universidade Federal da Paraíba
SIPSER – Capítulo 3: A tese de Church-Turing
Informática Teórica Engenharia da Computação
Engenharia de Software
Máquina de Turing Universal
Máquinas de Turing.
Análise e Síntese de Algoritmos
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
BCC101 – Matemática Discreta
Redução.
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Decidibilidade, Corretude, Completude, Consistência
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Decidibilidade, Corretude, Completude, Consistência, Monotonicidade
Computabilidade e Linguagens Formais
Computabilidade e Linguagens Formais
Álgebra Vetorial e Linear para Computação Monitora: Aluna Jeane Mendes da Silva Santos Orientador: Professor Adriano Pedrosa CIn – UFPE.
Algoritmos e Programação I
Informática Teórica Aula 7 Tarcisio Coutinho da Silva
Informática Teórica Aula 8 Por: Tarcisio Coutinho da Silva
Reverso de uma Linguagem Regular
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação. Autômatos Com Pilha São como autômatos finitos não-determinísticos mas com uma pilha. São como autômatos.
Informática Teórica Engenharia da Computação. REDUTIBILIDADE POR MAPEAMENTO Formalizaremos a noção de redutibilidade de uma dentre várias maneiras. Formalizaremos.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Transcrição da apresentação:

Informática Teórica Engenharia da Computação

REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de converter um problema em outro

REDUTIBILIDADE A  B ( A se reduz a B) A  B ( A se reduz a B) Resolver A não pode ser mais difícil que resolver B Resolver A não pode ser mais difícil que resolver B Podemos usar uma solução para B para resolver A Podemos usar uma solução para B para resolver A

REDUTIBILIDADE A redutibilidade desempenha um papel importante na classificação de problemas por decidibilidade e, posteriormente, em teoria da complexidade também. A redutibilidade desempenha um papel importante na classificação de problemas por decidibilidade e, posteriormente, em teoria da complexidade também.

REDUTIBILIDADE A  B ( A se reduz a B) A  B ( A se reduz a B) Resolver A não pode ser mais difícil que resolver B Resolver A não pode ser mais difícil que resolver B Se B for decidível A tb será. Se B for decidível A tb será. Se A for indecidível, B tb será. Se A for indecidível, B tb será.

REDUTIBILIDADE Como usamos reduções para provar decidibilidade? Por exemplo, se A for indecídível. Como mostramos uma redução de A para B e provamos que B tb é indecidível? Por exemplo, se A for indecídível. Como mostramos uma redução de A para B e provamos que B tb é indecidível? Vimos: que se A  B e se A for indecidível então B tb será. Vimos: que se A  B e se A for indecidível então B tb será. Usamos uma prova por contradição: Usamos uma prova por contradição: Supomos que B é decidível. Supomos que B é decidível. Construímos um decisor M para B. Construímos um decisor M para B. Usamos M para construir um decisor para A. Usamos M para construir um decisor para A. Como A é indecidível, chegamos a uma contradição. Como A é indecidível, chegamos a uma contradição. Portanto, B é indecidível. Portanto, B é indecidível.

REDUTIBILIDADE Como usamos reduções para provar decidibilidade? O problema da parada PARA MT = { | M é uma MT e M pára sobre a entrada w } PARA MT = { | M é uma MT e M pára sobre a entrada w } TEOREMA 5.1: PARA MT é indecidível. TEOREMA 5.1: PARA MT é indecidível. Usamos uma prova por contradição: Usamos uma prova por contradição: Supomos que PARA MT é decidível. Supomos que PARA MT é decidível. Construímos um decisor R para PARA MT. Construímos um decisor R para PARA MT. Usamos R para construir um decisor S para A MT. Usamos R para construir um decisor S para A MT. Como A MT é indecidível, chegamos a uma contradição. Como A MT é indecidível, chegamos a uma contradição. Portanto, PARA MT é indecidível. Portanto, PARA MT é indecidível.

REDUTIBILIDADE TEOREMA 5.1: PARA MT é indecidível. R é um decisor para PARA MT R é um decisor para PARA MT Se R aceita é porque M pára sobre a entrada w. Se M pára é porque M aceitou ou rejeitou w. Se R aceita é porque M pára sobre a entrada w. Se M pára é porque M aceitou ou rejeitou w. Nesse caso, simulamos M sem o risco de entrar em loop: Se M aceita, aceite; se M rejeita, rejeite. Nesse caso, simulamos M sem o risco de entrar em loop: Se M aceita, aceite; se M rejeita, rejeite. Agora, se R rejeita, significa que não pára. Logo, fazemos S não aceitar. Agora, se R rejeita, significa que não pára. Logo, fazemos S não aceitar.

REDUTIBILIDADE TEOREMA 5.1: PARA MT é indecidível. Aceita q aceita q rejeita Rejeita Aceita Rejeita Aceita Rejeita M,w w R M S

REDUTIBILIDADE TEOREMA 5.1: PARA MT é indecidível. S = “Sobre a entrada, uma codificação de uma MT M e uma cadeia w: S = “Sobre a entrada, uma codificação de uma MT M e uma cadeia w: 1. Rode MT R sobre a entrada. 2. Se R rejeita, rejeite. 3. Se R aceita, simule M sobre w até que ela pare. 4. Se M aceitou, aceite; se M rejeitou, rejeite.” Claramente, se R decide PARA MT, então S decide A MT. Como A MT é indecidível, PARA MT também deve ser indecidível. Claramente, se R decide PARA MT, então S decide A MT. Como A MT é indecidível, PARA MT também deve ser indecidível.

REDUTIBILIDADE Teste de vacuidade para MTs V MT = { | M é uma MT e L(M)=  } V MT = { | M é uma MT e L(M)=  } TEOREMA 5.2: V MT é indecidível. TEOREMA 5.2: V MT é indecidível. Usamos uma prova por contradição: Usamos uma prova por contradição: Supomos que V MT é decidível. Supomos que V MT é decidível. Construímos um decisor R para para V MT. Construímos um decisor R para para V MT. Usamos R para construir um decisor S para A MT. Usamos R para construir um decisor S para A MT. Como A MT é indecidível, chegamos a uma contradição. Como A MT é indecidível, chegamos a uma contradição. Portanto, V MT é indecidível. Portanto, V MT é indecidível.

REDUTIBILIDADE TEOREMA 5.2: V MT é indecidível. Uma idéia é S rodar R sobre a entrada e ver se ela aceita. Uma idéia é S rodar R sobre a entrada e ver se ela aceita. Se aceita, sabemos que L(M) é vazia e, por conseguinte, que M não aceita w. Se aceita, sabemos que L(M) é vazia e, por conseguinte, que M não aceita w. Mas, se R rejeita, tudo o que sabemos é que L(M) não é vazia e, consequentemente, que M aceita alguma cadeia, mas ainda não sabemos se M aceita a cadeia w. Mas, se R rejeita, tudo o que sabemos é que L(M) não é vazia e, consequentemente, que M aceita alguma cadeia, mas ainda não sabemos se M aceita a cadeia w. Dessa forma, precisamos usar uma idéia diferente. Dessa forma, precisamos usar uma idéia diferente.

REDUTIBILIDADE TEOREMA 5.2: V MT é indecidível. Ao invés de rodar R sobre rodamos R sobre uma modificação de. Ao invés de rodar R sobre rodamos R sobre uma modificação de. Modificamos para garantir que M rejeita todas as cadeias exceto w, mas sobre a entrada w ela funciona normalmente. Modificamos para garantir que M rejeita todas as cadeias exceto w, mas sobre a entrada w ela funciona normalmente. Então usamos R para determinar se a máquina modicada reconhece a linguagem vazia. Então usamos R para determinar se a máquina modicada reconhece a linguagem vazia. A única cadeia que a máquina agora aceita é w, portanto sua linguagem será não vazia sse ela aceita w. A única cadeia que a máquina agora aceita é w, portanto sua linguagem será não vazia sse ela aceita w.

REDUTIBILIDADE TEOREMA 5.2: V MT é indecidível. q rejeita Rejeita x w xwxw M M1M1M1M1 x=w Aceita Loop...

REDUTIBILIDADE TEOREMA 5.2: V MT é indecidível. M 1 = “Sobre a entrada x: M 1 = “Sobre a entrada x: 1. Se x  w, rejeite. 2. Se x = w, rode M sobre a entrada w e aceite se M aceita.”

REDUTIBILIDADE TEOREMA 5.2: V MT é indecidível. S = “Sobre a entrada, uma codificação de uma MT M e uma cadeia w: S = “Sobre a entrada, uma codificação de uma MT M e uma cadeia w: 1. Use a descrição de M e w para construir a MT M Rode R sobre a entrada. 3. Se R aceita, rejeite; se R rejeita, aceite.”

REDUTIBILIDADE Testar se a linguagem de uma MT é regular REGULAR MT = { | M é uma MT e L(M) é uma linguagem regular} REGULAR MT = { | M é uma MT e L(M) é uma linguagem regular} TEOREMA 5.3: REGULAR MT é indecidível. TEOREMA 5.3: REGULAR MT é indecidível. Usamos uma prova por contradição: Usamos uma prova por contradição: Supomos que REGULAR MT é decidível. Supomos que REGULAR MT é decidível. Construímos um decisor R para para REGULAR MT. Construímos um decisor R para para REGULAR MT. Usamos R para construir um decisor S para A MT. Usamos R para construir um decisor S para A MT. Como A MT é indecidível, chegamos a uma contradição. Como A MT é indecidível, chegamos a uma contradição. Portanto, REGULAR MT é indecidível. Portanto, REGULAR MT é indecidível.

REDUTIBILIDADE TEOREMA 5.3: REGULAR MT é indecidível. A idéia é S tomar sua entrada e modificar M de modo que a MT resultante reconheça uma linguagem regular se e somente se M aceita w. A idéia é S tomar sua entrada e modificar M de modo que a MT resultante reconheça uma linguagem regular se e somente se M aceita w. Chamamos a máquina modificada de M 2. Projetamos M 2 para reconhecer a linguagem não regular {0 n 1 n | n  0} se M não aceita w, e para reconhecer a linguagem regular  * se M aceita w. Chamamos a máquina modificada de M 2. Projetamos M 2 para reconhecer a linguagem não regular {0 n 1 n | n  0} se M não aceita w, e para reconhecer a linguagem regular  * se M aceita w.

REDUTIBILIDADE TEOREMA 5.3: REGULAR MT é indecidível. q aceita Rejeita Aceita x w x=o n 1 n M M2M2M2M2 Aceita Loop xon1nxon1n Qual a linguagem de M 2 se M aceita w? Qual a linguagem de M 2 se M não aceita w? L(M 2 ) =  * L(M 2 ) = 0 n 1 n...

REDUTIBILIDADE TEOREMA 5.3: REGULAR MT é indecidível. S = “Sobre a entrada, onde M é uma MT e w é uma cadeia: S = “Sobre a entrada, onde M é uma MT e w é uma cadeia: 1. Construa a seguinte MT M 2. M 2 = “Sobre a entrada x: M 2 = “Sobre a entrada x: 1. Se x tem a forma 0 n 1 n, aceite. 2.Se x não tem essa forma, rode M sobre a entrada w e aceite se M aceita w.” 2. Rode R sobre a entrada. 3. Se R aceita, aceite; se R rejeita, rejeite..

REDUTIBILIDADE Testar a equivalência de duas MTs EQ MT = { | M 1 e M 2 são MTs e L(M 1 ) = L(M 2 )} EQ MT = { | M 1 e M 2 são MTs e L(M 1 ) = L(M 2 )} TEOREMA 5.4: EQ MT é indecidível. TEOREMA 5.4: EQ MT é indecidível. Usamos uma prova por contradição: Usamos uma prova por contradição: Supomos que EQ MT é decidível. Supomos que EQ MT é decidível. Construímos um decisor R para para EQ MT. Construímos um decisor R para para EQ MT. Usamos R para construir um decisor S para V MT. Usamos R para construir um decisor S para V MT. Como V MT é indecidível, chegamos a uma contradição. Como V MT é indecidível, chegamos a uma contradição. Portanto, EQ MT é indecidível. Portanto, EQ MT é indecidível.

REDUTIBILIDADE TEOREMA 5.4: EQ MT é indecidível. S = “Sobre a entrada, onde M é uma MT: S = “Sobre a entrada, onde M é uma MT: 1. Rode R sobre a entrada, onde M 1 é uma MT que rejeita todas as entradas. 2. Se R aceita, aceite; se R rejeita, rejeite.” Se R decide EQ MT, S decide V MT. Mas V MT é indecidível pelo Teorema 5.2, portanto EQ MT também tem que ser indecidível. Se R decide EQ MT, S decide V MT. Mas V MT é indecidível pelo Teorema 5.2, portanto EQ MT também tem que ser indecidível.

REDUTIBILIDADE TEOREMA 5.4: EQ MT é indecidível. V MT é o problema de se determinar se a linguagem de uma MT é vazia. EQ MT é o problema de se determinar se as linguagens de duas MTs são iguais. V MT é o problema de se determinar se a linguagem de uma MT é vazia. EQ MT é o problema de se determinar se as linguagens de duas MTs são iguais. Se uma dessas linguagens acontece de ser vazia, terminamos com o problema de se determinar se a linguagem da outra máquina é vazia, ou seja, o problema V MT. Se uma dessas linguagens acontece de ser vazia, terminamos com o problema de se determinar se a linguagem da outra máquina é vazia, ou seja, o problema V MT. Dessa forma, em um certo sentido, o problema V MT é um caso especial do problema EQ MT no qual uma das máquinas é fixada para reconhecer a linguagem vazia. Dessa forma, em um certo sentido, o problema V MT é um caso especial do problema EQ MT no qual uma das máquinas é fixada para reconhecer a linguagem vazia.