
Ne pas confondre avec la notion d'algorithme en sport
|
|
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
Un algorithme est une suite finie et non-ambiguë d’opérations ou d'instructions permettant de résoudre un problème.
Le mot algorithme vient du nom latinisé du mathématicien persan Al-Khawarizmi, surnommé « le père de l'algèbre ». Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que la cryptographie, le routage d'informations, la planification et l'optimisation de ressources, la bio-informatique, ...
Un algorithme est correct lorsque pour chaque instance, il se termine en produisant la bonne sortie, c'est-à -dire qu'il résout le problème posé. On mesure l'efficacité d'un algorithme notamment par sa durée pour produire le résultat attendu et par sa consommation de mémoire RAM (en partant du principe que chaque instruction a un temps d'exécution constant). Les ordinateurs sur lesquels tournent ces algorithmes ne sont pas infiniment rapides : le temps de machine reste une ressource limitée malgré une augmentation des performances considérable des machines. Un algorithme sera donc dit performant s'il utilise avec parcimonie les ressources dont il dispose, c'est-à -dire le temps CPU et la mémoire RAM. L’analyse de la complexité algorithmique permet de mesurer ces consommations.
[modifier] Exemple classique
Une recette de cuisine est un algorithme. Elle en contient les éléments constitutifs :
- des entrées (les ingrédients, le matériel utilisé)
- des instructions élémentaires simples, dont l'exécution amène au résultat voulu
- un résultat : le plat préparé.
Cependant, les recettes de cuisine ne sont en général pas présentées rigoureusement sous forme non-ambigüe : il est d'usage d'y employer des termes vagues laissés à l'appréciation du cuisinier alors qu'un algorithme stricto-sensu doit être précis et sans ambigüité à l'exécution.
[modifier] Notes et références
[modifier] Lien externe
|
Informatique théorique |
| Théorie du calcul |
| Calculabilité |
Décidabilité et indécidabilité • Ensemble récursif • Problème de l'arrêt • Ensemble récursivement énumérable |
| Modèle de calcul |
Automate fini •Transducteur fini •Automate sur les mots infinis •Automate à pile •Automate linéairement borné • Automate cellulaire • Machine de Turing • Thèse de Church |
| Modes de calcul |
Concurrence • Parallèlisme • Théorie de l'ordonnancement |
| Mesure et échelle de complexité |
Réduction polynomiale • Problème NP-complet |
|
| Logique, syntaxe et sémantique |
| Logique mathématique |
Assistant de preuve • Calcul des prédicats • Correspondance de Curry-Howard • Fonction récursive • Lambda-calcul • Théorème d'incomplétude de Gödel • Théorie des types |
| Grammaire formelle et systèmes de réécriture |
Compilation • Expression rationnelle • Grammaire formelle • Transduction rationnelle • Langage rationnel • Langage algébrique • Langage contextuel • Théorie des langages |
| Sémantique |
Sémantique des langages de programmation • Sémantique dénotationnelle • Sémantique axiomatique • Sémantique opérationnelle |
| Spécifier, vérifier et concevoir des programmes |
Interprétation abstraite • Méthodes formelles • Model checking |
|
| Algorithmique, complexité et mathématiques discrètes |
| Algorithmique |
Algorithme génétique • Algorithme glouton • Algorithme probabiliste • Complexité algorithmique • Diviser pour régner • Heuristique • Programmation dynamique |
| Problèmes et algorithmes numériques |
Algorithme du simplexe • Géométrie algorithmique • Algorithme d'Euclide • Test de primalité |
| Problèmes et algorithmes non-numériques |
Algorithmes de la théorie des graphes • Arbre (structure de données) • Liste (informatique) • Table de hachage • Tas (informatique) |
| Théorie des graphes |
Coloration de graphe • Problèmes de cheminement |
| Recherche opérationnelle |
Optimisation • Optimisation combinatoire • Théorie de l'ordonnancement |
| Données et codage |
Combinatoire des mots •Codage • Codage de l'information • Compression de données • Cryptage • Cryptanalyse • Cryptographie • Théorie de l'information |
|