Pouvons-nous générer rapidement un module 3 parfaitement uniforme ou résoudre un problème NP?


13

Pour être honnête, je ne sais pas grand-chose sur la façon dont les nombres aléatoires sont générés (les commentaires sont les bienvenus!) Mais supposons le modèle théorique suivant: Nous pouvons obtenir des entiers uniformément aléatoires à partir de [1,2n] et notre objectif est de produire un entier uniformément aléatoire de [1,3].

Une solution simple dont le temps d'exécution prévu est polynomial est la suivante. Jeter 2n (et peut-être aussi 2n1 ) de [1,2n] pour que le nombre d'entiers restants soit divisible par 3 afin que nous puissions prendre le mod3 de l'entier généré. Si nous obtenons un numéro rejeté, nous générons un autre numéro, jusqu'à ce que nous obtenions un numéro non rejeté.

Mais que se passe-t-il si nous voulons terminer en temps polynomial? En raison de problèmes de divisibilité, le problème devient insoluble. Cependant, je me demande si nous pouvons résoudre les problèmes suivants.

Supposons que nous puissions générer des entiers uniformément aléatoires à partir de [1,2n] et que l'on nous pose un problème de calcul difficile. Notre objectif est de produire un entier uniformément aléatoire à partir de [1,3] ou de résoudre le problème difficile.

Ici, le problème difficile peut être la factorisation d'un entier, la résolution d'une instance SAT ou quelque chose de similaire. Par exemple, nous pouvons décoder une permutation unidirectionnelle f comme suit, si on nous donne un certain f(x) (et en supposant que n est pair): Si pour notre chaîne aléatoire f(r)<f(x) , alors prenons f(r)mod3 , si f(r)>f(x) , alors prendre f(r)1mod3 . Enfin, si f(r)=f(x) , alors nous avons terminé, comme r=x . (Si n est impair, alors quelque chose de similaire fonctionne, nous devons aussi vérifier si f(r+1)=f(x) et soustraire 2 si f(r)>f(x) .)

Résumé des réponses. Emil Jeřábek a montré que si nous ne pouvons pas générer de manière parfaitement uniforme, nous pouvons résoudre tout problème de recherche à valeur unique à partir de TFNP, ainsi que de PPA-3. D'autre part, daniello a montré que nous ne pouvons pas résoudre les problèmes NP-complets de la manière ci-dessus, à moins que NP = co-NP.


@Tayfun Si est pair, nous avons besoin de pour être divisible par , si est impair, c'est alors que nous avons besoin de pour être divisible par . Je serais heureux si vous étiez plus précis sur la partie sur laquelle je devrais être plus précis. 2 n - 1 3 n 2 n - 2 3n2n13n2n23
domotorp

(1) Vous pouvez généraliser l'exemple avec des permutations unidirectionnelles pour résoudre des fonctions (à valeur unique) dans TFNP. (2) Vous pouvez résoudre des problèmes arbitraires de recherche PPA-3.
Emil Jeřábek

@Emil (1): Comment? (2): J'ai également pensé que cela pourrait être la bonne classe de complexité, mais je ne vois pas pourquoi nous pourrions résoudre de tels problèmes.
domotorp

Je vais essayer de l'écrire comme réponse plus tard. Btw, la question est intéressante, je ne sais pas quel est le problème avec tous les downvotes.
Emil Jeřábek

2
Les votes négatifs sont bizarres. Ceci est une question très cool! Et je n'y vois rien de flou.
Sasho Nikolov,

Réponses:


6

