É sabido que se , a hierarquia polinomial entra em colapso e .
Isso pode ser facilmente entendido por indução usando máquinas oracle. A questão é: por que não podemos continuar o processo indutivo além de um nível constante de alternância e provar (também conhecido como )?
Estou procurando uma resposta intuitiva.
Respostas:
A prova paraP=AltTime(O(1)) ( =PH ) é uma indução utilizando P=NP . A indução mostra que, para qualquer número natural k , P=AltTime(k) (e AltTime(O(1)) é apenas a união deles).
A indução não funciona quando o número de alternância pode mudar com o tamanho da entrada (ou seja, quando o número de alternâncias possíveis da máquina não é um número, mas uma função do tamanho da entrada, ou seja, não estamos mostrando que uma execução da máquina em uma única entrada pode ser reduzida a nenhuma alternância, estamos mostrando que as execuções da máquina em todas as entradas podem ser "uniformemente" reduzidas a nenhuma alternância).
Vejamos uma afirmação semelhante, mas mais simples. Queremos mostrar que a função de identidade acaba dominando todas as funções constantes ( f ≪ g se, para todos, mas finitamente muitas n f ( n ) ≤ g ( n ) ). Pode ser provado dizer por indução. Para todos k , k ≪ n (isto é, f k ≪ i d onde f k ( n ) = kid(n)=n f≪g n f(n)≤g(n) k k≪n fk≪id fk(n)=k n2 n2≪̸n
fonte
Compare a hierarquia polinomial com a hierarquia para provas interativas. Se, para alguns k fixos , você tiver k alternações em uma prova interativa - IP ( k ) - a classe de complexidade resultante não tem mais poder do que o que você obtém com duas alternações - ou seja, IP ( k ) = IP (2) ) = AM (assumindo k ≥2). No entanto, se você permitir um número polinomial de alternâncias, obterá a classe de complexidade IP = PSPACE, que se acredita ser muito maior que a AM, uma classe estará contida em Π 2 P, no segundo nível da hierarquia polinomial. Portanto, esse fenômeno realmente acontece (embora, até onde sabemos, com a hierarquia polinomial).
Isso acontece porque a redução que pega um problema de tamanho n no IP ( k ) e o transforma em um problema no IP (2) aumenta o tamanho do problema, de modo que, para qualquer IP específico ( k ), o problema permanece com tamanho polinomial , se você deixar k variar, a redução resultante não causará problemas polinomiais em k .
fonte
Aqui está uma pequena intuição sobre o intervalo entre alternâncias constantes e ilimitadas: uma operação polinomial repetida um número constante de vezes é polinomial, mas repetida um número polinomial de vezes pode ser exponencial. Por exemplo, considere a multiplicação repetida em si mesma:
O número de iterações é linear e a saída é exponencial. Mas se você corrigir n, é polinomial no tamanho do valor inicial.
fonte
Abaixo, expanda um pouco o ponto na resposta de Peter, tentando realizar a remoção do quantificador por mais do que um número constante de etapas para ver onde ele falha e se alguma coisa pode ser recuperada dessa tentativa.
Vamos tentar amplificarP=NP por mais do que um número constante de vezes.
Assume-se queP=NP . Portanto, existe uma máquina do tempo polinomial que resolve o Ext-Circuit-SAT (existe uma extensão satisfatória para um determinado circuito e uma atribuição parcial às suas entradas?).
Mais formalmente, temos um algoritmo polytimeA com tempo de execução polinomial p(n)∈poly(n) st
Para passar por tempos constantes, precisamos fazer a remoção do quantificador de forma eficaz. Nós podemos fazer isso porque o Cook-Levin teorema é um teorema construtiva, na verdade, dá um polinômio tempo algoritmoCook st
No entanto, veremos que essa ideia não funciona (pela mesma razão apontada por Peter).
Se ,Q="∃"
Se ,Q="∀"
O algoritmo resultante parece com tempo polinomial: temos muitas etapas polinomiais, cada etapa é computável em tempo polinomial. No entanto, isso não está correto, o algoritmo não é de tempo polinomial.
O uso de sub-rotinas de tempo polinomial em um algoritmo de tempo polinomial é tempo polinomial. O problema é que, em geral, isso não precisa ser verdadeiro se os valores retornados pelas sub-rotinas não tiverem tamanho polinomial na entrada original e assumimos que fazemos atribuições sobre os valores retornados pelas sub-rotinas. (No modelo da TM, precisamos ler a saída de qualquer sub-rotina de tempo polinomial pouco a pouco.) Aqui o tamanho do valor retornado do algoritmo está aumentando (pode ser uma potência do tamanho da entrada fornecida, o valor exato a potência depende do tempo de execução de e é em torno de , portanto, como sabemos que não pode ser menor que o tempo linear, é pelo menosCook A p2(|input|) A |output| |input|2 )
O problema é semelhante ao código simples abaixo:
fonte
Eu acho que isso ocorre porque em cada nível do PH, o número de alternâncias é uma constante (ou seja, independente do tamanho da entrada), enquanto no AP, o número de alternações pode ser ilimitado (ainda que polinomial no tamanho da entrada).
fonte