Algorithmique
Définition :
L'algorithmique est la science des algorithmes.
L'algorithmique s'intéresse à l'art de construire des algorithmes ainsi qu'à caractériser leur validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.
Définition : Validité d'un algorithme
La validité d'un algorithme est son aptitude à réaliser exactement la tache pour laquelle il a été conçu.
Si l'on reprend l'exemple (trouver son chemin) de l'algorithme de recherche du chemin de la gare, l'étude de sa validit´e consiste `a s'assurer qu'on arrive effectivement `a la gare en exécutant scrupuleusement les instructions dans l'ordre annoncé.
Définition : Robustesse d'un algorithme
La robustesse d'un algorithme est son aptitude à se protéger de conditions anormales d'utilisation.
Dans l'exemple , la question de la robustesse de l'algorithme se pose par exemple si le chemin proposé a été pensé pour un piéton, alors que le « touriste égaré » est en voiture et que la « troisième à droite » est en sens interdit.
Définition : La ré-utilisabilité d'un algorithme
La ré-utilisabilité d'un algorithme est son aptitude à être réutilisé pour résoudre des taches équivalentes à celle pour laquelle il a été conçu.
L'algorithme de recherche du chemin de la gare est-il réutilisabilité tel quel pour se rendre à la mairie ? A priori non, sauf si la mairie est juste à coté de la gare.
Définition : La complexité d'un algorithme
La complexité d'un algorithme est le nombre d'instructions élémentaires à exécuter pour réaliser la tache pour laquelle il a été conçu.
Si le « touriste égaré » est un piéton, la complexité de l'algorithme de recherche de chemin peut se compter en nombre de pas pour arriver `a la gare.
Définition : L'efficacité d'un algorithme
L'efficacité d'un algorithme est son aptitude `a utiliser de manière optimale les ressources du matériel qui l'exécute.
N'existerait-il pas un raccourci piétonnier pour arriver plus vite à la gare ?
Fondamental :
L'algorithmique permet ainsi de passer d'un problème à résoudre à un algorithme qui décrit la démarche de résolution du problème. La programmation a alors pour rôle de traduire cet algorithme dans un langage « compréhensible » par l'ordinateur afin qu'il puisse exécuter l'algorithme automatiquement.
