• Aucun résultat trouvé

Chapitre 4 : Complexit´e II

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 4 : Complexit´e II"

Copied!
253
0
0

Texte intégral

(1)

Chapitre 4 : Complexit´ e II

Alexandre Blondin Mass´e

Laboratoire d’informatique formelle Universit´e du Qu´ebec `a Chicoutimi

27 janvier 2014 Cours 8INF809

D´epartement d’informatique et math´ematique

A. Blondin Mass´e (UQAC) 27 janvier 2014 1 / 61

(2)

Table des mati` eres

1. Complexit´e amortie

2. Ensembles disjoints

3. Forˆets disjointes

4. Arbres splay

(3)

Table des mati` eres

1. Complexit´e amortie

2. Ensembles disjoints

3. Forˆets disjointes

4. Arbres splay

A. Blondin Mass´e (UQAC) 27 janvier 2014 3 / 61

(4)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethodecomptable;

I La m´ethode dupotentiel.

(5)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethodecomptable;

I La m´ethode dupotentiel.

A. Blondin Mass´e (UQAC) 27 janvier 2014 4 / 61

(6)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethodecomptable;

I La m´ethode dupotentiel.

(7)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethodecomptable;

I La m´ethode dupotentiel.

A. Blondin Mass´e (UQAC) 27 janvier 2014 4 / 61

(8)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethodecomptable;

I La m´ethode dupotentiel.

(9)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethode comptable;

I La m´ethode dupotentiel.

A. Blondin Mass´e (UQAC) 27 janvier 2014 4 / 61

(10)

Rappels sur les diff´ erentes complexit´ es

I La complexit´e dans lepire cas, qui donne une borne sup´erieure;

I La complexit´emoyenne, qui n´ecessite le calcul des probabilit´es;

I La complexit´eamortie donne uneborne sup´erieure pour le pire cas lorsqu’une suite d’op´erations sont effectu´ees.

I Nous allons voir trois m´ethodespermettant de parler de complexit´e amortie:

I L’analyse cumul´ee;

I La m´ethode comptable;

(11)

Analyse cumul´ ee

I Il suffit de montrer le temps total T(n) pris pour effectuer n op´erations;

I On peut alors en conclure que le coˆut amortipar op´eration estT(n)/n;

I Contrairement aux m´ethodes comptableetdu potentiel, on consid`ere que toutes les op´erations ont le mˆeme coˆut amorti ;

I Dans ces deux cas, il est possible dedistinguer le coˆut selon l’op´eration.

A. Blondin Mass´e (UQAC) 27 janvier 2014 5 / 61

(12)

Analyse cumul´ ee

I Il suffit de montrer le temps total T(n) pris pour effectuer n op´erations;

I On peut alors en conclure que le coˆut amortipar op´eration estT(n)/n;

I Contrairement aux m´ethodes comptableetdu potentiel, on consid`ere que toutes les op´erations ont le mˆeme coˆut amorti ;

I Dans ces deux cas, il est possible dedistinguer le coˆut selon l’op´eration.

(13)

Analyse cumul´ ee

I Il suffit de montrer le temps total T(n) pris pour effectuer n op´erations;

I On peut alors en conclure que le coˆut amortipar op´eration estT(n)/n;

I Contrairement aux m´ethodes comptableetdu potentiel, on consid`ere quetoutes les op´erations ont le mˆeme coˆut amorti ;

I Dans ces deux cas, il est possible dedistinguer le coˆut selon l’op´eration.

A. Blondin Mass´e (UQAC) 27 janvier 2014 5 / 61

(14)

Analyse cumul´ ee

I Il suffit de montrer le temps total T(n) pris pour effectuer n op´erations;

I On peut alors en conclure que le coˆut amortipar op´eration estT(n)/n;

I Contrairement aux m´ethodes comptableetdu potentiel, on consid`ere quetoutes les op´erations ont le mˆeme coˆut amorti ;

I Dans ces deux cas, il est possible dedistinguer le coˆut selon l’op´eration.

(15)

Extension de la pile

I Reprenons la pileet ses op´erations :

I PileVide(): retourne une pile vide ;

I P.EstVide(): indique si la pile est vide ou non ;

I P.Empiler(x) : ajoutex au sommet de la pile ;

I P.Sommet(): retourne l’´el´ement au sommet de la pile ;

I P.D´epiler() : retire l’´el´ement du sommet de la pile.

I On ajoute un op´eration suppl´ementaire:

I P.D´epilerPlusieurs(k) : retire les kpremiers

´

el´ements de la pile ou jusqu’`a ce que la pile soit vide ;

