Ch3 Algorthmique Avancée - Méthodes Récursives
-
Upload
lotfibenromdhane -
Category
Documents
-
view
226 -
download
1
Transcript of 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
'^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
-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
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