• Nenhum resultado encontrado

. . . . Similarmente, os problemas de se testar se a linguagem de uma m´aquina de Tu-ring ´e uma linguagem livre-do-contexto, uma linguagem decid´ıvel, ou mesmo uma linguagem finita, podem ser mostrados serem indecid´ıveis com provas semelhantes.

Na verdade, um resultado geral, chamado Teorema de Rice, enuncia que testar qual-quer propriedade das linguagens reconhecidas por m´aquinas de Turing ´e indecid´ıvel.

Damos o Teorema de Rice no Problema 5.22.

At´e agora, nossa estrat´egia para provar que linguagens s˜ao indecid´ıveis envolve uma reduc¸˜ao a partir de . `As vezes reduzir a partir de alguma outra linguagem indecid´ıvel, tal como , ´e mais conveniente quando estamos mostrando que certas linguagens s˜ao indecid´ıveis. O teorema a seguir mostra que testar a equivalˆencia de duas m´aquinas de Turing ´e um problema indecid´ıvel. Poder´ıamos prov´a-lo por uma reduc¸˜ao a partir de , mas usamos essa oportunidade para dar um exemplo de uma prova de indecidibilidade por reduc¸˜ao a partir de . Seja

e s˜aoMT’s e

Teorema 5.4 . . . .

´e indecid´ıvel.

. . . . Id´eia da prova. Mostre que, se fosse decid´ıvel, tamb´em seria decid´ıvel, dando uma reduc¸˜ao de para . A id´eia ´e simples. ´e o problema de se testar se a linguagem de umaMT´e vazia. ´e o problema de se testar se as linguagens de duasMT’s s˜ao a mesma. Se uma dessas linguagens acontece de ser* , acabamos com o problema de se testar se a linguagem da outra m´aquina ´e vazia, ou seja, o problema . Portanto, em um certo sentido, o problema ´e um caso especial do problema no qual uma das m´aquinas est´a fixada para reconhecer a linguagem vazia. Essa id´eia faz com que dar a reduc¸˜ao fique f´acil.

Prova. Supomos que aMT decida e construimos aMT" para decidir da seguinte maneira.

"

“Sobre a entrada , onde ´e umaMT:

1. Roder sobre a entrada

, onde ´e uma MTque rejeita todas as entradas.

2. Se aceita, aceite; se rejeita, rejeite.”

Se decide ,

"

decide . Mas ´e indecid´ıvel pelo Teorema 5.2, portanto tamb´em tem que ser indecid´ıvel.

. . . .

A hist´oria de computac¸˜ao para uma m´aquina de Turing sobre uma entrada ´e sim-plesmente a seq¨uˆencia de configurac¸˜oes pelas quais que a m´aquina passa quando ela processa a entrada. ´E um registro completo da computac¸˜ao dessa m´aquina.

Definic¸˜ao 5.5 . . . . Seja uma m´aquina de Turing e uma cadeia de entrada. Uma hist ´oria de computac¸˜ao de aceitac¸˜ao para sobre ´e uma seq¨uˆencia de configurac¸˜oes

, onde

´e a configurac¸˜ao inicial de sobre , ´e uma configurac¸˜ao de aceitac¸˜ao de , e cada

"

legitimamente segue de

" conforme as regras de . Uma hist ´oria de computac¸˜ao de rejeic¸˜ao para sobre ´e definida similarmente, exceto que ´e uma configurac¸˜ao de rejeic¸˜ao.

Hist´orias de computac¸˜ao s˜ao seq¨uˆencias finitas. Se n˜ao p´ara sobre , nenhuma hist´oria de computac¸˜ao de aceitac¸˜ao ou de rejeic¸˜ao existe para sobre . M´aquinas determin´ısticas tˆem no m´aximo uma hist´oria de computac¸˜ao sobre qualquer entrada.

M´aquinas n˜ao-determin´ısticas podem ter muitas hist´orias de computac¸˜ao sobre uma

´unica entrada, correspondendo aos v´arios ramos da computac¸˜ao. Por enquanto, conti-nuamos a nos concentrar em m´aquinas determin´ısticas. Nossa primeira prova de inde-cidibilidade usando o m´etodo da hist´oria de computac¸˜ao concerne um tipo de m´aquina chamada autˆomato linearmente limitado.

Definic¸˜ao 5.6 . . . . Um autˆomato linearmente limitado ´e um tipo restrito de m´aquina de Turing no qual a cabec¸a da fita n˜ao pode mover para fora da parte da fita contendo a entrada. Se a ´maquina tentar mover sua cabec¸a para fora de qualquer uma das extremidades da entrada, a cabec¸a permanece onde est´a, da mesma maneira que a cabec¸a n˜ao mover´a para fora da extremidade esquerda da fita de uma m´aquina de Turing comum.

Um autˆomato linearmente limitado ´e uma m´aquina de Turing com uma quantidade limitada de mem´oria, como mostrado esquematicamente na Figura 5.1. Ele pode re-solver somente problemas que requerem mem´oria que pode caber dentro da fita usada para a entrada. Usando um alfabeto de fita maior que o alfabeto de entrada permite a mem´oria dispon´ıvel a ser aumentada de at´e um fator constante. Da´ı dizemos que para uma entrada de comprimento , a quantidade de mem´oria ´e linear em —da´ı o nome desse modelo.

Figura 5.1: Esquema de um autˆomato linearmente limitado

A despeito de sua restric¸˜ao de mem´oria, autˆomatos linearmente limitados s˜ao bas-tante poderosos. Por exemplo, os decisores para , , , e todos s˜ao ALL’s. TodaLLCpode ser decidida por umALL. Na verdade, chegar a uma linguagem decid´ıvel que n˜ao pode ser decidida por umALLd´a algum trabalho. Desenvolvemos as t´ecnicas para fazer isso no Cap´ıtulo 9.

Aqui, ´e o problema de se testar se umALLaceita sua entrada. Muito embora

seja o mesmo que o problema indecid´ıvel onde a m´aquina de Turing ´e restrita a ser umALLm podemos mostrar que ´e decid´ıvel. Seja

´e umALLque aceita a cadeia

Antes de provar a decidibilidade de , achamos que o lema a seguir ´e ´util. Ele diz que umALLpode ter somente um n´umero limitado de configurac¸˜oes quando uma cadeia de comprimento ´e a entrada.

Lema 5.7 . . . . Seja umALLcom estados e s´ımbolos no alfabeto de s´ımbolo. Existem exata-mente configurac¸˜oes distintas de para uma fita de comprimento .

Prova. Lembremo-nos de que uma configurac¸˜ao de ´e como um retrato instantˆaneo no meio de sua computac¸˜ao. Uma configurac¸˜ao consiste do estado do controle, posic¸˜ao da cabec¸a, e conte´udo da fita. Aqui, tem estados. O comprimento de sua fita ´e , portanto a cabec¸a pode estar em uma das posic¸˜oes, e poss´ıveis cadeias de s´ımbolos de fita aparecem na fita. O produto dessas trˆes quantidades ´e o n´umero total de diferentes configurac¸˜oes de com uma fita de comprimento .

. . . . Teorema 5.8 . . . .

´e decid´ıvel.

. . . . Id´eia da prova. De modo a decidir se oALL aceita a entrada , simulamos sobre

. No decorrer da simulac¸˜ao, se p´ara e aceita ou rejeita, aceitamos ou rejeitamos conformemente. A dificuldade ocorre se entra em loop sobre . Precisamos de ser capazes de detectar a entrada em loop de modo que possamos parar e rejeitar.

A id´eia para detectar quando est´a em loop ´e que, `a medida que computa sobre , ela continua a repetir essa configurac¸˜ao muitas e muitas vezes e por conse-guinte est´a em loop. Devido ao fato de ´e umALL, a quantidade de fita que lhe ´e dispon´ıvel ´e limitada. Pelo Lema 5,7, pode estar em somente um n´umero limitado de configurac¸˜oes sobre essa quantidade de fita. Portanto somente uma quantidade limi-tada de tempo est´a dispon´ıvel a antes que ela entre em alguma configurac¸˜ao em que ela tenha entrado anteriormente. Detectar que est´a em loop ´e poss´ıvel simulando

