Quanto um oráculo do SAT ajudaria a acelerar os algoritmos de tempo polinomial?

23

O acesso a um oráculo forneceria uma grande aceleração super polinomial para tudo em (assumindo que o conjunto não esteja vazio). No entanto, é menos claro quanto beneficiaria desse acesso ao oracle. Obviamente, a aceleração em não pode ser super-polinomial, mas ainda pode ser polinomial. Por exemplo, poderíamos encontrar um caminho mais curto mais rapidamente com um oráculo que sem ele? Que tal algumas tarefas mais sofisticadas, como minimização de função submodular ou programação linear? Eles (ou outros problemas naturais em ) se beneficiariam de um oráculo do ?N P - P P P S A T P S A TSATNPPPPSATPSAT

De maneira mais geral, se pudermos encontrar algum problema em e usar um oráculo para ele, então qual dos problemas em poderia acelerar? PNPPP

Andras Farago
fonte
2
Quão rápido é o oráculo? Se demorar , mais problemas podem ser acelerados do que se levar , em que é o tamanho da fórmula SAT. O ( s 5 ) sO(s)O(s5)s
28815 Peter Shor Shor
2
@PeterShor Suponho que o oráculo, ao receber uma fórmula SAT como uma consulta, retorne uma resposta SIM ou NÃO, significando se a fórmula é satisfatória ou não, em uma única etapa (tempo constante). Isso é independente do tamanho da fórmula. Obviamente, a fórmula deve ser construída para ser consultada. Esse tempo de construção não é independente do tamanho da fórmula e também depende do problema de quais fórmulas precisam ser consultadas. Mas uma vez que a fórmula é construída, o recebimento da resposta é contado como uma única etapa, para qualquer fórmula.
Andras Farago 28/09
3
Se, em vez de um oráculo SAT, você permitisse um oráculo , ele poderia ser usado para encontrar circuitos mínimos para qualquer problema. Isso daria um custo amortizado quase ideal para qualquer problema (a razão pela qual ele é amortizado apenas é que, se você o usar apenas uma vez, o tamanho da fórmula você será essencialmente o tempo de execução do seu algoritmo de original - mas após essa etapa, você terá um circuito ideal para todas as instâncias de tamanho ). Σ 2 S A T nΣ2SATΣ2SATn
Joshua Grochow 28/09/2015
@JoshuaGrochow Seu comentário é muito interessante! Seria ótimo vê-lo como uma resposta, com mais detalhes.
Andras Farago 29/09

Respostas:

15

Na verdade, a aceitação de máquinas de Turing não determinísticas no tempo é redutível ao SAT (a construção é feita por simulação inconsciente, veja Arora-Barak); portanto, sempre que uma máquina não determinística é apreciavelmente mais rápida que uma determinística primeiro, veremos pelo menos alguma aceleração com um oráculo SAT.O ( t log t )tO(tlogt)

Para ser mais concreto, o teste de primalidade vem à mente, pois a melhor variante do algoritmo AKS parece testar a primalidade de um número de bits no tempo . Mas se formos à "velha escola", Pratt deu uma MT não determinística para decidir a primalidade no tempo . A aceitação desta máquina pode ser reduzida (deterministicamente) no tempo para uma instância SAT.O ( n 6nO ( n 3O(n6polylogn)O ( n 3O(n3polylogn)O(n3polylogn)

O problema 3SUM pode ser outro exemplo, pois parece que se pode adivinhar uma solução e verificá-la em tempo subquadrático e, em seguida, a aceitação dessa máquina pode ser reduzida para SAT em tempo subquadrático.

Joe Bebel
fonte
7

De maneira mais geral, se pudermos encontrar algum problema no NP-P e usar um oráculo para ele, então qual dos problemas no P poderia acelerar?

Esta questão fica mais diretamente na representação e no tempo necessário para reduzir um problema para outro ...

A principal resposta que tenho em mente é um oráculo de Programação Linear / Inteiro. A versão de decisão desse problema é NP-completa. Há uma "redução" trivial da programação linear porque é um caso especial. Mas um oráculo apenas para programação linear (e muito menos para ILP) acelera muitos problemas que são imediatamente solucionáveis ​​pela programação linear. Eles podem ser reduzidos a isso em tempo linear, reescrevendo o problema como um LP. Por exemplo, caminhos mais curtos e outros problemas de fluxo, correspondências.

Mas eu não acho que o ILP seja o único, de qualquer forma, provavelmente é mais do que as pessoas não pensaram muito em, por exemplo, reduzir o caminho mais curto para o TSP ou assim por diante.

usul
fonte
3

Em uma nota relacionada (mais de um comentário, postando como resposta por solicitação), se em vez de um oráculo permitir um oráculo , ele poderá ser usado para encontrar circuitos mínimos para qualquer problema em (segue a mesma ideia que a prova de Karp-Lipton). Isso daria um custo amortizado quase ideal para qualquer problema; a razão pela qual ele é amortizado apenas é que, se você usar isso apenas uma vez, o tamanho da fórmula você será essencialmente o tempo de execução do algoritmo original de , mas após essa etapa, você terá um circuito ideal para todos instâncias de tamanho .Σ 2 S A T P Σ 2 S A T nSATΣ2SATPΣ2SATn

Joshua Grochow
fonte
Acho essa resposta muito interessante, porque mostra que um oráculo pode ser muito mais útil / poderoso que um oráculo , mesmo para problemas práticos em ! Claro, sabíamos que (assumindo não colapso abaixo do segundo nível), mas parecia um fato teórico bastante obscura que não tem nada a ver com . Mas essa percepção estava errada, a diferença pode ser ainda essencial para problemas práticos em . (Pena que não temos nem um , nem um oráculo ...) N P P N P N PN P P H P P N P N P N PNPNPNPPNPNPNPPHPPNPNPNP
Andras Farago
1
@AndrasFarago: Ponto interessante! Gostaria de saber se existe alguma conseqüência interessante e natural para "problemas práticos em " de ter oráculos mais altos em . Meu palpite inicial seria que realmente não sabemos, relacionado ao fato de que realmente não sabemos usar muito mais do que algumas alternâncias quantificadoras muito bem: cstheory.stackexchange.com/a/11403/129P HPPH
Joshua Grochow
@ JoshuaGrochow Um problema ao usar um oráculo de nível mais alto do PH poderia ser assim. Encontre um circuito de tamanho mínimo que resolva corretamente o problema original. Entre os circuitos de tamanho mínimo (pode haver exponencialmente muitos), encontre um que possua a máxima eficiência energética (com alguma definição de eficiência energética). Entre os circuitos resultantes (possivelmente ainda exponencialmente muitos), encontre um que tenha profundidade mínima. E assim por diante, minimize / maximize alternadamente várias funções objetivas, possivelmente muitas delas. Eu acho que, para otimizações min / max aninhadas, precisaríamos de um oráculo de nível do PH. k + 2kk+2
Andras Farago