Les algorithmes exponentiels rapides : résoudre un problème en temps exponentiel

Ce diagramme met en lumière un ordinateur quantique futuriste, symbolisé au centre, d'où émanent plusieurs trajectoires. Chaque chemin représente une tâche différente résolue de manière exponentiellement plus rapide grâce à ces algorithmes avancés. Des éléments visuels comme des flux de code binaire, des horloges indiquant une accélération du temps, et des symboles mathématiques illustrent la vitesse et l'efficacité de ces procédés. Les chemins se dirigent vers des solutions, symbolisées par des ampoules ou des coffres au trésor, démontrant l'impact considérable de ces algorithmes sur la résolution de problèmes complexes.

Les algorithmes exponentiels rapides, également appelés algorithmes à complexité exponentielle sub-exponentielle, sont des algorithmes qui résolvent certains problèmes en un temps exponentiel, mais avec un taux de croissance beaucoup plus lent que les algorithmes exponentiels classiques. En d'autres termes, ces algorithmes peuvent résoudre des problèmes dont la taille est beaucoup plus grande que ce qui serait possible avec des algorithmes exponentiels classiques.

Un exemple, l'algorithme de Schöning pour la résolution de satisfiabilité booléenne (SAT). Le problème, consiste à déterminer si une formule booléenne peut être satisfaite (c'est-à-dire, s'il existe une assignation de valeurs de vérité aux variables de la formule qui la rendent vraie). Les algorithmes classiques pour résoudre ce problème ont une complexité exponentielle en fonction du nombre de variables de la formule, mais l'algorithme de Schöning a une complexité de O(2^n/2), où n est le nombre de variables de la formule.

Un autre exemple :  l'algorithme de Shor pour la factorisation d'entiers. La factorisation d'un entier consiste à le décomposer en un produit de facteurs premiers. Cette opération est très difficile pour des nombres très grands, car elle nécessite de tester toutes les possibilités pour trouver les facteurs premiers. Les algorithmes classiques de factorisation ont une complexité exponentielle en fonction de la taille de l'entier, mais l'algorithme de Shor a une complexité de O((log n)^3), où n est la taille de l'entier.

Il convient de noter que même si ces algorithmes sont plus rapides que les algorithmes exponentiels classiques, ils ne sont pas nécessairement pratiques pour des tailles de problèmes réalistes. Les algorithmes exponentiels rapides ont souvent des constantes très élevées et peuvent nécessiter beaucoup de mémoire, ce qui peut les rendre inutilisables pour des problèmes de grande taille.

------------

L'algorithme de Schöning est un algorithme probabiliste remarquable pour résoudre des problèmes dans le cadre de la théorie de la complexité computationnelle, plus précisément des problèmes de satisfiabilité booléenne (SAT). Le SAT est le problème de décider si un ensemble donné de clauses (où chaque clause est une disjonction de littéraux) peut être satisfait par une certaine affectation de valeurs de vérité aux variables. C'est un problème NP-complet, ce qui signifie qu'aucun algorithme connu ne peut le résoudre de manière efficace (en temps polynomial) pour tous les cas. Cependant, l'algorithme de Schöning offre une approche heuristique qui peut souvent trouver une solution rapidement, bien qu'il ne garantisse pas toujours de le faire en temps polynomial.

L'algorithme de Shor, proposé par le mathématicien américain Peter Shor en 1994, est une méthode quantique pour la factorisation des entiers en temps polynomial, ce qui représente une avancée significative dans le domaine de l'informatique quantique. L'algorithme est spécialement conçu pour décomposer un grand nombre entier NN en ses facteurs premiers de manière beaucoup plus efficace que les meilleurs algorithmes connus fonctionnant sur des ordinateurs classiques. La capacité de factoriser rapidement de grands nombres a d'importantes implications, notamment pour la cryptographie, car elle permettrait de briser les systèmes de chiffrement largement utilisés aujourd'hui, comme le RSA, qui reposent sur la difficulté pratique de la factorisation des grands nombres composés.

Voir : Sécurité informatique - algorithme exponentiation rapide

Lire :

Le premier tome de cet ouvrage de synthèse désormais classique est consacré à la construction rigoureuse et systématique d'algorithmes fondamentaux sur les fichiers séquentiels et les vecteurs. Tous les algorithmes sont écrits dans un nouveau langage algorithmique plus facile à assimiler par le lecteur. Il permettra une traduction plus aisée dans les langages modernes tels que C et ADA, en restant néanmoins facilement traduisible en Pascal. Le livre contient de nombreux exercices corrigés et des études de cas de niveau de difficulté progressive: un outil pédagogique complet et indispensable à tous les étudiants de première année débutant en informatique.