1 Redução. 2 Problema é redutível ao problema Se, quando podemos resolver o problema, então...

Post on 07-Apr-2016

226 views 2 download

Transcript of 1 Redução. 2 Problema é redutível ao problema Se, quando podemos resolver o problema, então...

1

Redução

2

Problema é redutível ao problemaA B

Se, quando podemos resolver o problema , então podemos também resolver o problema

BA

BA

3

Se é não decidível então é não decidível

Se é decidível então é decidívelB A

A B

Problema é redutível ao problemaA B

4

Exemplo: o problema da parada

é redutível ao

problema de entrada em um estado

5

Problema de entrada em um estadoEntradas: MMáquina de

TuringEstado q

Questão: M

String w

entra no estado

qquando executa sobre ?w

6

Teorema:O problema de entrada em um estado é não decidível

Prova:Reduza o problema da parada aoproblema de entrada em um estado

7

Suponha que temos um algoritmo (MT)que resolve o problema de entrada em um estado

Vamos construir um algoritmoque resolve o problema da parada

8

Algoritmo para o problema deentrada em um dado estado

Mw

q

SIM

NÃO

entraM q

não entraM q

Suponha que temos um algoritmo que resolveo problema de entrada em um estado:

9

Algoritmo para o problema da parada

M

w

SIM

NÃO

pára sobreM w

não pára sobreM w

Queremos projetar um algoritmo:

10

Modifique a máquina de entrada :M•Adicione um novo estadoq•A partir de qualquer estado de parada adicione transições para q

M q

estados de paradaestado de parada único

M

11

M pára

M pára entra no estadoq

se e soment

e se

12

máquina e string

Algoritmo para o problema da parada:

Entradas: M w

1. Construa a máquina com estadoM q

2. Execute o algoritmo para o problema de entrada em um estado, com as entradas: , ,M wq

,

13

GeraM M

w

M qw

algorimo p/entrada em estado

Algoritmo para o problema da parada

SIM

NÃO

SIM

NÃO

14

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

Reduzimos o problema da parada aoproblema de entrada em um estado

15

Outro exemplo:

o problema da parada

é redutível ao

problema da parada com a fita em branco

16

O problema da parada com a fita em branco

Entrada: MMáquina de Turing

Questão: Mpára quando executadatendo como entrada a fita em branco?

17

Teorema:

Prova:Reduza o problema da parada aoproblema da parada com a fita em branco

O problema da parada com a fita em brancoé não decidível

18

Suponha que temos um algoritmo parao problema da parada com a fita em branco

Vamos construir um algoritmopara o problema da parada

19

Algoritmo para parada com a fita em branco

M

SIM

NÃO

pára sobrea fita em brancoM

não pára sobrea fita em brancoM

Suponha que temos um algoritmo parao problema da parada com a fita em branco:

20

Algoritmo para o problema da parada

M

w

SIM

NÃO

pára sobreM w

não pára sobreM w

Queremos projetar um algoritmo pararesolver o problema da parada:

21

wMConstrua uma nova máquina

• Sobre a fita escreva w

• Então continue a execução comoM

wM

Mentão escreva w

passo 1 passo 2se fita em branco execut

ecom entradaw

22

M pára sobre a entrada

wM pára quando executada com a fita em branco

se e

somente se

w

23

Algoritmo para o problema da parada:

1. Construa wM

2. Execute o algoritmo para o problema da parada com a fita em branco com entrada wM

máquina e stringEntradas: M w

24

GerawM

Mw

algoritmo p/parada comfita em branco

Algoritmo para o problema da parada

SIM

NÃOwM

SIM

NÃO

25

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

Reduzimos o problema da parada ao problema da parada com fita em branco

26

Máquina pára sobre a entrada ?

Resumo de Problemas Não DecidíveisProblema da Parada:

M w

Problema de pertinência:

O string é elemento de uma linguagemrecursivamente enumerável ? L

w

Máquina aceita o string ?M w

Em outras palavras:

27

Máquina entra em um estado quando executada sobre a entrada ?

Máquina pára quando executadasobre a fita em branco?

Problema da parada com a fita em branco:M

Problema de entrada em um dado estado:M

wq

O string vazio é elemento de uma linguagemrecursivamente enumerável ?

Em outras palavras:L

28

Funções Não Computáveis

29

Funções Não Computáveis

Uma função é não computável se ela nãopode ser computada para todo o seu domínio

Domínio Contra-domínio

f

30

Uma função não computável:

)(nf

número máximo de passos até queuma máquina de Turing com estadospáre quando executada sobre a fita em branco

n

31

Teorema:A função é não computável)(nf

Prova:

Então o problema da parada para a fita em branco é decidível

Suponha, por contradição, que seja computável)(nf

32

Algoritmo para a parada com fita em branco:Entrada: máquina M

1. Conte os estados de : M m

2. Compute )(mf

3. Simule por passos começando com a fita em branco

M )(mf

Se pára enão retorne SIM caso contrário retorne NÃO

M

33

Portanto, o problema da parada com fitaem branco é decidível

Entretanto, já provamos que o problemada parada com fita em branco énão decidível

Contradição!!!

34

Portanto, a função é não computável)(nf

Fim da Prova

35

Teorema de Rice

36

Propriedades não triviais de linguagens recursivamente enumeráveis:

qualquer propriedade de alguma (não todas)as linguagens recursivamente enumeráveis

Definição:

37

Algumas propriedades não triviais de linguagens recursivamente enumeráveis:

• é vaziaL

L• é finita

L• contém dois strings diferentes com o mesmo comprimento

38

Teorema de Rice:

Qualquer propriedade não trivial de uma linguagem recursivamente enumerávelé não decidível

39

Vamos provar para algumas propriedades não triviais, sem usar o teorema de Rice

40

Teorema:Para qualquer linguagem recursivamente enumerável Lnão é decidível determinar se é vaziaL

Prova:Vamos reduzir o problema de pertinênciaa este problema

41

Algoritmo parao problema dalinguagem vazia

M

SIM

NO

Suponha que temos um algoritmo para o problema da linguagem vazia:

Seja uma máquina que aceita M L

)(ML

)(ML

vazia

não vazia

LML )(

42

Algoritmo parao problema depertinência

M

w

SIM

NÃO

aceitaM w

rejeitaM w

Vamos construir um algoritmo para o problema de pertinência:

43

Primeiro construa a máquina : wM

Quando entra em um estado final, compare a entrada original comw

M

Aceite se a entrada original éigual ao string w

44

Lw

)( wML é não vazia

se e somente se

}{)( wML w

45

Algoritmo para o problema de pertinência:

Entradas: máquina e string M w

1. Construa wM

2. Determine se é vazia )( wML

SIM: então )(MLw

NÃO: então )(MLw

46

construa

wM

verifique se)( wML

é vazia

SIM

NÃO

M

w

NÃO

SIM

Algoritmo de pertinência

wM

Fim da Prova