La preuve de Adleman que est contenu dans montre que s'il existe un algorithme aléatoire pour un problème qui fonctionne en temps sur les entrées de taille , alors il y a aussi un algorithme déterministe pour le problème qui fonctionne en temps sur les entrées de taille [l’algorithme exécute l’algorithme randomisé sur des chaînes aléatoires indépendantes. Il doit y avoir un hasard pour l'algorithme répété qui est bon pour tous lesP / p o l y t ( n ) n Θ ( t ( n ) ⋅ n ) n Θ ( n ) 2 nentrées possibles]. L'algorithme déterministe n'est pas uniforme - il peut se comporter différemment pour différentes tailles d'entrée. Ainsi, l'argument d'Adleman montre que - si l'on ne se soucie pas de l'uniformité - la randomisation ne peut accélérer les algorithmes que par un facteur linéaire dans la taille de l'entrée.
Quels sont quelques exemples concrets où la randomisation accélère le calcul (à notre connaissance)?
Un exemple est le test d'identité polynomiale. Ici, l'entrée est un circuit arithmétique de taille n qui calcule un polynôme m-variable sur un champ et la tâche consiste à déterminer si le polynôme est identique à zéro. Un algorithme randomisé peut évaluer le polynôme sur un point aléatoire, tandis que le meilleur algorithme déterministe que nous connaissons (et éventuellement le meilleur qui existe) évalue le polynôme sur de nombreux points.
Un autre exemple est le Spanning Tree minimum, où le meilleur algorithme randomisé de Karger-Klein-Tarjan est le temps linéaire (et la probabilité d'erreur est exponentiellement faible!), Tandis que le meilleur algorithme déterministe de Chazelle s'exécute dans le temps ( est la fonction inverse d'Ackermann, donc la vitesse de randomisation est vraiment petite). Fait intéressant, Pettie et Ramachandran ont prouvé que s’il existait un algorithme de temps linéaire déterministe non uniforme pour l’espacement minimal, il existait également un algorithme de temps linéaire déterministe uniforme.α
Quels sont d'autres exemples? Quels exemples connaissez-vous où l’accélération de la randomisation est importante, mais c’est peut-être simplement parce que nous n’avons pas encore trouvé d’algorithmes déterministes suffisamment efficaces?
la source
Réponses:
Je ne sais pas si aléatoire « devrait » ou « ne devrait pas » l' aide, cependant, les tests de primalité entier peut être fait dans le temps en utilisant Miller-Rabin aléatoire, tout autant que je sache, le plus connu algorithmes déterministes sont ~ O ( n 4 ) en supposant HGR (Miller-Rabin déterministe) ou ~ O ( n 6 ) sans conditions (variantes de AKS).O~( n2) O~( n4) O~( n6)
la source
Un ancien exemple est le calcul de volume. Compte tenu d' un polytope décrit par un oracle d'appartenance, il y a un algorithme aléatoire en cours d' exécution en temps polynomial pour estimer le volume à un facteur, mais aucun algorithme déterministe peut venir même près sans conditions .1 + ε
Le premier exemple d'une telle stratégie randomisée a été fourni par Dyer, Frieze et Kannan, et le résultat de la dureté pour les algorithmes déterministes est fourni par Bárány et Füredi. Alistair Sinclair a de bonnes notes de cours à ce sujet .
Je ne suis pas sûr de bien comprendre la partie "et cela ne devrait pas" de la question, donc je ne suis pas sûr que cela corresponde à la facture.
la source
Je ne sais pas si cela répond à votre question (ou au moins une partie de celle-ci). Mais pour des exemples concrets dans lesquels la randomisation peut fournir une accélération, il s’agit de problèmes d’optimisation et de la relation avec le théorème No Free Lunch ( NFL ) .
Il existe un article "Peut-être pas un repas gratuit, mais au moins un apéritif gratuit" où il est montré que l'utilisation d'algorithmes de randomisation (optimisation) peut avoir de meilleures performances.
Les références:
Résumé sur les déjeuners gratuits (et les déjeuners gratuits) de David H. Wolpert, Que coûte le dîner? ( notez que les théorèmes de type NFL ne spécifient jamais de " prix " réel en raison de leur type de preuve)
en particulier pour l'optimisation généralisée (GO):
Enfin, une remarque simple (et pas si simple) qui explique pourquoi la randomisation (sous une forme ou une autre) peut fournir des performances supérieures à celles des algorithmes strictement déterministes.
la source
Le meilleur exemple est dans la zone actuellement considérée comme la meilleure candidate pour les fichiers OWF, où il semble que chaque fichier OWF populaire cuit de manière surprenante possède un algorithme sous-exponentiel aléatoire alors qu'il n'existe aucun algorithme sous-exponentiel déterministe (par exemple, la factorisation entière). En fait, dans de nombreux cas, il existe probablement un algorithme efficace avec quelques chaînes de conseil (analyse cryptographique).
la source
Si vous avez un algorithme utilisant la randomisation, vous pouvez toujours le remplacer par un algorithme déterministe utilisant des nombres pseudo-aléatoires: Prenez la description du problème, calculez un code de hachage, utilisez ce code de hachage comme germe pour un bon générateur de nombres pseudo-aléatoires. . En pratique, c'est ce qui risque de se produire lorsque quelqu'un implémente un algorithme en utilisant la randomisation.
Si nous omettons le code de hachage, la différence entre cet algorithme et un algorithme utilisant la vraie randomisation est que je peux prédire la séquence de nombres aléatoires générés et que je pourrais produire un problème tel que le nombre aléatoire prédit appliqué à mon problème sera toujours. prendre la pire décision possible. Par exemple, pour Quicksort avec un pivot pseudo-aléatoire, je pourrais construire un tableau en entrée où le pivot pseudo-aléatoire trouvera toujours la valeur la plus grande possible dans le tableau. Avec le vrai hasard, ce n'est pas possible.
Avec le code de hachage, il me serait très difficile de construire un problème où les nombres pseudo-aléatoires produisent les pires résultats. Je peux toujours prédire les nombres aléatoires, mais si je modifie le problème, la séquence des nombres pseudo-aléatoires change complètement. Néanmoins, il serait presque impossible pour vous de prouver que je ne peux pas construire un tel problème.
la source