Pour faire suite à la réponse de domotorp, je pense que nous pouvons résoudre les problèmes de recherche NP en respectant l'une des restrictions suivantes:

  1. le nombre de solutions est connu et non divisible par ; ou,3

  2. le nombre de solutions est polynomialement limité (mais pas connu à l'avance).

Pour 1., nous pouvons utiliser un simple rembourrage pour réduire au cas suivant:

  • Les solutions proviennent de , où est pair.m[0,2m1)m

  • Le nombre de solutions satisfait .ss1(mod3)

  • Deux solutions quelconques sont distantes d'au moins . (Disons, ils sont tous divisibles par )444

Notez que . Donc, nous pouvons résoudre le problème en choisissant un aléatoire , et en utilisant un protocole similaire à celui de ma réponse pour des solutions uniques si (résultant en une distribution sur moins d'un pour chacune des solutions), et produisant si .a [ 0 , 2 m ) a [ 0 , 2 m - s ) { 0 , 1 , 2 } 0 s 0 a [ 2 m - s , 2 m )32msa[0,2m)a[0,2ms){0,1,2}0s0a[2ms,2m)

Pour 2., supposons d'abord que le nombre de solutions est connu . Comme dans /cstheory//a/37546 , soit la plus grande puissance de qui divise , de sorte que . Considérons le problème de recherche dont les solutions sont les séquences telles que , et chaque est une solution du problème d'origine. D'une part, le problème d'origine se réduit au nouveau. En revanche, le nombre de solutions du nouveau problème est , c'est-à-dire non divisible parsp(n)3k3s3(s3k)y0,,y3k1y0<y1<<y3k1yi(s3k)3et connu. Ainsi, nous avons terminé par 1.

Maintenant, si le nombre de solutions est limité par , mais n'est pas connu, nous exécutons le protocole au-dessus de fois ( ) en parallèle pour chaque choix possible de , et:p(n)22p(n)1s2

  • si l'un des threads renvoie une solution au problème d'origine, nous en transmettons un à la sortie;

  • si tous les threads renvoient les éléments , nous .r1,,r2{0,1,2}(r1+r2++r2)mod3

Conditionnée au deuxième événement, est uniformément distribué dans car est le vrai nombre de solutions du problème d'origine, tandis que les autres sont indépendants de , donc la somme entière est également uniformément distribuée .rs{0,1,2}srirs


La généralisation courante de 1 et 2 est que le nombre de solutions provient d'une liste de nombres calculables en temps polynomial, de sorte que la plus grande puissance de divisant l'un d'eux est polynomiale. 3
Emil Jeřábek

Au fait, connaissez -vous des problèmes non composites où le nombre de solutions peut être prouvé être divisible par une puissance superpolynomiale de ? Par composite, je veux dire quelque chose comme prendre le produit direct de certains problèmes où le nombre de solutions est divisible par - les problèmes composites peuvent être résolus facilement de la manière ci-dessus. 33
domotorp

Je pense qu'il est possible de prouver qu'il existe un oracle sous lequel une puissance superpolynomiale de 3 problèmes ne peut pas être résolue de la manière ci-dessus.
domotorp

@domotorp C'est intéressant, j'envisageais la possibilité qu'une sorte d'argument Valiant – Vazirani puisse être utilisé pour résoudre des problèmes arbitraires TFNP. Quoi qu'il en soit, la caractérisation est encore incomplète. Je suis particulièrement mécontent de la restriction de cette réponse selon laquelle le nombre de solutions est connu, ou du moins provient d'une liste constructible en temps polynomial. D'une part, la classe de ces problèmes est apparemment incomparable avec PPA-3 de mon autre réponse, il serait donc bon d'avoir une construction qui généralise les deux. AFAICS la seule limite supérieure est que tout problème peut être résolu ...
Emil Jeřábek

... de la manière ci-dessus est réductible à un problème TFNP dont le nombre de solutions est modulo (mais non connu). Il n'est pas clair pour moi s'il faut s'attendre à ce que ce soit la bonne classe, ou si une restriction supplémentaire est nécessaire après tout. 13
Emil Jeřábek

10

J'utiliserai des nombres à partir de plutôt que , car je le trouve beaucoup plus naturel.01

Voici deux classes de problèmes que nous pouvons résoudre de cette manière:

  1. Fonctions dans TFNP (c.-à-d. Problèmes de recherche de NP total à valeur unique)

    (Ceci généralise l'exemple avec des permutations unidirectionnelles. Il inclut comme cas particulier les problèmes de décision de .)UPcoUP

    La configuration est que nous avons un prédicat polynomial et un polynôme tels que pour chaque de longueur , il existe un unique de longueur tel que tient. La tâche de calcul est, étant donné , trouver .R(x,y)p(n)xnym=p(n)R(x,y)xy

    Maintenant, je vais supposer wlog que est pair, de sorte que . L'algorithme consiste à générer un uniformément aléatoire et à produirem2m1(mod3)y[0,2m)

    • y (comme solution au problème de recherche) si ;R(x,y)

    • yy (comme un élément aléatoire de ) si , et ;{0,1,2}yy{1,2}R(x,y)

    • ymod3 (comme un élément aléatoire de ) si aucun résout .{0,1,2}y{y,y1,y2}R(x,y)

    S'il n'y avait pas de solution au problème de recherche, les choix aléatoires de donneraient et fois et fois (une de plus). Cependant, si résout le problème de recherche, nous avons bricolé les éléments (qui ont atteint les trois classes de résidus) afin qu'ils ne produisent que les résidus et , ce qui égalise l'avantage de . (Je suppose ici wlog que .)2m12 (2m1)/30 (2m+2)/3yy,y+1,y+2120y<2m2

  2. Problèmes de recherche PPA-3

    Un moyen pratique de définir PPA- est que les problèmes de recherche NP sont nombreux et réductibles aux types de problèmes suivants. Nous avons une fonction de temps polynomial fixe et un polynôme , de telle sorte que pour toute entrée de longueur , le mappage induit restreint aux entrées de longueur est une fonction satisfaisant pour chaque . La tâche est, étant donné , de trouver un point fixe de : .3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y

    Nous pouvons résoudre ceci de la manière suivante dans la question: étant donné de longueur , nous générons un aléatoire de longueur , et la sortiexnym=p(n)

    • y s'il s'agit d'un point fixe de ;fx

    • sinon, , et sont des éléments distincts. Nous pouvons les étiqueter comme avec , et sortir tel que .yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2i{0,1,2}y=yi

    Il ressort clairement des définitions que cela donne une distribution uniforme sur , car les points non fixes sont triplés.{0,1,2}y


Permettez-moi de montrer pour mémoire l'équivalence du problème ci-dessus avec le problème complet de Papadimitriou pour PPA- , car cette classe est généralement négligée dans la littérature. Le problème est mentionné dans Buss, Johnson: «Preuves propositionnelles et réductions entre les problèmes de recherche NP», mais ils n'indiquent pas l'équivalence. Pour PPA, un problème similaire (LONELY) est donné à Beame, Cook, Edmonds, Impagliazzo et Pitassi: «La complexité relative des problèmes de recherche NP». Il n'y a rien de spécial à propos de , l'argument ci-dessous fonctionne mutatis mutandis pour tout nombre impair impair.33

Proposition: Les problèmes de recherche NP suivants sont poly-temps plusieurs-uns réductibles les uns aux autres:

  1. Étant donné un circuit représentant un graphe bipartite non orienté , et un sommet dont le degré n'est pas divisible par , trouver un autre tel sommet.(AB,E)uAB3

  2. Etant donné un circuit représentant un graphe orienté et un sommet dont l'équilibre en degrés (c'est-à-dire en degrés extérieurs moins en degrés) n'est pas divisible par , trouver un autre tel sommet.(V,E)uV3

  3. Etant donné un circuit calculant une fonction telle que , trouvez un point fixe de .f:[0,2n)[0,2n)f3=idf

Preuve:

1p2 est évident, car il suffit de diriger les bords de gauche à droite.

2p1 : abord un graphe biparti pondéré. Soit et copies de : , . Pour chaque bord d'origine , nous mettons un bord de poids , et un bord de poids . Cela rend égal au degré d'équilibre de dans le graphique d'origine. Si est le sommet donné de l'équilibre , nous ajoutons un bord supplémentaire de poidsABVA={xA:xV}B={xB:xV}xy{xA,yB}1{xB,yA}1deg(xA)=deg(xB)xub0(mod3){uA,uB}b, de sorte que , et . sera notre sommet choisi.deg(uA)=2b0(mod3)deg(uB)=0uA

Afin de faire du graphique un graphique simple non pondéré non orienté, nous réduisons d'abord tous les poids modulo , et supprimons tous les bords du poids . Cela ne laisse que les bords des poids et . Ce dernier peut être remplacé par des gadgets adaptés. Par exemple, au lieu d'une arête de poids , nous incluons de nouveaux sommets , pour , avec des arêtes , , , , : cela fait30122{xA,yB}wiAziBi=0,,3{xA,yB}{xA,ziB}{wiA,yB}{wiA,ziB}{wiA,z(i+1)mod4B}deg(wiA)=deg(ziB)=3Et contribue à et .52(mod3)xAyB

3p2 : Supposons pour simplifier que soit égal à . Nous construisons un graphe orienté sur comme suit:n2n1(mod3)V=[0,2n)

  • Nous incluons les arêtes et pour chaque .3x+13x3x+23xx<2n/31

  • Si est une orbite non fixe de , nous incluons les bords et .x0<x1<x2fx0x1x0x2

Le sommet choisi sera . La première clause contribue à l'équilibre ou à chaque sommet . De même, la deuxième clause contribue à l'équilibre ou aux sommets qui ne sont pas des points fixes. Ainsi, en supposant que n'est pas déjà un point fixe, il s'agit en effet de modulo non équilibré , et tout autre modulo non équilibré de sommets est un point fixe de .u=2n1121(mod3)u121(mod3)u33f

1p3 : On peut supposer que avec pair, et le sommet donné a le degré .A=B=[0,2n)nuA2(mod3)

Nous pouvons étiqueter efficacement les arêtes incidentes avec un sommet comme , où . De cette façon, devient un sous-ensemble de , que nous identifions à . Nous définissons une fonction sur comme suit.yB(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)

  • Sur le complément de : pour chaque , et tel que , on fait , , . Aussi, , , pour . Cela laisse de côté le point , et points pour chaque dont le degré n'est pas divisible par .EyBjdeg(y)3j<2n1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f(y,3j+2)=(y,3j)f(3i,2n1)=(3i+1,2n1)f(3i+1,2n1)=(3i+2,2n1)f(3i+2,2n1)=(3i,2n1)3i<2n1(2n1,2n1)3(deg(y)mod3)(y,i)yB3

  • Sur : pour chaque , nous fixons une énumération efficace de ses bords incidents , où . On met , , pour . Cela laisse de côté points pour chaque sommet dont le degré n'est pas divisible par .ExA(y0,j0),,(yd1,jd1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<d/3deg(x)mod3xA3

Depuis , deux de ses bords incidents ont été ; nous les transformons en un autre cycle utilisant comme troisième point. Les points restants sont laissés comme points fixes de . Par construction, l'un d'eux donnera lieu à une solution de (1).deg(u)2(mod3)f(2n1,2n1)f


1
Les deux solutions sont correctes, mais j'ai un problème avec les définitions des classes. Dans la définition de TFNP, généralement au moins une solution doit exister, alors que vous en voulez exactement une, qui serait TFUP, je suppose. PPA-3 est à l'origine défini avec l'entrée d'un graphe biparti et d'un sommet donné dont le degré n'est pas 3, et nous devons trouver un autre tel sommet. Votre exemple avec est évidemment dans cette classe, mais pourquoi est-il complet pour cela? (C'est peut-être bien connu, mais c'est nouveau pour moi.)f
domotorp

1
(1) J'ai souligné très explicitement que le résultat ne s'applique pas aux problèmes de recherche TFNP arbitraires, mais uniquement aux fonctions. Je ne sais vraiment pas comment le rendre encore plus clair. (2) Oui, cela équivaut à la définition habituelle de PPA-3. Cela ne devrait pas être difficile à montrer.
Emil Jeřábek

(1) Désolé, ici ma confusion n'était que linguistique; dans votre commentaire d'origine, vous avez en effet mis l'accent sur la valeur unique, mais dans votre réponse, vous avez simplement écrit les fonctions TFNP, puis ajouté entre parenthèses le "ie" qui fait l'équivalent pour autant que je sache. Je pense qu'il serait plus facile à comprendre si vous avez également écrit "fonctions TFNP à valeur unique" dans votre réponse.
domotorp

(2) Cette équivalence serait très surprenante. Avec une astuce similaire que vous avez utilisée dans (1), cela impliquerait que l'USAT est dans PPA-3, n'est-ce pas? Je m'attendrais à ce qu'il soit plus probable que mon problème soit lié à un TFNP dont le nombre de solutions est 1 ou 2 mod 3 pour chaque (et nous devons savoir laquelle). Btw, votre solution pour (1) implique déjà que FullFactoring peut être résolu, ce qui était ma motivation d'origine. n
domotorp

Les fonctions sont à valeur unique. Voilà ce que signifie la fonction. Je vais essayer de chercher les trucs sur PPA-3. Cependant, je ne vois pas comment cela inclurait l'USAT. La construction en (1) ne produit pas un poly-temps avec , ou du moins je ne le vois pas: pour le choix évident, on ne peut pas calculer sans résoudre d'abord le problème de recherche. ff3=idf(2m1)
Emil Jeřábek

7

Si vous pouviez parfaitement générer le mod OU résoudre SAT (ou tout autre problème NP-complet, d'ailleurs) alors . En particulier, considérez le générateur / solveur parfait lorsqu'il reçoit une formule SAT .3NP=coNPϕ

Soit le nombre maximum de bits aléatoires tirés par le générateur sur des entrées de taille . Puisque le générateur fonctionne en temps polynomial, est polynomial. Comme n'est pas divisible par il doit y avoir une séquence d'au plus lancers de pièces qui fera de la sortie du générateur une réponse (correcte) pour . Ainsi, si n'est pas satisfaisant, il y a un ensemble de lancers de pièces qui font dire au générateur que n'est pas satisfaisant. Si est satisfaisable, le générateur ne prétendra jamais à tort que(n)n(n)2(n)3(n)ϕϕϕϕϕn'est pas satisfaisant, quelles que soient les pièces. Ainsi, nous avons montré que le langage des formules insatisfaisantes est en , impliquant . UNSATNPNP=coNP


2
En d'autres termes: tout ce que nous pouvons résoudre de cette manière est réductible à un problème TFNP. Donc, plutôt que NP, nous devrions viser des sous-classes de TFNP.
Emil Jeřábek

Oui, bien que je ne sois pas certain que l'unicité soit nécessaire, ou on peut s'en tirer avec quelque chose de beaucoup plus faible.
daniello

1
Unicité de quoi?
Emil Jeřábek

"La configuration est que nous avons un prédicat polynomial et un polynôme telle sorte que pour chaque de longueur , il existe un unique de longueur tel que tient. La tâche de calcul est, étant donné , trouver . " J'ai le sentiment que le nombre de non divisible par pourrait être suffisant. [Je viens de remarquer la nouvelle réponse de R(x,y)p(n)xn ym=p(n)R(x,y)xyy3
domotorp

3
Eh bien, la première partie de ma réponse concerne les problèmes de recherche avec une solution unique, mais cela n'est bien sûr pas nécessaire. Déjà la deuxième partie de ma réponse concerne les problèmes de recherche avec potentiellement de nombreuses solutions. Ce que je voulais dire par mon commentaire ci-dessus est la simple observation que si est un algorithme poly-temps aléatoire qui génère soit un élément uniformément aléatoire de , soit résout un problème , alors " étant donné , calculer une chaîne de bits aléatoires qui fait que résout »est un problème TFNP, et est réductible. Aucun caractère unique impliqué. A(x){0,1,2}SxASS
Emil Jeřábek

4

Voici donc une extension de l'argument d'Emil qui montre que les problèmes de recherche où le nombre de solutions est 1, 2 ou 4 (nous n'avons pas besoin de savoir lesquelles) peuvent être résolus de la manière ci-dessus. Je le poste comme réponse car c'est beaucoup trop long pour un commentaire et j'espère que quelqu'un de plus intelligent que moi pourra prouver qu'en fait le nombre de solutions peut être tout ce qui n'est pas divisible par 3.

Disons qu'une chaîne aléatoire est proche d'une solution (c'est-à-dire d'un pour lequel est valable) si l'un de , ou est valable. (Par souci de simplicité, supposons que et . Ne sont pas des solutions) Dans la solution de Emil, il suffisait de générer une chaîne aléatoire et sortie , sauf que nous place autour du violon à des solutions; Je n'entre pas dans les détails, voir sa réponse. Il nous suffit que si est proche d'une solution, alors nous pouvons tuer un nombre arbitraireryR(x,y)R(x,r)R(x,r+1)R(x,r+2)y=0y=1rrmod3rmod3en émettant éventuellement une solution pour que pour le reste des la fonction donne un nombre parfaitement uniforme .rrmod3mod3

Supposons maintenant que le nombre de solutions soit 1 ou 2 pour tout . Nous générons deux chaînes aléatoires de longueur : et . Si au moins l'un d'entre eux n'est pas proche d'une solution, nous . Pour simplifier, supposons que est égal à ce que nous ayons un 0 supplémentaire si nous venons de le faire, et supposons également que s'il y a deux solutions, elles sont loin. Si et sont tous deux proches de la même solution, nous tripotons pour tuer un 0. Si et sont proches de solutions différentes, alors si , nous tripotons pour tuer un 1, et sixnr1r2r1+r2mod3nr1r2r1r2r1<r2r1>r2 , nous tripotons pour tuer un 2. De cette façon, s'il n'y a qu'une seule solution, nous tuons exactement un 0, tandis que s'il y a deux solutions, nous tuons deux 0 et un 1 et un 2.

Cet argument ne peut pas être étendu à 3 solutions, mais peut l'être à 4, et à partir d'ici, je serai très sommaire. Générez quatre chaînes aléatoires, et moins qu'elles ne soient toutes proches d'une solution. Supposons à nouveau qu'il y ait un 0 supplémentaire et que les solutions soient toujours loin. Si tous les sont proches de la même solution, on tripote pour tuer un 0. Si trois des sont proches de la même solution qui est plus petite que la solution à laquelle le quatrième est proche, on tripote autour pour tuer un 1. Si trois des sont proches de la même solution qui est plus grande que la solution à laquelle le quatrièmer1,r2,r3,r4r1+r2+r3+r4mod3riririririest proche, nous tripotons pour tuer un 2. Si tous les sont proches d'une solution différente, nous tuons trois 0. La correction pour une et deux solutions est similaire au cas précédent. Pour quatre solutions, notez que nous tuons quatre + trois 0, six 1 et six 2.ri

Je pense que le raisonnement du dernier paragraphe pourrait être étendu à tout nombre limité de solutions qui n'est pas divisible par 3 avec une algèbre. Une question plus intéressante est de savoir s'il existe un protocole qui fonctionne pour un certain nombre de solutions.

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.