optimisation
efficacité algorithme :
https://www.bladi.info/threads/gerer-temps-energies.454386/
https://www.bladi.info/threads/comprendre-recit-rapidement.458285/page-3#post-15428298
jbr :
https://www.bladi.info/threads/evolution-croyances.446527/page-2#post-14926764
art algorithmique et islamique :
https://fr.wikipedia.org/wiki/Art_algorithmique
https://fr.wikipedia.org/wiki/Algorithme
Un algorithme est une méthode générale pour résoudre un type de problèmes.
Il est dit
correct lorsque, pour chaque instance du problème, 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 de calcul,
par sa consommation de mémoire RAM (en partant du principe que chaque instruction a un temps d'exécution constant),
par la précision des résultats obtenus (par exemple avec l'utilisation de méthodes probabilistes, comme la méthode de Monte-Carlo),
sa scalabilité (son aptitude à être efficacement parallélisé), etc.
Les ordinateurs sur lesquels s'exécutent ces algorithmes ne sont pas infiniment rapides :
le temps de machine reste une ressource limitée, malgré une augmentation constante des performances des ordinateurs.
Un algorithme sera donc dit performant s'il utilise avec parcimonie les ressources dont il dispose, c'est-à-dire le temps CPU, la mémoire RAM et (aspect objet de recherches récentes)
la consommation électrique.
L’analyse de la
complexité algorithmique permet de prédire l'évolution en temps calcul nécessaire pour amener un algorithme à son terme, en fonction de la quantité de données à traiter.
L'algorithmique intervient dans la vie de tous les jours6.
Une recette de cuisine peut être réduite à un algorithme si on peut réduire sa spécification aux éléments constitutifs :
des entrées (les ingrédients, le matériel utilisé) ;
des instructions élémentaires simples (frire, flamber, rissoler, braiser, blanchir, etc. ),
dont les exécutions dans un ordre précis amènent 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 ambiguë :
il est d'usage d'y employer des termes vagues laissant une liberté d'appréciation à l'exécutant7
alors qu'un algorithme stricto sensu doit être précis et sans ambiguïté.
voir detail etude formelle :
https://fr.wikipedia.org/wiki/Algorithmique#Étude_formelle
Ainsi,
pour décrire les algorithmes, des structures algorithmiques ont été mises en évidence :
structures de contrôle et structures de données.
Pour justifier de la qualité des algorithmes, les notions de correction, de complétude et de terminaison ont été mises en place.
Enfin,
pour comparer les algorithmes, une théorie de la complexité des algorithmes a été définie.