para o n´umero de passos dado pelo Lema 5.7. se n˜ao parou at´e a´ı, ela tem que estar em loop.

Prova. O algoritmo que decide ´e o seguinte.

“Sobre a entrada

, onde ´e umALLe ´e uma cadeia:

1. Simule sobre por passos ou at´e que ela p´are.

2. Se parou, aceite se ela aceitou e rejeite se ela rejeitou. Se ela n˜ao parou, rejeite.”

Se sobre n˜ao parou dentro de passos, ela tem que estar repetindo uma configurac¸˜ao de acordo com o Lema 5.7 e portanto em loop. ´E por isso que nosso algoritmo rejeita nessa instˆancia.

. . . . O Teorema 5.8 mostra queALL’s eMT’s diferem de uma maneira essencial: Para ALL’s o problema da aceitac¸˜ao ´e decid´ıvel, mas paraMT’s n˜ao o ´e. Entretanto, alguns outros problemas envolvendoALL’s permanecem indecid´ıveis. Uma ´e o problema da vacuidade

´e umALLonde

*

. Para provar que ´e indecid´ıvel, damos uma reduc¸˜ao que usa o m´etodo da hist´oria de computac¸˜ao.

Teorema 5.9 . . . .

´e indecid´ıvel.

. . . . Id´eia da prova. Esta prova ´e por reduc¸˜ao a partir de . Mostramos que, se fosse decid´ıvel, tamb´em seria. Suponha que seja decid´ıvel. Como podemos usar essa suposic¸˜ao para decidir ?

