51
Linguagem universal Yuri Tavares dos Passos

Aula06

Embed Size (px)

Citation preview

Page 1: Aula06

Linguagem universal

Yuri Tavares dos Passos

Page 2: Aula06

Problemas

● Informalmente, um problema é uma questão sim/não sobre um conjunto infinito de possíveis instâncias

● Exemplo: “Um grafo G tem um ciclo hamiltoniano (ciclo que passa por cada nó exatamente uma vez)?– Cada grafo não-dirigido é uma instância do

“problema do ciclo hamiltoniano”.

Page 3: Aula06

Problemas

● Formalmente, um problema é uma linguagem.

● Cada string codifica alguma instância.● A string pertence a linguagem se e

somente se a resposta para aquela instância é “sim”.

Page 4: Aula06

Exemplo: Um problema sobre MT● Nós podemos pensar na linguagem Ld

como um problema.● “Dada uma MT, ela não aceita ela

mesma?”● Podemos pensar no problema como uma

pergunta sobre strings binárias– Como perguntaríamos Ld?

Page 5: Aula06

Problemas decidíveis

● Um problema é decidível se há um algoritmo para respondê-lo.– Um algoritmo, formalmente, é uma MT que

trava para qualquer entrada, aceitando ou não.

– “Problema decidível” = “Linguagem recursiva”.

● Caso contrário, o problema é indecidível.

Page 6: Aula06

LinguagensRE

(Decidíveis)

LinguagensRE

LinguagensNão-RE

Ld

Existe al-Guma lin-guagem aqui?

Linguagens

Page 7: Aula06

Do abstrato para o real

● Enquanto que o fato de que Ld é indecidível é interessante intelectualmente, não existe um impacto direto nos problemas do mundo real.

● Nós deveríamos desenvolver alguns problemas relacionados a MT que sejam indecídiveis, mas nosso objetivo é usar a teoria para mostrar que alguns problemas reais são indecidíveis.

Page 8: Aula06

Exemplos de problemas indecidíveis● Uma linha particular de código dentro de um programa

será executada?● Dada uma gramática livre de contexto, ela é ambígua?● Dada duas gramáticas livres de contexto, elas geram a

mesma linguagem?● Dada uma linguagem aceita por uma MT, ela é regular?● É possível verificar se um lgoritmo qualquer sempre irá

parar?

Page 9: Aula06

Técnicas para descobrir indecibilidade● Existem dois métodos convencionais:

– Análise do complemento da linguagem

– Redução a problemas/linguagens conhecidos(as)

● Um exemplo de problema conhecido será apresentado: a linguagem universal.

Page 10: Aula06

Complemento de linguagens RE e R● Dada uma linguagem L e seu

complemento L, quantos modos diferentes podemos inserir e no diagrama de linguagens R, RE e não-RE?

R

RE não R

Não RE

Page 11: Aula06

Possibilidade 1

R

RE não R

Não RE

L L

Page 12: Aula06

Possibilidade 2

R

RE não R

Não RE

L L

Page 13: Aula06

Possibilidade 3

R

RE não R

Não RE

L L

Page 14: Aula06

Possibilidade 4

R

RE não R

Não RE

L L

Page 15: Aula06

Possibilidade 5

R

RE não R

Não RE

L L

Page 16: Aula06

Possibilidade 6

R

RE não R

Não RE

L

L

Page 17: Aula06

Possibilidade 7

R

RE não R

Não RE

LL

Page 18: Aula06

Possibilidade 8

R

RE não R

Não RE

L

L

Page 19: Aula06

Possibilidade 9

R

RE não R

Não RE

L

L

Page 20: Aula06

Complemento de linguagens RE e R● Mas apenas 4 delas são válidas!● Veremos com os dois teoremas a seguir

Page 21: Aula06

Teorema 1

● Se L é uma linguagem recursiva, então L também é.

● Prova: Basta construir uma MT para L como na imagem a seguir.

Page 22: Aula06

Teorema 1

Page 23: Aula06

Teorema 2

● Se L e L são linguagens RE, então também L é recursiva.

● Prova: Considere L = L(M1) e L = L(M2).

● Construa uma MT M que usa M1 e M2 como na figura a seguir.

Page 24: Aula06

Teorema 2

Page 25: Aula06

Complemento de R e RE

● Com estes teoremas, apenas as seguintes combinações são possíveis:

– L e L são recursivas.

– L e L não são RE.

– L é RE mas não é recursiva e L não é RE.

– L é RE mas não é recursiva e L não é RE.

Page 26: Aula06

A linguagem universal

● Um exemplo de uma linguagem RE, mas não recursiva é a linguagem Lu da máquina de Turing universal (MTU).

● A MTU toma como entrada o código de alguma MT M e alguma string binária w e aceita somente se M aceita w.

Page 27: Aula06

A linguagem universal

● A linguagem universal (Lu) é definida como a linguagem dos pares (M,w) tais que M aceita w.

● Será apresentado uma MT que aceita Lu.

Page 28: Aula06

Como criar a MTU

● As entradas da fita serão da forma:– M 111 w

● Nota: Uma MT válida codificada em binário, nunca possui 111, logo podemos dividir M de w.

● A MT deve aceitar sua entrada se e somente se M é um código válido e M aceita w.

Page 29: Aula06

MTU

