SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Université Saad Dahleb de Blida

Faculté des Sciences
Département d’Informatique

Licence Génie des Systèmes Informatique (GSI)
Semestre 5 (3ème année)

ALGORITHMIQUE 02

CHAPITRE V:
ALGORITHMES GLOUTONS
Cours n°12: 24 Novembre 2013
AROUSSI Sana

Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
PLAN DU CHAPITRE V

 Introduction
 Schéma
 Preuve

Général

d’Optimalité

 Exemples

2
INTRODUCTION
PROBLÈME D’OPTIMISATION


On

est

souvent

dans

le

cadre

des

problèmes

d'optimisation:


E: un ensemble fini d'éléments.



S: une solution est construite à partir des éléments de E. Par
exemple: une partie de E, un multi-ensemble d'éléments de E, une

suite fini de E ou une permutation de E qui satisfait une certaine
contrainte.


A chaque solution S est associée une fonction objectif F(S).



Le but est de chercher une solution qui optimise (minimise ou
maximise) cette fonction objectif.

3
INTRODUCTION
PRINCIPE GÉNÉRAL


Pour un problème d’optimisation, un algorithme glouton
est un algorithme qui cherche à construire une

solution pas à pas


sans jamais revenir sur ses décisions,



en prenant à chaque étape la solution qui
semble la meilleure localement,



en espérant obtenir une solution optimale.
4
INTRODUCTION
PRINCIPE GÉNÉRAL

5

Choix glouton optimal

Choix glouton: Solution non optimale

Algorithme Glouton Exact

Heuristique Gloutonne
EXEMPLE 1: LE MONNAYEUR


On dispose des pièces de monnaie correspondant aux
valeurs E = {e1, ..., en}.



Pour chaque valeur ei, le nombre de pièces (nbi) est non
borné.



Étant donnée une somme « s » entière, on veut trouver
une façon de rendre la somme « s » avec un nombre de

pièces minimum.


Prendre E ={1, 10, 2, 5}, s = 28, Quelles la solution
optimale?

6
EXEMPLE 1: LE MONNAYEUR


Une solution S = (nb1, ...., nbn) présente le nombre de
pièces (nbi) pour chaque valeur (ei):





Elle est correcte si
Elle est optimale si

est minimal.

Algorithme glouton: Trier les valeurs de pièces par

ordre

décroissant.

Pour

chaque

valeur

de

pièce,

maximiser le nombre de pièces choisies.
7
EXEMPLE 1: LE MONNAYEUR
1ÈRE VERSION
Trier E en ordre décroissant
Pour i 1 à n faire
DP
S[i]  s div E[i]
s s mod E[i]
FP
8
SCHÉMA GÉNÉRAL


Il est basé sur un critère local de sélection des

éléments de E pour construire une solution optimale. En
fait, on travaille sur l'objet « solution partielle » et on
doit disposer des modules suivant:


Init qui initialise la solution de début



Select qui choisit le meilleur élément restant selon le
critère glouton: Souvent, on trie tout simplement la liste des

éléments selon le critère glouton au départ et on balaye
ensuite cette liste dans l'ordre.
9
SCHÉMA GÉNÉRAL


Init qui initialise la solution de début



Select qui choisit le meilleur élément restant selon le critère
glouton: Souvent, on trie tout simplement la liste des éléments
selon le critère glouton au départ et on balaye ensuite cette liste

dans l'ordre.


Complete? qui teste si une solution partielle est une solution
(complète).



AjoutPossible? qui teste si un élément peut être ajouté à une
solution partielle. Dans certains cas, c'est toujours vrai!



Ajout qui permet d'ajouter un élément à une solution si c'est
10

possible.
SCHÉMA GÉNÉRAL


L’algorithme Glouton est alors:
Trier (E)
Init (S)
Tant que Non Complete(S) faire
Select(x, E)
Si AjoutPossible(x) alors Ajout(S, x)
FTQ

11
EXEMPLE 1: LE MONNAYEUR
SCHÉMA GLOUTON
Trier (E) //en ordre décroissant
Init (S) //Initialiser la solution à 0 (nbi = 0)

i1
Tant que (i  n) faire // La solution est complète après
avoir parcouru tous les éléments de E
// Select retourne E(i)
// AjoutPossible est toujours vrai

S[i]  s div E[i] // Ajouter la solution
s s mod E[i]

i ++
FTQ

12
SCHÉMA GÉNÉRAL
COMPLEXITÉ


Soit n la cardinalité de E
Trier (E)

O (Ttrier ) = O(n log2 n)

Init (S)

TInit

Tcomplete

Tant que Non Complete(S) faire n fois

Select(x, E) Tselect
Si AjoutPossible(x) alors Ajout(S, x)
FTQ

Tpossible

f(n)

TAjout

13

La complexité est souvent de l’ordre O ( n log2 n + n f(n) )
EXEMPLE 1: LE MONNAYEUR
COMPLEXITÉ DU SCHÉMA GLOUTON
Trier (E)
Init (S)
i1
Tant que (i  n) faire

S[i]  s div E[i]

O (Ttrier) = O ( n log2 n )

s s mod E[i]
i ++
FTQ

14
SCHÉMA GÉNÉRAL
REMARQUES


Dans certains cas, le schéma général est encore plus
simple! Comme dans le cas de MONNAYEUR.



Dans d'autres cas, les solutions sont un peu plus
compliquées ... et on a besoin d'un schéma un peu plus
sophistiqué...
15
PREUVE D’OPTIMALITÉ


Un algorithme glouton produit des solutions optimales si
les propriétés suivantes sont vérifiées :

1. Propriété du choix glouton : Il existe toujours une

solution optimale qui contient un premier choix glouton


En général on montre que toute solution optimale contient ou
débute par le premier choix glouton.

16
PREUVE D’OPTIMALITÉ
2. Propriété de sous-structure optimale : toute solution
optimale contient une sous-structure optimale


Soit S une solution optimale du problème P contenant le choix C et

le S’ = S{C} alors S’ est une solution optimale du sous problème
PC résultant du choix C dans le problème P

17
PREUVE D’OPTIMALITÉ


Pour monter que l’algorithme glouton rend toujours une
solution optimale, il faut montrer que les deux
propriétés

(

choix

glouton

et

sous-structure

optimale) sont vérifiées.


Pour montrer que l’algorithme glouton ne rend pas
toujours une solution optimale, il suffit de trouver un
contre-exemple.

18
EXEMPLE 1: LE MONNAYEUR
PREUVE D’OPTIMALITÉ


E = {10 , 5, 2, 1}: Algorithme Glouton trouve toujours la
solution optimale?