Para umaMT e uma entrada podemos determinar se aceita construindo um certoALL e a´ı testar se

´e vazia. A linguagem que reconhece compreende todas as hist´orias de computac¸˜ao para sobre . Se aceita , essa linguagem cont´em uma cadeia e portanto ´e n˜ao-vazia. Se n˜ao aceita , essa linguagem ´e vazia.

Se podemos determinar se a linguagem de ´e vazia, claramente podemos determinar se aceita .

Agora descrevemos como construir partir de e . Note que precisamos mos-trar mais que a mera existˆencia de . Temos que mostrar como uma m´aquina de Turing pode obter uma descric¸˜ao de dadas as descric¸˜oes de e .

Construimos para aceitar sua entrada

se

´e uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre . Relembremo-nos que uma hist´oria de computac¸˜ao de aceitac¸˜ao ´e a seq¨uˆencia de configurac¸˜oes,

pela qual passa quando ela aceita alguma cadeia . Para os prop´ositos desta prova assumimos que a hist´oria de computac¸˜ao de aceitac¸˜ao ´e apresentada como uma ´unica cadeia, com as configurac¸˜oes separadas uma da outra pelo s´ımbolo #, como mostrado na Figura 5.2.

#

( )& '

#

( )& '

#

( ) & '

# #

( ) & '

#

Figura 5.2: Uma poss´ıvel entrada para

O ALL funciona da seguinte maneira. Quando ele recebe uma entrada

, supostamente aceita

se

´e uma computac¸˜ao de aceitac¸˜ao para sobre . Primeiro,

quebra

conforme os delimitadores em cadeias

. Ent˜ao verifica se a

"

satisfaz as trˆes condic¸˜oes de uma hist´oria de computac¸˜ao:

1. ´e uma configurac¸˜ao inicial para sobre . 2. Cada

" legimitamente segue de

"

. 3. ´e uma configurac¸˜ao de aceitac¸˜ao para .

A configurac¸˜ao inicial para sobre ´e a cadeia , , onde ´e o estado inicial para sobre . Aqui, tem essa cadeia diretamente embutida, de modo que ela seja capaz de verificar a primeira condic¸˜ao. Uma configurac¸˜ao de aceitac¸˜ao ´e uma que cont´em o estado , portanto pode verificar a terceira condic¸˜ao fazendo uma varredura em por . A segunda condic¸˜ao ´e a mais dif´ıcil de verificar. Para cada par de configurac¸˜oes adjacentes, verifica se