I Toutes les op´erations se font en O(1)sauf la derni`ere qui se fait en O(min(|P|, k)).

A. Blondin Mass´e (UQAC) 27 janvier 2014 6 / 61

(16)

Extension de la pile

I Reprenons la pileet ses op´erations :

I PileVide(): retourne une pile vide ;

I P.EstVide(): indique si la pile est vide ou non ;

I P.Empiler(x) : ajoutex au sommet de la pile ;

I P.Sommet(): retourne l’´el´ement au sommet de la pile ;

I P.D´epiler() : retire l’´el´ement du sommet de la pile.

I On ajoute un op´eration suppl´ementaire:

I P.D´epilerPlusieurs(k) : retire les kpremiers

´

el´ements de la pile ou jusqu’`a ce que la pile soit vide ;

I Toutes les op´erations se font en O(1)sauf la derni`ere qui se fait en O(min(|P|, k)).

(17)

Extension de la pile

I Reprenons la pileet ses op´erations :

I PileVide(): retourne une pile vide ;

I P.EstVide(): indique si la pile est vide ou non ;

I P.Empiler(x) : ajoutex au sommet de la pile ;

I P.Sommet(): retourne l’´el´ement au sommet de la pile ;

I P.D´epiler() : retire l’´el´ement du sommet de la pile.

I On ajoute un op´eration suppl´ementaire:

I P.D´epilerPlusieurs(k) : retire les kpremiers

´

el´ements de la pile ou jusqu’`a ce que la pile soit vide ;

I Toutes les op´erations se font en O(1)sauf la derni`ere qui se fait en O(min(|P|, k)).

A. Blondin Mass´e (UQAC) 27 janvier 2014 6 / 61

(18)

Extension de la pile

I Reprenons la pileet ses op´erations :

I PileVide(): retourne une pile vide ;

I P.EstVide(): indique si la pile est vide ou non ;

I P.Empiler(x) : ajoutex au sommet de la pile ;

I P.Sommet(): retourne l’´el´ement au sommet de la pile ;

I P.D´epiler() : retire l’´el´ement du sommet de la pile.

I On ajoute un op´eration suppl´ementaire:

I P.D´epilerPlusieurs(k) : retire les kpremiers

´

el´ements de la pile ou jusqu’`a ce que la pile soit vide ;

I Toutes les op´erations se font en O(1)sauf la derni`ere qui se fait en O(min(|P|, k)).

(19)

Extension de la pile

I Reprenons la pileet ses op´erations :

I PileVide(): retourne une pile vide ;

I P.EstVide(): indique si la pile est vide ou non ;

I P.Empiler(x) : ajoutex au sommet de la pile ;

I P.Sommet(): retourne l’´el´ement au sommet de la pile ;

I P.D´epiler() : retire l’´el´ement du sommet de la pile.

I On ajoute un op´eration suppl´ementaire:

I P.D´epilerPlusieurs(k) : retire les kpremiers

´

el´ements de la pile ou jusqu’`a ce que la pile soit vide ;

