Temps d exécution d un algorithme: pourquoi le mesurer? Temps d exécution d un algorithme: Comment le mesurer?

Documents pareils
ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Licence Sciences et Technologies Examen janvier 2010

Introduction à MATLAB R

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Définitions. Numéro à préciser. (Durée : )

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Algorithmique et Programmation

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Programmation C++ (débutant)/instructions for, while et do...while

C f tracée ci- contre est la représentation graphique d une

Cours 1 : La compilation

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Représentation d un entier en base b

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1 Recherche en table par balayage

MIS 102 Initiation à l Informatique

Calculateur quantique: factorisation des entiers

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Chapitre 7. Récurrences

Algorithmique I. Algorithmique I p.1/??

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Organigramme / Algorigramme Dossier élève 1 SI

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Algorithmique & programmation

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Initiation à l algorithmique

U102 Devoir sur les suites (TST2S)

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Fonctions homographiques

Quelques algorithmes simples dont l analyse n est pas si simple

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

TP 7 : oscillateur de torsion

Représentation des Nombres

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Génie Logiciel avec Ada. 4 février 2013

I- Définitions des signaux.

Indications pour une progression au CM1 et au CM2

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Les suites numériques

Examen Médian - 1 heure 30

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours Informatique Master STEP

Introduction MOSS 2007

Chapitre 6. Fonction réelle d une variable réelle

Pourquoi l apprentissage?

Sillage Météo. Notion de sillage

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Chapitre VI- La validation de la composition.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Le modèle de données

Application 1- VBA : Test de comportements d'investissements

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Pour la quatrième année consécutive, la SICAV Uni-Hoche reçoit une récompense au Morningstar Award.

UE C avancé cours 1: introduction et révisions

Introduction aux SGBDR

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Bases de programmation. Cours 5. Structurer les données

BES WEBDEVELOPER ACTIVITÉ RÔLE

modélisation solide et dessin technique

BeSpoon et l homme Connecté

Document d aide au suivi scolaire

Architecture des ordinateurs

Conception des systèmes répartis

Algorithmique, Structures de données et langage C

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

0DWKpPDWLTXHVGHO DUJHQW. édité par Mr. G.Moumoulidis (OTE)

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Les arbres binaires de recherche

STAGE IREM 0- Premiers pas en Python

A009 Maîtrise des enregistrements

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

CORRECTION EXERCICES ALGORITHME 1

L emprunt indivis - généralités

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

SOCLE COMMUN: LA CULTURE SCIENTIFIQUE ET TECHNOLOGIQUE. alain salvadori IA IPR Sciences de la vie et de la Terre ALAIN SALVADORI IA-IPR SVT

Priorités de calcul :

V- Manipulations de nombres en binaire

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

WinBooks Logistics 5.0

Les BRMS Business Rules Management System. Groupe GENITECH

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Quels apprentissages info-documentaires au collège?

Transcription:

La notion de complexité fait référence à l efficacité d un algorithme. Il existe formes de complexité pour un algorithme : Complexité spatiale = espace mémoire occupé. Complexité temporelle = temps d exécution Temps d exécution d un algorithme: pourquoi le mesurer? Temps d exécution d un algorithme: Comment le mesurer? Algo des Tableaux 06-7 86 Algo des Tableaux 06-7 87 Pour un problème donné, il y a plusieurs algorithmes. Il est facile d'écrire des algorithmes faux ou inefficaces. Un algorithme inefficace peut faire la différence entre plusieurs années et quelques minutes de calculs sur une même machine. Exemple : Construire une ville de 5 maisons en évitant aux livreurs de pizzas qui suivent les rues un trajet trop long depuis la pizzeria. Organisation : Linéaire. Numéros croissants. Pizzeria au numéro. 3 4 5 6 7 8 9 0 3 4 5 Organisation : Embranchements. À l'ouest de la maison k, n < k, et à l'est, n > k. La pizzeria est au numéro 8. 8 4 Algo des Tableaux 06-7 88 3 5 7 9 3 5 Algo des Tableaux 06-7 89

Dans les deux organisations, le livreur a une méthode simple pour trouver une maison en partant de la pizzeria. 3 4 5 6 7 8 9 0 3 4 5 On suppose qu'il faut une unité de temps pour passer d'une maison à une autre (en suivant une rue). Dans le cas le pire, quel est le temps mis par un livreur pour aller jusqu'à une maison depuis la pizzeria? 3 4 5 6 7 8 9 0 3 4 5 8 4 8 4 3 5 7 9 3 5 Algo des Tableaux 06-7 90 3 5 7 9 3 5 Algo des Tableaux 06-7 9 Nombre de maisons Temps avec organisation Temps avec organisation 5 4 3 03 0 9 073 74 83 073748 9 n n- ~log (n) Différence entre n et log n : Pour notre livreur de pizza : Si n = 0 6, alors log 0 Il fait 50 000 fois moins de déplacements si les maisons sont organisés par «embranchements». Si n = 0 9, alors log n 30, il fait alors 30 000 000 fois moins de déplacements. Algo des Tableaux 06-7 9 Algo des Tableaux 06-7 93