"

legitimamente segue de

"

. Esse passo envolve verificar que

"

e

"

s˜ao idˆenticas exceto pelas posic¸˜oes sob e adjacente `a cabec¸a en

"

. Essas posic¸˜oes tˆem que ser atualizadas conforme a func¸˜ao

de transic¸˜ao de . Ent˜ao, verifica que a atualizac¸˜ao foi feita corretamente fazendo um zigue-zague entre posic¸˜oes correspondentes de

"

e

"

. Para manter o registro das posic¸˜oes correntes enquanto faz o zigue-zague, marca a posic¸˜ao corrente com pontos sobre a fita. Finalmente, se as condic¸˜oes 1, 2, e 3 s˜ao satisfeitas, aceita sua entrada.

Note que oALL n ˜ao ´e constru´ıdo para os prop´ositos de verdadeiramente rod´a-lo sobre alguma entrada—uma confus˜ao comum. Construimos somente para o prop´osito de alimentar uma descric¸˜ao de num decisor para que assumimos existir. Uma vez que esse decisor retorna sua resposta podemos invertˆe-la para obter a resposta se aceita . Por conseguinte podemos decidie , uma contradic¸˜ao.

Prova. Agora estamos prontos para enunciar a reduc¸˜ao de para . Suponha que aMT decida . Construa aMT

"

que decide da seguinte forma.

"

“Sobre a entrada

, onde ´e umaMTe ´e uma cadeia:

1. Construa oALL a partir de e conforme descrito na id´eia da prova.

2. Rode sobre a entrada .

3. Se rejeita, aceite; se aceita, rejeite.”

Figura 5.3: OALL verificando uma hist´oria de computac¸˜ao de umaMT

Se aceita , ent˜ao

* . Por conseguinte n˜ao tem hist´oria de computac¸˜ao de aceitac¸˜ao sobre e n˜ao aceita . Consequentemente

"

rejeita

. Similarmente se rejeita , a linguagem de ´e n˜ao-vazia. A ´unica cadeia que pode aceitar ´e uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre . Por-tanto tem que aceitar . Consequentemente,

"

aceita

. A Figura 5.3 mostra tal verificac¸˜ao de uma hist´oria de computac¸˜ao de umaMT.

. . . . Podemos tamb´em usar a t´ecnica de reduc¸˜ao via hist´orias de computac¸˜ao para es-tabelecer a indecidibilidade de certos problemas relacionados a gram´aticas livres-do-contexto e autˆomatos a pilha. Relembremo-nos de que no Teorema 4.7 apresentamos um algoritmo para decidir se uma gram´atica livre-do-contexto gera alguma cadeia, ou seja, se

* . Agora mostramos que um problema relacionado ´e indecid´ıvel.

E o problema de se testar se uma gram´atica livre-do-contexto gera todas as cadeias´ poss´ıveis. Provar que esse problema ´e indecid´ıvel ´e o passo principal na demostrac¸˜ao de que o problema da equivalˆencia para gram´aticas livres-do-contexto ´e indecid´ıvel.

Seja

"

´e umaGLCe

Teorema 5.10 . . . .

"

´e indecid´ıvel.

Prova. Esta prova ´e por contradic¸˜ao. Para obter a contradic¸˜ao assumimos que

"

´e decid´ıvel e usamos essa suposic¸˜ao para mostrar que ´e decid´ıvel. Esta prova ´e se-melhante `aquela do Teorema 5.9 mas com um pequeno truque extra: Ela ´e uma reduc¸˜ao de via hist´orias de computac¸˜ao, mas temos que modificar a representac¸˜ao das hist´orias de computac¸˜ao levemente por uma raz˜ao t´ecnica que explicamos mais adi-ante.

Agora descrevemos como usar um procedimento de decis˜ao para

"

para

