MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI.

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

Tris.
Chapitre annexe. Récursivité
Tests et Validation du logiciel
Algorithmes et structures de données avancés
Sensibilisation à l’Algorithmique
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
COURS DE MATHEMATIQUES DISCRETES SM
Calculs de complexité d'algorithmes
DECLARATION DE VARIABLES
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
Cours d’Algorithmique
Chapitre II.Rappels mathématiques et complexité
Conception et analyse des algorithmes
Références Bibliographiques
INFOR 101 Chapitre 3 Marianne Morris.
Analyse des algorithmes: une introduction
Les algorithmes: complexité et notation asymptotique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Methode de Tri efficace
Programmation linéaire
ALGORITHMIQUE en classe de seconde
IFT-2000: Structures de Données Introduction à lanalyse dalgorithmes Dominic Genest, 2009.
Algorithmique et Programmation
Algorithme de Bellman-Ford
Analyse d’Algorithmes
Analyse d’algorithmes
Structures de données IFT-10541
Mesurer l’efficacité des algorithmes
Introduction à l’algorithmique
IFT Complexité et NP-complétude
FSAB 1402: Informatique 2 Complexité Calculatoire
Algorithmes d ’approximation
Efficacité des algorithmes
Efficacité des algorithmes
Standard Template Library
Les Algorithmes de Tri Introduction Tri par Sélection
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
ASI 3 Méthodes numériques pour l’ingénieur
Analyse des Algorithmes
Analyse d’algorithmes
MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4)
Efficacité des algorithmes
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
ALGORITHME DE TRI Le tri par insertion.
D.E ZEGOUR Ecole Supérieure d’Informatique
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 4)
Cours 4 - Trois algorithmes de recherche dans un tableau
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Algorithmique : Introduction
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Sections 6, 7, 8)
Mathématiques Discrètes Chapitre 2 (section 3)
Les algorithmes recursifs
Introduction à la récursivité
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 5)
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Algorithmique et Complexité
MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 1)
Cours 5 - Trois algorithmes de tri d'un tableau
CSI2510 Structures de données et algorithmes Analyse des algorithmes
Files de priorité (Priority Queue)
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Complexité algorithmique
H. Richard – Elodie Laine – Initiation à la programmation impérative et algorithmique Cours 5 – Tableaux Largement inspiré des cours.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Transcription de la présentation:

MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI

Complexité Algorithmique Une mesure de la difficulté d’exécuter un programme. Permet d’évaluer le coût associé à l’exécution d’un programme. Ressources utilisées: temps CPU, mémoire. Mesures communes de la complexité: “Temps” : # d’opérations ou # de cycles “Espace”: # d’octets de mémoire utilisés

Complexité dépendante des Input Les algorithmes ont différentes complexités pour des nombres différents d’inputs. La recherche dans une longue liste prendra généralement plus de temps qu’une recherche dans une liste plus courte. La complexité est généralement exprimée comme une fonction du nombre d’inputs. La fonction de complexité est souvent exprimée dans le pire cas pour une longueur donnée (# inputs).

Exemple 1: Algorithme Max Problème: Trouver l’ordre de grandeur de la complexité de l’algorithme MAX dans le pire cas, en tenant compte que chaque ligne de code est exécutée dans un temps constant et que différentes lignes de code peuvent être exécutées dans des temps différents.

Analyse de complexité (suite..) procédure max(a 1, a 2, …, a n : entiers) v := a 1 t 1 pour i := 2 à nt 2 si a i > v alors v := a i t 3 retourner vt 4 Pire cas: Temps pour l’exécution de chaque ligne

Analyse de complexité (suite..) Ordre de complexité de t(n)?

Exemple 2: Recherche linéaire procédure recherche linéaire (x: entier, a 1, a 2, …, a n : entiers distincts) i := 1t 1 TTQ (i  n  x  a i ) fairet 2 i := i + 1t 3 si i  n alors position := it 4 sinon position := 0t 5 retourner positiont 6

Analyse de la recherche linéaire L’ordre de complexité (pire cas): Meilleur cas: Cas moyen, si l’item est présent:

Exemple 3: Recherche Binaire procédure recherche binaire (x:entier, a 1, a 2, …, a n : entiers distinc, triés du plus petit au plus grand) i := 1 j := n TTQ i a m alors i := m+1 sinon j := m fin si x = a i alors position := i sinon position := 0 retourner position  (1) Question importante: Combien d’iterations de la boucle?

Analyse de la recherche Binaire Supposons que n est une puissance 2,  k: n=2 k. L’intervalle de départ de i=1 à j=n (n items). Chaque itération: l’intervalle j  i+1 est coupé en 2. La boucle termine quand l’intervalle de recherche est 1=2 0 (i=j). Donc, le nombre d’itérations est: k = log 2 n =  (log 2 n)=  (log n) Même pour n  2 k (pas une puissance de 2), la complexité reste  (log 2 n) =  (log n).

Quelques ordres de complexité  (1)Constant  (log c n)Logarithmique (même ordre  c)  (log c n)Polylogarithmique  (n)Linéaire  (n c )Polynomiale ( pour divers c)  (c n ) Exponentielle (pour c>1)  (n!)Factorielle (With c a constant.) NP Problems

Analyse de complexité: points importants Définitions de la complexité algorithmique, complexité temporelle, complexite temporelle du pire cas. Identifier l’ordre de complexité. Analyse de complexité: pire cas, meilleur cas, ou cas moyen de l’ordre de complexité temporelle d’algorithmes simples.

Revue: Complexité Complexité algorithmique = coût de l’exécution. L’Accent est mis sur la complexité temporelle. Même si l’espace et l’énergie est importante. Caractériser la complexité en fonction de n la dimension des inputs: Pire-cas, Meilleur-case, ou Cas-moyen. Utilisation de la notion d’ordre pour représenter de façon concise des propriétés de croissance des fonctions de complexité.