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 T 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?
la source
Réponses:
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.t O(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.
la source
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.
la source
la source