● A MTU possuirá várias fitas.● A fita 1 guarda a entrada M111w.● A fita 2 guarda a fita de M.

– MTU marca a cabeça de leitura como se fosse a cabeça de leitura de M.

● Fita 3 guarda o estado de M.

Page 30: Aula06

MTU

Page 31: Aula06

MTU

● Passo 1: A MTU verifica se M é um código válido.– Todos os movimentos devem ter cinco

componentes.

– Não há dois movimentos com o mesmo par (estado,símbolo).

● Se M não é válida, sua linguagem é vazia, então a MTU pára sem aceitar.

Page 32: Aula06

MTU

● Passo 2: A MTU examina M para verificar quantas células de sua fita são necessárias para representar um símbolo de M.

● Passo 3: Inicializa a fita 2 para representar a fita de M com a entrada w e inicializa a fita 3 para armazenar o estado inicial.

Page 33: Aula06

MTU

● Passo 4: Simula M.– Verifica o movimento na fita 1 que

corresponde ao estado na fita 3 e o símbolo de fita na cabeça de leitura da fita 2.

– Se encontrou, muda o símbolo e move a cabeça de leitura na fita 2 a muda para o estado na fita 3.

– Se M aceita, a MTU também aceita.

Page 34: Aula06

Pergunta

● No mundo real, existe algo semelhante a MTU?

Page 35: Aula06

O que é Lu?

● Lu = {(M,w)| M é uma MT codificada corretamente e M aceita w}

● não (A e B) = não A ou não B

● Lu = {(M,w)| M não é uma MT codificada corretamente ou M não aceita w}

Page 36: Aula06

Lu é RE mas não recursiva

● Uma MT para MTU foi descrita, logo ela é RE.

● Suponha que seja recursiva, isto é, uma MTU U sempre irá parar.

● Então, nós podemos rodar um algoritmo para Ld como segue.

Page 37: Aula06

Lu é RE mas não

recursiva● Ld é um caso especial de Lu.

● Ld = { w | w representa uma MT M e M não aceita w}

● Ld = Lu = {(w,w)| w não é uma MT codificada corretamente ou M não aceita w}– Nota: se w não é uma MT M codificada, L(M)= , ∅

logo M não aceita w e, portanto, w∈Ld.

Page 38: Aula06

Prova

● Dada uma entrada w, nós podemos decidir se está em Ld seguindo os seguintes passos.

– Verifica se w é um código para MT válida.● Se não é, então sua linguagem é vazia, logo w

pertence a Ld

– Se válido, usa-se U para decidir se w111w ∈ Lu

– Se w111w ∈ Lu, então w ∉ Ld. Senão, w ∈ Ld.

Page 39: Aula06

Prova

Page 40: Aula06

Prova

● Mas nós sabemos que Ld não é RE.

● Portanto, nossa suposição de que Lu é recursiva está errada.

● Logo, Lu é RE, mas não recursiva.

Page 41: Aula06

LinguagensRecursivas

=Decidíveis

LinguagensRE

LinguagensNão RE

Ld

Lu

Estas são indeci-díveis

Linguagens

Page 42: Aula06

Redução

● Uma redução de uma linguagem L para uma linguagem L' é um algoritmo (MT que sempre pára) que usa como entrada uma string w e a converte para uma string x, tal que:– x ∈ L' se e somente se w ∈ L.

Page 43: Aula06

Redução

Conversor MT para L'w xsim sim

MT para L

– x ∈ L' se e somente se w ∈ L.– Redução de L para L'

Page 44: Aula06

Redução

P1 se reduz a P

2

Page 45: Aula06

MT como um tradutor

● Até agora as MT foram consideradas aceitadores de palavras

● Mas, podemos adaptá-las de tal forma que elas possuam fitas de saída, onde uma string é escrita nesta fita apenas se ela parar.

● Dessa forma, a MT traduz sua entrada, escrevendo em sua saída.

Page 46: Aula06

Reduções

● Se reduzirmos L para L' e L' é decidível, então o algoritmo para L' junto com o algoritmo de redução mostram que L também é decidível

● A contrapositiva desta afirmação mostra que: Se L não é decidível, então L' não pode ser também.

Page 47: Aula06

Reduções

● Exemplo: Nós reduzimos Ld para Lu.

Page 48: Aula06

Reduções

● E chegamos a conclusão da contrapositiva, isto é:– Se Lu não é decidível, então, Ld também

não o é.

Page 49: Aula06

Exercícios

● Considere a linguagem– L5 = {M|M possui 5 estados}.

Esta linguagem/problema é decidível, indecidível ou não-RE? Justifique.

Page 50: Aula06

Exercícios

● Considere linguagem A contendo uma única cadeia, s, onde:– s = 0, se vida em Marte nunca será

encontrada.

– s = 1, se algum dia a vida em Marte será encontrada.

A linguagem A é decidível? Justifique. Assuma que a pergunta para questão da vida em Marte seja SIM ou NÃO.

Page 51: Aula06

Exercícios

● O problema/linguagem da parada é enunciado da seguinte forma:– Dada uma MT M, é o conjunto de pares (M,

w) tais que w está em H(M).● H(M) é a linguagem das palavras que são

aceitas por M por parada.

● Mostre que o problema da parada é RE mas não decidível. Dica: use redução.