• Aucun résultat trouvé

Master-Theorem

N/A
N/A
Protected

Academic year: 2022

Partager "Master-Theorem"

Copied!
14
0
0

Texte intégral

(1)

Coût et Complexité

Le Master Theorem

[email protected]

Université de Grenoble-Alpes, UFR IM

2

AG L3 Informatique

Coût et Complexité

(2)

R ÉCURRENCE ET COMPLEXITÉ

1 LE PROBLÈME: évaluer le coût d’un algorithme

2 ÉQUATIONS LINÉAIRES

3 ÉQUATION DE PARTITION

4 VADE MECUM

(3)

É VALUATION DU COÛT

Taille de la donnée

Entier Entier

Cout du calcul Espace des données

Machine

Espace des résultats Algorithme

Coût associé à un algorithme en fonction de la taillendes données en entrée

I Choix des opérateurs : donné par le modèle de machine

I Ordre de grandeur :échelles logarithmiquelogn, polynomialenk, exponentielleαn O(.)(majore asymtotiquement) ouΩ(.)(minore) ouΘ(.)(du même ordre).

I Expression de l’algorithme :forme itérative ou récursive Résoudre des équations de récurrence.

Coût et Complexité

(4)

R ÉCURRENCE ET COMPLEXITÉ

1 LE PROBLÈME: évaluer le coût d’un algorithme

2 ÉQUATIONS LINÉAIRES

3 ÉQUATION DE PARTITION

4 VADE MECUM

(5)

É QUATIONS SIMPLES