Choix glouton : la valeur de pièce la plus grande


Si s ≥ 10 toute solution optimale contient au moins
une pièce de 10  c’est le premier choix glouton.



Si s < 10, l’algorithme fait un bon premier choix ( au
plus une pièce 5, au plus deux pièce de 2 et au plus
une pièce de 1)

Toute solution optimale contient donc un choix
19
glouton
EXEMPLE 1: LE MONNAYEUR
PREUVE D’OPTIMALITÉ


Propriété de sous-structure optimale :



Soient S une solution optimale pour la somme s et C  S
un choix glouton (la plus grande pièce) alors S’ = S- {C}

est une solution optimale pour s-valeur(C).


1ère Méthode: Preuve par absurde



Supposant que:


H1: S une solution optimale pour la somme s



H2: C  S un choix glouton (la plus grande pièce)



20
H3: S’ = S- {C} est une solution non optimale

pour s-valeur (C)
EXEMPLE 1: LE MONNAYEUR
PREUVE D’OPTIMALITÉ


1ère Méthode: Preuve par absurde



Supposant que:



H2: C  S un choix glouton (la plus grande pièce)





H1: S une solution optimale pour la somme s

H3: S’ est une solution non optimale pour s-valeur (C)

Alors il existe une solution S’’ meilleure que S’ pour svaleur (C), i.e.



Donc, S’’  {C} est meilleure que S’  {C} pour s car



21
i.e, S = S’  {C} n’est pas optimale (contradiction avec

l’hypothèse H1).
EXEMPLE 1: LE MONNAYEUR
PREUVE D’OPTIMALITÉ


E = {8, 4, 2}:


Solution optimale existe si S est pair et S >1



Algorithme Glouton donne la solution optimale si elle

existe


E = {5, 2}:





Solution optimale existe si n  4

Algorithme Glouton ne la trouve pas toujours (n=6)

E = {5, 4, 1}:


Solution optimale existe toujours



Algorithme Glouton trouve toujours la solution mais elle

22

n’est pas toujours optimale (n=8)
EXEMPLE 1: LE MONNAYEUR
PREUVE D’OPTIMALITÉ



Conclusion: Caractériser les jeux de pièces pour lesquels
l’algorithme glouton est optimal est un problème
ouvert. Il est facile de trouver des catégories qui
marchent (par exemple des pièces E ={1,B,B2,B3} pour B ≥
2) mais le cas général résiste !
23
Université Saad Dahleb de Blida

Faculté des Sciences
Département d’Informatique

Licence Génie des Systèmes Informatique (GSI)
Semestre 5 (3ème année)

ALGORITHMIQUE 02

CHAPITRE V:
ALGORITHMES GLOUTONS
Cours n°13: 27 Novembre 2013
AROUSSI Sana

Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES


Soit E= {1,..., n} un ensemble de n tâches.



La tâche i commence à l’instant Di et finit à l’instant Fi.



Deux tâches i, j sont compatibles si elles ne se
chevauchent pas (Dj  Fi) .



But 1 : trouver un ensemble maximal de tâches
compatibles.
25
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
E

2

3

4

5

6

7

8

9

D

1

2

4

1

5

8

9

13

11

F



1
8

5

7

3

9

11

10

16

14

Algorithme glouton: Trier les tâches selon leur date
fin et sélectionner une tâche compatible par ordre
croissant.

26
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
E

1

2

3

4

5

6

7

8

9

D

1

2

4

1

5

8

9

13

11

F

8

5

7

3

9

11

10

16

14

1. Trier les tâches selon leur date fin
E

4

2

3

1

5

7

6

9

8

D

1

2

4

1

5

9

8

11

13

F

3

5

7

8

9

10

11

14

16

2. Sélectionner les tâches compatibles par ordre croissant
E

4

2

3

1

5

7

6

9

8

D

1

2

4

1

5

9

8

11

13

F

3

5

7

8

9

10

11

14

16

Solution: Tâches 4, 3, 7, 9

27
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
SCHÉMA GLOUTON
Trier (E, D, F) //trier selon ordre croissant de la date fin
S{E[1]}; j1 //Initialiser la solution
i2
Tant que (i  n) faire // La solution est complète après
avoir parcouru tous les éléments de E
// La tâche E[i] est sélectionnée

Si D[i]  F[j] // Si la tâche E[i] est compatible avec la
tâche E[j]
S S  {E[i]} // Ajouter la solution
j i;
i ++

FTQ

28
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Premier choix glouton : E[1] est la tâche ayant la
date fin la plus petite



Propriété 1: Il existe toujours une solution
optimale qui contient le premier choix glouton


Soit S = { T1, ..., Tk} une solution optimale ordonnée

(D[T1] < D[T2]<.....<D[Tk]) tel que F[Tk]  F[1]


Si T1  E[1] alors S – {T1} contient l’ensemble des
tâches compatibles avec T1 ainsi avec E[1].



29
Ainsi, S – {T1}  {E[1]} est aussi une solution

optimale.
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Premier choix glouton : E[1] est la tâche ayant la
date fin la plus petite



Propriété 2: Toute solution optimale contient une
sous-structure optimale


Soit S = { T1, ..., Tm} une solution optimale ordonnée

(D[T1] < D[T2]<.....<D[Tk]) alors S – {T1} est aussi
une solution optimale. Le problème se ramène à
trouver une solution optimale des tâches compatibles

avec T1.

30
EXEMPLE 2: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Preuve par absurde



Supposant que:





H1: S = { T1, ..., Tk} une solution optimale
H2: S’ = S - {T1} est une solution non optimale.

Alors, il existe une solution meilleure (S’’) que S’, i.e.
|S’’| > |S’| = k-1.



Donc, S’’  {T1} est meilleure que S car |S’’  {T1}|> k,

i.e,

S

n’est

pas

l’hypothèse H1).

optimale

