Dans son sens le plus général, un algorithme est tout ensemble d’instructions détaillées qui aboutit à un état final prévisible à partir d’un début connu. Cependant, la qualité des algorithmes dépend des instructions données et le résultat sera incorrect si l’algorithme n’est pas correctement défini.
Exemples d’algorithmes:
L’algorithme au sens large du thême
Un exemple courant d’algorithme serait les instructions pour l’assemblage d’une maquette d’avion. En partant d’un certain nombre de pièces marquées, on peut suivre les instructions données pour obtenir un état final prévisible : l’avion terminé. Des erreurs dans les instructions, ou le fait de ne pas suivre correctement une étape, entraîneront un produit final défectueux.
Le concept de « tomber amoureux » peut être décrit comme le résultat d’un algorithme complexe.
Un programme informatique est un autre exemple omniprésent.
Un programme informatique est un autre exemple omniprésent. Chaque programme informatique est simplement une série d’instructions, dont la complexité peut varier, et qui sont énumérées dans un ordre précis, conçues pour exécuter une tâche spécifique. Les mathématiques utilisent également des algorithmes pour résoudre des équations à la main, sans l’aide d’une calculatrice. Un dernier exemple est le cerveau humain : la plupart des conceptions du cerveau humain définissent tout comportement – de l’acquisition de la nourriture à la chute amoureuse – comme le résultat d’un algorithme complexe.
Différentes classes d’algorithme
Bien qu’il n’existe pas de ventilation universellement acceptée pour les différents types d’algorithmes, il existe des classes communes auxquelles les algorithmes sont fréquemment admis. Parmi celles-ci, on peut citer
-Algorithmes de programmation dynamique : Cette classe se souvient des anciens résultats et tente de les utiliser pour accélérer le processus de recherche de nouveaux résultats. Cet algorithme serait utilisé pour le référencement seo
-Algorithmes gourmands : Les algorithmes gourmands tentent non seulement de trouver une solution, mais aussi de trouver la solution idéale à un problème donné.
-Algorithmes de force brute : L’approche de la force brute commence à un point aléatoire et passe par toutes les possibilités jusqu’à ce qu’elle trouve la solution.
-Algorithmes aléatoires : Cette classe comprend tout algorithme qui utilise un nombre aléatoire à n’importe quel moment de son processus.
-Algorithmes de branche et de liaison : Les algorithmes de branche et les algorithmes liés forment un arbre de sous-problèmes au problème principal, suivant chaque branche jusqu’à ce qu’elle soit résolue ou regroupée avec une autre branche.
-Algorithmes récursifs simples : Ce type d’algorithme cherche une solution directe immédiatement, puis fait marche arrière pour trouver une solution plus simple. Voir cet article
-Algorithmes de retour en arrière : Les algorithmes de retour en arrière testent une solution ; si une solution est trouvée, l’algorithme a été résolu, sinon il se répète une fois et teste à nouveau, en continuant jusqu’à ce qu’une solution soit trouvée.
-Algorithmes de division et de conquête : Un algorithme de division et de conquête est similaire à un algorithme de branchement et de liaison, sauf qu’il utilise la méthode de retour en arrière qui consiste à récidiver tout en divisant un problème en sous-problèmes.
Algorithmes en série et en parallèle
En plus de ces classes générales, les algorithmes peuvent également être divisés en deux groupes principaux : les algorithmes en série, qui sont conçus pour une exécution en série, dans laquelle chaque opération est exécutée dans un ordre linéaire ; et les algorithmes parallèles, utilisés avec des ordinateurs équipés de processeurs parallèles, dans lesquels un certain nombre d’opérations sont exécutées parallèlement les unes aux autres. Les algorithmes parallèles existent également dans le monde naturel dans le cas, par exemple, d’une mutation génétique sur une espèce.