A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da."— Transcrição da apresentação:

1 Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da Computação Decidibilidade e Indecidibilidade

2 Problemas Decidíveis ( LR ) Problemas computacionais relacionados a AFs : saber se um AF aceita uma palavra saber se a linguagem de um AF é vazia saber se dois AFs são equivalentes etc. Linguagens Regulares

3 Problemas Decidíveis ( LR ) Podemos formular problemas computacionais em termos de teste de pertinência em uma linguagem. Por exemplo: Saber se um dado AFD B aceita uma dada entrada w pode ser expresso como o problema: Saber se é um membro da linguagem: A AFD = { : B é um AFD que aceita w}. Mostrar que a linguagem é decidível implica em mostrar que o problema computacional é decidível Representação do problema

4 Problemas Decidíveis ( LR ) Teorema 18: A AFD é uma linguagem decidível. Prova: M = Com entrada, onde B é um AFD e w é uma palavra: 1. Simular B para a entrada w. 2. Se a simulação termina num estado final de B, aceitar. Se termina num estado não final, rejeitar.

5 Problemas Decidíveis ( LR ) A AFND = { : B é um AFND que aceita w} é decidível. Prova: N = Com entrada, onde B é um AFND e w uma palavra: 1. Converter B para um AFD equivalente C 2. Executar MT M com entrada. 3. Se M aceita a entrada, aceitar. Caso contrário, rejeitar. Teorema 19:

6 Problemas Decidíveis ( LR ) Teorema 20: E AFD = { : A é um AFD e L(A) = Ø} é decidível. T = Com entrada, onde A é um AFD: 1. Marcar o estado inicial de A. 2. Repetir até que nenhum novo estado seja marcado 3. Marcar todo o estado que tenha uma transição chegando de qualquer estado já marcado 4. Se nenhum estado final estiver marcado, aceitar. Caso contrário, rejeitar. Prova:

7 Problemas Decidíveis ( LR ) Teorema 21: EQ AFD = { : A e B são AFDs e L(A) = L(B) } é decidível. Prova: F = Com entrada, onde A e B são AFDs: L(C)= ( L(A) L(B) ) ( L(A) L(B) ) 1. Construir o AFD C como descrito. 2. Executar MT T com entrada. 3. Se T aceita, aceitar. Caso contrário, rejeitar.

8 Problemas Decidíveis ( LLC ) Linguagens Livre-de-contexto O problema de saber se um string é um membro de uma linguagem livre de contexto é relacionado com o problema de reconhecimento e compilação de programas em uma linguagem de programação. A GLC = { | G é uma GLC que gera a cadeia w}

9 Problemas Decidíveis ( LLC ) Teorema 22: A GLC é uma linguagem decidível. Prova: S = Com entrada, onde G é uma GLC e w uma cadeia: 1.Converter G em uma gramática equivalente G na Formal Normal de Chomsky. 2.Listar todas as derivações com 2n-1 passos, onde n é o comprimento de w. 3.Se alguma destas derivações gera w, aceitar. Senão, rejeitar.

10 Problemas Decidíveis ( LLC ) Teorema 23: E GLC = { | G é uma GLC e L(G) = } é decidível. Prova: R = Com entrada, onde G é uma GLC: 1. Marcar todos os símbolos terminais de G. 2. Repetir até que nenhuma variável seja marcada: 3. Marcar cada variável A de G aparecendo em uma regra do tipo A U 1 U 2...U k onde cada símbolo U 1,... U k já tenha sido marcado. 4. Se o símbolo inicial não estiver marcado, aceitar. Senão, rejeitar.

11 Problemas Decidíveis ( LLC ) Teorema 24: Toda linguagem livre de contexto é decidível. Prova: Seja G uma GLC para a linguagem: M G = Com entrada w: 1. Executar a MT S com entrada 2. Se S aceita, aceitar. Senão, rejeitar.

12

