Communication

Disponible uniquement sur Etudier
  • Pages : 9 (2114 mots )
  • Téléchargement(s) : 0
  • Publié le : 24 novembre 2010
Lire le document complet
Aperçu du document
Motivation
• Un algorithme est une procédure finie et mécanique de résolution d’un problème.
Exemples : les algorithmes d’Euclide, l’algorithme de Dijkstra ...

9. Complexité des algorithmes

• Un algorithme doit se terminer sur toutes les données possibles du problème et doit fournir une solution correcte dans chaque cas. • Pour résoudre informatiquement un problème donné, on implante doncun algorithme sur un ordinateur. Mais, pour un problème donné, il existe bien souvent plusieurs algorithmes. Y a-t-il un intêret à choisir ? et si oui comment choisir ? • En pratique, il n’est même pas suffisant de détenir un algorithme. Il existe des problèmes pour lesquels on a des algorithmes, mais qui restent comme « informatiquement non résolus ». C’est parce que les temps d’exécution sontvite exorbitants.
On cherche alors des heuristiques pour abaisser ces temps de calcul.

1

2

Complexité
En informatique, le mot complexité recouvre en fait deux réalités : • la complexité des algorithmes C’est l’étude de l’efficacité comparée des algorithmes. On mesure ainsi le temps et aussi l’espace nécessaire à un algorithme pour résoudre un problème. Cela peut se faire de façonexpérimentale ou formelle. • la complexité des problèmes La complexité des algorithmes a abouti à une classification des problèmes en fonction des performances des meilleurs algorithmes connus qui les résolvent. Techniquement, les ordinateurs progressent de jour en jour. Cela ne change rien à la classification précédente. Elle a été conçue indépendamment des caractéristiques techniques des ordinateurs.Temps d’exécution d’un programme
• On implante un algorithme dans un langage de haut niveau pour résoudre un problème donné. Le temps d’exécution du programme dépend : – – – – – – des données du problème pour cette exécution de la qualité du code engendré par le compilateur de la nature et de la rapidité des instructions offertes par l’ordinateur (facteur 1 à 1000) de l’efficacité del’algorithme de l’encodage des données … et aussi de la qualité de la programmation !

• A priori, on ne peut pas mesurer le temps de calcul sur toutes les entrées possibles. Il faut trouver une autre méthode d’évaluation. • L’idée est de s’affranchir des considérations subjectives • On cherche une grandeur n pour « quantifier » les entrées. • On calcule les performances uniquement en fonction de n.
4(programmeur, matériel,

... ).

Les domaines alliés de la complexité et de la preuve de programmes utilisent toutes les notions que nous avons vues jusqu’à présent dans ce cours.
3

1

Modèles de calcul
• Les machines de Turing (TM) ou les Random Access Machines (RAM) sont des machines abstraites. Elles servent d’« étalon » à la mesure des complexités en temps et en espace des fonctionsdites calculables. Thèse de Church*-Turing ** (indépendamment mais les 2 en 1936) Toute fonction effectivement calculable l’est par une machine de Turing. • Notre optique ici n’est évidemment pas de présenter la théorie de la calculabilité mais juste d’en appréhender les principes les plus simples. • Notre approche pragmatique sert à comparer des algorithmes résolvant un même problème afind’estimer rigoureusement lesquels sont les meilleurs.
*
**

TM et RAM
Principe d’une machine de Turing • une TM est une unité de contrôle munie d’une tête de lecture/écriture positionnée sur un ruban qui comporte un nombre infini dénombrable de cases • l’unité de contrôle a un ensemble fini d’états possibles • à chaque instant, la machine évolue en fonction de son état et de l’information lue sur lacase courante : la tête écrit sur cette case en effaçant le contenu précédent, se déplace d’une case à gauche, à droite ou bien ne se déplace pas. Une Random Access Machine est composée • d’une unité de contrôle • de n registres à accès direct • d’opérations élémentaires (LOAD, STORE, READ, WRITE, ADD, JUMP,…)

A.Church (1903-1995) : mathématicien et logicien américain A.Turing (1912-1954)...
tracking img