• Nenhum resultado encontrado

Limites do m´etodo de diagonaliza¸c˜ ao

No documento Classes de Complexidade (páginas 79-84)

No essencial o m´etodo de diagonaliza¸c˜ao consiste na simula¸c˜ao de uma m´aquina de Turing por outra. A simula¸c˜ao ´e feita de tal modo que a m´aquina que simula pode determinar o comportamento da outra m´aquina e depois comporta-se de modo diferente. Suponh´amos que d´avamos a estas m´aquinas o mesmo or´aculo. Assim sempre que a m´aquina simulada consulta o or´aculo, o simulador tamb´em pode consultar e portanto a simula¸c˜ao pode continuar como inicialmente. Assim qualquer teorema provado usando diagonaliza¸c˜ao tamb´em ser´a v´alido se as m´aquinas tiverem o mesmo or´aculo.

Em particular, se P 6= NP fosse demonstrado usando diagonaliza¸c˜ao tamb´em PC 6= NPC para

qualquer or´aculo C.

O teorema seguinte mostra que existe A tal que PA= NPApelo que a diagonaliza¸c˜ao n˜ao pode

separar as duas classes. Tamb´em n˜ao permite provar que P = NP porque existe um or´aculo B tal que PB6= NPB.

Teorema 3.5.1

1. Existe um or´aculo recursivo A tal que PA= NPA.

2. Existe um or´aculo recursivo B tal que PB6= NPB.

Dem. O or´aculo A ´e f´acil. Basta tomar A o problema QSAT (TQBF) ou outro qualquer problema PSPACE-compelto. Ent˜ao

PSPACE ⊆ PQSAT⊆NPQSAT⊆NPSPACEQSAT⊆NPSPACE ⊆ PSPACE

A primeira inclus˜ao verifica-se porque uma linguagem em PSPACE pode-se reduzir poli- nomialmente a QSAT. A pen´ultima inclus˜ao, porque em NPSPACE n˜ao necessitamos de consultar o or´aculo (isto ´e, podemos calcular as respostas a QSAT). Conclui-se ent˜ao que NPQSAT⊆PQSAT.

Vamos agora construir o or´aculo B. Ideia: B ´e tal que existe LB ∈NPB e garantidamente

precisa de pesquisa de for¸ca bruta de tal forma que LB n˜ao pode estar em PB. A constru¸c˜ao

considera todas as m´aquinas polinomiais com or´aculo e garante que nenhuma decide LB.

Suponhamos que Σ ´e um alfabeto com pelo menos dois elementos. Seja C ∈ Σ? um or´aculo

e seja

LC = {x ∈ Σ? | ∃y ∈ C, |y| = |x|}

A linguagem LC pode ser aceite por uma MTON N com or´aculo C que opera do seguinte

modo. Com dados x , adivinha uma string y com o mesmo comprimento que x e consulta o or´aculo para determinar se y ∈ C. Independentemente da classe do or´aculo, ´e um algoritmo n˜ao determin´ıstico polinomial e portanto LC ∈NPC.

Por diagonaliza¸c˜ao constru´ı-se um or´aculo B tal que LB6= OB para toda a MTO polinomial

com or´aculo. Isto ´e LB ∈ NPB \PB. A ideia por tr´as da constru¸c˜ao ´e que uma MTO M

polinomial s´o tem tempo de fazer um n´umero polinomial de perguntas ao or´aculo mas existe um n´umero exponencial de strings para cada comprimento n dos dados. Isto permite ajustar o or´aculo para incluir ou retirar strings n˜ao consideradas por M o que leva a que esteja sempre errada. Seja M0, M1, . . . a lista de todas as MTO’s limitadas em tempo polinomial.

Suponhamos que cada Mi tem um rel´ogio e um parˆametro c tal que Mi para ap´os nc passos.

Ent˜ao para cada i, o limite temporal ncde M

i´e reconhec´ıvel na descri¸c˜ao de Mi. Constru´ımos

um or´aculo B como o limite duma sequˆencia de aproxima¸c˜oes finitas. Cada aproxima¸c˜ao Bk

´e uma fun¸c˜ao parcial f : Σ? −→ {0, 1} com dom´ınio finito tal que

Bk(x) =          1 se x ∈ B 0 se x /∈ B ⊥ caso contr´ario

Temos que Bkv Bk+1isto ´e Bk+1est´a definido sempre que Bkest´a e se ambos est˜ao definidos

tˆem o mesmo valor.

Na constru¸c˜ao, o seguinte invariante verifica-se. Para cada Bk qualquer extens˜ao total C de

Bk e para i ≤ k existe um x tal que

MiC aceita x ⇔ x /∈ LC (3.1)

