Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité

Slides:



Advertisements
Présentations similaires
Tris.
Advertisements

MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI.
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
COUPLEX 1 Test Case Nuclear Waste Disposal Far Field Simulation D. VEYRET – M. GEORGIADOU I.U.S.T.I. – C.N.R.S. UMR 6595 Université de Provence 5 rue Enrico.
I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB GFDL 1.2 CM 6/8 v1.1.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Auteur : Patrice LEPISSIER Les probabilités  Notions de base Notions de base  Variable aléatoire Variable aléatoire  La loi Normale La loi Normale.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB GFDL 1.2 CM 7/8 v1.2.
Tableaux en C Mardi 2/05.
V Suite géométrique : 1°) Définition : un+1
Suites ordonnées ou mettre de l’ordre
Outils de Recherche Opérationnelle en Génie MTH 8414
Information, Calcul, Communication
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Pierre Joli Cours de Mathématique Pierre Joli
Un Algorithme , c'est Quoi ?
Algorithmiques Abdelbasset KABOU
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Algorithme et programmation
Techniques de décomposition
Cours 4 : Tris de Tableaux
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Analyse en Composantes Principales A.C.P. M. Rehailia Laboratoire de Mathématiques de l’Université de Saint Etienne (LaMUSE).
L’Instruction de Test Alternatif
Algorithmiques Abdelbasset KABOU
Information, Calcul, Communication
Précision d'une mesure et chiffres significatifs
Initiation à la programmation impérative et algorithmique
Alternative : syntaxe CSharp
Les Instructions – Organigramme
Un Algorithme , c'est Quoi ?
Initiation à la programmation impérative et algorithmique
Classification des archtecutres paralleles
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
Introduction à l’algorithmique et à la programmation Modified by Dr. Mhamed Zineddine INSA Euro-Med Taken from:INSA de Lyon, Departement Telecommunications,
C1 – Interpolation et approximation
Cours N°6: Algorithmiques Structures Conditionnelles
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Science du traitement rationnel de l'information
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Introduction à l’algorithmique et à la programmation Modified by Dr. Mhamed Zineddine INSA Euro-Med Taken from:INSA de Lyon, Departement Telecommunications,
Fonction rationnelle Chapitre 5.
Type Concret – Type Abstrait
Bus et adressage GIF-1001: Ordinateurs: Structure et Applications
Statistiques. Moyenne, Moyenne pondérée, Tableur et graphiques.
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
 1____Probabilité  2______variables aléatoires discrètes et continues  3______loi de probabilités d’une v a  4_______les moyens et les moyens centraux.
Points essentiels Cinématique; Position; Déplacement; Vitesse moyenne; Équation d’un mouvement rectiligne uniforme.
OPTIMISATION 1ère année ingénieurs
Algorithmique Avancée et Complexité
2.4 La loi de vitesse d’une réaction chimique
La puissance du transfert d’énergie électrique entre un générateur et un circuit constitué de conducteurs ohmiques dépend-elle de ces conducteurs ohmiques.
CHAPITRE 8 Equations, Inégalités
Définition : 2 Les structures de contrôle conditionnelles permettent à un programme de modifier son traitement en fonction d’une condition.
Information, Calcul, Communication
RABAH M ed Ali 2018/2019
Recherche de zero d'une fonction MARMAD ANAS MPSI -2.
Algorithmie - Programmation 2
Flowchart Itération Cours 04.
Programme d’appui à la gestion publique et aux statistiques
Tableaux Cours 06.
Encadré par : M. Mohammad EL GHABZOURI Elaboré par : - AZEGAMOUT Mohamed - ABOULKACEM abdelouahed - GOUN Ayoub EXPOSÉ Sous le thème : SER 2018 Parallélisme.
Système de Numération : Décimal, Binaire, Octal et Hexadécimal
Outils de Recherche Opérationnelle en Génie MTH 8414
Transcription de la présentation:

Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité RSD-GL 2015-2016 1

Analyse de la complexité Notation de Landau: On ne s ’intéresse pas en général à la complexité exacte, mais à son ordre de grandeur. 2

Type de complexité T(n) = Ө (1), temps constant : temps d’exécution indépendant de la taille des données à traiter. T(n) = Ө(log(n)), temps logarithmique : on rencontre généralement une telle complexité lorsque l’algorithme casse un gros problème en plusieurs petits, T(n) = Ө(n), Complexité linéaire : cette complexité est généralement obtenue lorsqu’un travail en temps constant est effectué sur chaque donnée en entrée. T(n) = Ө(n.log(n)) : Complexité linearithmique l’algorithme scinde le problème en plusieurs sous-problèmes plus petits qui sont résolus de manière indépendante. La résolution de l’ensemble de ces problèmes plus petits apporte la solution du problème initial. T(n) = Ө(n²), Complexité quadratique : T(n)=Ө(n3) Complexité cubique T(n) = Ө(2n), Complexité exponentiel

Analyse de la complexité Exemple Calcul du factoriel Algorithme Trivial : T(n)=n-1  T(n)=Ө(n) C’est une Complexité linéaire Algorithme Binaire: [log2 n] ≤ T(n) ≤ 2[log2 n]. T(n)=Ө(Log(n)) C’est une complexité logarithmique

