Problèmes en P avec des algorithmes randomisés prouvablement plus rapides

20

Y a-t-il des problèmes dans qui ont des algorithmes randomisés dépassant les limites inférieures des algorithmes déterministes? Plus concrètement, connaissons-nous des pour lesquels ? Ici \ mathsf {PTIME} (f (n)) signifie l'ensemble des langages décidables par une MT aléatoire avec une erreur limitée (un ou deux côtés) dans les étapes f (n) .PkDTIME(nk)PTIME(nk)PTIME(f(n))f(n)

Le hasard nous achète-t-il quelque chose dans P ?

Pour être clair, je cherche quelque chose où la différence est asymptotique (de préférence polynomiale, mais je me contenterais de polylogarithmique), pas seulement une constante.

Je recherche des algorithmes asymptotiquement meilleurs dans le pire des cas. Les algorithmes avec une meilleure complexité attendue ne sont pas ce que je recherche. Je veux dire des algorithmes randomisés comme dans RP ou BPP et non ZPP.

aelguindy
la source
Peut-être que "la technique de Yao" est ce que vous cherchez. Une brève description peut être trouvée à cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin
@WuYin si je comprends bien, cela va dans le sens des algorithmes aléatoires de limite inférieure par le comportement de cas moyen de l'algorithme déterministe. ne pas nous acheter quoi que ce soit à l' intérieur de P .. Ai - je raison?
aelguindy
1
Pour trouver n'importe quel élément dans une séquence de longueur n avec un rang dans [ n4 , 3n4 ] nous pouvons simplement retourner n'importe quel élément aléatoire et ce sera correct avec 12 probabilité d'où son O (1)! Alors qu'un algorithme déterministe examinerait au moins une partie de l'entrée et donc Ω(n) .
rizwanhudda
@rizwanhudda Il pourrait y avoir des problèmes avec cela. Tout d'abord, je recherche un problème de décision. Deuxièmement, dans le modèle de Turing, le retour d'un élément aléatoire est Ω(n) , car il n'y a pas d'accès aléatoire. Peut-être que la machine sort toujours le premier élément? Pourtant, le premier problème est plus important.
aelguindy
2
Le dernier paragraphe n'a pas de sens car chaque algorithme de Las Vegas peut être converti en un algorithme de Monte Carlo.
Tsuyoshi Ito

Réponses:

17

Les tests d'identité polynomiale admettent un algorithme de temps polynomial randomisé (voir le lemme de Schwartz-Zippel ), et nous n'avons actuellement pas de temps polynomial déterministe ni même d'algorithme de temps sous-exponentiel pour cela.

Évaluation de l'arbre de jeu Considérons un arbre binaire complet avecnœuds foliairescontenantchacun une valeur 0/1. Les nœuds internes contiennent des portes OU / ET à des niveaux alternés. Il peut être prouvé en utilisant l'argument de l'adversaire que chaque algorithme déterministe devrait examinerles nœudsterminauxdans le pire des cas. Cependant, il existe un algorithme randomisé simple qui prendle temps d'exécution prévu de Regardez les diapositives.Ω ( n ) O ( n 0,793 )nΩ(n)O(n0.793)