I Toutes les op´erations se font en O(1)sauf la derni`ere qui se fait en O(min(|P|, k)).

A. Blondin Mass´e (UQAC) 27 janvier 2014 6 / 61

(20)

Coˆ ut d’une suite d’op´ erations

I Supposons qu’on effectuen op´erations parmi Empiler, D´epileretD´epilerPlusieurs;

I Quel est le coˆut maximum possible ?

I Comme la taille de la pileest au plusnet que l’op´eration D´epilerPlusieursse fait en temps O(n), alors le coˆut total sera O(n2);

I L’analyse pr´ec´edente est correcte, mais pasassez pr´ecise;

(21)

Coˆ ut d’une suite d’op´ erations

I Supposons qu’on effectuen op´erations parmi Empiler, D´epileretD´epilerPlusieurs;

I Quel est le coˆut maximum possible ?

I Comme la taille de la pileest au plusnet que l’op´eration D´epilerPlusieursse fait en temps O(n), alors le coˆut total sera O(n2);

I L’analyse pr´ec´edente est correcte, mais pasassez pr´ecise;

A. Blondin Mass´e (UQAC) 27 janvier 2014 7 / 61

(22)

Coˆ ut d’une suite d’op´ erations

I Supposons qu’on effectuen op´erations parmi Empiler, D´epileretD´epilerPlusieurs;

I Quel est le coˆut maximum possible ?

I Comme la taille de la pileest au plusnet que l’op´eration D´epilerPlusieursse fait en temps O(n), alors le coˆut total sera O(n2);

I L’analyse pr´ec´edente est correcte, mais pasassez pr´ecise;

(23)

Coˆ ut d’une suite d’op´ erations

I Supposons qu’on effectuen op´erations parmi Empiler, D´epileretD´epilerPlusieurs;

I Quel est le coˆut maximum possible ?

I Comme la taille de la pileest au plusnet que l’op´eration D´epilerPlusieursse fait en temps O(n), alors le coˆut total sera O(n2);

I L’analyse pr´ec´edente est correcte, mais pasassez pr´ecise;

A. Blondin Mass´e (UQAC) 27 janvier 2014 7 / 61

(24)

Coˆ ut d’une suite d’op´ erations (suite)

I En fait, si on effectue plusieurs op´erations

D´epilerPlusieurscons´ecutive, alors elles ne peuvent pas toutesˆetres coˆuteuses ;

I Plus pr´ecis´ement, si on commence avec unepile vide, alors le nombre total d’op´erationsEmpiler estplus grand ou ´egalque le nombre total d’op´erationsD´epiler;

I On en conclut que le temps total pris estO(n), ce qui est plus pr´ecisque O(n2);

I Le coˆut moyen d’une op´eration est donc O(n)/n=O(1);

I A noter que le` coˆut amortine se base pas sur des probabilit´es, mais consid`eretous les cas possibles.

(25)

Coˆ ut d’une suite d’op´ erations (suite)

I En fait, si on effectue plusieurs op´erations

D´epilerPlusieurscons´ecutive, alors elles ne peuvent pas toutesˆetres coˆuteuses ;

I Plus pr´ecis´ement, si on commence avec unepile vide, alors le nombre total d’op´erationsEmpiler estplus grand ou ´egalque le nombre total d’op´erationsD´epiler;

I On en conclut que le temps total pris estO(n), ce qui est plus pr´ecisque O(n2);

I Le coˆut moyen d’une op´eration est donc O(n)/n=O(1);

I A noter que le` coˆut amortine se base pas sur des probabilit´es, mais consid`eretous les cas possibles.

A. Blondin Mass´e (UQAC) 27 janvier 2014 8 / 61

(26)

Coˆ ut d’une suite d’op´ erations (suite)

I En fait, si on effectue plusieurs op´erations

D´epilerPlusieurscons´ecutive, alors elles ne peuvent pas toutesˆetres coˆuteuses ;

I Plus pr´ecis´ement, si on commence avec unepile vide, alors le nombre total d’op´erationsEmpiler estplus grand ou ´egalque le nombre total d’op´erationsD´epiler;

I On en conclut que le temps total pris estO(n), ce qui est plus pr´ecisque O(n2);

I Le coˆut moyen d’une op´eration est donc O(n)/n=O(1);

I A noter que le` coˆut amortine se base pas sur des probabilit´es, mais consid`eretous les cas possibles.

(27)

Coˆ ut d’une suite d’op´ erations (suite)

I En fait, si on effectue plusieurs op´erations

D´epilerPlusieurscons´ecutive, alors elles ne peuvent pas toutesˆetres coˆuteuses ;

I Plus pr´ecis´ement, si on commence avec unepile vide, alors le nombre total d’op´erationsEmpiler estplus grand ou ´egalque le nombre total d’op´erationsD´epiler;

I On en conclut que le temps total pris estO(n), ce qui est plus pr´ecisque O(n2);

I Le coˆut moyen d’une op´eration est doncO(n)/n=O(1);

I A noter que le` coˆut amortine se base pas sur des probabilit´es, mais consid`eretous les cas possibles.

A. Blondin Mass´e (UQAC) 27 janvier 2014 8 / 61

(28)

Coˆ ut d’une suite d’op´ erations (suite)

I En fait, si on effectue plusieurs op´erations

D´epilerPlusieurscons´ecutive, alors elles ne peuvent pas toutesˆetres coˆuteuses ;

I Plus pr´ecis´ement, si on commence avec unepile vide, alors le nombre total d’op´erationsEmpiler estplus grand ou ´egalque le nombre total d’op´erationsD´epiler;

I On en conclut que le temps total pris estO(n), ce qui est plus pr´ecisque O(n2);

I Le coˆut moyen d’une op´eration est doncO(n)/n=O(1);

I A noter que le` coˆut amortine se base pas sur des probabilit´es, mais consid`eretous les cas possibles.

(29)

Compteur binaire

Valeur A[7] A[6] A[5] A[4] A[3] A[2] A[1] A[0]

0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 1

2 0 0 0 0 0 0 1 0

3 0 0 0 0 0 0 1 1

4 0 0 0 0 0 1 0 0

5 0 0 0 0 0 1 0 1

6 0 0 0 0 0 1 1 0

7 0 0 0 0 0 1 1 1

8 0 0 0 0 1 0 0 0

9 0 0 0 0 1 0 0 1

10 0 0 0 0 1 0 1 0

A. Blondin Mass´e (UQAC) 27 janvier 2014 9 / 61

(30)

Incr´ ementation d’un compteur binaire

1: procedure Incr´ementer(A : tableau de bits)

2: i←0

3: tant quei <|A|etA[i] = 1faire

4: A[i]←0

5: i←i+ 1

6: fin tant que

7: sii <|A|alors

8: A[i]←1

9: fin si

10: fin procedure

I Soit k=|A|;

I Alors une incr´ementation se fait enO(k);

I Une suite denincr´ementationsa un coˆut total deO(nk).

(31)

Incr´ ementation d’un compteur binaire

1: procedure Incr´ementer(A : tableau de bits)

2: i←0

3: tant quei <|A|etA[i] = 1faire

4: A[i]←0

5: i←i+ 1

6: fin tant que

7: sii <|A|alors

8: A[i]←1

9: fin si

10: fin procedure

I Soit k=|A|;

I Alors une incr´ementation se fait enO(k);

I Une suite denincr´ementationsa un coˆut total deO(nk).

A. Blondin Mass´e (UQAC) 27 janvier 2014 10 / 61

(32)

Incr´ ementation d’un compteur binaire

1: procedure Incr´ementer(A : tableau de bits)

2: i←0

3: tant quei <|A|etA[i] = 1faire

4: A[i]←0

5: i←i+ 1

6: fin tant que

7: sii <|A|alors

8: A[i]←1

9: fin si

10: fin procedure

I Soit k=|A|;

I Alors une incr´ementation se fait enO(k);

I Une suite denincr´ementationsa un coˆut total deO(nk).

(33)

Incr´ ementation d’un compteur binaire

1: procedure Incr´ementer(A : tableau de bits)

2: i←0

3: tant quei <|A|etA[i] = 1faire

4: A[i]←0

5: i←i+ 1

6: fin tant que

7: sii <|A|alors

8: A[i]←1

9: fin si

10: fin procedure

I Soit k=|A|;

I Alors une incr´ementation se fait enO(k);

I Une suite denincr´ementationsa un coˆut total deO(nk).

A. Blondin Mass´e (UQAC) 27 janvier 2014 10 / 61

(34)

Compteur binaire (suite)

Valeur A[7] A[6] A[5] A[4] A[3] A[2] A[1] A[0]

0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 1

2 0 0 0 0 0 0 1 0

3 0 0 0 0 0 0 1 1

4 0 0 0 0 0 1 0 0

5 0 0 0 0 0 1 0 1

6 0 0 0 0 0 1 1 0

7 0 0 0 0 0 1 1 1

8 0 0 0 0 1 0 0 0

9 0 0 0 0 1 0 0 1

10 0 0 0 0 1 0 1 0

(35)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´e chaque fois;

I le bit A[1] est invers´e bn/2c fois ;

I le bit A[2] est invers´e bn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

A. Blondin Mass´e (UQAC) 27 janvier 2014 12 / 61

(36)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´e chaque fois;

I le bit A[1] est invers´e bn/2c fois ;

I le bit A[2] est invers´e bn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

(37)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´e bn/2c fois ;

I le bit A[2] est invers´e bn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

A. Blondin Mass´e (UQAC) 27 janvier 2014 12 / 61

(38)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´e bn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

(39)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´ebn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

A. Blondin Mass´e (UQAC) 27 janvier 2014 12 / 61

(40)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´ebn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

(41)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´ebn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

A. Blondin Mass´e (UQAC) 27 janvier 2014 12 / 61

(42)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´ebn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i

= 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

(43)

Coˆ ut d’une suite d’incr´ ementations

I Supposons qu’on effectuen incr´ementations successives en commen¸cant par la valeur 0 ;

I Alors

I le bit A[0] est invers´echaque fois;

I le bit A[1] est invers´ebn/2c fois ;

I le bit A[2] est invers´ebn/4c fois ;

I Le coˆut total est donc

k−1

X

i=0

jn 2i

k

< n

X

i=0

1 2i = 2n.

I Le coˆut amortiest par cons´equentO(1)par incr´ementation.

A. Blondin Mass´e (UQAC) 27 janvier 2014 12 / 61

(44)

La m´ ethode comptable

I La m´ethode comptable consiste `a affecter `a chaque op´erationun coˆut amorti;

I Si lecoˆut amorti d’une op´eration estplus grand que son coˆut r´eel, alors le suppl´ementest appel´ecr´edit;

I Le cr´editpermet de payerpour des op´erations subs´equentes;

(45)

La m´ ethode comptable

I La m´ethode comptable consiste `a affecter `a chaque op´erationun coˆut amorti;

I Si lecoˆut amorti d’une op´eration estplus grand que son coˆut r´eel, alors le suppl´ementest appel´ecr´edit;

I Le cr´editpermet de payerpour des op´erations subs´equentes;

A. Blondin Mass´e (UQAC) 27 janvier 2014 13 / 61

(46)

La m´ ethode comptable

I La m´ethode comptable consiste `a affecter `a chaque op´erationun coˆut amorti;

I Si lecoˆut amorti d’une op´eration estplus grand que son coˆut r´eel, alors le suppl´ementest appel´ecr´edit;

I Le cr´editpermet de payerpour des op´erations subs´equentes;

(47)

La m´ ethode comptable (suite)

I Lorsqu’on choisit les coˆuts amortis, on doit s’assurer que toute suite de nop´erations donne toujours uncoˆut amortisup´erieur aucoˆut r´eel :

n

X

i=1

ˆ ci

n

X

i=1

ci,

o`u ci est lecoˆut r´eel etcˆi est le coˆut amortide lai-`eme op´eration;

I Autrement dit, lecr´edit total

n

X

i=1

ˆ ci

n

X

i=1

ci ≥0

doit ˆetre positif en tout temps.

A. Blondin Mass´e (UQAC) 27 janvier 2014 14 / 61

(48)

La m´ ethode comptable (suite)

I Lorsqu’on choisit les coˆuts amortis, on doit s’assurer que toute suite de nop´erations donne toujours uncoˆut amortisup´erieur aucoˆut r´eel :

n

X

i=1

ˆ ci

n

X

i=1

ci,

o`u ci est lecoˆut r´eel etcˆi est le coˆut amortide lai-`eme op´eration;

I Autrement dit, lecr´edit total

n

X

i=1

ˆ ci

n

X

i=1

ci ≥0

doit ˆetre positif en tout temps.

(49)

La m´ ethode comptable (suite)

I Lorsqu’on choisit les coˆuts amortis, on doit s’assurer que toute suite de nop´erations donne toujours uncoˆut amortisup´erieur aucoˆut r´eel :

n

X

i=1

ˆ ci

n

X

i=1

ci,

o`u ci est lecoˆut r´eel etcˆi est le coˆut amortide lai-`eme op´eration;

I Autrement dit, lecr´edit total

n

X

i=1

ˆ ci

n

X

i=1

ci ≥0

doit ˆetre positif en tout temps.

A. Blondin Mass´e (UQAC) 27 janvier 2014 14 / 61

(50)

Retour sur la pile

I Les coˆuts r´eelsdes op´erations sur une pile sont :

Empiler 1,

D´epiler 1,

D´epilerPlusieurs min(k,|P|).

I On choisit commecoˆuts amortis les valeurs suivantes :

Empiler 2,

D´epiler 0, D´epilerPlusieurs 0.

I Clairement, lecr´edit total est toujours positif, puisqu’il est ´egal aunombre d’´el´ementsdans la pile `a chaque instant.

