SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
"T^RÎNCIPÊ
                                                                                                                             Les algorithmes récursifs s'auto-appellent
                                                                                                                             Généralement, la complexité T(n) est définie à l'aide d'une
                                                                                                                             relation de récurrence qu'on doit résoudre
Analyse de la complexité !

                                                                                                                                                   = f(T(n-T(n-2.}
                                                                                                                             Deux approches
                                                                                                                              • méthodes directes : deviner une forme générale pour la complexité;
                                                                                                                                et la démontrer par induction sur la taille du problème
                                                                                                                              « théorème « divide & conquer » (Master theorem)


                                ' L. B. Romdhanc; FSM.TN                                                                                            i L.B. Romdhane; FSMTN




 "HEOREME «divide & conquer» (1)                                                                                         "HEOREME «divide & conquer» (2)
• Un algorithme récursif (basé sur la technique « divide &                                                               8   Soit T(n) la complexité d'un algorithme récursif
      conquer ») est défini à l'aide des étapes suivantes                                                                                     , csi(n<d)
       • Si la taille du problème n est suffisamment réduite, n <Y/pour
                                                                                                                                           1W~aT(nlb) + f(nr"-
         une certaine constante d, la résolution est directe en allant
         chercher à partir d'un ensemble de cas de base                                                                  • c : une constante représentant la coût d'aller "chercher
       • Sinon, on divise le problème en a sous-problèmes chacun de taille
                                                                                                                           une solution à partir de l'ensemble de cas de base
         îlb de la taille du problème initial, et on résoud chaque sous-                                                 • T(n/b) la complexité de résolution sur un problème de
           ^»-   ^—    ~-~--~      ,— _~      -   -ft.'    N^. *   fï   e récursivement   V> w^" •" ^ » - » » - ' ' /
                                                                                                                           taille n/b
       • Et puis on combine les solutions des sous-problèmes pour obtenir
                                                                                                                         » f(n) : la coût de diviser le problème original en sous-
                                                                                                                           problème; et puis de combiner les solutions
         celle du f rsblcme original

iSa                             © L. B. Romdtinjie; FSM.ÏN                           L31                                                            © L. B. Roindtiane; FSM.TN
'^THEOREME «divide & conquer» (3)                                           "HEOREME «ûf/V/cfe & conquer» (4)
 * appelé aussi Master Theorem                                               T(n) peut être alors borné asymptotiquernent comme
 * Soient a >i, et b> i deux constantes; et soient/j^nj et                   suit :                                           r,

   TCn) deux fonctions définies sur les entiers positifs à                                             pour une certaine constante £ > 0;
   l'aide de l'équation

                    , } c si(n<d}
                  T(n) = <
                      I
                            ,   N
                              rr-i/
                                   . (n/b) + j(n)
                                     .  /   /          y/   /
                                                                            2)                             " ) ; alors î»      o(»1*(a)1og*H(w))

                                                                            3) Ysijf(n)estQUlog6("+£' ) pour une certaine constante £ >0;    ^           . .-•
 où l'on interprète a/b, comme soit £a/bl ou|_a/bj                               lkrX    , ".
                                                                            etaxf(n/b)<ôxf(n}
                                                                                                V    /1-

                                                                                                      pour une certaine constante S < 1,;
                                                                                                                                             Ç_J ; y0d 0^4-
                                                                                                                                              /*.   . U n
                                                                            et n suffisamment grand; alors on a T(n}este(f(n}}                       à      .

                           O L. B. Romdbane; FSM.TN                                                 i L. B. Romdbane; FSM.TN




  ^__—*=»=-""'"                        —            «-^==^,^=^__T=^^-^^


THEOREME «c//V/de <S conquer» (5)                                         "^THEOREME «cf/V/ûfe & conquer» (6)
                   r(w) =
   Dans ce cas, on a                                                         Dans ce cas, on a          «logiM _ M l o g 2 ( 2 ) _


    Donc, on est au premier cas du théorème car                             • Donc, on est au deuxième cas du théorème car

            •f(n) QSt0(n2~£);                         avec £-i                                       f ( n ) est ^(«log»)
                                                                            * Ainsi


                             !.. H. ftomdbane; FSM.TN                                                L. II. Komuhane; FSM.TN
-DISCUSSION (1) g                                                               •^dlSCUSSION (2)
    L'analyse de la complexité d'un algorithme est une                           Evaluation (approx.) de la taille max du problème pour une durée
    étape fondamentale dans le développement de                                  donnée
    systèmes informatiques                                                                                         Taille maximale pour n
     • analyse expérimentale (programme)                                                  T(n)
                                                                                                               1S                     i mn                  ihr
     • analyse théorique (algorithme)
                                                                                     40011                   2 5OO                   150 ooo             9 ooo ooo
        Evaluer la complexité avant l'implémentation peut
        sauver du temps de programmation & de l'argent                             zon log(n)                4 096                   166 666             7 826 087
                                                                                      2n2                     707                       5477                 42.426
                                                                                       ri*                      31                       88                   244
                                                                                           2n                   19                            25                   31
                                                                                  on suppose qu 'une opération dure 1 microseconde (jus)
                         © L. B. Romdhuue; FSM.TN                                ASD                              © L. B. Roindhime; FSM.TN




        ISCUSSION (3)                                                           -T5ÏSCUSSION (4)
 La nouvelle taille maximale n en fonction de la précédente m en                         Choisir entre plusieurs algorithmes pour résoudre
 considérant une machine 256 fois plus rapide!                                           le même problème
                                                                                         • Etant donné un tableau X de réels de dimension N,
         Complexité               n en fonction de m                                       construire un tableau A de réels de dimension N tel que :
                                                                                                                             X
              4oon                       256111
           2011 log(n)      « 256 m (log(m) / (7 + log(m)))
              2H1
               n4
                                          i6m                                                             EA =1
                                                                                                                                                   somme/i    i'
                                           4m
               2n                       m + 8 e- &Q s*t                   Js
                                                          ovlirtm^ fteMA V eA


 ASI)                    * !.. B. llumiiliune; KSM.'I'N                           ASI)                            O L. B, Romdhanei FSM.TN
DISCUSSION (5)                                                                                 -DISCUSSION (6)
                 r^-~- ——-n A - D(N2)y                                    jSolution B -fb(N))   • lien entre le temps d'exécution réeï est la
                                                                                                      complexité théorique d'un algorithme ?
Procédure prefixMoyenA( In X, Out A : I Procédure prefixMoyenB( In X, Out A
   tableau[N] de réels)            i      tableau[N] de réels)                                     * Exemple - Hanoï
    VAR i, j, : entier; S: Réel , ^f        VAR i, j, : entier; S: Réel
Début                                                                                                 « théorique : T(n) = 2 T(n-i) + c; donc O(2n)
                                        Début
    Pour i djî :i à N faire I                                                                         • expérimentale :
                                                      Pour i du i à N faire                                                 3500 -
      Pour j dei à i faire 5^ j                                                                                             2000 -
         S <-S + X[j]                                    S «-S + X[j]
                                                                                                                            1SOO -
      FiiiPour                                          A[i] *- S / i
                                                                                                                            1000
                                                      FinPour
                                                                                                                             500
    FinPour                                       retourner (A)
retourner (A)                                     FIN.                                                                         0 --
                                                                                                                                      1   4   7   10 13 16 19 22 25 2fl 31 34
FIN.                                                                                                                                                  M (tt disks)




                      • L. B. Romdhane; FSM.TN                                                                           | L. B. Romdhane; FSM.TN




DISCUSSION (7)
  T(n) : complexité théorique
  E(n) : complexité expérimentale




• Kemest une constante qui
  dépend de l'environnement de
  développement (hardware +
  software)


                              C L. B. RnraiJliaiie; l'SM.TN                   L43

Contenu connexe

Tendances

GEII - Ma3 - Représentations de Fourier et convolution
GEII - Ma3 - Représentations de Fourier et convolutionGEII - Ma3 - Représentations de Fourier et convolution
GEII - Ma3 - Représentations de Fourier et convolutionFrédéric Morain-Nicolier
 
Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanMedalith Estrada
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours sarah Benmerzouk
 
Étude des fonctions à plusieurs variables (GEII MA32)
Étude des fonctions à plusieurs variables (GEII MA32)Étude des fonctions à plusieurs variables (GEII MA32)
Étude des fonctions à plusieurs variables (GEII MA32)Frédéric Morain-Nicolier
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétudelotfibenromdhane
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variableMohammed Mansouri
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximationMed Lassoued
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Cours series fourier
Cours series fourierCours series fourier
Cours series fourierMehdi Maroun
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrentsmohamed_SAYARI
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0guest8b8369
 

Tendances (20)

GEII - Ma3 - Représentations de Fourier et convolution
GEII - Ma3 - Représentations de Fourier et convolutionGEII - Ma3 - Représentations de Fourier et convolution
GEII - Ma3 - Représentations de Fourier et convolution
 
Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregman
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours
 
Étude des fonctions à plusieurs variables (GEII MA32)
Étude des fonctions à plusieurs variables (GEII MA32)Étude des fonctions à plusieurs variables (GEII MA32)
Étude des fonctions à plusieurs variables (GEII MA32)
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétude
 
GEII - Ma3 - Suites et séries
GEII - Ma3 - Suites et sériesGEII - Ma3 - Suites et séries
GEII - Ma3 - Suites et séries
 
GEII - OL3 : Signaux et systèmes numériques
GEII - OL3 : Signaux et systèmes numériquesGEII - OL3 : Signaux et systèmes numériques
GEII - OL3 : Signaux et systèmes numériques
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Recherche à voisinage variable
Recherche à voisinage variableRecherche à voisinage variable
Recherche à voisinage variable
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximation
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Cours series fourier
Cours series fourierCours series fourier
Cours series fourier
 
Séries de Fourier
Séries de FourierSéries de Fourier
Séries de Fourier
 
Dc2 3eme math
Dc2 3eme mathDc2 3eme math
Dc2 3eme math
 
4e ds2-2012-2013
4e ds2-2012-20134e ds2-2012-2013
4e ds2-2012-2013
 
Cours suite
Cours suiteCours suite
Cours suite
 
Cours 1
Cours 1Cours 1
Cours 1
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0
 

En vedette

Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8Talha Ocakçı
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete Adnan abid
 
Java 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJava 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJosé Paumard
 
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsNewCircle Training
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Trilotfibenromdhane
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJosé Paumard
 
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des AlgorithmesCh4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmeslotfibenromdhane
 
Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Baselotfibenromdhane
 
JDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJosé Paumard
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8LivePerson
 
Java 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJava 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJosé Paumard
 
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm
 

En vedette (20)

Functional programming in java
Functional programming in javaFunctional programming in java
Functional programming in java
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete
 
Notifications
NotificationsNotifications
Notifications
 
Java 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJava 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava Comparison
 
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
 
Functional Programming in Java
Functional Programming in JavaFunctional Programming in Java
Functional Programming in Java
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patterns
 
Functional Programming in JAVA 8
Functional Programming in JAVA 8Functional Programming in JAVA 8
Functional Programming in JAVA 8
 
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des AlgorithmesCh4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
 
Cats
CatsCats
Cats
 
Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Base
 
JDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne Tour
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Java 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJava 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelization
 
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server Faces
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certification
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
 

Similaire à Ch3 Algorthmique Avancée - Méthodes Récursives

Suite exercice
Suite exerciceSuite exercice
Suite exercicehassan1488
 
Bandits Algo KL-UCB par Garivier
Bandits Algo KL-UCB par GarivierBandits Algo KL-UCB par Garivier
Bandits Algo KL-UCB par GarivierCdiscount
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnesTRIKI BILEL
 
Suites numériques exercices corrigés
Suites numériques exercices corrigésSuites numériques exercices corrigés
Suites numériques exercices corrigésLamia Lazrak
 
Al7 ma19tepa0009 sequence-04
Al7 ma19tepa0009 sequence-04Al7 ma19tepa0009 sequence-04
Al7 ma19tepa0009 sequence-04tarek1961moussa
 
03 théorème de gauss
03 théorème de gauss03 théorème de gauss
03 théorème de gaussKais Kh
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdfdonixwm
 
Approximate Bayesian Computation (ABC)
Approximate Bayesian Computation (ABC)Approximate Bayesian Computation (ABC)
Approximate Bayesian Computation (ABC)Robin Ryder
 
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012Sujet et Correction épreuve de mathématiques ESSEC ECE 2012
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012Ahmed Ammar Rebai PhD
 
Introduction à ABC
Introduction à ABCIntroduction à ABC
Introduction à ABCRobin Ryder
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
Programmation séquence 02 vecteurs et droites
Programmation séquence 02 vecteurs et droitesProgrammation séquence 02 vecteurs et droites
Programmation séquence 02 vecteurs et droitesmarionduporte
 

Similaire à Ch3 Algorthmique Avancée - Méthodes Récursives (16)

Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
Suite exercice
Suite exerciceSuite exercice
Suite exercice
 
Bandits Algo KL-UCB par Garivier
Bandits Algo KL-UCB par GarivierBandits Algo KL-UCB par Garivier
Bandits Algo KL-UCB par Garivier
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes
 
Suites numériques exercices corrigés
Suites numériques exercices corrigésSuites numériques exercices corrigés
Suites numériques exercices corrigés
 
Comment faire disparaître les rides
Comment faire disparaître les ridesComment faire disparaître les rides
Comment faire disparaître les rides
 
246242769 sequence-1-pdf
246242769 sequence-1-pdf246242769 sequence-1-pdf
246242769 sequence-1-pdf
 
Al7 ma19tepa0009 sequence-04
Al7 ma19tepa0009 sequence-04Al7 ma19tepa0009 sequence-04
Al7 ma19tepa0009 sequence-04
 
03 théorème de gauss
03 théorème de gauss03 théorème de gauss
03 théorème de gauss
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
 
Approximate Bayesian Computation (ABC)
Approximate Bayesian Computation (ABC)Approximate Bayesian Computation (ABC)
Approximate Bayesian Computation (ABC)
 
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012Sujet et Correction épreuve de mathématiques ESSEC ECE 2012
Sujet et Correction épreuve de mathématiques ESSEC ECE 2012
 
Introduction à ABC
Introduction à ABCIntroduction à ABC
Introduction à ABC
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Programmation séquence 02 vecteurs et droites
Programmation séquence 02 vecteurs et droitesProgrammation séquence 02 vecteurs et droites
Programmation séquence 02 vecteurs et droites
 

Ch3 Algorthmique Avancée - Méthodes Récursives

  • 1. "T^RÎNCIPÊ Les algorithmes récursifs s'auto-appellent Généralement, la complexité T(n) est définie à l'aide d'une relation de récurrence qu'on doit résoudre Analyse de la complexité ! = f(T(n-T(n-2.} Deux approches • méthodes directes : deviner une forme générale pour la complexité; et la démontrer par induction sur la taille du problème « théorème « divide & conquer » (Master theorem) ' L. B. Romdhanc; FSM.TN i L.B. Romdhane; FSMTN "HEOREME «divide & conquer» (1) "HEOREME «divide & conquer» (2) • Un algorithme récursif (basé sur la technique « divide & 8 Soit T(n) la complexité d'un algorithme récursif conquer ») est défini à l'aide des étapes suivantes , csi(n<d) • Si la taille du problème n est suffisamment réduite, n <Y/pour 1W~aT(nlb) + f(nr"- une certaine constante d, la résolution est directe en allant chercher à partir d'un ensemble de cas de base • c : une constante représentant la coût d'aller "chercher • Sinon, on divise le problème en a sous-problèmes chacun de taille une solution à partir de l'ensemble de cas de base îlb de la taille du problème initial, et on résoud chaque sous- • T(n/b) la complexité de résolution sur un problème de ^»- ^— ~-~--~ ,— _~ - -ft.' N^. * fï e récursivement V> w^" •" ^ » - » » - ' ' / taille n/b • Et puis on combine les solutions des sous-problèmes pour obtenir » f(n) : la coût de diviser le problème original en sous- problème; et puis de combiner les solutions celle du f rsblcme original iSa © L. B. Romdtinjie; FSM.ÏN L31 © L. B. Roindtiane; FSM.TN
  • 2. '^THEOREME «divide & conquer» (3) "HEOREME «ûf/V/cfe & conquer» (4) * appelé aussi Master Theorem T(n) peut être alors borné asymptotiquernent comme * Soient a >i, et b> i deux constantes; et soient/j^nj et suit : r, TCn) deux fonctions définies sur les entiers positifs à pour une certaine constante £ > 0; l'aide de l'équation , } c si(n<d} T(n) = < I , N rr-i/ . (n/b) + j(n) . / / y/ / 2) " ) ; alors î» o(»1*(a)1og*H(w)) 3) Ysijf(n)estQUlog6("+£' ) pour une certaine constante £ >0; ^ . .-• où l'on interprète a/b, comme soit £a/bl ou|_a/bj lkrX , ". etaxf(n/b)<ôxf(n} V /1- pour une certaine constante S < 1,; Ç_J ; y0d 0^4- /*. . U n et n suffisamment grand; alors on a T(n}este(f(n}} à . O L. B. Romdbane; FSM.TN i L. B. Romdbane; FSM.TN ^__—*=»=-""'" — «-^==^,^=^__T=^^-^^ THEOREME «c//V/de <S conquer» (5) "^THEOREME «cf/V/ûfe & conquer» (6) r(w) = Dans ce cas, on a Dans ce cas, on a «logiM _ M l o g 2 ( 2 ) _ Donc, on est au premier cas du théorème car • Donc, on est au deuxième cas du théorème car •f(n) QSt0(n2~£); avec £-i f ( n ) est ^(«log») * Ainsi !.. H. ftomdbane; FSM.TN L. II. Komuhane; FSM.TN
  • 3. -DISCUSSION (1) g •^dlSCUSSION (2) L'analyse de la complexité d'un algorithme est une Evaluation (approx.) de la taille max du problème pour une durée étape fondamentale dans le développement de donnée systèmes informatiques Taille maximale pour n • analyse expérimentale (programme) T(n) 1S i mn ihr • analyse théorique (algorithme) 40011 2 5OO 150 ooo 9 ooo ooo Evaluer la complexité avant l'implémentation peut sauver du temps de programmation & de l'argent zon log(n) 4 096 166 666 7 826 087 2n2 707 5477 42.426 ri* 31 88 244 2n 19 25 31 on suppose qu 'une opération dure 1 microseconde (jus) © L. B. Romdhuue; FSM.TN ASD © L. B. Roindhime; FSM.TN ISCUSSION (3) -T5ÏSCUSSION (4) La nouvelle taille maximale n en fonction de la précédente m en Choisir entre plusieurs algorithmes pour résoudre considérant une machine 256 fois plus rapide! le même problème • Etant donné un tableau X de réels de dimension N, Complexité n en fonction de m construire un tableau A de réels de dimension N tel que : X 4oon 256111 2011 log(n) « 256 m (log(m) / (7 + log(m))) 2H1 n4 i6m EA =1 somme/i i' 4m 2n m + 8 e- &Q s*t Js ovlirtm^ fteMA V eA ASI) * !.. B. llumiiliune; KSM.'I'N ASI) O L. B, Romdhanei FSM.TN
  • 4. DISCUSSION (5) -DISCUSSION (6) r^-~- ——-n A - D(N2)y jSolution B -fb(N)) • lien entre le temps d'exécution réeï est la complexité théorique d'un algorithme ? Procédure prefixMoyenA( In X, Out A : I Procédure prefixMoyenB( In X, Out A tableau[N] de réels) i tableau[N] de réels) * Exemple - Hanoï VAR i, j, : entier; S: Réel , ^f VAR i, j, : entier; S: Réel Début « théorique : T(n) = 2 T(n-i) + c; donc O(2n) Début Pour i djî :i à N faire I • expérimentale : Pour i du i à N faire 3500 - Pour j dei à i faire 5^ j 2000 - S <-S + X[j] S «-S + X[j] 1SOO - FiiiPour A[i] *- S / i 1000 FinPour 500 FinPour retourner (A) retourner (A) FIN. 0 -- 1 4 7 10 13 16 19 22 25 2fl 31 34 FIN. M (tt disks) • L. B. Romdhane; FSM.TN | L. B. Romdhane; FSM.TN DISCUSSION (7) T(n) : complexité théorique E(n) : complexité expérimentale • Kemest une constante qui dépend de l'environnement de développement (hardware + software) C L. B. RnraiJliaiie; l'SM.TN L43