Routage inconscient sur un hypercube Considérons un cube àdimensions contenant sommets. Chaque sommet a un paquet de données et une destination à laquelle il souhaite éventuellement livrer le paquet. La destination de tous les paquets est différente. Même pour cela, il a été prouvé que toute stratégie de routage déterministe prendrait desétapes. Cependant, il existe une stratégie aléatoire simple qui se terminera parétapes attendues avec une probabilité élevée .N = 2 n Ω (nN=2nO(n)Ω(Nn) O(n)

Notez que dans les algorithmes randomisés, le coût attendu avec une probabilité élevée (comme par exemple ) équivaut au pire des cas dans la pratique.P r [ F ( n ) > 10 E ( F ( n ) ) ] < 1E(F(n)) Pr[F(n)>10E(F(n))]<1n2

rizwanhudda
la source
Aussi, pensez à tester pour les matrices , et si . Nous ne connaissons actuellement aucun algorithme , nous connaissons un algorithme aléatoire . Le fait est qu'il existe des problèmes pour lesquels nous pouvons prouver que les algorithmes randomisés sont meilleurs? B C A B = C o ( 2 2,3 ) O ( n 2 )ABCAB=Co(22.3)O(n2)
aelguindy
@aelguindy Je comprends votre point. Mais, pour PIT, l'algorithme déterministe le plus connu est exponentiel. Et, dérandomiser PIT est un problème ouvert important dans CS théorique.
rizwanhudda
J'ai ajouté l'évaluation de l'arborescence du jeu et le routage des hypercubes au message, pour lesquels les algorithmes randomisés font mieux que leurs homologues déterministes.
rizwanhudda
OK, pour l'évaluation de l'arbre de jeu, si je comprends bien, il s'exécute dans attendu , non? Je veux dire qu'il y a des cas où il s'exécutera dans . Est-ce aussi le cas avec le troisième exemple? Je ne prévois pas un meilleur temps attendu, je recherche une meilleure complexité dans le pire des cas, une erreur de sortie autorisée. Ω ( n )O(n0.793)Ω(n)
aelguindy
1
Ils ne sont donc pas meilleurs dans le pire des cas. Autant j'apprécie les exemples, je crains que ce ne soit pas exactement ce que je recherche. Les exemples étaient cependant très instructifs!
aelguindy
5

L'étude du pire des cas n'a aucun sens pour les algorithmes randomisés. Non seulement le pire cas d'exécution sera souvent infini, mais il ne peut pas non plus surpasser les algorithmes déterministes dans cette métrique.

Considérons tout algorithme aléatoire . Obtenez un algorithme déterministe en fixant la bande aléatoire pour à . Alors, pour tout .B A 0 T B ( n ) T A ( n ) nABA0TB(n)TA(n)n

Raphael
la source
5

Il existe de nombreux problèmes où nous connaissons un algorithme randomisé efficace, et nous ne connaissons aucun algorithme déterministe dont nous pouvons prouver l'efficacité. Cependant, cela peut refléter des lacunes dans notre capacité à prouver des choses sur la complexité plutôt que sur toute différence fondamentale.

Sur la base de votre commentaire , il semble que vous vouliez vous demander s'il existe un problème lorsqu'il existe un algorithme randomisé efficace, et nous pouvons prouver qu'il n'y a pas d'algorithme déterministe d'efficacité comparable. Je ne connais aucun problème de ce genre.

En effet, il existe des motifs raisonnables de soupçonner que de tels problèmes pourraient ne pas exister. Heuristiquement, l'existence d'un tel problème signifierait probablement que la cryptographie sécurisée est impossible. Cela semble être un résultat plutôt invraisemblable.

Quelle est la connexion, demandez-vous? Eh bien, considérez tout algorithme aléatoire qui résout efficacement certains problèmes. Il repose sur des pièces aléatoires: des bits aléatoires obtenus à partir d'une véritable source aléatoire. Supposons maintenant que nous prenons un générateur pseudo-aléatoire de qualité cryptographique, et remplaçons la vraie source aléatoire par la sortie du générateur pseudo-aléatoire. Appelez l'algorithme résultant . Notez que est un algorithme déterministe et son temps d' exécution est à peu près le même que .A A AAAAA

De plus, si le PRNG cryptographique est sécurisé, heureusement, nous devrions nous attendre à ce que soit un bon algorithme si est: AAA

  • Par exemple, si est un algorithme de Las Vegas (il génère toujours la bonne réponse et se termine rapidement avec une probabilité élevée), alors sera un assez bon algorithme déterministe (génère toujours la bonne réponse et se termine rapidement pour la plupart des entrées) .A AA

  • Comme autre exemple, si est un algorithme de Monte Carlo (temps d'exécution déterministe, et génère la bonne réponse avec une probabilité d'au moins ), alors sera un assez bon algorithme déterministe (temps d'exécution déterministe et génère la bonne réponse sur une fraction de toutes les entrées). 1 - ε A 1 - εA1εA1ε

Par conséquent, si le PRNG cryptographique est sécurisé et qu'il existe un algorithme randomisé efficace, vous obtenez un algorithme déterministe assez bon. Il existe maintenant de nombreuses constructions de PRNG cryptographiques dont la sécurité est garantie si certaines hypothèses cryptographiques se vérifient. En pratique, ces hypothèses cryptographiques sont largement admises: au moins, le commerce et les transactions sécurisés reposent sur leur véracité, nous sommes donc apparemment prêts à parier de grosses sommes d'argent sur la cryptographie sécurisée. La seule façon dont cette transformation peut échouer est si le PRNG cryptographique n'existe pas, ce qui implique à son tour que la cryptographie sécurisée est impossible. Bien que nous n'ayons aucune preuve que ce n'est pas le cas, cela semble être un résultat improbable.

Détails de la construction: voici comment fonctionne . En entrée , il dérive une graine pour le PRNG cryptographique en fonction de (par exemple par hachage ), et simule alors , en utilisant la sortie du PRNG cryptographique que les pièces de monnaie pour . Par exemple, une instanciation spécifique consisterait à définir , puis à utiliser comme germe pour AES256 en mode compteur, ou un autre PRNG cryptographique. Nous pouvons prouver les déclarations ci-dessus sous le modèle d'oracle aléatoire. x x x A ( x ) A k = SHA256 ( x ) kAxxxA(x)Ak=SHA256(x)k

Si vous n'êtes pas satisfait de l'idée que puisse produire des résultats incorrects sur une petite fraction des entrées, cela peut être résolu. Si vous répétez plusieurs fois et prenez un vote majoritaire, la probabilité d'erreur diminue exponentiellement rapidement dans le nombre d'itérations. Ainsi, en itérant un nombre constant de fois, vous pouvez obtenir une probabilité d'erreur inférieure à , ce qui signifie que les chances que vous couriez sur une entrée où l'algorithme génère la mauvaise réponse sont extrêmement faibles. (moins que les chances d'être frappé par la foudre plusieurs fois de suite). De plus, avec la construction que j'ai donnée ci-dessus, les chances qu'un adversaire puisse même trouver une contributionA ' ε une / deux 256 x x A ' AAAε1/2256xx où donne la mauvaise réponse peut être très petit, car cela nécessiterait de briser la sécurité du hachage SHA256. (Techniquement, cela nécessite le modèle d'oracle aléatoire pour se justifier, cela signifie donc que doit être choisi pour être "indépendant" de SHA256 et non coder en dur dans les calculs liés à SHA256, mais presque tous les algorithmes du monde réel satisferont à cette exigence .)AA

Si vous voulez une base théorique plus solide, vous pouvez itérer fois et obtenir une probabilité d'erreur inférieure à , où est la longueur de l'entrée . Maintenant, la fraction des entrées à bits où donne une réponse incorrecte est strictement inférieure à . Mais il n'y a que entrées possibles à bits, et sur chacune est soit correcte soit incorrecte, il s'ensuit qu'il n'y a pas d'entrée où A est incorrect: A est correct sur toutes les entrées, et cela est inconditionnel . SiΘ ( n ) 1 / 2 n n x n A ' 1 / 2 n 2 n n AA Θ(n)1/2nnxnA1/2n2nnAAA court au temps t ( n ) , puis A ' court au temps Θ ( n t ( n ) ) , donc A ' est un peu plus lent que A mais pas trop lent. C'est le contenu de la preuve d'Adleman que BPP est contenu dans P / poly. À des fins pratiques, cela est probablement exagéré, mais si vous aimez les preuves propres qui évitent les hypothèses cryptographiques ou si vous approchez cela du point de vue d'un théoricien, vous aimerez peut-être mieux cette version.At(n)AΘ(nt(n))AA

Pour plus de détails sur ces dernières considérations théoriques et problèmes supplémentaires où nous connaissons un algorithme randomisé efficace mais nous ne connaissons aucun algorithme déterministe dont nous pouvons prouver l'efficacité, voir /cstheory//q/31195 / 5038

En résumé: pour tout problème où nous connaissons un algorithme randomisé efficace, nous connaissons également un algorithme déterministe qui semble susceptible d'être efficace dans la pratique - mais à l'heure actuelle, nous ne savons pas prouver qu'il est efficace. Une interprétation possible est que nous ne sommes tout simplement pas très bons pour prouver des choses sur les algorithmes.

DW
la source