ème exemple Problème : déterminer si ensembles E, E de n entiers ont une valeur commune. ème exemple Problème : déterminer si ensembles E, E de n entiers ont une valeur commune. Algorithme : comparer successivement chaque élément de E avec chaque élément de E. Il faudra environ n² comparaisons. 3763 534 983 83889 9 7363 9 873 873 Algorithme : Avec une structure de données adaptée, on peut résoudre le problème avec environ n*log(n) comparaisons. E = E Algorithme Algorithme n n n*log(n) 0 00 0 000 000000 3000 00000 0000000000 500000 Algo des Tableaux 06-7 94 Algo des Tableaux 06-7 95 Différence entre n² et n*log(n) Sur un ordinateur exécutant une instruction élémentaire en 0-9 s. Si les ensembles E et E ont n = 000 000 = 0 6 éléments Exécuter n * log n instructions élémentaires nécessite 0,006s. Exécuter n instructions élémentaires nécessite 0 3 s soit environ 6mn40s. Si les ensembles E et E ont n = 0 000 000 = 0 7 éléments Exécuter n * log n instructions élémentaires nécessite 0,07s. Exécuter n instructions élémentaires nécessite 0 5 s soit plus d une journée. En informatique, on manipule parfois des ensembles énormes Google indexe plusieurs 30 000 milliards de pages web, Google reçoit près de 5,5 milliards de requêtes/jour ère idée : Faire une étude expérimentale. Implémenter le ou les algorithmes. Exécuter le programme pour différentes valeurs de n. Mesurer précisément le temps d exécution. En déduire une approximation du temps d exécution. Exemple: déterminer si ensembles E, E de n entiers ont une valeur commune. E = E Algorithme Algorithme 0 00 0 000 000000 3000 00000 0000000000 500000 n n n*log(n) Algo des Tableaux 06-7 96 Algo des Tableaux 06-7 97 3

ère idée : Faire une étude expérimentale. Inconvénients : Il faut programmer les algorithmes. Conséquences? On ne pourra tester qu un sous-ensemble des cas possibles. Conséquences? Pour comparer algorithmes on devra utiliser les mêmes environnements matériel et logiciel. Conséquences? ème idée : Utiliser une méthode théorique qui : Utilise l algorithme et est indépendante de l implémentation et du langage de programmation. Définit le temps d exécution comme une fonction dépendante de la taille des données d entrée. Prends en compte toutes les entrées possibles. Est indépendante des environnements matériel et logiciel. Algo des Tableaux 06-7 98 Algo des Tableaux 06-7 99 Le temps de calcul (ou complexité) d'un algorithme est la fonction qui à un entier n associe le nombre maximal d'instructions élémentaires que l'algorithme effectue, lorsqu on travaille sur des objets de taille n. La fonction compte les instructions élémentaires au lieu de mesurer le temps. On s intéresse en particulier à la complexité dans le pire des cas. Exemples d'opérations élémentaires : additionner, soustraire, multiplier ou diviser deux nombres, tester si une valeur est égale à une autre valeur, affecter une valeur à une variable. Algo des Tableaux 06-7 00 Le décompte des instructions peut être fastidieux si on compte aussi les accès aux structures de données, les E/S, appels de fonctions, etc Même en se limitant à une seule opération on peut obtenir une expression qu il faudra approximer pour obtenir une solution Même si les opérations élémentaires ont des temps d exécution constants sur une machine donnée, ils varient d une machine à l autre. Donc pour simplifier le calcul sans perdre sa pertinence on négligera les constantes. En pratique, on se contente d'un ordre de grandeur asymptotique. Algo des Tableaux 06-7 0 4

Limite asymptotique supérieure O (Grand O) c*g(n) f(n) n 0 n Algo des Tableaux 06-7 0 Algo des Tableaux 06-7 03 Limite asymptotique supérieure O (Grand O) Limite asymptotique supérieure O (Grand O) Algo des Tableaux 06-7 04 Algo des Tableaux 06-7 05 5

f(n) c*g(n) n 0 n Algo des Tableaux 06-7 06 Algo des Tableaux 06-7 07 Intuitivement : Grand O : f(n) est O(g(n)) si f(n) est plus petite ou égale à g(n) quand n est grand. c *g(n) n 0 n f(n) c *g(n) Grand Oméga : f(n) est Ω (g(n)) si f(n) est plus grande ou égale à g(n) quand n est grand. Grand thêta : f(n) est (g(n)) si f(n) est à peu près égale g(n) quand n est grand. Algo des Tableaux 06-7 08 Algo des Tableaux 06-7 09 6

def multiplication ( x, y): p=0 for i in range(y): p=p+x return (p) # op élémentaires y fois + 3*y def multiplication (x, y): p=0 while (y>0): if (y% ==): p=p+x x = *x #decalage y = y// #decalage return (p) x=7 y=9 p=0 x=7 y=9 p=7 * / x=4 y=4 p=7 x=8 y= p=7 x=56 y= p=63 x= y=0 p=63 return 63 Algo des Tableaux 06-7 0 Algo des Tableaux 06-7 x=7 y=9 p=0 x=7 y=9 p=7 * / x=4 y=4 p=7 x=8 y= p=7 x=56 y= p=63 x= y=0 p=63 return 63 x= y=00 p=0 x= y=00 p=7 * / x=0 y=00 p=7 x=00 y=0 p=7 x=000 y= p=63 x=0000 y=0 p=63 return 63 def multiplication (x, y): p=0 while (y>0): if (y% ==): p=p+x x = *x #decalage y = y// #decalage return (p) # op élémentaires (+ sortie) 0 ou k fois [3+7*k,3+9*k] Algo des Tableaux 06-7 Algo des Tableaux 06-7 3 7

Algo des Tableaux 06-7 4 Algo des Tableaux 06-7 5 Algo des Tableaux 06-7 6 Algo des Tableaux 06-7 7 8

Pour chacun des algorithmes suivants donner votre intuition du temps de calcul : Chercher un élément x dans un tableau de n éléments Insérer un élément dans un tableau de n éléments Tracer une ligne verticale sur une image de taille (L*H) Tracer une ligne verticale d épaisseur e sur une image de taille (L*H). Calculer a k Calculer la somme des puissances de a : a 0 +a + +a n Algo des Tableaux 06-7 8 9