13 Indecidibilidade Teorema 25: A MT não é decidível Prova: Vamos assumir que A MT é decidível e chegar a uma contradição Supor que H é uma MT que decide A MT : aceite se M aceita w rejeite se M não aceita w H( ) =

14 Indecidibilidade Vamos construir uma outra MT D que usa H da seguinte forma : D recebe como entrada uma MT M e chama H para determinar o que M faz quando tem como entrada sua própria descrição. Uma vez D tenha determinado isso, ela faz o oposto: ela rejeita se M aceita e aceita se M rejeita.

15 Indecidibilidade D = com entrada, onde M é uma MT: 1. Execute H para a entrada >. 2. Retorne o contrário do que H retorna, isto é, se H aceita, rejeitar, se H rejeita, aceitar. ou seja : aceite se M não aceita rejeite se M aceita D( ) =

16 Indecidibilidade O que acontece quando executamos D com sua própria descrição como entrada ? CONTRADIÇÃO !!!!!!!!!!!!!!!!!!! Portanto, nem MT D nem MT H podem existir. Esse problema é uma versão do Problema da Parada aceite se D não aceita rejeite se D aceita D( ) =

17 Decidibilidade Teorema 26: Uma linguagem é decidível se e somente se ela e seu complemento são Turing -reconhecíveis ) Se A é decidível, podemos ver facilmente que tanto A quanto seu complemento são Turing- reconhecíveis, visto que qualquer linguagem decidível é Turing-reconhecível e o complemento de uma linguagem decidível é também decidível. Prova:

18 Decidibilidade ) Se ambas, A e seu complemento são Turing- reconhecíveis, então sejam M 1 e M 2 reconhecedores para elas, respectivamente. Então : M = com entrada w 1. Executar simultaneamente M 1 e M 2 com entrada w. 2. Se M 1 aceita, aceitar; se M 2 aceita, rejeitar.

19 Indecidibilidade Corolário: O complemento de A MT não é Turing-reconhecível Prova: A MT é Turing-reconhecível. Se o seu complemento fosse Turing-reconhecível, pelo teorema 26, A MT seria decidível o que contraria o teorema 25.

20 Redução O problema A é redutível ao problema B implica em que uma solução para B leva a uma solução para A. Em termos da Teoria da Computação: Se A é redutível a B e B é decidível, então A é decidível. Se A é indecidível e redutível a B, então B é indecidível

21 O Problema da Parada (versão 2) Halt MT = { : M é uma MT e M pára para w} Prova: Vamos mostrar que A MT é redutível a Halt MT. Vamos assumir que Halt MT é decidível. Então seja R a MT que decide Halt MT. Se R existe, podemos construir uma MT que decide A MT : Teorema 27: Halt MT é indecidível

22 O Problema da Parada (versão 2) S = com entrada, onde M é uma MT e w string: 1. Executar R com entrada 2. Se R rejeitar, rejeitar. 3. Se R aceitar, simular M com w até parar. 4. Se M aceitar, aceitar; senão rejeitar. Se R decide Halt MT então S decide A MT. Como A MT é indecidível, Halt MT também deve ser, ou seja, R não pode existir.

23 Redução E MT = { : M é uma MT e L(M) = } Teorema 28: E MT é indecidível. Prova: Vamos assumir que E MT é decidível e então mostrar que isso leva a conclusão que A MT é decidível !!!!

24 Redução Seja R uma MT que decide E MT. Idéia para S: 1. Rodar R com entrada e ver se ela é aceita. Se ela aceita, sabemos então que L(M) =Ø e portanto M não aceita w. Mas, se R rejeita, tudo que sabemos é que L(M) Ø e portanto aceita algum string não necessariamente w. Como mostrar que a existência de R leva a existência de S que decide A MT ?

25 Redução 2. Em vez de rodar R com, rodar R com uma modificação de M: Modificamos M para garantir que ela rejeita todos os strings exceto w, e com entrada w, ela trabalha normalmente. Então usamos R para testar se a máquina modificada reconhece a linguagem vazia. O único string que a máquina pode aceitar agora é w. Então a linguagem será não nula se e somente se ela aceita w.

