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

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

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

Page 1: Ch3 Algorthmique Avancée - Méthodes Récursives

Analyse de la complexité !

' L. B. Romdhanc; FSM.TN

"HEOREME «divide & conquer» (1)• Un algorithme récursif (basé sur la technique « divide &

conquer ») est défini à l'aide des étapes suivantes

• Si la taille du problème n est suffisamment réduite, n <Y/pour

une certaine constante d, la résolution est directe en allant

chercher à partir d'un ensemble de cas de base

• Sinon, on divise le problème en a sous-problèmes chacun de taille

îlb de la taille du problème initial, et on résoud chaque sous-»̂- ^— ~-~--~ ,— _~ - -ft.' N̂ . * fï \e récursivement V> w^" •" ̂ » - » » - ' ' /

• Et puis on combine les solutions des sous-problèmes pour obtenir

celle du f rsblcme original

iSa © L. B. Romdtinjie; FSM.ÏN L31

"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

= 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)

i L.B. Romdhane; FSMTN

"HEOREME «divide & conquer» (2)8 Soit T(n) la complexité d'un algorithme récursif

, \csi(n<d)

1W~\aT(nlb) + f(nr"-• c : une constante représentant la coût d'aller "chercher

une solution à partir de l'ensemble de cas de base• T(n/b) la complexité de résolution sur un problème de

taille n/b» f(n) : la coût de diviser le problème original en sous-

problème; et puis de combiner les solutions

© L. B. Roindtiane; FSM.TN

Page 2: Ch3 Algorthmique Avancée - Méthodes Récursives

'^THEOREME «divide & conquer» (3)* appelé aussi Master Theorem* Soient a >i, et b> i deux constantes; et soient/j^nj et

TCn) deux fonctions définies sur les entiers positifs àl'aide de l'équation

, } \c si(n<d}T(n) = < , N . .

\ I rr-i/ / / \ y/ \/ (n/b) + j(n)

où l'on interprète a/b, comme soit £a/bl ou|_a/bj

O L. B. Romdbane; FSM.TN

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

THEOREME «c//V/de <S conquer» (5)

r(w) =

Dans ce cas, on a

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

•f(n) QSt0(n2~£); avec £-\i

!.. H. ftomdbane; FSM.TN

"HEOREME «ûf/V/cfe & conquer» (4)T(n) peut être alors borné asymptotiquernent commesuit : r,

pour une certaine constante £ > 0;

2) "); alors î» o(»1*(a)1og*H(w))

3) Ysijf(n)estQUlog6("+£' ) pour une certaine constante £ >0; ^ . .-•lkrX , ". V /1- Ç_J ; y\0d 0^4-

e t a x f ( n / b ) < ô x f ( n } pour une certaine constante S < 1,; /*. . U net n suffisamment grand; alors on a T(n}este(f(n}} à .

i L. B. Romdbane; FSM.TN

"^THEOREME «cf/V/ûfe & conquer» (6)

Dans ce cas, on a «logiM _ M log 2 (2) _

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

f ( n ) est ^(«log»)

* Ainsi

L. II. Komuhane; FSM.TN

Page 3: Ch3 Algorthmique Avancée - Méthodes Récursives

-DISCUSSION (1) gL'analyse de la complexité d'un algorithme est uneétape fondamentale dans le développement desystèmes informatiques• analyse expérimentale (programme)• analyse théorique (algorithme)

Evaluer la complexité avant l'implémentation peutsauver du temps de programmation & de l'argent

© L. B. Romdhuue; FSM.TN

ISCUSSION (3)La nouvelle taille maximale n en fonction de la précédente m enconsidérant une machine 256 fois plus rapide!

Complexité4oon

2011 log(n)2H1

n42n

n en fonction de m

256111« 256 m (log(m) / (7 + log(m)))

i6m4m

m + 8 e- &Q s*tovlirtm^ fteMA V

JseA

ASI) * !.. B. llumiiliune; KSM.'I'N

•^dlSCUSSION (2)Evaluation (approx.) de la taille max du problème pour une duréedonnée

T(n)

40011zon log(n)

2n2

ri*

2n

Taille maximale pour n

1 S

2 5OO

4 09670731

19

i mn150 ooo166 666

547788

25

ihr

9 ooo ooo7 826 087

42.426244

31

on suppose qu 'une opération dure 1 microseconde (jus)

ASD © L. B. Roindhime; FSM.TN

-T5ÏSCUSSION (4)Choisir entre plusieurs algorithmes pour résoudrele même problème• Etant donné un tableau X de réels de dimension N,

construire un tableau A de réels de dimension N tel que :X

EA =1

somme/i i '

ASI) O L. B, Romdhanei FSM.TN

Page 4: Ch3 Algorthmique Avancée - Méthodes Récursives

DISCUSSION (5)

tableau[N] de réels)VAR i, j, : entier; S: Réel

DébutPour i djî :i à N faire I

r\\^-~- — — -\\n A - D(N2)y jSolution B -fb(N))

Procédure prefixMoyenA( In X, Out A : I Procédure prefixMoyenB( In X, Out A\i

, ^ftableau[N] de réels)

VAR i, j, : entier; S: RéelDébut

Pour j dei à i faire 5^ jS <-S + X[j]

FiiiPour

FinPourretourner (A)FIN.

Pour i du i à N faireS «-S + X[j]

A[i] *- S / iFinPour

retourner (A)FIN.

• L. B. Romdhane; FSM.TN

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

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

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

-DISCUSSION (6)• lien entre le temps d'exécution réeï est la

complexité théorique d'un algorithme ?* Exemple - Hanoï

« théorique : T(n) = 2 T(n-i) + c; donc O(2n)

• expérimentale :3500 -

2000 -

1SOO -

1000

500

0 --1 4 7 10 13 16 19 22 25 2fl 31 34

M (tt disks)

| L. B. Romdhane; FSM.TN