(contradiction

avec
31
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES


Soit E= {1,..., n} un ensemble de n tâches.



La tâche j commence à l’instant Di et finit à l’instant Fi.



Chaque tâche est exécutée sur une machine.



Une machine exécute une tâche à la fois.



But 2 : Trouver un nombre minimal de machines
permettant d’exécuter toutes les tâches.
32
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
E

2

3

4

5

6

7

8

9

D

1

2

4

1

5

8

9

13

11

F



1
8

5

7

3

9

11

10

16

14

Algorithme Glouton: Trier les tâches selon leur date
début et attribuer une machine compatible à chaque
tâche.

33
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
1. Trier les tâches selon leur date début
E

1

4

2

3

5

6

7

9

8

D

1

1

2

4

5

8

9

11

13

F

8

3

5

7

9

11

10

14

16

2. Attribuer une machine compatible à chaque tâche
E

1

4

2

3

5

6

7

9

8

D

1

1

2

4

5

8

9

11

13

F

8

3

5

7

9

11

10

14

16

M

1

2

3

2

3

2

1

3

1

Solution: 3 machines

34
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
SCHÉMA GLOUTON
Trier (E, D, F) //trier selon ordre croissant de la date
début

Soit FP une file prioritaire dans laquelle on garde les
machines. Les machines sont classés par ordre croissant
de la date fin de la tâche attribuée. Ainsi, une machine est

caractérisée par son numéro (Num) et une date fin (Fin).
CréerFile (FP); Nb0 //Initialiser la solution
i1
35
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
SCHÉMA GLOUTON
Trier (E, D, F) //trier selon ordre croissant de la date début

CréerFile (FP); Nb0; //Initialiser la solution
i1

Tant que (i  n) faire
Si (FP = Nil) ou (D[i] < FP.Fin)

// Si la file est vide ou la tâche E[i] est

compatible avec la machine FP.Num

NB++ // Ajouter la solution

M.Num  NB;
Sinon

Défiler (FP, M);
M.FinF[i]; Enfiler (FP, M)

i ++
FTQ

36
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Soit S = { M1, ..., Mk} une solution optimale.



Premier choix glouton : la tâche E[1], ayant la date

début la plus petite, est affectée à la machine M1


Propriété 1: Il existe toujours une solution
optimale qui contient le premier choix glouton


La solution optimale contient au moins une machine
(k1), c’est la machine M1.

37
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Premier choix glouton : la tâche E[1], ayant la date
début la plus petite, est affectée à la machine M1



Propriété 2: Toute solution optimale contient une
sous-structure optimale


Soit S = { M1, ..., Mk} une solution optimale pour E

alors S – {M1} est aussi une solution optimale pour E
- {T(M1)}. T(M1) est l’ensemble des tâches exécutées
sur la machine M1.
38
EXEMPLE 3: ORDONNANCEMENT DES TÂCHES
PREUVE D’OPTIMALITÉ


Preuve par absurde



Supposant que:



H1: S = { M1, ..., Mk} une solution optimale pour E



H2: S’ = S- {M1} est une solution non optimale pour E –
{T(M1)}.



Alors, il existe une solution meilleure (S’’) que S’ pour E
– {T(M1)}, i.e. |S’’| < |S’| = k-1.



Donc, S’’  {M1} est meilleure que S pour E car
|S’’



{T1}|

<

k,

i.e,

S

n’est

(contradiction avec l’hypothèse H1).

pas

optimale
39
EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER


Soit E= {1,..., n} un ensemble de n objets.



Chaque objet i a un poids Pi et une valeur Vi. Il peut
être pris en entier et au plus une fois, i.e. Nbi  {0,
1}.



Soit un sac à dos de contenance maximale Pmax



But : Maximiser la valeur totale des objets mis
dans le sac à dos

40
EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER


Algorithme Glouton: trier les objets selon un critère
donné et sélectionner un objet jusqu’à atteindre la
capacité maximale de sac à dos.



Choix gloutons possibles


choisir l’objet de plus grande valeur



choisir l’objet le plus léger



choisir l’objet dont le rapport valeur/poids est

maximal.


41
Montrer que ces choix ne donnent pas de solution

optimale dans le cas où l’objet est pris en entier.
EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER
E

1

2

3

P

10

20

30

V

30

100

120

V/P

3

5

4

Pmax = 50
(220)

Pmax = 40
(150)

Pmax = 30
(130)

L’objet le plus
léger

Non (130)

Non (130)

Oui (130)

L’objet de plus
grande valeur

Oui (220)

Oui (150)

Non (120)

L’objet dont le
rapport V/P est
maximal

Oui (220)

Non (130)

Oui (130)
42
Université Saad Dahleb de Blida

Faculté des Sciences
Département d’Informatique

Licence Génie des Systèmes Informatique (GSI)
Semestre 5 (3ème année)

ALGORITHMIQUE 02

CHAPITRE V:
ALGORITHMES GLOUTONS
Cours n°14: 01 Décembre 2013
AROUSSI Sana

Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ


Soit E= {1,..., n} un ensemble de n objets.



Chaque objet i a un poids Pi et une valeur Vi. Il peut
être fractionné i.e. Nbi  [0, 1].



Soit un sac à dos de contenance maximale Pmax



But : Maximiser la valeur totale des objets mis
dans le sac à dos
44
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
E

1

2

3

P

10

20

30

V

30

100

120

V/P

3

5

4

Pmax = 50
(220)

Pmax = 40
(180)

Pmax = 30
(140)

L’objet le plus
léger

Non (210)

Non (170)

Non (130)

L’objet de plus
grande valeur

Oui (220)

Non (170)

Non (120)

Oui (180)

Oui (140)

L’objet dont le Oui (220)
rapport V/P
est maximal

45
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ


Une solution S = (nb1, ...., nbn) présente le nombre de
l’objet i (nbi  [0, 1])



Algorithme

glouton:

Trier

les

objets

par

ordre

décroissant de leur rapport Vi/Pi. Pour chaque objet,
maximiser le nombre nbi  [0, 1] jusqu’à atteindre la
capacité maximale de l’objet.
46
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
SCHÉMA GLOUTON
Trier (E, P, V) //trier selon ordre décroissant du rapport V/P

Init (S) //Initialiser la solution nbi à 0
i1

Tant que (Pmax > 0) et (i  n) faire
// Ajouter la solution

Si P[i]  Pmax
S[i]  1

Sinon
S[i]  Pmax / P[i]

Pmax  Pmax – P[i]
i ++
FTQ

47
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
PREUVE D’OPTIMALITÉ


Soit S = (nb1,..., nbn) une solution optimale.



Premier choix glouton : l’objet E[1], ayant le rapport

V/P le plus grand


Propriété 1: Il existe toujours une solution
optimale qui contient le premier choix glouton

48
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
PREUVE D’OPTIMALITÉ


Propriété 1: Il existe toujours une solution
optimale qui contient le premier choix glouton


Cette propriété est toujours vérifiée. En effet, il ne
peut exister que trois cas de figures:


S = (1, 1, ......, 1) si



S = (1, 1, ....., 1, k, 0, ....., 0) si



S = (1, 0, ....., 0) si
49
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
PREUVE D’OPTIMALITÉ


Soit S = (nb1,..., nbn) une solution optimale.



Propriété 2: Toute solution optimale contient une

sous-structure optimale


Soient S une solution optimale pour Pmax, alors S –
{nba} est aussi une solution optimale pour Pmax – Pa.

(Pa = nba x P[a])

50
EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ
PREUVE D’OPTIMALITÉ


Preuve par absurde



Supposant que:



H1: S = (nb1,..., nbn) une solution optimale pour Pmax



H2: S’ = S- {nba} est une solution non optimale pour Pmax – Pa.



Alors, il existe une solution meilleure (S’’) que S’ pour
Pmax – Pa, i.e. W(S’’) > W(S’). W(K) retourne la valeur
totale de la solution K.



Donc, S’’  {nba} est meilleure que S pour Pmax car
V(S’’  {nba}) > V(S), i.e, S n’est pas optimale
51
(contradiction avec l’hypothèse H1).
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL


Soit G = (X,E, W) un graphe connexe non orienté valué
tel que:



E est l’ensemble des arrêtes avec |E| = m




X est l’ensemble de sommet avec |X| = n.

W est une fonction de valuation des arêtes W: ER

Un arbre recouvrant de G est un sous graphe A

(X, EA, W) connexe et sans cycle. Ainsi, | EA|= n-1.
52
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL


Un Arbre Recouvrant Mimimum ARmin (X,EA) du G est
un arbre recouvrant qui minimise
1.
2.

Écrire l’algorithme Glouton.
Prouver l’optimalité de l’algorithme

53
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL


Algorithme glouton: Trier les arêtes par ordre croissant
de leur valuation. Sélectionner une arête (si elle forme
pas un cycle avec les arêtes déjà sélectionnées) jusqu’à
construire un arbre recouvrant.



C’est le principe de l’Algorithme de Kruskal

54
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL
SCHÉMA GLOUTON
Trier (E) //trier les arêtes selon ordre croissant de leur poids

Initi (EA)//Initialiser la solution; EA est un tableau à (n-1) éléments
nb0 // le nombre des arêtes sélectionnées

i 1
Tant que (nb n-1) faire

// la fonction Cycle vérifie que l’ensemble des arêtes EA  E[i] ne
forment pas un cycle
Si non Cycle (EA , E[i]) alors
nb ++

EA[nb]  E[i]
i ++

FTQ

55
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL
PREUVE D’OPTIMALITÉ


Premier choix glouton : l’arête e = E[1], ayant la

valuation la plus petite.


Propriété 1: Il existe toujours une solution
optimale qui contient le premier choix glouton


Lemme 1: Soient A est un arbre recouvrant, e
A alors  e’  A tel que A – {e’}  {e} est un
arbre recourvrant. De plus, e’ peut être choisi

dans le cycle formé par les arêtes de A et e.
56
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL
PREUVE D’OPTIMALITÉ


Propriété 1: Il existe toujours une solution

optimale qui contient le premier choix glouton


Soit A la solution optimale.



Si e  A alors  e’  A tel que A – {e’}  {e} est aussi un
arbre recouvrant minimal. En effet


W(A – {e’}  {e}) = W (A) - w(e’) + w (e) = W* - w(e’) +
w (e) = W*



Ainsi, w (e) = w (e’), i.e. les deux arêtes possèdent 57
la
même valuation.
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL
PREUVE D’OPTIMALITÉ


Soit A* une solution optimale.



Propriété 2: Toute solution optimale contient une
sous-structure optimale


Soient A* une solution optimale pour W*, alors A*–
{e} est aussi une solution optimale pour W* - w (e)



Lemme 2: Soient A est un arbre recouvrant
pour G = (X, E) et e = (x, y) A tel que d(y) = 1
58
alors A – {e} est aussi un arbre pour G = (X – {y},

Ey)
EXEMPLE 6: ARBRE RECOUVRANT MINIMAL
PREUVE D’OPTIMALITÉ


Preuve par absurde



Supposant que:



H1: A* une solution optimale pour W*



H2: S’ = S- {e} est une solution non optimale pour W* – w(e).



Alors, il existe une solution meilleure (S’’) que S’ pour
W* – w(e), i.e. W(S’’) < W(S’).



Donc, S’’  {e} est meilleure que S pour Pmax car
V(S’’  {nba}) > V(S), i.e, S n’est pas optimale

(contradiction avec l’hypothèse H1).

59
SOURCES DE CE COURS


Sophie Tison, Algorithmes Gloutons (greedy algorithms), Cours Master Informatique
1ère année, Université Lille 1.



Chapitre 4 Algorithmes Gloutons, Cours MACS (Mathématiques Appliquées et Calcul
Scientifique), Disponible sur www.lamacs.fr/documents/cours/macs1/infochap4.pdf‎



Stéphane

Grandcolas,

Algorithmes

gloutons.

Disponible

sur

www.dil.univ-

mrs.fr/~gcolas/algo-licence/slides/gloutons.pdf‎


Yves Robert, Yves Caniou et Eric Thierry. Algorithmique - Cours et Travaux Dirigés,
École Normale Supérieure de Lyon, 2005.



Ana Busic, Algorithmes Gloutons, Conception d'algorithmes et applications, École
normale

supérieure,

Département

Informatique,

Disponible

sur

www.di.ens.fr/~busic/cours/LI325/slidesCAAC8_1213.pdf‎


Robert Cori, Analyse et Conception Algorithmes 1, Algorithmes gloutons, Disponible

sur www.lix.polytechnique.fr/~cori/Majeure/cours1.pdf‎
60

Weitere ähnliche Inhalte

Was ist angesagt?

Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivationsSana Aroussi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlabomar bllaouhamou
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Ayed CHOKRI
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheMohamed Heny SELMI
 
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).Nidhal Harrathi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 