⇔ C n˜ao contem elementos de comprimento |x| (3.2) No est´agio 0 temos B0 = ⊥. Suponhamos que temos Bk. Consideramos Mk uma M T O tal

que TMk(n) = n

c. Seja n maior que o comprimento de todos os elementos do dom´ınio de B k1

e suficientemente grande para que 2n> nc.

1

• Inicialmente Bk+1 = Bk.

• Simulamos Mk com dados de tamanho n, p.e an.

• Sempre que Mk se prepara para consultar o or´aculo numa string y, se Bk+1(y) 6= ⊥,

devolve-se Bk+1(y).

• Se Bk+1(y) = ⊥, define-se Bk+1(y) = 0, e devolve-se o valor 0.

• A MTO Mk continua a execu¸c˜ao e ou aceita ou rejeita

Ajustamos o or´aculo de modo a que Mk n˜ao possa aceitar LC. Como Mk corre em tempo

nc≤ 2n, existe pelo menos uma string de tamanho n que nunca foi sujeita ao or´aculo por M k,

e portanto Bk+1 est´a ainda indefinido. Se Mk aceitou, define-se Bk+1(y) = 0, para todos os y

de tamanho n tal que Bk+1(y) = ⊥. Se Mk rejeita, Bk+1(y) = 1, Estes ajustes n˜ao afectam

a computa¸c˜ao de Mk com dados an, porque nunca foram sujeitos ao or´aculo.

Ent˜ao para qualquer fun¸c˜ao total C que extende Bk+1 tem-se que ?? se verifica isto ´e se

an∈ L(MC

k ) ent˜ao an∈ L/ C. E se an∈ L(M/ k) ent˜ao an∈ LC. Ent˜ao L(MkC) 6= LC.

Se B for uma extens˜ao total de todos os Bk, k ≥ 0, ent˜ao garantidamente L(MkB) 6= LB para

Cap´ıtulo 4

Alternˆancia

Alternˆancia generaliza n˜ao determinismo e ´e ´util para estabelecer rela¸c˜oes entre classes de comple- xidade e classificar problemas de acordo com a sua complexidade [CKS81]. Sendo outra medida de complexidade permite estabelecer rela¸c˜oes entre as complexidades de espa¸co e de tempo. Relaciona- se tamb´em com conjuntos de f´ormulas da l´ogicas e estrat´egias ganhadores em jogos de tabuleiro.

Num processo n˜ao determin´ıstico existem pontos de escolha e segue-se um caminho de escolhas aceitando se existe um caminho que leva `a aceita¸c˜ao. Isto pode ser visto como um sistema multipro- cessador com um n´umero ilimitado de processadores potenciais. A m´aquina come¸ca num processo raiz na configura¸c˜ao inicial. Calcula como uma MT normal at´e chegar a um ponto de escolha n˜ao determin´ıstica. Nesse ponto bifurca em diversos processos independentes e espera a resposta de um dos processos. Cada processo continua a execu¸c˜ao. E assim sucessivamente ao longo da ´arvore de computa¸c˜ao. Se existirem m configura¸c˜oes `a profundidade i ent˜ao haver´a m processos paralelos independentes executando ao mesmo tempo no instante i. Quando um processo entra num estado de aceita¸c˜ao envia um 1 ao processo pai e termina. Se rejeita, envia um 0 e tamb´em termina. O processo (pai) que est´a suspenso quando recebe um 1, envia o 1 ao seu pai e termina. Se receber um 0, continua `a espera que outro subprocesso termine. Se todos os subprocessos terminam com 0, ele envia um 0 ao seu pai e termina. Os dados de entrada s˜ao aceites se 1 for enviado ao processo raiz. Isto este mecanismo corresponde `a avalia¸c˜ao l´ogica de uma disjun¸c˜ao (∨) das mensagens enviadas pelos subprocessos num dado n´ıvel (pelo menos um tem de enviar um 1). Assim podemos tamb´em considerar o caso em que para se aceitar ´e necess´ario que todos subprocessos levem `a aceita¸c˜ao o que equivale a avaliar a conjun¸c˜ao (∧) de mensagens dos subprocessos (ver Figura 4.1). Uma configura¸c˜ao na ´arvore de computa¸c˜ao ´e ∨ ou ∧ consoante o estado ´e ∨ ou ∧. O nome alternˆancia tem haver com a alternˆancia de n´os ∨ e ∧. Podemos mesmo incluir tamb´em n´os ¬ que invertem o valor recebido.

Em termos de classes de complexidade iremos ver que tempo alternado ´e o mesmo que espa¸co determin´ıstico e espa¸co alternado ´e exponencialmente maior que tempo determin´ıstico

Figura 4.1: N˜ao determinismo e alternˆancia

No documento Classes de Complexidade (páginas 79-84)