ch4 algorthmique avancée - analyse & complexité des algorithmes

7
,- © L. B. Romdhane, Ph.D. DSI/FSM/ UM/Tunisie INTRODUCTION (1) Analyser la complexitéd'un algorithme revient à étudier ses performances Pourquoi ? savoir les limitations d'un algorithme choisir les machines adéquates pour l'exécuter convenablement comparer deux algorithmes pour choisir le plus efficace Paramètres mesurables espace méraoire (RAM) « temps d'exécution AS!) « 1,. B. Hunulhiuic; KSM.TN >ommaire Introduction Analyse expérimentale Analyse théorique Complexité asymptotique Big-Oh • Big oméga • Big thêta Méthodes récursives Discussion O L. B. Rumdhtmc; FSM.TN Espace mémoire, appelé aussi complexité spatiale, dépend de • la taille des données e.g.; nombre d'éléments d'un tableau, la valeur d'un paramètre choix d'une structure/type de données e.g.; entier, réel, etc. L'avancement technologique fait que l'espace mémoire n'est plus un problème fondamental pour les machines actuelles Grosse capacité, vitesse d'accès rapide L. B. Rorailhuiiui FSM.TN

Upload: lotfibenromdhane

Post on 21-Dec-2014

623 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

,-

© L. B. Romdhane, Ph.D.

D S I / F S M / UM/Tunisie

INTRODUCTION (1)• Analyser la complexité d'un algorithme revient à

étudier ses performances

• Pourquoi ?• savoir les limitations d'un algorithme• choisir les machines adéquates pour l'exécuter

convenablement• comparer deux algorithmes pour choisir le plus efficace

• Paramètres mesurables• espace méraoire (RAM)« temps d'exécution

AS!) « 1,. B. Hunulhiuic; KSM.TN

>ommaire• Introduction

• Analyse expérimentale

• Analyse théorique

• Complexité asymptotique• Big-Oh• Big oméga

• Big thêta

• Méthodes récursives• Discussion

O L. B. Rumdhtmc; FSM.TN

• Espace mémoire, appelé aussi complexité spatiale,dépend de• la taille des données

• e.g.; nombre d'éléments d'un tableau, la valeur d'un paramètre

• choix d'une structure/type de données• e.g.; entier, réel, etc.

• L'avancement technologique fait que l'espace mémoiren'est plus un problème fondamental pour les machinesactuelles

• Grosse capacité, vitesse d'accès rapide

L. B. Rorailhuiiui FSM.TN

Page 2: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

INTRODUCTION (3)» Le facteur primordial est le temps d'exécution« Appelé aussi complexité temporelle• Un fait réel : certains algorithmes sont encore très

lents à exécuter même sur les machines les plusperformantes

• Dépend des paramètres du problème à résoudre• nombre d'éléments d'un tableau à trier• taille (valeur) d'un nombre qu'on veut déterminer être

premier ou non ?« etc.

L. B. KomiiJuuic; l'SM.TN

Analyse Expérimentale

i ],. B. Rumdliane; FSM.TN

HTTRO D U CTi 0 N (4) "" '"

temps = /(paramètres du problème)

temps

FAnalyse

paramètres (input) Expérimentale Théorique

L. B. Romdhanej FSM.TN

Mesurer le temps d'exécution sur un ensemble dedonnées en faisant varier• l'ensemble 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 )à l'aide d'une étude statistique

temps _débuîPROGRAMME

temps_fm

temps ~ temps_début - temp_tin

L. B. Romdhanc; FSM.TN

Page 3: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

EMARCHE (1)1.

2.

Fixer les tests à faire ?

« variation en fonction de la taille* Tri d'un tableau: varier la dimension

• sensibilité par rapport à un paramètre constant• calculer le zéro d'une fonction : mesurer le temps et

la précision du résultat obtenu en fonction du critèred'arrêt (e = 10^ ; £ = icr* ; ,..)

Mesurer le temps d'exécution• Très difficile à estimer correctement• Varie en fonction de plusieurs paramètres