(51)

Retour sur la pile

I Les coˆuts r´eelsdes op´erations sur une pile sont :

Empiler 1,

D´epiler 1,

D´epilerPlusieurs min(k,|P|).

I On choisit commecoˆuts amortis les valeurs suivantes :

Empiler 2,

D´epiler 0, D´epilerPlusieurs 0.

I Clairement, lecr´edit total est toujours positif, puisqu’il est ´egal aunombre d’´el´ementsdans la pile `a chaque instant.

A. Blondin Mass´e (UQAC) 27 janvier 2014 15 / 61

(52)

Retour sur la pile

I Les coˆuts r´eelsdes op´erations sur une pile sont :

Empiler 1,

D´epiler 1,

D´epilerPlusieurs min(k,|P|).

I On choisit commecoˆuts amortis les valeurs suivantes :

Empiler 2,

D´epiler 0, D´epilerPlusieurs 0.

I Clairement, lecr´edit total est toujours positif, puisqu’il est ´egal aunombre d’´el´ementsdans la pile `a chaque instant.

(53)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 16 / 61

(54)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

(55)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 16 / 61

(56)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

(57)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 16 / 61

(58)

Retour sur le compteur binaire

I On peutd´ecomposerl’incr´ementation en deux op´erations´el´ementaires :