(

T(0) =0;

T(n) =T(n−1) +c(n),pourn>1.

oùfest une fonction (en général positive).

T(n) =T(0) +c(0) +c(1) +· · ·+c(n) =

n

X

i=0

c(i).

Sommes classiques

n

X

i=1

1=n= Θ(n);

n

X

i=1

i=n(n+1)

2 = Θ(n2);

n

X

i=1

i2= n(n+1)(2n+1)

6 = Θ(n3);

n

X

i=1

i3=n2(n+1)2

4 = Θ(n4);

et de manière plus générale

n

X

i=1

ik=O(nk+1);

ExemplesCalcul du coût de l’algorithme de tri par insertion, par sélection,...

Coût et Complexité

(6)

É QUATIONS DE RÉCURRENCE MULTIPLE

(T(0) =t0,T(1) =t1· · ·T(k−1) =tk−1;

T(n) =a1T(n−1) +a2T(n−2) +· · ·akT(n−k),pourn>k.

Ces équations de récurrence linéaires se développent à partir d’une base de solutions de la forme :

T(n) =

p

X

i=1

(

mi1

X

j=0

ci,jnjni;avec{λ1, λ2,· · ·, λp}lespracines du polynôme

P(x) =xk−a1xk−1−a2xk−2− · · · −a0;de multiplicité respectives{m1,· · ·,mp}.

Les constantesci,jsont fixées par les conditions initiales.

T(n) =O(nm1max|n)avecλmaxla racine de module maximal et de multiplicitém.

C’est à dire que la fonction de coût croit de manière très rapide, au moins exponentiellement.

Exercice :Calculer la valeur deT(n)pour l’équation de récurrence T(0) =T(1) =1;

T(n) =T(n−1) +T(n−2); pourn>2.

(7)

R ÉCURRENCE ET COMPLEXITÉ

1 LE PROBLÈME: évaluer le coût d’un algorithme

2 ÉQUATIONS LINÉAIRES

3 ÉQUATION DE PARTITION

4 VADE MECUM

Coût et Complexité

(8)

É QUATIONS DE PARTITION

(T(1) =1;

T(n) =aT(nb) +c(n),pourn>1,

aveca>1,b>1etc(n)une fonction positive den.

I Attention cette formulation contient déjà une approximation : la fractionnb n’a pas de raison d’être entière.

I Expression récurrente avec un facteur de division constant

I souvent on a un6au lieu du=

Exemples

I Recherche dichotomique, recherche dans un ABR

I Parcours d’un arbre binaire

I tri rapide, tri partition fusion

I fusion en place

I ...

(9)

U N DESSIN

Coût et Complexité

(10)

LE PROBLÈME ÉQUATIONS LINÉAIRES PARTITION SYNTHÈSE

S OLUTION DE L ÉQUATION DE PARTITION

Pour simplifier on suppose quen=bket on notetk=T(bk)(changement de variable).

tk = a tk1 + c(bk) tk1 = a tk2 + c(bk−1) tk2 = a tk3 + c(bk−2) ..

. =

.. .

.. .

.. .

t1 = a t0 + c(b0)

tk = ak t0 + k−1i=0aic(bk−i)

En utilisant le fait quet0=1et queak=nlogba, le résultat se met sous la forme

T(n) =nlogba+

k−1

X

i=0

aic(bki).

En fonction du problème étudié, soit le premier terme l’emporte “le coût de partition” n’est pas prépondérant, soit c’est le deuxième terme qui l’emporte et toute la complexité du calcul est dans le partitionnement.

(11)

S OLUTION DE L ÉQUATION DE PARTITION

Pour simplifier on suppose quen=bket on notetk=T(bk)(changement de variable).

tk = a tk1 + c(bk) a tk−1 = a2 tk−2 + a c(bk−1) a2 tk−2 = a3 tk−3 + a2 c(bk−2)

..

. =

..

. ... ...

ak−1 t1 = ak t0 + ak−1 c(b0)

tk = ak t0 + Pk−1

i=0aic(bk−i)

En utilisant le fait quet0=1et queak=nlogba, le résultat se met sous la forme

T(n) =nlogba+

k1

X

i=0

aic(bk−i).

En fonction du problème étudié, soit le premier terme l’emporte “le coût de partition”

n’est pas prépondérant, soit c’est le deuxième terme qui l’emporte et toute la complexité du calcul est dans le partitionnement.

Coût et Complexité

(12)

S OLUTION DE L ÉQUATION DE PARTITION ( DÉTAILS )

T(n) = Θ(nlogba) sic(n) =O(nlogba−ε)pour unε >0; T(n) = Θ(nlogbalogn) sic(n) = Θ(nlogba)

T(n) = Θ(c(n)) sic(n) = Ω(nlogba+ε)

pour unε >0et sic(n)≥adc(n/b)pourd>1.

En pratique on recalcule pour bien comprendre le poids de la partition et le poids du calcul de fusion.

(13)

R ÉCURRENCE ET COMPLEXITÉ

1 LE PROBLÈME: évaluer le coût d’un algorithme

2 ÉQUATIONS LINÉAIRES

3 ÉQUATION DE PARTITION

4 VADE MECUM

Coût et Complexité

(14)

V ADE MECUM

Calcul de coût et complexité

1 Spécifier lesopérateursde base de votre modèle de machine (coût constant) ;

2 Décrire l’espace des données et son partitionnement (définir latailled’une donnée) ;

3 Écrire l’expression du coûtà l’aide des règles de composition des coûts élémentaires des opérateurs de base ;

4 Pour une donnée de taillencalculer le coûtmaximal(coût au pire) et le coût minimal (coût au mieux) de l’algorithme ;

5 Étudier l’ensemble des données conduisant au pire ou au meilleur coût (exemples) ;

6 Donner l’ordre de grandeurdu coût (avec les fonctionsOouΩ) pour le coût au pire d’une donnée de taillensur une échelle permettant de comparer les algorithmes (classiquement on utilise l’échelle déduite de l’échelle polynomiale, des logarithmes (en base 2) et des exponentielles (puissances de2) ;

Références

Documents relatifs

dante ne peut s'apprécier que par rapport à leur efficacité dans une indication médicale donnée , et donc en tenant compte de la gravité de la maladie pour

Pour des fonctions de coˆ ut ayant une d´ ecom- position Berge-acyclique, nous avons montr´ e qu’un fil- trage simple tel que la coh´ erence d’arc directionnelle, fournit un

Ce plaidoyer pour davantage de migrations et pour des politiques d’immigration plus flexibles est fondé sur les bénéfices escomptés des migrations : pour les pays de

Le terrorisme de contestation interne (comme celui d’Action directe) et le terrorisme de décolonisation (qui fait appel à la mobilisation de masse) appartiennent

Les dépenses de fonctionnement des établissements privés (notamment les rémunérations des personnels non enseignants) comme celles consacrées aux investissements et

Remarque : Calculer un ordre de grandeur permet de vérifier la cohérence d'un résultat.. Exemples : Détermine un ordre de grandeur de ces calculs :

Cet article analyse, A partir des donnkes du RICA (1991), les relations entre les coQts de production du lait et la taille des exploitations laitibres, dans six pays de la CEE

Retrouver le résultat le plus proche a... Retrouver le résultat le plus proche