• Nenhum resultado encontrado

fim se fim para cada

se eusado = verdadeiro então

e := e + 1 caso contrário termina rejeitando w fim se fim se fim repete

onde cwinicial é a configuração inicial de N para w, caceitacao é a configuração de aceitação de N , e Tw é o número máximo de configurações de N usando nspaceN(|w|).

Então:

(1) Lac(M ) = L. Observe-se que w ∈ Lac(M ) sse M aceita w sse existe uma evolução não-determinista de N desde a sua configuração inicial para w até à sua configuração de aceitação sse N aceita w sse w ∈ L.

(2) Lrj(M ) = L. Observe-se que w ∈ Lrj(M ) sse M rejeita w sse não existe

uma evolução não-determinista de N desde a sua configuração inicial para w até à sua configuração de aceitação sse N rejeita w sse w /∈ L sse w ∈ L. (3) spaceM(n) = O(f (n)2). Observe-se que de cada vez que atingivel se chama a si próprio recursivamente ele guarda c1, c2 e t na pista. Observe-se que para guardar estes valores ele precisa de O(nspaceN(n)) células no máximo. Por outro lado, dado que em cada passo da recursão t é dividido a metade, então a recursão irá ser feita O(log(Tw)) vezes, isto é, O(log(2nspaceN(n))) vezes. Assim

o número máximo de células usadas por M é O(nspace2N(n)), isto é, O(f2(n)). Assim L ∈ space(f (n)2).

Este resultado permite-nos identificar classes de complexidade espaciais de- terministas e não-deterministas.

Corolário 4.19.

PSPACE = NPSPACE e EXPSPACE = NEXPSPACE.

4.6

Teoremas de hierarquia

Até este momento, e relativamente às classes de complexidade mais impor- tantes, sabemos que P ⊆ NP ⊆ PSPACE ⊆ EXPTIME, onde temos entre P (a classe dos problemas de decisão com soluções eficientes) e EXPTIME (a classe dos problemas de decisão com soluções exponenciais) uma estrutura interessante. Gostaríamos de poder, de facto, mostrar que as inclusões acima são estritas, significando que estaríamos a falar de classes de problemas de facto cada vez mais difíceis, de acordo com a intuição. Mas não vimos ainda como

demonstrar a separação de classes. É esse o interesse dos seguintes teoremas de hierarquia.

Definição 4.20. Uma função f : N → N diz-se construtível no espaço se log(n) = O(f (n)) e se a função que mapeia palavras 1n para a representação binária de f (n) é computável em espaço O(f (n)).

Teorema 4.21. Seja f : N → N uma função construtível no espaço. Então existe uma linguagem decidível em espaço O(f (n)) mas não em espaço o(f (n)).

Proof.

Considere-se a máquina de Turing D que ao receber o input w, com tamanho

n:

(1) calcula f (n) usando espaço O(f (n)) e marca esse número de células na pista. Se em algum ponto da computação D tentar visitar mais células a máquina para imediatamente rejeitando;

(2) se w não é da forma hM i10então D rejeita;

(3) simula M sobre w e ao mesmo tempo vai contanto o número de passos usados na simulação. Se a conta exceder 2f (n) rejeita imediatamente;

(4) se M aceita, D rejeita, se M rejeita então D aceita.

Observe-se que se M usa g(n) células então D usa dg(n) células para simular

M , para alguma constante d que depende de M . Este acréscimo deve-se a que M pode ter um alfabeto de pista arbitrário e D tem um alfabeto de pista fixo.

A máquina D é um classificador pois cada um dos seus passos corre em tempo limitado.

A linguagem A que D decide é decidível em espaço O(f (n)) pois D assim o é. Mostra-se agora que A não é decidível em espaço o(f (n)). Para isso assuma- se com vista a uma contradição que existe uma máquina M que decide A em espaço g(n) tal que g(n) ∈ o(f (n)). Então dg(n) < f (n) para algum número natural m e para todo o n ≥ m. Assim D quando recebe w = hM i10m em que hM i10tem tamanho superior a m simula a execução de M até M terminar. Logo D aceita w se M rejeitar w e vice-versa. Mas D e M deviam decidir a mesma linguagem A. Contradição. Assim não existe uma máquina M que decide A em espaço o(f (n)).