26 Redução M 1 = com entrada x : S = com entrada, M MT e w string: 1. Construir M 1, a partir de M e de w; Se R é um decider para E MT,S seria um decider para A MT. Um decider de A MT não pode existir, então também não existe um para E MT. 1. Se x w, rejeitar; 2. Se x = w, executar M com entrada w e aceitar se M aceita. 2. Executar R com entrada ; 3. Se R aceita, rejeitar; se R rejeita, aceitar.

27 Redução REGULAR MT ={ : M é MT e L(M) é regular} Teorema 29 REGULAR MT é indecidível Prova: Redução de A MT. Vamos assumir que temos uma MT R que decide REGULAR MT. Vamos usar R para construir S que que decide A MT. Vamos modificar M de tal forma que a resultante M 2 reconheça uma linguagem regular se e somente se aceita w:

28 Redução ( M 2 reconhece a linguagem não-regular { 0 n 1 n : n>0} se M não aceite w e reconhece a linguagem regular Σ* se M aceita w ) S = com entrada : 1. Construa a seguinte MT M 2. M 2 = com entrada x : 1. Se x tem a forma 0 n 1 n, aceitar. 2. Se x não tem essa forma, rodar M com entrada w e aceitar se M aceita w. 2. Rodar R com entrada 3. Se R aceita, aceitar. Se R rejeita, rejeitar.

29 Redução LIVRE-DE-CONTEXTO MT = { : M é MT e L(M) é livre de contexto} DECIDÍVEL MT ={ : M é MT e L(M) é decidível} FINITO MT ={ : M é MT e L(M) é finito} Teorema 30: LIVRE-DE-CONTEXTO MT,DECIDIVEL MT e FINITO MT são indecidíveis. Teorema de Rice: Qualquer propriedade de linguagem reconhecidas por Máquinas de Turing é indecidível.

30 Redução EQ MT ={ :M 1 e M 2 são MTs e L(M 1 ) = L(M 2 ) } Teorema 31: Prova: Então, se R decide EQ MT, S decide E MT. Como E MT é indecidível, então EQ MT também é. EQ MT é indecidível. Redução de E MT. Vamos supor que temos MT R que decide EQ MT. Vamos construir S para decidir E MT : S =com entrada, onde M é uma MT: 1. Rodar R com entrada, onde M 1 é uma MT que rejeita todas as entradas. 2. Se R aceita, aceitar. Se R rejeita, rejeitar.

31 Redução Seja M uma MT e w um string de entrada Uma história da computação de aceitação, para M com w é uma sequência de configuração c 1, c 2,..., c l, onde: - C 1 é a configuração inicial de M com w - C l é uma configuração de aceitação - cada C i segue de C i-1 de acordo com a resposta de M Uma história da computação de rejeição para M com w é definida simultaneamente, exceto que C l é uma configuração de rejeição.

32 Redução Histórias da computação são seqüências finitas. Se M não pára para w, não existe história da computação para M com w. Máquinas determinísticas tem no máximo uma história da computação para qualquer dada entrada.

33 Redução A LBA = { : M é LBA e aceita w } Teorema 32: A LBA é decidível

34 Redução Lema 3: Seja M um LBA com q estados e g símbolos no alfabeto da fita. Existem qng n distintas configurações de M para uma fita de comprimento n. Prova: Uma configuração consiste do estado do controle, da posição do cabeçote e do conteúdo da fita: M tem q estados. O comprimento da fita é n, então o cabeçote pode estar em uma das n posições e g n possíveis strings podem estar na fita. Então o número total de diferentes configurações é q.n.g n.

35 Redução O lema estabelece que um LBA pode ter apenas um número limitado de configuração quando um string de comprimento n é a entrada.

36 Redução Retornando : A LBA = { : M é LBA aceita w } Prova: Teorema 33: A LBA é decidível Se M repete uma configuração M vai repetir e repetir entrando em loop. Quando M computa com w, ela vai de configuração em configuração.