I Changer un bit de0 vers 1;

I Changer un bit de1 vers 0.

I On affecte alors un coˆut amortide 2 pour changer un bit

`

a 1 et un coˆut de 0 pour changer un bit `a 0 ;

I Le cr´edit total est toujours positif, puisqu’il correspond au nombre de bits ´egaux `a 1;

I De plus, comme chaque incr´ementationchangeau plus un bit de 0 vers 1, son coˆut amortiestO(1).

(59)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 17 / 61

(60)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

(61)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 17 / 61

(62)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

(63)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 17 / 61

(64)

La m´ ethode du potentiel

I C’est la m´ethode laplus utilis´ee en pratique ;

I Unefonction de potentiel Φ est une fonction quiaffecte

`

a une structure de donn´eesunnombre r´eel;

I Analogue au concept d’´energie potentielle;

I Soient D0,D1,. . . une suite de structures de donn´ees obtenues par application successive d’op´erations ;

I Le coˆut amorticˆi de lai-`emeop´eration par rapport `a Φ est d´efini par

ˆ

ci =ci+ Φ(Di)−Φ(Di−1).

(65)

La m´ ethode du potentiel (suite)

I Le coˆut amorti total d’une suite den op´erations est

n

X

i=1

ˆ ci =

n

X

i=1