• taille mémoire; vitesse CPU; OS; langage utilisé; etc.

© L. B. RoiiHlIiunc; FSM.TN L'J

TourdFJWnoExécuté sur 128 R.4M; et CPU = 866 Mliz; Windows XP; langage C

= 34: 2168 sec

i/rïw

gu

2500

2000 -

1500 -

1000

500 -

= 36,13 mn

•v— - j- — r- — J---W | v—

1 4 7 107 10 13 16 19 22 25 28 31 34

N (# disks)

ï L. B, KomdUane; ÏSM.TN

EMARCHE (2)3. Génération de l'ensemble des données en entrée

• choisir les données les plus représentatives• connaître la distribution des données en entrée

4. Codage & test de l'algorithme• effectuer « assez » de tests !

5. Analyser les résultats obtenus• dégager le comportement de l'algorithme en fonction

des données en entrée

• mettre ses résultats sous formulation mathématique(même empirique)

) L. ii. Ruuiilliuiiin l'SM.TN

« Les expérimentations sont possibles uniquement sur

un ensemble limité des données

• Les données doivent être bien choisies

* Temps d'exécution dépend de l'environnement

d'exécution :

• hardware (CPU, Mémoire, etc.)

• software (OS, compilateur, langage, etc.)

O L. B. Romdlianr, FSM.TN

Page 4: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

l" \ Une comparaison équitable de 2 algorithmes exige

• implémentation/exécution sur le même environnement• développement par des compétences égales

• Le développement de l'algorithme est nécessaire• perte temps

• gaspillage argent

• Démarche coûteuse et parfois non praticable pour

certains algorithmes

« Le temps d'exécution peut durer des années !

© L. B. Ronullianc; FSM.TN

-^vîODELE* A ne pas confondre avec la Random Access Memory

« On considère un ensemble de primitives utilisées enalgorithmique qui sont indépendantes du langage deprogrammation :• affectation (<— )• appel d'une méthode (fonction ou procédure)» comparaison (<, >=, < > , > , > -)» accès à une case d'un tableau (T[ i ] )» retourner (résulat) (d'une méthode )

« opérations mathématiques (+, * , - , / )

« etc.

ASI) © L. B. Homdhant; FSM.TN M

Analyse Théorique

) L. B. Romdiiaue; FSM.TN

-IvTODELE-RAM (2)Une primitive dans le modèle RAM correspond à uneinstruction dans un

La durée d'exécution d'une instruction dépend del'environnement utiliséDans le modèle RAM, on suppose que le tempsd'exécution de toutes les primitives est le même;c'est-à-dire « une unité de temps »

Calc'ulefla compïëxïlé~iemporelie d'unalgorithme revient à comptabiliser le nombre deprimitives qu'il contient

L. U. Itoimlhane; FSM.TN

Page 5: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

I XEMPLE (1)/ i u i r / i o f i arrayMax(A :

Ui l> l r au [N] d'entiers) : entier

VAR i, currentMax : entier

Début

1. currenMax <— A[i]

2. Pour i de 2 à N faire

3. Si ( currentMax < A[iJ )

4. alors currentMax <—A[i]

Fin Si

Fin Pour5. retourner (currentMax)FIN.

Inst.1.

2.

3.

4.

5

Tmin

Tmax

#opérations

2

1 affect; N compa. ; 1incré. et 1 affection (N-l)fois ; 1 + N + 2(N-1)

1 comparaison, 1 accès :N-l fois;2(N-l)

1 alïectation, 1 accès : N-1 fois; 2 (N-l)

1

5N

7 N - 2

i L. I). Komdlimii]; KSM.ÏN

-TfPÉS DE CÔMPLËXÏÏF

5ms •a

4 rns "

8 3ms -

B 2ms 'Cl

1 ms "

"i™

A

«I

i

1 -

-•~

B

U

"1

] f

JD

.1

Ë

E

ii .

.:'..

:'

F

iE

|

3

7"

}maximal

moyenne

minimal

C ]., B, Kn indhnne ; KSM.TN

