Dans quelle mesure un oracle SAT aiderait-il à accélérer les algorithmes polynomiaux temporels?


23

L'accès à un oracle fournirait une accélération super-polynomiale majeure pour tout dans N P - P (en supposant que l'ensemble n'est pas vide). Il est cependant moins clair combien P bénéficierait de cet accès Oracle. Bien sûr, l'accélération dans P ne peut pas être super-polynomiale, mais elle peut quand même être polynomiale. Par exemple, pourrions-nous trouver un chemin le plus court plus rapidement avec un oracle S A T , que sans lui? Que diriez-vous de certaines tâches plus sophistiquées, telles que la minimisation des fonctions sous-modulaires ou la programmation linéaire? Auraient-ils (ou d'autres problèmes naturels en P ) bénéficier d'un S A TSATNPPPPSATPSAT oracle?

Plus généralement, si nous pouvons choisir n'importe quel problème dans , et utiliser un oracle pour cela, alors lequel des problèmes dans P pourrait voir une accélération?NPPP


2
Quelle est la vitesse de l'oracle? Si cela prend du temps , plus de problèmes peuvent être accélérés que si cela prend du temps O ( s 5 ) , où s est la taille de la formule SAT. O(s)O(s5)s
Peter Shor

2
@PeterShor Je suppose que l'oracle, lors de la réception d'une formule SAT sous forme de requête, renvoie une réponse OUI ou NON, indiquant si la formule est satisfaisante ou non, en une seule étape (temps constant). Ceci est indépendant de la taille de la formule. Bien sûr, la formule doit être construite pour être interrogée. Ce temps de construction n'est pas indépendant de la taille de la formule, et il dépend également du problème des formules à interroger. Mais une fois la formule construite, la réception de la réponse est comptée comme une seule étape, pour toute formule.
Andras Farago

3
Si, au lieu d'un oracle SAT, vous autorisiez un oracle , il pourrait être utilisé pour trouver un minimum de circuits pour tout problème. Cela donnerait un coût amorti presque optimal à tout problème (la raison pour laquelle il n'est amorti que si vous ne l'utilisez qu'une seule fois, la taille de la formule Σ 2 S A T que vous notez est essentiellement le temps d'exécution de votre poly-temps d'origine). algorithme - mais après cette étape, vous avez alors un circuit optimal pour toutes les instances de taille n ). Σ2SATΣ2SATn
Joshua Grochow

@JoshuaGrochow Votre commentaire est très intéressant! Ce serait formidable de voir cela comme une réponse, avec plus de détails.
Andras Farago

Réponses:


15

En fait, l'acceptation des machines de Turing non déterministes dans le temps est O ( t log t ) - temps réductible à SAT (la construction se fait via une simulation inconsciente, voir Arora-Barak), donc généralement chaque fois qu'une machine non déterministe est sensiblement plus rapide qu'une machine déterministe , nous verrons au moins une certaine accélération avec un oracle SAT.tO(tlogt)

Pour être plus concret, le test de primalité vient à l'esprit, car la meilleure variante de l'algorithme AKS semble tester la primalité d'un nombre à bits dans le temps O ( n 6n . Mais si on passe à la "vieille école", Pratt a donné une MT non déterministe pour décider de la primalité dans le temps O ( n 3O(n6polylogn) . L'acceptation de cette machine peut être réduite (de façon déterministe) en O ( n 3O(n3polylogn) heure à une instance SAT.O(n3polylogn)

Le problème 3SUM peut être un autre exemple, car il semble que l'on puisse deviner une solution et la vérifier en temps sub-quadratique, puis l'acceptation d'une telle machine peut être réduite à SAT en temps sub-quadratique.


7

Plus généralement, si nous pouvons choisir n'importe quel problème dans NP − P, et utiliser un oracle pour cela, alors lequel des problèmes dans P pourrait voir une accélération?

Cette question devient plus directe au niveau de la représentation et du temps nécessaire pour réduire un problème à un autre ...

La principale réponse que j'ai à l'esprit est un oracle de programmation entière / linéaire. La version de décision de ce problème est NP-complete. Il y a une "réduction" triviale de la programmation linéaire parce que c'est un cas spécial. Mais un oracle pour la programmation linéaire seule (sans parler de l'ILP) accélère de nombreux problèmes qui sont immédiatement résolubles par la programmation linéaire. Ils peuvent y être réduits en temps linéaire en réécrivant le problème sous forme de LP. Par exemple, les chemins les plus courts et autres problèmes de flux, les correspondances.

Mais je ne pense pas que l'ILP soit le seul par tous les moyens, c'est probablement plus que les gens n'ont pas beaucoup réfléchi, par exemple, à la réduction du chemin le plus court vers le TSP, etc.


3

SATΣ2SATPΣ2SATn.


NPNPNPPNPNPNPPHPPNPNPNP

1
PPH

kk+2
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.