(ci+ Φ(Di)−Φ(Di−1))

=

n

X

i=1

ci+ Φ(Dn)−Φ(D0).

I Si on choisit Φ de sorte que Φ(Dn)≥Φ(D0), alors le coˆut amorti total est une borne sup´erieure du coˆut r´eel total ;

I En pratique, on a souvent Φ(D0) = 0 et il suffit de montrer que Φ(Di)≥0pour touti.

A. Blondin Mass´e (UQAC) 27 janvier 2014 18 / 61

(66)

La m´ ethode du potentiel (suite)

I Le coˆut amorti total d’une suite den op´erations est

n

X

i=1

ˆ ci =

n

X

i=1

(ci+ Φ(Di)−Φ(Di−1))

=

n

X

i=1

ci+ Φ(Dn)−Φ(D0).

I Si on choisit Φ de sorte que Φ(Dn)≥Φ(D0), alors le coˆut amorti total est une borne sup´erieure du coˆut r´eel total ;

I En pratique, on a souvent Φ(D0) = 0 et il suffit de montrer que Φ(Di)≥0pour touti.

(67)

La m´ ethode du potentiel (suite)

I Le coˆut amorti total d’une suite den op´erations est

n

X

i=1

ˆ ci =

n

X

i=1

(ci+ Φ(Di)−Φ(Di−1))

=

n

X

i=1

ci+ Φ(Dn)−Φ(D0).