37 Redução Como para um LBA apenas um número finito de configuração é possível (lema), basta simular M para um número máximo de passos (dado pelo lema) : L = com entrada, onde M é um LBA : 1. Simular M com entrada w para qng n passos ou até que pare. 2. Se M tem parado, aceitar se ele aceitou e rejeitar se ele rejeitou. Se M não parou, rejeitar.

38 Redução E LBA = { : M é um LBA e L(M) = Ø } Teorema 34: E LBA é indecidível. Prova: Redução de A LBA Para uma MT M e uma entrada w, podemos determinar se M aceita w pela construção de um certo LBA B e pelo teste então se L(B) é vazio

39 Redução Construimos B para aceitar sua entrada x se x é uma história da computação aceitante para M com w. MT S que decide A MT na suposição de termos a máquina R que decide E LBA. S = com entrada, onde M é MT e w string: ##### C 1 C 2 C 3 C l... # 1. Construir LBA B de M e w como descrito. 2. Rodar R com entrada 3. Se R rejeita, aceitar. Se R aceita, rejeitar.

40 Redução por Mapeamento Reduzir um problema A para um problema B usando uma redução por mapeamento significa que existe uma função computável que converte instâncias do problema A para instâncias do problema B. Definição formal: A linguagem A é redutível por mapeamento para a linguagem B (A < B) se existe uma função compatível f : Σ* Σ* onde para todo w, w є A f(w) є B. Se temos uma tal conversão (função de ), chamada uma redução, podemos resolver A com um resolvedor (solucionador) para B. A função f é chamada a redução de A para B.

41 Redução por Mapeamento Teorema 35: Se A < B e B é decidível, então A é decidível. Prova : Seja M uma MT que decide B e f uma redução de A para B. N = Entrada w 1. Computar f(w) 2. Executar M para entrada f(w). Se M aceita, aceitar. Se não, rejeitar.

42 Redução por Mapeamento Corolário: Se A < B e A é indecidível, então B é indecidível. Teorema 36: Se A < B e B é Turing-reconhecível, então A também é Turing-reconhecível. Corolário: Se A < B e A não é Turing-reconhecível, então B não é Turing-reconhecível.

43 Auto Referência (Self-Reference) Vamos construir uma MT que ignore sua entrada e imprime (na fita) como saída sua própria descrição (SELF). Lema 4: Existe uma função computável q: Σ* Σ* tal que para qualquer string w, q(w) é a descrição de uma MT P w que imprime w e então pára.

44 Auto Referência (Self-Reference) Prova: A seguinte MT computa q: Q = Entrada string w: 1. Construir a seguinte MT P w : P w = Entrada qualquer: 1. Apagar entrada 2. Escrever w na fita 3. Parar 2. Escrever P w na fita Se M é uma MT e sua descrição, q( ) = >

45 Auto Referência (Self-Reference) Vamos construir SELF como a função de 2 máquinas A e B = A parte A roda primeiro e depois passa o controle para a parte B. O resultado da execução de A é escrever na fita uma descrição de B, e o resultado da execução de B é escrever convenientemente na fita uma descrição de A. O resultado final então é escrever na fita uma descrição de SELF.

46 Auto Referência (Self-Reference) A = P e B = Entrada, onde M é uma MT: Obs : q( ) = > = 1. computar q( ) 2. combinar o resultado com para ter uma descrição de uma MT. 3. escrever uma descrição e parar.

47 Teorema da Recursão Seja T uma MT que computa uma função t: Σ*x Σ* Σ*. Existe uma MT R que computa uma função r: Σ* Σ* onde para todo w, r(w) = t(,w) Teorema 37:

48 Teorema da Recursão R = entrada w Prova: 2. Computar t(,w) 1. obter obter : A = P B = Entrada 1. Computar q( ) 2. Combinar remetido com 3. Escrever na fita.


Carregar ppt "Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da."

Apresentações semelhantes


Anúncios Google