Do ponto de vista do senso comum, é fácil acreditar que adicionar não-determinismo a aumenta significativamente seu poder, ou seja, é muito maior que . Afinal, o não determinismo permite o paralelismo exponencial, que sem dúvida parece muito poderoso. P
Por outro lado, se adicionarmos não uniformidade a , obtendo , a intuição será menos clara (assumindo que excluímos linguagens não recursivas que poderiam ocorrer em ). Pode-se esperar que apenas permitir diferentes algoritmos de tempo polinomial para diferentes comprimentos de entrada (mas não deixar a região recursiva) seja uma extensão menos poderosa do que o paralelismo exponencial no não-determinismo.P / p o l y
Curiosamente, no entanto, se compararmos essas classes com a classe muito grande , vemos a seguinte situação contra-intuitiva. Sabemos que contém adequadamente , o que não é surpreendente. (Afinal, permite paralelismo duplamente exponencial.) Por outro lado, atualmente não podemos descartar .N E X P N E X P
Assim, nesse sentido, a não uniformidade, quando adicionada ao tempo polinomial, possivelmente o torna extremamente poderoso, potencialmente mais poderoso que o não determinismo. Pode até chegar a simular paralelismo duplamente exponencial ! Embora acreditemos que não seja esse o caso, mas o fato de que atualmente não pode ser descartado ainda sugere que os teóricos da complexidade estão lutando com "poderosos poderes" aqui.
Como você explicaria a um leigo inteligente o que está por trás desse "poder irracional" da não uniformidade?
fonte
Respostas:
Uma resposta inversa é que essa não é a primeira coisa sobre a teoria da complexidade que eu tentaria explicar a um leigo! Para apreciar a idéia de não uniformidade, e como ela difere do não-determinismo, você precisa estar mais atento às definições de classes de complexidade do que muitas pessoas desejam.
Dito isto, uma perspectiva que eu achei útil, ao explicar P / poly para estudantes de graduação, é que a não uniformidade realmente significa que você pode ter uma sequência infinita de algoritmos cada vez melhores, à medida que aumenta os comprimentos de entrada. Na prática, por exemplo, sabemos que o algoritmo de multiplicação de matriz ingênua funciona melhor para matrizes com tamanho aproximado de 100x100 e, em algum momento, a multiplicação de Strassen se torna melhor e, em seguida, os algoritmos mais recentes se tornam melhores para matrizes astronomicamente grandes que nunca surgiria na prática. Então, e se você tivesse a capacidade mágica de encontrar o melhor algoritmo para qualquer faixa de n com que trabalhasse?
Claro, isso seria uma habilidade estranha e, considerando todas as coisas, provavelmente não tão útil quanto a capacidade de resolver problemas completos de NP em tempo polinomial. Mas, estritamente falando, seria uma habilidade incomparável : não é uma que você obteria automaticamente, mesmo que P = NP. Na verdade, você pode até mesmo construir exemplos inventados de uncomputable problemas (por exemplo, dado 0 n como entrada, faz o n º parada da máquina de Turing?) Que essa capacidade lhe permitiria resolver. Então, esse é o poder da não uniformidade.
Para entender o ponto de considerar esse poder estranho, você provavelmente precisará dizer algo sobre a busca de provar limites mais baixos do circuito e o fato de que, do ponto de vista de muitas de nossas técnicas de limite inferior, é a uniformidade que parece estranha. condição extra que quase nunca precisamos.
fonte
Aqui está um argumento de "suavidade" que ouvi recentemente em defesa da alegação de que modelos de computação não uniformes deveriam ser mais poderosos do que suspeitamos. Por um lado, sabemos a partir do teorema da hierarquia de tempo que existem funções computáveis no tempo que não são computáveis no tempo O ( 2 n ) , por exemplo. Por outro lado, pelo teorema de Lupanov, qualquer função booleana em n entradas é computável por um circuito de tamanho ( 1 + o ( 1 ) ) 2 n / nO(22n) O(2n) n (1+o(1))2n/n . Portanto, se afirmarmos que a não uniformidade não dá muito poder, ou seja, que deve se comportar como D T I M E ( f ( n ) O ( 1 ) ) , essa afirmação deve parar abruptamente segurando quando f ( n ) se torna 2 O ( n ) . Mas esse comportamento - duas medidas de complexidade andam de mãos dadas até que, de repente, uma delas se torna todo-poderosa - parece arbitrário e um tanto antinatural.SIZE(f(n)) DTIME(f(n)O(1)) f(n) 2O(n)
fonte
Um ponto crítico para dar uma boa compreensão, que eu acho que também é comum ao ensinar a matéria pela primeira vez, é deixar claro que conselhos e "dicas" (ou seja, certificado) são coisas diferentes e como elas diferem.
fonte
Para mim, a ilustração mais clara do poder da não uniformidade é que uma versão adequadamente acolchoada do Problema de Halting já está em P / 1. Um único conselho é suficiente para decidir esse idioma com uma TM trivial que simplesmente retorna o conselho.
Obviamente, preencher um idioma indecidível por uma quantidade exponencial significa que ele não é "moralmente" em P / poli. Mas isso mostra que é preciso ter cuidado ao permitir a não uniformidade.
fonte
Tenho a impressão de que o verdadeiro problema aqui é o pesado fardo da prova não razoável, e não o poder irracional da não uniformidade. Como as respostas de chazisop e András Salamon já enfatizam, linguagens indecidíveis se tornam computáveis mesmo em linguagens não uniformes muito restritas, porque o ônus da prova foi completamente dispensado.
fonte