I Si on choisit Φ de sorte que Φ(Dn)≥Φ(D0), alors le coˆut amorti total est une borne sup´erieure du coˆut r´eel total ;

I En pratique, on a souvent Φ(D0) = 0 et il suffit de montrer que Φ(Di)≥0pour touti.

A. Blondin Mass´e (UQAC) 27 janvier 2014 18 / 61

(68)

La m´ ethode du potentiel (suite)

I Le coˆut amorti total d’une suite den op´erations est

n

X

i=1

ˆ ci =

n

X

i=1

(ci+ Φ(Di)−Φ(Di−1))

=

n

X

i=1

ci+ Φ(Dn)−Φ(D0).

I Si on choisit Φ de sorte que Φ(Dn)≥Φ(D0), alors le coˆut amorti total est une borne sup´erieure du coˆut r´eel total ;

I En pratique, on a souvent Φ(D0) = 0 et il suffit de montrer que Φ(Di)≥0pour touti.

(69)

La m´ ethode du potentiel (suite)

I Le coˆut amorti total d’une suite den op´erations est

n

X

i=1

ˆ ci =

n

X

i=1

(ci+ Φ(Di)−Φ(Di−1))

=

n

X

i=1

ci+ Φ(Dn)−Φ(D0).

I Si on choisit Φ de sorte que Φ(Dn)≥Φ(D0), alors le coˆut amorti total est une borne sup´erieure du coˆut r´eel total ;

I En pratique, on a souvent Φ(D0) = 0 et il suffit de montrer que Φ(Di)≥0pour touti.

A. Blondin Mass´e (UQAC) 27 janvier 2014 18 / 61

(70)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amortide chaque op´eration.

(71)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amortide chaque op´eration.

A. Blondin Mass´e (UQAC) 27 janvier 2014 19 / 61

(72)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amortide chaque op´eration.

(73)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amortide chaque op´eration.

A. Blondin Mass´e (UQAC) 27 janvier 2014 19 / 61

(74)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amortide chaque op´eration.

(75)

La pile avec la m´ ethode du potentiel

I Si on reprend l’exemple de lapile, la fonctionpotentiella plus simple est

Φ(Di) =nombre d’´el´ementsdans la pileDi.

I Clairement,

I Φ(D0) = 0 quand on commence avec unepile videet

I Φ(Di)≥0 pour tout i.

I Il ne nous reste qu’`a calculer lecoˆut amorti de chaque op´eration.

A. Blondin Mass´e (UQAC) 27 janvier 2014 19 / 61

(76)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´erationestD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

(77)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´erationestD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

A. Blondin Mass´e (UQAC) 27 janvier 2014 20 / 61

(78)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´erationestD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

(79)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´erationestD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

A. Blondin Mass´e (UQAC) 27 janvier 2014 20 / 61

(80)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´erationestD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

(81)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´eration estD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

A. Blondin Mass´e (UQAC) 27 janvier 2014 20 / 61

(82)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´eration estD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

(83)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´eration estD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

A. Blondin Mass´e (UQAC) 27 janvier 2014 20 / 61

(84)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´eration estD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

(85)

Coˆ ut amorti des op´ erations sur une pile

I Si la i-`eme op´eration estEmpiler, alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= 1 + (|Di−1|+ 1)− |Di−1|

= 1 + 1

= 2.

I Si la i-`eme op´eration estD´epilerPlusieurs (qui inclut D´epilerquandk= 1), alors le coˆut amorti est

ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= k+ (|Di−1| −k)− |Di−1|

= k−k

= 0,

A. Blondin Mass´e (UQAC) 27 janvier 2014 20 / 61

(86)

La m´ ethode du potentiel avec le compteur binaire

I Dans le cas du compteur binaire, la fonction potentiel est d´efinie par

Φ(Di) =nombre de 1 affich´es par le compteurDi.

I Soit ui le nombre de 1affich´es par le compteur apr`es la i-`eme incr´ementation;

I Soit zi le nombre de bits qui sont affect´es `a la valeur 0 apr`es lai-`eme incr´ementation;