decidir . Para umaMT e uma entrada construimos umaGLC que gera todas as cadeias se e somente se n˜ao aceita . Portanto, se n˜ao aceita , n ˜ao gera alguma cadeia espec´ıfica. Essa cadeia ´e—adivinhe—a hist´oria de computac¸˜ao de aceitac¸˜ao para sobre . Ou seja, ´e projetada para gerar todas as cadeias que n ˜ao s˜ao hist´orias de computac¸˜ao de aceitac¸˜ao para sobre .

Para fazer a GLC gerar todas as cadeias que falhem em ser uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre , utilizamos a seguinte estrat´egia. Uma cadeia pode falhar em ser uma hist´oria de computac¸˜ao de aceitac¸˜ao por v´arias raz˜oes. Uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre aparece como # # # # #, onde

"

´e a hist´oria de computac¸˜ao para no

.

-´esimo passo da computac¸˜ao sobre . Ent˜ao gera todas as cadeias que

1. n˜ao comec¸am com ,

2. n˜ao terminam com uma configurac¸˜ao de aceitac¸˜ao, ou 3. onde algum

"

n˜ao leva corretamente a

"

sob as regras de .

Se n˜ao aceita , nehuma hist´oria de computac¸˜ao de aceitac¸˜ao existe, portanto todas as cadeias falham de uma maneira ou de outra. Por conseguinte geraria todas as cadeias, como desejado.

