UNIVERSITE SAAD DAHLAB DE BLIDA
Complexité des algorithmes et … 28
a) tenir compte du nombre de paramètre du système
b) la complexité computationnelle, qui prend en compte le temps et la place nécessaire pour
résoudre ce problème sur un ordinateur
c) on peut tenir compte de la complexité des démonstrations proposées, mesurées par les
caractéristiques structurelles de leurs graphes.
Notons que certains systèmes complexes lorsque leur description est exacte, peuvent devenir
moins complexes à un certain degré d'approximation. Souvent les problèmes intéressants se
montrent difficiles. La complexité d'un problème peut être spatiale ( les algorithmes connus
demandent une place en mémoire exagérée ) ou temporelle ( le temps nécessaire à leur
résolution qui est démesurée). Nous nous intéresserons à la complexité temporelle.
2. Comment mesurer l'efficacité d'un algorithme
Un algorithme de résolution d'un problème P donné est une procédure, décomposable en
opérations élémentaires, qui transforment les données en résultats. La première idée pour
comparer et évaluer des algorithmes est de les programmer, puis de mesurer leurs durées
d'exécution. Le temps de calcul dépend trop de la machine, du langage de programmation, du
compilateur utilisé pour le langage et les données. En pratique on compte le " nombre
d'opérations caractéristiques " de l'algorithme à évaluer. Ce nombre ne dépend ni de la
machine, ni du langage et peut s'évaluer sur du papier. L'évaluation dans certaines conditions
s'appellent " complexité de l'algorithme ". Ce n'est pas la complexité de structure ou la
difficulté de programmation. Nous établissons une relation entre la durée d'exécution de
l'algorithme exprimée en termes du nombre d'opérations élémentaires, et la taille, exprimée en
termes de caractères nécessaires pour coder les données. Quelques questions peuvent se poser:
quelles sont les opérations élémentaires que nous allons prendre en compte ? Quel codage des
données nous permettra de mesurer la taille du problème? Quelle est la nature de la relation
liant la taille des données et le nombre d'opérations élémentaires ?
La taille d'une donnée est la quantité de mémoire pour la stocker. Il faudrait la mesurer en
nombre de bits. La complexité d'un algorithme A est une fonction CA(N) donnant le nombre
d'instructions caractéristiques exécutées par A dans le pire des cas, pour une donnée de taille
N. Les opérations élémentaires sont en général, l'addition, la soustraction, la multiplication, la
division, la comparaison, l'incrémentation etc. La complexité est basée sur la donnée qui va
demander le plus du travail à l'algorithme. Une complexité moyenne se calcule en effectuant
par exemples, des statistiques de temps de calculs sur un grand nombre de problèmes_tests.
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali