>ommaire                                                               •   Introduction                                   ...
INTRODUCTION (3)                                             HTTRO D U CTi 0 N (4)                                  "" "» ...
EMARCHE (1)                                                                      EMARCHE (2)1.    Fixer les tests à faire ...
l"    Une comparaison équitable de 2 algorithmes exige         • implémentation/exécution sur le même environnement       ...
I XEMPLE (1)                                                                                                           -"E...
COMPLEXITE MINIMALE                                     COMPLEXITE MAXIMALE       Na aucune utilité pratique              ...
« Big-Oh » (2)- Exemples                                                                      « Big-Oh » (3) -Théorème• yn...
Prochain SlideShare
Chargement dans…5
×

Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

1 017 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 017
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
84
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

  1. 1. >ommaire • Introduction • Analyse expérimentale • Analyse théorique • Complexité asymptotique © L. B. Romdhane, Ph.D. • Big-Oh • Big oméga ,- D S I / F S M / UM/Tunisie • Big thêta • Méthodes récursives • Discussion O L. B. Rumdhtmc; FSM.TNINTRODUCTION (1)• Analyser la complexité dun algorithme revient à • Espace mémoire, appelé aussi complexité spatiale, étudier ses performances dépend de• Pourquoi ? • la taille des données • savoir les limitations dun algorithme • e.g.; nombre déléments dun tableau, la valeur dun paramètre • choisir les machines adéquates pour lexécuter • choix dune structure/type de données convenablement • e.g.; entier, réel, etc. • comparer deux algorithmes pour choisir le plus efficace • Lavancement technologique fait que lespace mémoire• Paramètres mesurables nest plus un problème fondamental pour les machines actuelles • espace méraoire (RAM) • Grosse capacité, vitesse daccès rapide « temps dexécution « 1,. B. Hunulhiuic; KSM.TN L. B. Rorailhuiiui FSM.TNAS!)
  2. 2. INTRODUCTION (3) HTTRO D U CTi 0 N (4) "" "» Le facteur primordial est le temps dexécution temps = /(paramètres du problème)« Appelé aussi complexité temporelle• Un fait réel : certains algorithmes sont encore très lents à exécuter même sur les machines les plus temps performantes Analyse• Dépend des paramètres du problème à résoudre F • nombre déléments dun tableau à trier • taille (valeur) dun nombre quon veut déterminer être paramètres (input) Expérimentale Théorique premier ou non ? « etc. L. B. KomiiJuuic; lSM.TN L. B. Romdhanej FSM.TN Mesurer le temps dexécution sur un ensemble de données en faisant varierAnalyse Expérimentale • lensemble des données; et/ou • la taille (le nombre) des données en entrée Dégager Za corrélation entre temps et données ( F ) à laide dune étude statistique PROGRAMME temps _débuî temps_fm temps ~ temps_début - temp_tin i ],. B. Rumdliane; FSM.TN L. B. Romdhanc; FSM.TN
  3. 3. EMARCHE (1) EMARCHE (2)1. Fixer les tests à faire ? 3. Génération de lensemble des données en entrée « variation en fonction de la taille • choisir les données les plus représentatives * Tri dun tableau: varier la dimension • connaître la distribution des données en entrée • sensibilité par rapport à un paramètre constant 4. Codage & test de lalgorithme • calculer le zéro dune fonction : mesurer le temps et la précision du résultat obtenu en fonction du critère • effectuer « assez » de tests ! darrêt (e = 10^ ; £ = icr* ; ,..) 5. Analyser les résultats obtenus2. Mesurer le temps dexécution • dégager le comportement de lalgorithme en fonction • Très difficile à estimer correctement des données en entrée • Varie en fonction de plusieurs paramètres • mettre ses résultats sous formulation mathématique • taille mémoire; vitesse CPU; OS; langage utilisé; etc. (même empirique) © L. B. RoiiHlIiunc; FSM.TN LJ ) L. ii. Ruuiilliuiiin lSM.TN TourdFJWnoExécuté sur 128 R.4M; et CPU = 866 Mliz; Windows XP; langage C « Les expérimentations sont possibles uniquement sur 2500 un ensemble limité des données = 34: 2168 sec 2000 - = 36,13 mn • Les données doivent être bien choisies i/r * Temps dexécution dépend de lenvironnement ï 1500 - w g u 1000 dexécution : 500 - • hardware (CPU, Mémoire, etc.) • software (OS, compilateur, langage, etc.) •v— -j-—^r-— J---W | v— 1 4 7 10 13 16 19 22 25 28 31 34 7 10 N (# disks) ï L. B, KomdUane; ÏSM.TN O L. B. Romdlianr, FSM.TN
  4. 4. l" Une comparaison équitable de 2 algorithmes exige • implémentation/exécution sur le même environnement • développement par des compétences égales Analyse Théorique • Le développement de lalgorithme est nécessaire • perte temps • gaspillage argent • Démarche coûteuse et parfois non praticable pour certains algorithmes « Le temps dexécution peut durer des années ! © L. B. Ronullianc; FSM.TN ) L. B. Romdiiaue; FSM.TN-^vîODELE -IvTODELE-RAM (2) * A ne pas confondre avec la Random Access Memory Une primitive dans le modèle RAM correspond à une « On considère un ensemble de primitives utilisées en instruction dans un algorithmique qui sont indépendantes du langage de La durée dexécution dune instruction dépend de programmation : lenvironnement utilisé • affectation (<— ) Dans le modèle RAM, on suppose que le temps dexécution de toutes les primitives est le même; • appel dune méthode (fonction ou procédure) cest-à-dire « une unité de temps » » comparaison (<, >=, < > , > , > -) Calculefla compïëxïlé~iemporelie dun » accès à une case dun tableau (T[ i ] ) algorithme revient à comptabiliser le nombre de » retourner (résulat) (dune méthode ) primitives quil contient « opérations mathématiques (+, * , - , / ) « etc. L. U. Itoimlhane; FSM.TN ASI) © L. B. Homdhant; FSM.TN M
  5. 5. I XEMPLE (1) -"EXEMPLE (2) / i u i r / i o f i arrayMax(A : Inst. #opérations Un algorithme peut sexécuter plus rapidement sur un Uil>lrau[N] dentiers) : entier 1. 2 ensemble de données que sur un autre ^ VAR i, currentMax : entier 2. 1 affect; N compa. ; 1 • A= [5,2,1,0]; T= Tmin = 20 ops ff là Début incré. et 1 affection (N-l) • A = [0,1,2,5]; T = Tmax = 26 ops /;; jt^S 1. currenMax <— A[i] fois ; 1 + N + 2(N-1) • A = [5,4,6,0]; Tmin <= T <= Tmax _ 2. Pour i de 2 à N faire 3. 1 comparaison, 1 accès : On peut dégager trois mesures de complexité 3. Si ( currentMax < A[iJ ) N-l fois;2(N-l) 4. 1 alïectation, 1 accès : N- « maximale ou au pire des cas ( worst case ) 4. alors currentMax <—A[i] 1 fois; 2 (N-l) • minimale ou au meilleur des cas ( best case ) Fin Si Fin Pour 5 1 • moyenne ( average case ) 5. retourner (currentMax) Tmin 5N FIN. Tmax 7N-2 i L. I). Komdlimii]; KSM.ÏN L. B. Ronuthane; FSM.TN-TfPÉS DE CÔMPLËXÏÏF --COMP LEX lî • Pour déterminer la complexité moyenne, il faut maximal • mesurer la complexité de chaque cas possible (T,.)"-^ v 5ms • "i™ « I a moyenne • déterminer la fréquence de chaque cas (/)) } i^ i . 4 rns " U -•~ .:. i • La complexité moyenne est donnée par "1 8 3ms - ]f minimal E B 2ms Cl : 1 ms " i | 1 - J .1 E 7" • Nécessite une idée précise sur les données du problème A B D Ë F 3 « Difficile à utiliser en pratique • e.g.; problème du Tri C ]., B, Knindhnne; KSM.TN G L. B. Roindhant; FSM.TN
  6. 6. COMPLEXITE MINIMALE COMPLEXITE MAXIMALE Na aucune utilité pratique • Assez informative II se peut que cette a Constat - un algorithme complexité ne soit atteinte qui a de bonnes que pour un ensemble très performances dans le réduit des données; donc pire des cas, aura non représentatif du toujours de bonnes problème ! performances quelque soit les données en entrée I L. B. Konidhane; KSM.TN © L. B. Romdhane; FSM.TN^COMPLEXITE ASYMPTOTYQUE «Big-Oh » (1) - Définition • Lanalyse de la complexité selon le modèle RAM est • Exprime le fait quune fonction est « inférieur ou égal » difficile à appliquer sur des algorithmes (projets à une autre au sens asymptotique informatique) de grande taille • Définition • Besoin dune analyse f, g : N+ —> R ;f(n) est dite O(g(n)) ssi 3 c, une constante, • plus simple à calculer et un entier constant n0 >= 11 f(n) <= c g(n); Vn >= n0 • aboutir à la même conclusion concernant le comportement de lalgorithme 8 Les mesures les plus communes « Big-Oh f(n) « Big-Oméga « Big-Théta <0 L. B. Konulhane; KSM.TN ASD | L. B. Rumdhane; KSM.TN ASD
  7. 7. « Big-Oh » (2)- Exemples « Big-Oh » (3) -Théorème• yn - 2 est O(n) Soit d(n), e(n), f(n) et g(n) trois fonctions : N+ —>• R • c = 7; n0 = i 1. d(n) est 0(f(n)) => a *d(n) est O(f(n)) Va > o• n3+ zn- 5 est O( n 3 ) • c = 2; n0 = i 2. d(n) est O(f(n)); et e(n) est O(g(n)) :• n + 3 log(n) est O( n ) a. d(n) + e(n) est 0(f(n) + g(n)) • c = 3; n0 = i b. d(n) x e(n) est O (f(n) x g(n))• 3n + n3 + nlog(n) est 0(3" ) 3. d(n) est O(f(n)) etf(n) est O(g(n)) =i> d(n) est • c = i;n 0 = i • Big Oh permet de se concentrer sur les facteurs 0(g(n)) dominants dans lexpression de la complexité 4. f(n) - ao + ... + aknk est O(nk)ASD © L. B. Rumdlianc; FSM.TN i L. B. Romdhane; FSM.TN« Big-Oh » (4) - Fonctions usuelles &Big- logarithmique linéaire quadratique polynomiale exponentielle Big Oméga (£1) Big Thêta (9) O(log(n)) O(n) O(n i (nk) (k >=l O(a n ) • une fonction f(n) est fi(g(n)) « une fonction f(n) est 0(g(n)) exponentielle ssi g(n) est O(f(n)); Le., 3c et ssi : quadratique/polynomiale n0>= i /g(n) <= cf(n); Vn • fîn)estO(g(n)) «* linéaire >= nn • f(n) esL Oi

×