"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

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