Was ist angesagt? (20)

Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlab
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 

Andere mochten auch

Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueRima Lassoued
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Sana Aroussi
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
Chapitre 2 le recuit simulé
Chapitre 2 le recuit simuléChapitre 2 le recuit simulé
Chapitre 2 le recuit simuléAchraf Manaa
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurSana Aroussi
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerSana Aroussi
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statiqueSana Aroussi
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentielsSana Aroussi
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresSana Aroussi
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesSana Aroussi
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Sana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmiqueHajer Trabelsi
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 

Andere mochten auch (20)

Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétique
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole Chapitre i rappel sur l'algèbre de boole
Chapitre i rappel sur l'algèbre de boole
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
Chapitre 2 le recuit simulé
Chapitre 2 le recuit simuléChapitre 2 le recuit simulé
Chapitre 2 le recuit simulé
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
Chapitre iii circuits séquentiels
Chapitre iii circuits séquentielsChapitre iii circuits séquentiels
Chapitre iii circuits séquentiels
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
 
Knapsack Problem
Knapsack ProblemKnapsack Problem
Knapsack Problem
 

Ähnlich wie Chapitre v algorithmes gloutons

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdfMouloudi1
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptMbarkiIsraa
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...RichardTerrat1
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfadeljaouadi
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétudeSana Aroussi
 
