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 ′ AAA′A′A
De plus, si le PRNG cryptographique est sécurisé, heureusement, nous devrions nous attendre à ce que soit un bon algorithme si est: AA′A
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 - εA′1−ε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 ) kA′xxxA(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 ' AA′A′ε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 .)A′A
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/2nnxnA′1/2n2nnAA′A′ 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′Θ(n⋅t(n))A′A
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.