• Nenhum resultado encontrado

Nesta se¸c˜ao veremos brevemente como a alternˆancia de quantificadores utilizada na defini¸c˜ao da hierarquia polinomial pode ser transferida para dentro das m´aquinas de Tu- ring. Essas ideias ser˜ao ´uteis na demonstra¸c˜ao de alguns resultados da se¸c˜ao 4.3. As m´aquinas de Turing alternantes foram definidas pela primeira vez no artigo de Chandra et al. [20].

Uma configura¸c˜ao de uma m´aquina de Turing ´e uma descri¸c˜ao completa do estado da computa¸c˜ao da m´aquina. Note que, para determinarmos o pr´oximo passo de uma m´aquina de Turing, basta conhecermos o conte´udo atual das fitas, o estado atual da m´aquina e a posi¸c˜ao de cada cabe¸ca de leitura. Se M ´e uma m´aquina de Turing, dizemos que esse conjunto de parˆametros ´e uma configura¸c˜ao de M .

A computa¸c˜ao de uma m´aquina de Turing n˜ao-determin´ıstica M (que sempre termina sua computa¸c˜ao) com entrada x pode ser vista como uma ´arvore finita de configura¸c˜oes, de modo que existe uma aresta direcionada ligando as configura¸c˜oes C e C0 se e somente se C0 pode ser obtida a partir de C atrav´es da aplica¸c˜ao de uma das fun¸c˜oes de transi¸c˜ao de M , ou seja, em um passo de computa¸c˜ao. A configura¸c˜ao inicial descreve o estado de M antes do primeiro passo de computa¸c˜ao. As folhas da ´arvore (v´ertices com grau de sa´ıda zero) representam passos finais da computa¸c˜ao de M , ou seja, configura¸c˜oes onde o estado ´e de aceita¸c˜ao ou de rejei¸c˜ao. Observe que M aceita a entrada x se e somente se existe um caminho na ´arvore do v´ertice que representa a configura¸c˜ao inicial at´e um v´ertice que descreve uma configura¸c˜ao em que M se encontra no estado de aceita¸c˜ao.

As m´aquinas de Turing alternantes (MTAs) generalizam naturalmente o conceito de n˜ao-determinismo em computa¸c˜ao. A ´unica diferen¸ca entre uma MTND e uma MTA ´e que a ´ultima possui uma parti¸c˜ao no seu conjunto de estados que induz uma nova regra de aceita¸c˜ao para a palavra de entrada.

Defini¸c˜ao 4.15. [M´aquinas de Turing Alternantes]. Uma m´aquina de Turing alternante (MTA) ´e uma m´aquina de Turing n˜ao-determin´ıstica M onde o conjunto de estados ´e dado

4.2. Alternˆancia 67

por Q = Q∃∪ Q∀, sendo Q∃ e Q∀ conjuntos disjuntos. Seja x ∈ {0, 1}? uma palavra, e considere a ´arvore da computa¸c˜ao de M com entrada x, ou seja, a ´arvore de configura¸c˜oes discutida anteriormente.

Vamos utilizar essa ´arvore para definir recursivamente se M aceita a entrada x. Pri- meiro, todas as folhas da ´arvore de configura¸c˜ao com o estado de aceita¸c˜ao s˜ao definidas como configura¸c˜oes de aceita¸c˜ao. Uma configura¸c˜ao C com estado q ∈ Q∀ ´e uma con- figura¸c˜ao de aceita¸c˜ao se e somente se todos os v´ertices sucessores de C na ´arvore s˜ao configura¸c˜oes de aceita¸c˜ao. Por outro lado, uma configura¸c˜ao C com estado q ∈ Q∃ ´e uma configura¸c˜ao de aceita¸c˜ao se e somente se existe na ´arvore algum v´ertice sucessor de C que ´e uma configura¸c˜ao de aceita¸c˜ao. Observe que isso rotula todos os v´ertices como configura¸c˜oes de aceita¸c˜ao ou rejei¸c˜ao. Finalmente, dizemos que M aceita x (ou seja, M (x) = 1) se a configura¸c˜ao inicial ´e uma configura¸c˜ao de aceita¸c˜ao.

Uma linguagem L ´e decidida por uma m´aquina de Turing alternante M quando x ∈ L se e somente se M (x) = 1. A defini¸c˜ao da complexidade de tempo e de espa¸co de uma MTA n˜ao sofre nenhuma altera¸c˜ao em rela¸c˜ao `as mesmas defini¸c˜oes para MTNDs.

O leitor interessado em exemplos de m´aquinas de Turing alternantes pode consultar o livro de Sipser [103].

Defini¸c˜ao 4.16. [Alternˆancia e Classes de Complexidade]. Seja f : N → N uma fun¸c˜ao. Uma linguagem L ⊆ {0, 1}? pertence a classe ATIME(f (n)) se existe uma m´aquina de Turing alternante M que decide L em tempo O(f (n)). Similarmente, dizemos que L pertence a classe ASPACE(f (n)) se existe uma m´aquina de Turing alternante M que decide L em espa¸co O(f (n)).

De modo an´alogo `as classes de complexidade P e PSPACE, temos as classes AP e APSPACE.

Defini¸c˜ao 4.17. [Classes Alternantes].

Definimos as seguintes classes de complexidade alternantes: (i) AP =S k≥1ATIME(n k); (ii) APSPACE =S k≥1ASPACE(n k); (iii) AEXP = S k≥1ATIME(2n k ).

A alternˆancia nos fornece uma nova caracteriza¸c˜ao para diversas classes de complexi- dade estudadas anteriormente.

Teorema 4.18. [Rela¸c˜ao entre ATIME e ASPACE]. Seja f (n) : N → N uma fun¸c˜ao com f (n) ≥ n para todo natural n. Temos as seguintes inclus˜oes de classe:

(i) ATIME(f (n)) ⊆ SPACE(f (n)) ⊆ ATIME(f2(n)). (ii) ASPACE(f (n)) = TIME(2O(f (n))).

Demonstra¸c˜ao. A demonstra¸c˜ao desse resultado pode ser encontrada no livro de Sipser [103].

Corol´ario 4.19. (i) AP = PSPACE. (ii) APSPACE = EXP. (iii) AEXP = EXPSPACE.

O corol´ario anterior sugere que a introdu¸c˜ao de alternˆancia aumenta significativamente o poder das classes de complexidade envolvidas (compare o corol´ario com o teorema3.11). Limitando o n´umero de alternˆancias, podemos obter uma nova caracteriza¸c˜ao dos diversos n´ıveis da hierarquia polinomial.

Defini¸c˜ao 4.20. Seja T (n) : N → N uma fun¸c˜ao arbitr´aria. Para todo inteiro positivo k, dizemos que uma linguagem L pertence `a classe de complexidade Σpk-TIME(T (n)) se existe uma m´aquina de Turing alternante M que decide L em tempo O(T (n)) tal que: (1) o estado inicial de M pertence ao conjunto Q∃; (2) para toda entrada x e para todo caminho na ´arvore de configura¸c˜oes da computa¸c˜ao de M com entrada x, existe uma alternˆancia de tamanho m´aximo k − 1 entre configura¸c˜oes com estado em Q∃ e Q∀. Teorema 4.21. [Alternancia e PH].

Para todo k ∈ N, temos Σpk = S

c≥1Σ p

k-TIME(n c).

Demonstra¸c˜ao. Seja L ∈ Σpk. Ent˜ao existe uma m´aquina de Turing M de tempo polino- mial e um polinˆomio q(.) tal que:

x ∈ L ⇔ ∃w1 ∈ {0, 1}q(|x|) ∀w2 ∈ {0, 1}q(|x|). . . Qkwk ∈ {0, 1}q(|x|) M (x, w1, . . . , wk) = 1, A seguinte m´aquina “Σpk-alternante” decide a linguagem L:

1) Gera n˜ao-deterministicamente com estados existenciais uma palavra w1 ∈ {0, 1}q(|x|). 2) Gera n˜ao-deterministicamente com estados universais uma palavra w2 ∈ {0, 1}q(|x|).

.. .

4.2. Alternˆancia 69

k) Gera atrav´es do seu n˜ao-determinismo uma palavra wk ∈ {0, 1}q(|x|). O tipo dos estados utilizados durante a gera¸c˜ao dessa palavra depende da paridade de k.

Simula deterministicamente com estados do mesmo tipo utilizados na etapa anterior a computa¸c˜ao de M com entrada hx, w1, . . . , wki. Nosso algoritmo aceita x se e somente se M aceita essa entrada. Observe que, em partes determin´ısticas da computa¸c˜ao, o tipo de estado n˜ao altera o conjunto de configura¸c˜oes de aceita¸c˜ao final.

Note que esse algoritmo alternante computa em tempo polinomial. Al´em disso, ocorre exatamente k − 1 alternˆancias entre estados existencias e universais. Finalmente, segue pela defini¸c˜ao de aceita¸c˜ao por MTAs que nosso algoritmo decide a linguagem L, ou seja, L ∈ Σpk-TIME(nc) para alguma constante c adequada.

Suponha agora que L ∈ Σpk-TIME(nc) para alguma constante c ≥ 1. Em outras palavras, existe uma MTA A com no m´aximo k − 1 alternˆancias que decide L em tempo dnc, para alguma constante d. Vamos exibir uma m´aquina de Turing determin´ıstica M que computa em tempo polinomial tal que:

x ∈ L ⇔ ∃w1 ∀w2 ∃w3 . . . Qkwk M (x, w1, . . . , wk) = 1 (1), onde |x| = n e wi ∈ {0, 1}dn

c

, para 1 ≤ i ≤ k.

Com entrada hx, w1, . . . , wki, M simula deterministicamente a m´aquina alternante A, escolhendo a fun¸c˜ao de transi¸c˜ao a ser aplicada atrav´es das palavras w1, . . . , wk. Especi- ficamente, M guarda durante a simula¸c˜ao de A o n´umero k0 de alternˆancias ocorridas at´e a simula¸c˜ao do passo atual. Observe que 0 ≤ k0 ≤ k − 1. No i-´esimo passo a ser simulado (1 ≤ i ≤ dnc), M escolhe a fun¸c˜ao de transi¸c˜ao de acordo com o i-´esimo bit da palavra de entrada wk0+1. Por ´ultimo, M aceita hx, w1, . . . , wki se e somente se A aceita x com as escolhas n˜ao-determin´ısticas obtidas dessa forma. ´E f´acil provar por indu¸c˜ao em k que M se comporta de modo que (1) seja verdadeiro (em particular, note que bits de entrada que n˜ao s˜ao acessados por M s˜ao irrelevantes). Isso completa a prova de que L ∈ Σpk.

Observe que a complexidade de tempo determin´ıstica do verificador (calculada em fun¸c˜ao do tamanho da entrada x) ´e dada pela complexidade de tempo n˜ao-determin´ıstica da m´aquina alternante, e vice-versa. Isso ocorre pois a simula¸c˜ao pode ser embutida dentro do c´odigo das m´aquinas de Turing envolvidas, o que n˜ao aumenta a complexidade final dos algoritmos.

O ´ultimo teorema refina a defini¸c˜ao da hierarquia polinomial, uma vez que cada n´ıvel de PH se torna a uni˜ao de infinitas classes de complexidade.