Agora vamos `a verdadeira construc¸˜ao de . Ao inv´es de construir , construimos umAP . Sabemos que podemos usar a construc¸˜ao dada no Teorema 2.12 na p´agina 106 para converter para umaGLC. Fazemos isso porque, para nossos prop´ositos, projetar umAP´e mais f´acil que projetar umaGLC. Nesta instˆancia, comec¸ar´a ra-mificando n˜ao-deterministicamente para adivinhar qual das trˆes condic¸˜oes anteriores verificar. Um ramo verifica se o comec¸o da cadeia de entrada ´e e aceita se n˜ao o ´e.

Um outro ramo verifica se a cadeia de entrada termina com uma configurac¸˜ao contendo o estado de aceitac¸˜ao, , aceita se n˜ao o ´e.

O terceiro ramo dever´a aceitar se alguma

"

n˜ao leva corretamente a

"

. Ele funciona fazendo uma varredura na entrada at´e que ele n˜ao-deterministicamente decide que ela veio para

"

. A seguir, ele empilha

"

at´e que ele chega no final marcado pelo s´ımbolo #. Ent˜ao, desempilha para comparar com

" . Elas deveriam casar exceto em torno da posic¸˜ao da cabec¸a onde a diferenc¸a ´e ditada pela func¸˜ao de transic¸˜ao de

. Finalmente, aceita se ´e descasamento ou uma atualizac¸˜ao incorreta.

O problema com essa id´eia ´e que, quando desempilha

"

, ela est´a na ordem reversa e n˜ao est´a adequada para comparac¸˜ao com

"

. Nesse ponto o truque na prova aparece: Escrevemos uma hist´oria de computac¸˜ao de aceitac¸˜ao diferentemente.

Alternadamente, uma em cada configurac¸˜ao aparece na ordem reversa. As posic¸˜oes

´ımpares permanecem escritas na ordem de-tr´as-para-a-frente, mas as posic¸˜oes pares s˜ao escritas de-frente-para-tr´as. Por conseguinte uma hist´oria de computac¸˜ao de aceitac¸˜ao apareceria como mostrado na Figura 5.4.

#

&

( ) & '

#

&

( )& '

#

&

( ) & '

#

&

( )& '

# , #

&

( ) & '

#

Figura 5.4: Alternadamente, uma em cada duas configurac¸˜oes escritas em ordem revers Nessa forma modificada oAP´e capaz de empilhar uma configurac¸˜ao de modo que quando ela ´e desempilhada a ordem est´a adequada para comparac¸˜ao com a pr´oxima.

Projetamos para aceitar qualquer cadeia que n˜ao ´e uma hist´oria de computac¸˜ao de aceitac¸˜ao na forma modificada.

5.2 Um problema indecid´ıvel simples . . . .

Nesta sec¸˜ao mostramos que o fenˆomeno da indecidibilidade n˜ao est´a confinado a pro-blemas concernentes a autˆomatos. Damos um exemplo de um problema indecid´ıvel concernente a simples manipulac¸˜oes de cadeias. ´E chamado o problema da corres-pondˆencia de Post, ou PCP.

Podemos descrever esse problema facilmente como um tipo de charada. Comec¸amos com uma colec¸˜ao de domin´os, cada um combinando duas cadeias, uma em cada lado.

Um domin´o individual tem a seguinte aparˆencia a ab e uma colec¸˜ao de domin´os ´e da forma

b ca

a

ab

ca

a

abc c

O trabalho ´e fazer uma lista desses domin´os (repetic¸˜oes permitidas) de modo que a cadeia que obtemos lendo os s´ımbolos em cima ´e a mesma que a cadeia de s´ımbolos embaixo. Essa lista ´e chamada um emparelhamento. Por exemplo, a seguinte lista ´e um emparelhamento para essa charada.

a ab

b ca

ca a

a ab

abc c

Lendo a cadeia de cima obtemosabcaaabc, que ´e a mesma ao ler a de baixo. Pode-mos ilustrar esse emparelhamento deformando os domin´os de modo que os s´ımbolos correspondentes de cima e de baixo se alinham.

Para algumas colec¸˜oes de domin´os encontrar um emparelhamento pode n˜ao ser poss´ıvel. Por exemplo, a colec¸˜ao

abc ab

ca

a

acc

ba

n˜ao pode conter um emparelhamento porque toda cadeia de cima ´e maior que a cadeia de baixo correspondente.

O problema da correspondˆencia de Post ´e determinar se uma colec¸˜ao de domin´os tem um emparelhamento. Esse problema ´e insol´uvel por algoritmos.

Antes de chegar ao enunciado formal desse teorema e sua prova, vamos enunciar o problema precisamente e ent˜ao express´a-lo como uma linguagem. Uma instˆancia do PCP ´e uma colec¸˜ao de domin´os

e um emparelhamento ´e uma seq¨uˆencia

. .

.

, onde

" "

"

" "

,

"

. O problema ´e determinar se tem um emparelhamento. Seja

´e uma instˆancia do problema da correspondˆencia de Post com um emparelhamento

.

Teorema 5.11 . . . .

´e indecid´ıvel.

. . . . Id´eia da prova. Conceitualmente esta prova ´e simples, embora tenha muitos detalhes t´ecnicos. A t´ecnica principal ´e reduc¸˜ao a partir de via hist´orias de computac¸˜ao de aceitac¸˜ao. Mostramos que de qualquerMT e entrada podemos construir uma instˆancia onde um emparelhamento ´e uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre . Se pud´essemos determinar se a instˆancia tem um emparelhamento, ser´ıamos capazes de determinar se aceita .

Como podemos construir de modo que o emparelhamento seja uma hist´oria de computac¸˜ao de aceitac¸˜ao para sobre ? Escolhemos os domin´os em de modo que fazer um emparelhamento forc¸a que uma simulac¸˜ao de ocorra. No empare-lhamento, cada domin´o liga uma posic¸˜ao ou posic¸˜oes em uma configurac¸˜ao com a(s) correspondente(s) na pr´oxima configurac¸˜ao.

Antes de chegar `a construc¸˜ao tratamos dois pequenos detalhes t´ecnicos. (N˜ao se preocupe demais com eles na sua primeira leitura dessa construc¸˜ao.) Primeiro, por con-veniˆencia em construir , assumimos que sobre nunca tenta mover sua cabec¸a para fora da extremidade esquerda da fita. Isso requer primeiro alterar para evitar esse comportamento. Segundo, modificamos o PCP para requerer que um emparelha-mento comece com o primeiro domin´o

Mais adiante mostramos como eliminar esse requisito. Chamamos esse problema o problema da correspondˆencia de Post modificado, PCPM. Seja

´e uma instˆancia do problema da correspondˆencia de Post com um emparelhamento que comec¸a com o primeiro domin´o

. Agora vamos aos detalhes da prova e projetar para simular sobre .

Prova. Supomos que aMT decide o PCP e construimos

"

que decide . Seja