Este resultado permite-nos separar classes de complexidade temporais. Corolário 4.22. Sejam f1, f2 : N → N tais que f2(n) é construtível no espaço

e f1(n) ∈ o(f2(n)). Então

SPACE(f1(n)) ( SPACE(f2(n)). Corolário 4.23.

PSPACE 6= EXPSPACE.

Definição 4.24. Uma função t : N → N diz-se construtível no tempo se

n log(n) = O(t(n)) e se a função que mapeia palavras 1n para a representação binária de t(n) é computável em tempo O(t(n)).

4.6. TEOREMAS DE HIERARQUIA 51 Teorema 4.25. Seja t : N → N uma função construtível no tempo. Então ex- iste uma linguagem decidível em tempo O(t(n)) mas não em tempo o(log(t(n))t(n) ).

Proof.

Considere-se a máquina de Turing D que ao receber o input w, com tamanho

n:

(1) se w não é da forma hM i10então D rejeita;

(2) calcula a representação binária de t(n) realizando O(t(n)) transições e de seguida guarda a representação binária de dlog(t(n))t(n) e, decrementando este valor por cada transição efectuada na execução dos próximos passos de D;

(3) simula M sobre w, usando para isso três troços: o primeiro para a pista de M , o segundo para o estado de M nesse momento e para a sua função de transição, e o terceiro para o contador do número de passos de M feitos. Imediatamente após um símbolo de cada troço segue-se um símbolo do outro troço. De cada vez que o sensor de M se move, D desloca toda a informação do segundo e do terceiro troços de modo a que essa informação fique sempre próxima da posição do sensor de M . D utiliza o segundo troço para ver qual a próxima transição de M . Por cada passo de M que simula, D decrementa o contador no terceiro troço;

(4) se M aceita, D rejeita, se M rejeita então D aceita.

A máquina D é um classificador pois cada um dos seus passos corre em tempo limitado.

Designe-se por A a linguagem decidida por D.

Conta-se agora o número de transições que D faz em cada passo:

(1), (2) e (3) Cada um destes passos pode ser realizado fazendo O(t(n)) tran- sições;

(4) Observe-se que em cada passo da simulação:

(a) a deslocação do segundo troço de M envolve apenas informação de M por isso apenas adiciona um termo constante em O(hM i) ao tempo desse passo (a palavra de entrada é hM i10e hM i é constante face à palavra);

(b) o custo de ver qual a próxima transição de M e de alterar a pista de M , é também uma constante em O(hM i) pois a informação está toda muito próxima; (c) tendo em atenção que o contador no terceiro troço tem tamanho log(log(t(n))t(n) ) que está em O(log(t(n))), tem-se que decrementá-lo e move-lo de modo a estar sempre próximo da posição do sensor de M , adiciona um termo log(t(n)) ao tempo de cada passo;

Como D simula no máximo dlog(t(n))t(n) e passos de M e em cada passo são feitas O(hM i) + O(log(t(n))) transições, o número de transições feitas no passo (4) é dlog(t(n))t(n) e × O(log(t(n))), isto é, está em O(t(n)).

Assim A é decidível em tempo O(t(n)).

se com vista a uma contradição que existe uma máquina M que decide A em tempo g(n) tal que g(n) ∈ o(log(t(n))t(n) ). Seja m um número natural tal que

g(n) ≤ log(t(n))t(n) para todo o n ≥ m. Assim D quando recebe w = hM i10m em que hM i10tem tamanho superior a m, simula a execução de M até M terminar. Logo D aceita w se M rejeitar w e vice-versa. Mas D e M deviam decidir a mesma linguagem A. Contradição. Assim não existe uma máquina

M que decide A em tempo o(log(t(n))t(n) ).

Este resultado permite-nos separar classes de complexidade temporais. Corolário 4.26. Sejam t1, t2: N → N tais que t2(n) é construtível no tempo e

t1(n) ∈ o(log(tt2(n)2(n))). Então

TIME(t1(n)) ( TIME(t2(n)).

Corolário 4.27. P 6= EXPTIME.

Documentos relacionados