I Alors le coˆut r´eel d’une incr´ementation est au plus zi+ 1, en incluant le bit qui est affect´e `a 1 ;

(87)

La m´ ethode du potentiel avec le compteur binaire

I Dans le cas du compteur binaire, la fonction potentiel est d´efinie par

Φ(Di) =nombre de 1 affich´es par le compteurDi.

I Soit ui le nombre de 1affich´es par le compteur apr`es la i-`eme incr´ementation;

I Soit zi le nombre de bits qui sont affect´es `a la valeur 0 apr`es lai-`eme incr´ementation;

I Alors le coˆut r´eel d’une incr´ementation est au plus zi+ 1, en incluant le bit qui est affect´e `a 1 ;

A. Blondin Mass´e (UQAC) 27 janvier 2014 21 / 61

(88)

La m´ ethode du potentiel avec le compteur binaire

I Dans le cas du compteur binaire, la fonction potentiel est d´efinie par

Φ(Di) =nombre de 1 affich´es par le compteurDi.

I Soit ui le nombre de 1affich´es par le compteur apr`es la i-`eme incr´ementation;

I Soit zi le nombre de bits qui sont affect´es `a la valeur 0 apr`es lai-`eme incr´ementation;

I Alors le coˆut r´eel d’une incr´ementation est au plus zi+ 1, en incluant le bit qui est affect´e `a 1 ;

(89)

La m´ ethode du potentiel avec le compteur binaire

I Dans le cas du compteur binaire, la fonction potentiel est d´efinie par

Φ(Di) =nombre de 1 affich´es par le compteurDi.

I Soit ui le nombre de 1affich´es par le compteur apr`es la i-`eme incr´ementation;

I Soit zi le nombre de bits qui sont affect´es `a la valeur 0 apr`es lai-`eme incr´ementation;

I Alors le coˆut r´eel d’une incr´ementation est au plus zi+ 1, en incluant le bit qui est affect´e `a 1 ;

A. Blondin Mass´e (UQAC) 27 janvier 2014 21 / 61

(90)

La m´ ethode du potentiel avec le compteur binaire

I Dans le cas du compteur binaire, la fonction potentiel est d´efinie par

Φ(Di) =nombre de 1 affich´es par le compteurDi.

I Soit ui le nombre de 1affich´es par le compteur apr`es la i-`eme incr´ementation;

I Soit zi le nombre de bits qui sont affect´es `a la valeur 0 apr`es lai-`eme incr´ementation;

I Alors le coˆut r´eel d’une incr´ementation est au plus zi+ 1, en incluant le bit qui est affect´e `a 1 ;

(91)

La m´ ethode du potentiel avec le compteur binaire

I Clairement,

ui=ui−1−zi+ 1.

I Par cons´equent, ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= (zi+ 1) + (ui−1−zi+ 1)−ui−1

= 2.

I Ainsi, lecoˆut amortid’une incr´ementation est O(1).

A. Blondin Mass´e (UQAC) 27 janvier 2014 22 / 61

(92)

La m´ ethode du potentiel avec le compteur binaire

I Clairement,

ui=ui−1−zi+ 1.

I Par cons´equent, ˆ

ci = ci+ Φ(Di)−Φ(Di−1)

= (zi+ 1) + (ui−1−zi+ 1)−ui−1

= 2.

I Ainsi, lecoˆut amortid’une incr´ementation est O(1).

Références

Documents relatifs

Pour faire l’analogie avec l’exemple du jeu de cartes, lorsqu’on est ` a la i-` eme ´ etape du parcours, le i-` eme ´ el´ ement est la carte saisie, les ´ el´ ements pr´

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

Toutes les justifications doivent figurer sur votre copie, mais la r´edaction doit rester sobre.. Vous pouvez admettre un r´esultat, ` a condition de le signaler

Par dichotomie successive, on voit que si l’on sait r ´esoudre ce probl `eme en Υ(log(n)) op ´erations ´el ´ementaires , on sait trouver un diviseur de n en temps polyn ˆomial.

´ Ecrire un algorithme calculant la somme de deux matrices de mˆ eme taille et donner la complexit´ e en fonction du nombre de lignes et de colonnes de ces matrices.. ´ Ecrire

On dira qu’un algorithme calcule l’´ el´ ement majoritaire s’il renvoie l’´ el´ ement majoritaire s’il existe, et null sinon (on suppose que la liste de contient pas l’´

Pour crypter des messages on peut utiliser un algorithme qui consiste ` a ajouter ` a chaque caract` ere du message les caract` eres