Analyse de la complexité Règles générales : 1. le temps d’exécution (t.e.) d’une affectation ou d’un test est considéré comme constant. 2. Le temps d’une séquence d’instructions est la somme des des instructions qui la composent. 3. le temps d’un branchement conditionnel est égal au t.e. du test plus le max des deux t.e. correspondant aux deux alternatives (dans le cas d’un temps max). 4. Le temps d’une boucle est égal à la somme du coût du test + du corps de la boucle + test de sortie de boucle.

Exemple Calcul complexité Si a >b alors ecrire (« a superieur à b ») sinon ecrire(« a inferieur à b ») Finsi C’est une Complexité constante donc T(n)= Ө(1) pour i allant de 1 à N faire c1 n+1 { pour j allant de 1 à n faire c2 n*(n+1) operation; c3 n*n } T(n)=c1*(n+1)+c2*n*(n+1)+c3*n*n=(c2+c3)n2+(c1+c2)*n+c1 T(n)=Ө(n2) complexité quadratique

Analyse de la complexité Définition 2 (Complexité). La complexité d’un algorithme est la mesure du nombre d’opérations fondamentales qu’il effectue sur un jeu de données. La complexité est exprimée comme une fonction de la taille du jeu de données. Complexité au meilleur : C’est le plus petit nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille fixée, ici à n. C’est une borne inférieure de la complexité de l’algorithme sur un jeu de données de taille n. 7

Analyse de la complexité Complexité au pire : C’est le plus grand nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille fixée, ici à n. Complexité en moyenne : C’est la moyenne des complexités de l’algorithme sur des jeux de données de taille n. Le plus souvent, on utilise la complexité au pire, car on veut borner le temps d'exécution 8

Analyse de la complexité Exemple : cas du tri par insertion Problématique du tri Données : une séquence de n nombre a1, a2, . . . , an. résultats : une permutation <a ’1, a ’2, . . . , a ’n> des données t.q. a ’1  a ’2 , . . . ,  a ’n exemple : 9

Analyse de la complexité attribution d ’un coût en temps ci à chaque instruction, et compter le nombre d’exécutions de chacune des instructions. Pour chaque valeur de j de 2 à n , nous notons t j le nombre d’exécutions de la boucle tant que pour cette valeur de j. Il est à noter que la valeur de t j dépend des données… Le temps d’exécution total de l’algorithme est alors : 10

Analyse de la complexité Complexité au meilleur : le cas le plus favorable pour l’algorithme TRI-INSERTION est quand le tableau est déjà trié. Dans ce cas tj = 1 pour tout j. T(n) peut ici être écrit sous la forme T(n) = an+b, a et b étant des constantes indépendantes des entrées, et T(n) est donc une fonction linéaire de n.

Analyse de la complexité Complexité au pire : le cas le plus défavorable pour l’algorithme TRI-INSERTION est quand le tableau est déjà trié dans l ’ordre inverse. Dans ce cas tj =j pour tout j. Rappel : donc et T(n) peut ici être écrit sous la forme T(n)=ax2 +bx +c, a, b et c étant des constantes, et T(n) est donc une fonction quadratique. 12

Analyse de la complexité Complexité en moyenne : supposons que l’on applique l’algorithme de tri par insertion à n nombres choisis au hasard. La moyenne est tj = j/2. Si l ’on reporte cette valeur dans l ’équation on obtient également une fonction quadratique. meilleur cas : Q(n ). pire cas : Q(n2 ). en moyenne : Q(n2 ). En général, on considère qu’un algorithme est plus efficace qu’un autre si sa complexité dans le pire cas a un ordre de grandeur inférieur. 13

Etude Comparatif des differents types de complexités Les temps d'exécution = 10 ns/instruc =10-8 s/instruc. Notation Type de complexité n = 5 n = 10 n = 20 n = 50 n = 250 n = 1 000 n = 10 000 n = 1 000 000 exemple Q(1) complexité constante 10 ns Accées Tableau Q(log(n)) complexité logarithmique 20 ns 30 ns 40 ns 60 ns Dichotomie Q(n) complexité linéaire 50 ns 100 ns 200 ns 500 ns 2.5 µs 10 µs 100 µs 10 ms Parcours de liste Q(nlog(n)) complexité linéarithmique 260 ns 850 ns 6 µs 30 µs 400 µs 60 ms Tris dont le Tri fusion ou le Tri rapide Q(n2) complexité quadratique (polynomiale) 250 ns 1 µs 4 µs 25 µs 625 µs 1 s 2.8 heures Trie par insersion Q(n3) complexité cubique (polynomiale) 1.25 µs 80 ms 1.25 ms 156 ms 10 s 2.7 heures 316 ans Parcours de tableaux 3D   492 ns 7 µs 5 ms 3.2 ans 1020 ans Q(en) complexité exponentielle 320 ns 130 jours 1059 ans ... Q(n!) complexité factorielle 1.2 µs 36 ms 770 ans 1048 ans Probleme de voyageur en commerce

Conclusion Complexité est inférieure à n²: utilisables. Entre n² et n3 : utilisables pour problèmes de taille moyenne. Au-delà:utilisables que pour problèmes de très petite taille.