-"EXEMPLE (2)Un algorithme peut s'exécuter plus rapidement sur unensemble de données que sur un autre ^

• A= [5,2,1,0]; T= Tmi'n = 20 ops ff là• A = [0,1,2,5]; T = Tmax = 26 ops /;'; ' jt^S• A = [5,4,6,0]; Tmin <= T <= Tmax \_

On peut dégager trois mesures de complexité« maximale ou au pire des cas ( worst case )• minimale ou au meilleur des cas ( best case )

• moyenne ( average case )

L. B. Ronuthane; FSM.TN

--COMP LEX lî• Pour déterminer la complexité moyenne, il faut

• mesurer la complexité de chaque cas possible (T,.)"-^ 'v• déterminer la fréquence de chaque cas (/))

• La complexité moyenne est donnée par

• Nécessite une idée précise sur les données du problème

« Difficile à utiliser en pratique• e.g.; problème du Tri

G L. B. Roindhant; FSM.TN

Page 6: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

COMPLEXITE MINIMALEN'a aucune utilité pratique

II se peut que cettecomplexité ne soit atteinteque pour un ensemble trèsréduit des données; doncnon représentatif duproblème !

I L. B. Konidhane; KSM.TN

COMPLEXITE MAXIMALE• Assez informativea Constat - un algorithme

qui a de bonnesperformances dans lepire des cas, auratoujours de bonnesperformances quelquesoit les données en entrée

© L. B. Romdhane; FSM.TN

^COMPLEXITE ASYMPTOTYQUE• L'analyse de la complexité selon le modèle RAM est

difficile à appliquer sur des algorithmes (projetsinformatique) de grande taille

• Besoin d'une analyse• plus simple à calculer

• aboutir à la même conclusion concernant lecomportement de l'algorithme

8 Les mesures les plus communes« Big-Oh« Big-Oméga

« Big-Théta

«Big-Oh » (1) - Définition• Exprime le fait qu'une fonction est « inférieur ou égal »

à une autre au sens asymptotique

• Définition

f, g : N+ —> R ;f(n) est dite O(g(n)) ssi 3 c, une constante,et un entier constant n0 >= 11 f(n) <= c g(n); Vn >= n0

f(n)

ASD <0 L. B. Konulhane; KSM.TN ASD | L. B. Rumdhane; KSM.TN

Page 7: Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes

« Big-Oh » (2)- Exemples• yn - 2 est O(n)

• c = 7; n0 = i

• n3+ zn- 5 est O( n3)• c = 2; n0 = i

• n + 3 log(n) est O( n )• c = 3; n0 = i

• 3n + n3 + nlog(n) est 0(3" )• c = i;n0 = i

• Big Oh permet de se concentrer sur les facteursdominants dans l'expression de la complexité

ASD © L. B. Rumdlianc; FSM.TN

« Big-Oh » (3) -ThéorèmeSoit d(n), e(n), f(n) et g(n) trois fonctions : N+ —>• R

1. d(n) est 0(f(n)) => a *d(n) est O(f(n)) Va > o

2. d(n) est O(f(n)); et e(n) est O(g(n)) :

a. d(n) + e(n) est 0(f(n) + g(n))

b. d(n) x e(n) est O (f(n) x g(n))

3. d(n) est O(f(n)) etf(n) est O(g(n)) =i> d(n) est

0(g(n))

4. f(n) - ao + ... + aknk est O(nk)

i L. B. Romdhane; FSM.TN

« Big-Oh » (4) - Fonctions usuelleslogarithmique linéaire quadratique polynomiale exponentielle

O(log(n)) O(n) O(ni (nk) (k >=l O(an)

exponentielle

quadratique/polynomiale

linéaire

&Big-Big Oméga (£1)

• une fonction f(n) est fi(g(n))ssi g(n) est O(f(n)); Le., 3c etn0>= i /g(n) <= cf(n); Vn>= nn

Big Thêta (9)

« une fonction f(n) est 0(g(n))ssi :

• fîn)estO(g(n)) «*

• f(n) esL Oi