Support Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxSupport Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxbpmana
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
chap2 algorithme de recherche.pdf
chap2 algorithme de recherche.pdfchap2 algorithme de recherche.pdf
chap2 algorithme de recherche.pdfdonixwm
 

Ähnlich wie Chapitre v algorithmes gloutons (20)

cours algorithme
cours algorithmecours algorithme
cours algorithme
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 
Support Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxSupport Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptx
 
Algorithme DPLL
Algorithme DPLLAlgorithme DPLL
Algorithme DPLL
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
La progr.docx
La progr.docxLa progr.docx
La progr.docx
 
8 gl1
8 gl18 gl1
8 gl1
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
chap2 algorithme de recherche.pdf
chap2 algorithme de recherche.pdfchap2 algorithme de recherche.pdf
chap2 algorithme de recherche.pdf
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
chapitre 5.pptx
chapitre 5.pptxchapitre 5.pptx
chapitre 5.pptx
 

Mehr von Sana Aroussi

Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court cheminSana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binairesSana Aroussi
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptionsSana Aroussi
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoiresSana Aroussi
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Sana Aroussi
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursSana Aroussi
 

Mehr von Sana Aroussi (13)

Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 

Kürzlich hochgeladen

presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 

Kürzlich hochgeladen (16)

presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 

Chapitre v algorithmes gloutons

  • 1. Université Saad Dahleb de Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatique (GSI) Semestre 5 (3ème année) ALGORITHMIQUE 02 CHAPITRE V: ALGORITHMES GLOUTONS Cours n°12: 24 Novembre 2013 AROUSSI Sana Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 2. PLAN DU CHAPITRE V  Introduction  Schéma  Preuve Général d’Optimalité  Exemples 2
  • 3. INTRODUCTION PROBLÈME D’OPTIMISATION  On est souvent dans le cadre des problèmes d'optimisation:  E: un ensemble fini d'éléments.  S: une solution est construite à partir des éléments de E. Par exemple: une partie de E, un multi-ensemble d'éléments de E, une suite fini de E ou une permutation de E qui satisfait une certaine contrainte.  A chaque solution S est associée une fonction objectif F(S).  Le but est de chercher une solution qui optimise (minimise ou maximise) cette fonction objectif. 3
  • 4. INTRODUCTION PRINCIPE GÉNÉRAL  Pour un problème d’optimisation, un algorithme glouton est un algorithme qui cherche à construire une solution pas à pas  sans jamais revenir sur ses décisions,  en prenant à chaque étape la solution qui semble la meilleure localement,  en espérant obtenir une solution optimale. 4
  • 5. INTRODUCTION PRINCIPE GÉNÉRAL 5 Choix glouton optimal Choix glouton: Solution non optimale Algorithme Glouton Exact Heuristique Gloutonne
  • 6. EXEMPLE 1: LE MONNAYEUR  On dispose des pièces de monnaie correspondant aux valeurs E = {e1, ..., en}.  Pour chaque valeur ei, le nombre de pièces (nbi) est non borné.  Étant donnée une somme « s » entière, on veut trouver une façon de rendre la somme « s » avec un nombre de pièces minimum.  Prendre E ={1, 10, 2, 5}, s = 28, Quelles la solution optimale? 6
  • 7. EXEMPLE 1: LE MONNAYEUR  Une solution S = (nb1, ...., nbn) présente le nombre de pièces (nbi) pour chaque valeur (ei):    Elle est correcte si Elle est optimale si est minimal. Algorithme glouton: Trier les valeurs de pièces par ordre décroissant. Pour chaque valeur de pièce, maximiser le nombre de pièces choisies. 7
  • 8. EXEMPLE 1: LE MONNAYEUR 1ÈRE VERSION Trier E en ordre décroissant Pour i 1 à n faire DP S[i]  s div E[i] s s mod E[i] FP 8
  • 9. SCHÉMA GÉNÉRAL  Il est basé sur un critère local de sélection des éléments de E pour construire une solution optimale. En fait, on travaille sur l'objet « solution partielle » et on doit disposer des modules suivant:  Init qui initialise la solution de début  Select qui choisit le meilleur élément restant selon le critère glouton: Souvent, on trie tout simplement la liste des éléments selon le critère glouton au départ et on balaye ensuite cette liste dans l'ordre. 9
  • 10. SCHÉMA GÉNÉRAL  Init qui initialise la solution de début  Select qui choisit le meilleur élément restant selon le critère glouton: Souvent, on trie tout simplement la liste des éléments selon le critère glouton au départ et on balaye ensuite cette liste dans l'ordre.  Complete? qui teste si une solution partielle est une solution (complète).  AjoutPossible? qui teste si un élément peut être ajouté à une solution partielle. Dans certains cas, c'est toujours vrai!  Ajout qui permet d'ajouter un élément à une solution si c'est 10 possible.
  • 11. SCHÉMA GÉNÉRAL  L’algorithme Glouton est alors: Trier (E) Init (S) Tant que Non Complete(S) faire Select(x, E) Si AjoutPossible(x) alors Ajout(S, x) FTQ 11
  • 12. EXEMPLE 1: LE MONNAYEUR SCHÉMA GLOUTON Trier (E) //en ordre décroissant Init (S) //Initialiser la solution à 0 (nbi = 0) i1 Tant que (i  n) faire // La solution est complète après avoir parcouru tous les éléments de E // Select retourne E(i) // AjoutPossible est toujours vrai S[i]  s div E[i] // Ajouter la solution s s mod E[i] i ++ FTQ 12
  • 13. SCHÉMA GÉNÉRAL COMPLEXITÉ  Soit n la cardinalité de E Trier (E) O (Ttrier ) = O(n log2 n) Init (S) TInit Tcomplete Tant que Non Complete(S) faire n fois Select(x, E) Tselect Si AjoutPossible(x) alors Ajout(S, x) FTQ Tpossible f(n) TAjout 13 La complexité est souvent de l’ordre O ( n log2 n + n f(n) )
  • 14. EXEMPLE 1: LE MONNAYEUR COMPLEXITÉ DU SCHÉMA GLOUTON Trier (E) Init (S) i1 Tant que (i  n) faire S[i]  s div E[i] O (Ttrier) = O ( n log2 n ) s s mod E[i] i ++ FTQ 14
  • 15. SCHÉMA GÉNÉRAL REMARQUES  Dans certains cas, le schéma général est encore plus simple! Comme dans le cas de MONNAYEUR.  Dans d'autres cas, les solutions sont un peu plus compliquées ... et on a besoin d'un schéma un peu plus sophistiqué... 15
  • 16. PREUVE D’OPTIMALITÉ  Un algorithme glouton produit des solutions optimales si les propriétés suivantes sont vérifiées : 1. Propriété du choix glouton : Il existe toujours une solution optimale qui contient un premier choix glouton  En général on montre que toute solution optimale contient ou débute par le premier choix glouton. 16
  • 17. PREUVE D’OPTIMALITÉ 2. Propriété de sous-structure optimale : toute solution optimale contient une sous-structure optimale  Soit S une solution optimale du problème P contenant le choix C et le S’ = S{C} alors S’ est une solution optimale du sous problème PC résultant du choix C dans le problème P 17
  • 18. PREUVE D’OPTIMALITÉ  Pour monter que l’algorithme glouton rend toujours une solution optimale, il faut montrer que les deux propriétés ( choix glouton et sous-structure optimale) sont vérifiées.  Pour montrer que l’algorithme glouton ne rend pas toujours une solution optimale, il suffit de trouver un contre-exemple. 18
  • 19. EXEMPLE 1: LE MONNAYEUR PREUVE D’OPTIMALITÉ  E = {10 , 5, 2, 1}: Algorithme Glouton trouve toujours la solution optimale?  Choix glouton : la valeur de pièce la plus grande  Si s ≥ 10 toute solution optimale contient au moins une pièce de 10  c’est le premier choix glouton.  Si s < 10, l’algorithme fait un bon premier choix ( au plus une pièce 5, au plus deux pièce de 2 et au plus une pièce de 1) Toute solution optimale contient donc un choix 19 glouton
  • 20. EXEMPLE 1: LE MONNAYEUR PREUVE D’OPTIMALITÉ  Propriété de sous-structure optimale :  Soient S une solution optimale pour la somme s et C  S un choix glouton (la plus grande pièce) alors S’ = S- {C} est une solution optimale pour s-valeur(C).  1ère Méthode: Preuve par absurde  Supposant que:  H1: S une solution optimale pour la somme s  H2: C  S un choix glouton (la plus grande pièce)  20 H3: S’ = S- {C} est une solution non optimale pour s-valeur (C)
  • 21. EXEMPLE 1: LE MONNAYEUR PREUVE D’OPTIMALITÉ  1ère Méthode: Preuve par absurde  Supposant que:   H2: C  S un choix glouton (la plus grande pièce)   H1: S une solution optimale pour la somme s H3: S’ est une solution non optimale pour s-valeur (C) Alors il existe une solution S’’ meilleure que S’ pour svaleur (C), i.e.  Donc, S’’  {C} est meilleure que S’  {C} pour s car  21 i.e, S = S’  {C} n’est pas optimale (contradiction avec l’hypothèse H1).
  • 22. EXEMPLE 1: LE MONNAYEUR PREUVE D’OPTIMALITÉ  E = {8, 4, 2}:  Solution optimale existe si S est pair et S >1  Algorithme Glouton donne la solution optimale si elle existe  E = {5, 2}:    Solution optimale existe si n  4 Algorithme Glouton ne la trouve pas toujours (n=6) E = {5, 4, 1}:  Solution optimale existe toujours  Algorithme Glouton trouve toujours la solution mais elle 22 n’est pas toujours optimale (n=8)
  • 23. EXEMPLE 1: LE MONNAYEUR PREUVE D’OPTIMALITÉ  Conclusion: Caractériser les jeux de pièces pour lesquels l’algorithme glouton est optimal est un problème ouvert. Il est facile de trouver des catégories qui marchent (par exemple des pièces E ={1,B,B2,B3} pour B ≥ 2) mais le cas général résiste ! 23
  • 24. Université Saad Dahleb de Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatique (GSI) Semestre 5 (3ème année) ALGORITHMIQUE 02 CHAPITRE V: ALGORITHMES GLOUTONS Cours n°13: 27 Novembre 2013 AROUSSI Sana Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 25. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES  Soit E= {1,..., n} un ensemble de n tâches.  La tâche i commence à l’instant Di et finit à l’instant Fi.  Deux tâches i, j sont compatibles si elles ne se chevauchent pas (Dj  Fi) .  But 1 : trouver un ensemble maximal de tâches compatibles. 25
  • 26. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES E 2 3 4 5 6 7 8 9 D 1 2 4 1 5 8 9 13 11 F  1 8 5 7 3 9 11 10 16 14 Algorithme glouton: Trier les tâches selon leur date fin et sélectionner une tâche compatible par ordre croissant. 26
  • 27. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES E 1 2 3 4 5 6 7 8 9 D 1 2 4 1 5 8 9 13 11 F 8 5 7 3 9 11 10 16 14 1. Trier les tâches selon leur date fin E 4 2 3 1 5 7 6 9 8 D 1 2 4 1 5 9 8 11 13 F 3 5 7 8 9 10 11 14 16 2. Sélectionner les tâches compatibles par ordre croissant E 4 2 3 1 5 7 6 9 8 D 1 2 4 1 5 9 8 11 13 F 3 5 7 8 9 10 11 14 16 Solution: Tâches 4, 3, 7, 9 27
  • 28. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES SCHÉMA GLOUTON Trier (E, D, F) //trier selon ordre croissant de la date fin S{E[1]}; j1 //Initialiser la solution i2 Tant que (i  n) faire // La solution est complète après avoir parcouru tous les éléments de E // La tâche E[i] est sélectionnée Si D[i]  F[j] // Si la tâche E[i] est compatible avec la tâche E[j] S S  {E[i]} // Ajouter la solution j i; i ++ FTQ 28
  • 29. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Premier choix glouton : E[1] est la tâche ayant la date fin la plus petite  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton  Soit S = { T1, ..., Tk} une solution optimale ordonnée (D[T1] < D[T2]<.....<D[Tk]) tel que F[Tk]  F[1]  Si T1  E[1] alors S – {T1} contient l’ensemble des tâches compatibles avec T1 ainsi avec E[1].  29 Ainsi, S – {T1}  {E[1]} est aussi une solution optimale.
  • 30. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Premier choix glouton : E[1] est la tâche ayant la date fin la plus petite  Propriété 2: Toute solution optimale contient une sous-structure optimale  Soit S = { T1, ..., Tm} une solution optimale ordonnée (D[T1] < D[T2]<.....<D[Tk]) alors S – {T1} est aussi une solution optimale. Le problème se ramène à trouver une solution optimale des tâches compatibles avec T1. 30
  • 31. EXEMPLE 2: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Preuve par absurde  Supposant que:    H1: S = { T1, ..., Tk} une solution optimale H2: S’ = S - {T1} est une solution non optimale. Alors, il existe une solution meilleure (S’’) que S’, i.e. |S’’| > |S’| = k-1.  Donc, S’’  {T1} est meilleure que S car |S’’  {T1}|> k, i.e, S n’est pas l’hypothèse H1). optimale (contradiction avec 31
  • 32. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES  Soit E= {1,..., n} un ensemble de n tâches.  La tâche j commence à l’instant Di et finit à l’instant Fi.  Chaque tâche est exécutée sur une machine.  Une machine exécute une tâche à la fois.  But 2 : Trouver un nombre minimal de machines permettant d’exécuter toutes les tâches. 32
  • 33. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES E 2 3 4 5 6 7 8 9 D 1 2 4 1 5 8 9 13 11 F  1 8 5 7 3 9 11 10 16 14 Algorithme Glouton: Trier les tâches selon leur date début et attribuer une machine compatible à chaque tâche. 33
  • 34. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES 1. Trier les tâches selon leur date début E 1 4 2 3 5 6 7 9 8 D 1 1 2 4 5 8 9 11 13 F 8 3 5 7 9 11 10 14 16 2. Attribuer une machine compatible à chaque tâche E 1 4 2 3 5 6 7 9 8 D 1 1 2 4 5 8 9 11 13 F 8 3 5 7 9 11 10 14 16 M 1 2 3 2 3 2 1 3 1 Solution: 3 machines 34
  • 35. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES SCHÉMA GLOUTON Trier (E, D, F) //trier selon ordre croissant de la date début Soit FP une file prioritaire dans laquelle on garde les machines. Les machines sont classés par ordre croissant de la date fin de la tâche attribuée. Ainsi, une machine est caractérisée par son numéro (Num) et une date fin (Fin). CréerFile (FP); Nb0 //Initialiser la solution i1 35
  • 36. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES SCHÉMA GLOUTON Trier (E, D, F) //trier selon ordre croissant de la date début CréerFile (FP); Nb0; //Initialiser la solution i1 Tant que (i  n) faire Si (FP = Nil) ou (D[i] < FP.Fin) // Si la file est vide ou la tâche E[i] est compatible avec la machine FP.Num NB++ // Ajouter la solution M.Num  NB; Sinon Défiler (FP, M); M.FinF[i]; Enfiler (FP, M) i ++ FTQ 36
  • 37. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Soit S = { M1, ..., Mk} une solution optimale.  Premier choix glouton : la tâche E[1], ayant la date début la plus petite, est affectée à la machine M1  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton  La solution optimale contient au moins une machine (k1), c’est la machine M1. 37
  • 38. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Premier choix glouton : la tâche E[1], ayant la date début la plus petite, est affectée à la machine M1  Propriété 2: Toute solution optimale contient une sous-structure optimale  Soit S = { M1, ..., Mk} une solution optimale pour E alors S – {M1} est aussi une solution optimale pour E - {T(M1)}. T(M1) est l’ensemble des tâches exécutées sur la machine M1. 38
  • 39. EXEMPLE 3: ORDONNANCEMENT DES TÂCHES PREUVE D’OPTIMALITÉ  Preuve par absurde  Supposant que:  H1: S = { M1, ..., Mk} une solution optimale pour E  H2: S’ = S- {M1} est une solution non optimale pour E – {T(M1)}.  Alors, il existe une solution meilleure (S’’) que S’ pour E – {T(M1)}, i.e. |S’’| < |S’| = k-1.  Donc, S’’  {M1} est meilleure que S pour E car |S’’  {T1}| < k, i.e, S n’est (contradiction avec l’hypothèse H1). pas optimale 39
  • 40. EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER  Soit E= {1,..., n} un ensemble de n objets.  Chaque objet i a un poids Pi et une valeur Vi. Il peut être pris en entier et au plus une fois, i.e. Nbi  {0, 1}.  Soit un sac à dos de contenance maximale Pmax  But : Maximiser la valeur totale des objets mis dans le sac à dos 40
  • 41. EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER  Algorithme Glouton: trier les objets selon un critère donné et sélectionner un objet jusqu’à atteindre la capacité maximale de sac à dos.  Choix gloutons possibles  choisir l’objet de plus grande valeur  choisir l’objet le plus léger  choisir l’objet dont le rapport valeur/poids est maximal.  41 Montrer que ces choix ne donnent pas de solution optimale dans le cas où l’objet est pris en entier.
  • 42. EXEMPLE 4: PROBLÈME DE SAC À DOS ENTIER E 1 2 3 P 10 20 30 V 30 100 120 V/P 3 5 4 Pmax = 50 (220) Pmax = 40 (150) Pmax = 30 (130) L’objet le plus léger Non (130) Non (130) Oui (130) L’objet de plus grande valeur Oui (220) Oui (150) Non (120) L’objet dont le rapport V/P est maximal Oui (220) Non (130) Oui (130) 42
  • 43. Université Saad Dahleb de Blida Faculté des Sciences Département d’Informatique Licence Génie des Systèmes Informatique (GSI) Semestre 5 (3ème année) ALGORITHMIQUE 02 CHAPITRE V: ALGORITHMES GLOUTONS Cours n°14: 01 Décembre 2013 AROUSSI Sana Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 44. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ  Soit E= {1,..., n} un ensemble de n objets.  Chaque objet i a un poids Pi et une valeur Vi. Il peut être fractionné i.e. Nbi  [0, 1].  Soit un sac à dos de contenance maximale Pmax  But : Maximiser la valeur totale des objets mis dans le sac à dos 44
  • 45. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ E 1 2 3 P 10 20 30 V 30 100 120 V/P 3 5 4 Pmax = 50 (220) Pmax = 40 (180) Pmax = 30 (140) L’objet le plus léger Non (210) Non (170) Non (130) L’objet de plus grande valeur Oui (220) Non (170) Non (120) Oui (180) Oui (140) L’objet dont le Oui (220) rapport V/P est maximal 45
  • 46. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ  Une solution S = (nb1, ...., nbn) présente le nombre de l’objet i (nbi  [0, 1])  Algorithme glouton: Trier les objets par ordre décroissant de leur rapport Vi/Pi. Pour chaque objet, maximiser le nombre nbi  [0, 1] jusqu’à atteindre la capacité maximale de l’objet. 46
  • 47. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ SCHÉMA GLOUTON Trier (E, P, V) //trier selon ordre décroissant du rapport V/P Init (S) //Initialiser la solution nbi à 0 i1 Tant que (Pmax > 0) et (i  n) faire // Ajouter la solution Si P[i]  Pmax S[i]  1 Sinon S[i]  Pmax / P[i] Pmax  Pmax – P[i] i ++ FTQ 47
  • 48. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ PREUVE D’OPTIMALITÉ  Soit S = (nb1,..., nbn) une solution optimale.  Premier choix glouton : l’objet E[1], ayant le rapport V/P le plus grand  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton 48
  • 49. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ PREUVE D’OPTIMALITÉ  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton  Cette propriété est toujours vérifiée. En effet, il ne peut exister que trois cas de figures:  S = (1, 1, ......, 1) si  S = (1, 1, ....., 1, k, 0, ....., 0) si  S = (1, 0, ....., 0) si 49
  • 50. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ PREUVE D’OPTIMALITÉ  Soit S = (nb1,..., nbn) une solution optimale.  Propriété 2: Toute solution optimale contient une sous-structure optimale  Soient S une solution optimale pour Pmax, alors S – {nba} est aussi une solution optimale pour Pmax – Pa. (Pa = nba x P[a]) 50
  • 51. EXEMPLE 5: PROBLÈME DE SAC À DOS FRACTIONNÉ PREUVE D’OPTIMALITÉ  Preuve par absurde  Supposant que:  H1: S = (nb1,..., nbn) une solution optimale pour Pmax  H2: S’ = S- {nba} est une solution non optimale pour Pmax – Pa.  Alors, il existe une solution meilleure (S’’) que S’ pour Pmax – Pa, i.e. W(S’’) > W(S’). W(K) retourne la valeur totale de la solution K.  Donc, S’’  {nba} est meilleure que S pour Pmax car V(S’’  {nba}) > V(S), i.e, S n’est pas optimale 51 (contradiction avec l’hypothèse H1).
  • 52. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL  Soit G = (X,E, W) un graphe connexe non orienté valué tel que:   E est l’ensemble des arrêtes avec |E| = m   X est l’ensemble de sommet avec |X| = n. W est une fonction de valuation des arêtes W: ER Un arbre recouvrant de G est un sous graphe A (X, EA, W) connexe et sans cycle. Ainsi, | EA|= n-1. 52
  • 53. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL  Un Arbre Recouvrant Mimimum ARmin (X,EA) du G est un arbre recouvrant qui minimise 1. 2. Écrire l’algorithme Glouton. Prouver l’optimalité de l’algorithme 53
  • 54. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL  Algorithme glouton: Trier les arêtes par ordre croissant de leur valuation. Sélectionner une arête (si elle forme pas un cycle avec les arêtes déjà sélectionnées) jusqu’à construire un arbre recouvrant.  C’est le principe de l’Algorithme de Kruskal 54
  • 55. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL SCHÉMA GLOUTON Trier (E) //trier les arêtes selon ordre croissant de leur poids Initi (EA)//Initialiser la solution; EA est un tableau à (n-1) éléments nb0 // le nombre des arêtes sélectionnées i 1 Tant que (nb n-1) faire // la fonction Cycle vérifie que l’ensemble des arêtes EA  E[i] ne forment pas un cycle Si non Cycle (EA , E[i]) alors nb ++ EA[nb]  E[i] i ++ FTQ 55
  • 56. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL PREUVE D’OPTIMALITÉ  Premier choix glouton : l’arête e = E[1], ayant la valuation la plus petite.  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton  Lemme 1: Soient A est un arbre recouvrant, e A alors  e’  A tel que A – {e’}  {e} est un arbre recourvrant. De plus, e’ peut être choisi dans le cycle formé par les arêtes de A et e. 56
  • 57. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL PREUVE D’OPTIMALITÉ  Propriété 1: Il existe toujours une solution optimale qui contient le premier choix glouton  Soit A la solution optimale.  Si e  A alors  e’  A tel que A – {e’}  {e} est aussi un arbre recouvrant minimal. En effet  W(A – {e’}  {e}) = W (A) - w(e’) + w (e) = W* - w(e’) + w (e) = W*  Ainsi, w (e) = w (e’), i.e. les deux arêtes possèdent 57 la même valuation.
  • 58. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL PREUVE D’OPTIMALITÉ  Soit A* une solution optimale.  Propriété 2: Toute solution optimale contient une sous-structure optimale  Soient A* une solution optimale pour W*, alors A*– {e} est aussi une solution optimale pour W* - w (e)  Lemme 2: Soient A est un arbre recouvrant pour G = (X, E) et e = (x, y) A tel que d(y) = 1 58 alors A – {e} est aussi un arbre pour G = (X – {y}, Ey)
  • 59. EXEMPLE 6: ARBRE RECOUVRANT MINIMAL PREUVE D’OPTIMALITÉ  Preuve par absurde  Supposant que:  H1: A* une solution optimale pour W*  H2: S’ = S- {e} est une solution non optimale pour W* – w(e).  Alors, il existe une solution meilleure (S’’) que S’ pour W* – w(e), i.e. W(S’’) < W(S’).  Donc, S’’  {e} est meilleure que S pour Pmax car V(S’’  {nba}) > V(S), i.e, S n’est pas optimale (contradiction avec l’hypothèse H1). 59
  • 60. SOURCES DE CE COURS  Sophie Tison, Algorithmes Gloutons (greedy algorithms), Cours Master Informatique 1ère année, Université Lille 1.  Chapitre 4 Algorithmes Gloutons, Cours MACS (Mathématiques Appliquées et Calcul Scientifique), Disponible sur www.lamacs.fr/documents/cours/macs1/infochap4.pdf‎  Stéphane Grandcolas, Algorithmes gloutons. Disponible sur www.dil.univ- mrs.fr/~gcolas/algo-licence/slides/gloutons.pdf‎  Yves Robert, Yves Caniou et Eric Thierry. Algorithmique - Cours et Travaux Dirigés, École Normale Supérieure de Lyon, 2005.  Ana Busic, Algorithmes Gloutons, Conception d'algorithmes et applications, École normale supérieure, Département Informatique, Disponible sur www.di.ens.fr/~busic/cours/LI325/slidesCAAC8_1213.pdf‎  Robert Cori, Analyse et Conception Algorithmes 1, Algorithmes gloutons, Disponible sur www.lix.polytechnique.fr/~cori/Majeure/cours1.pdf‎ 60