• Aucun résultat trouvé

#11 Matroïdes et algorithme glouton

N/A
N/A
Protected

Academic year: 2021

Partager "#11 Matroïdes et algorithme glouton"

Copied!
29
0
0

Texte intégral

(1)

Matro¨ıdes

MTH6311

S. Le Digabel, ´Ecole Polytechnique de Montr´eal

H2018

(2)

Plan

1. Introduction

2. Algorithme glouton

3. D´efinitions

(3)

1. Introduction

2. Algorithme glouton 3. D´efinitions

(4)

efinitions

Soit E un ensemble fini et soit F une famille de sous-ensembles de E (si F ∈ F , alors F ⊆ E).

Le couple (E, F ) est unmatro¨ıde si :

a) ∅ ∈ F .

b) Si A ⊆ F ∈ F alors A ∈ F .

c) Si F, F0∈ F avec |F0| = |F | + 1, alors il existe e ∈ F0− F tel que F ∪ {e} ∈ F .

(5)

efinitions

Avec la notion d’ensembles ind´ependants, on peut r´e´ecrire les trois axiomes des matro¨ıdes sous cette forme :

a) L’ensemble vide est ind´ependant.

b) Les sous-ensembles des ensembles ind´ependants sont ind´ependants.

c) Pour tout A ⊆ E, tout sous-ensemble ind´ependant maximal de A a la mˆeme cardinalit´e : Si F ∈ F est un sous-ensemble ind´ependant maximal de A, au sens de l’inclusion, ceci signifie qu’il n’existe pas d’´el´ement a ∈ A − F tel que F ∪ {a} soit ind´ependant.

(6)

efinition

Si (E, F ) est un matro¨ıde et si A ⊂ E alors (A, FA) en est

´egalement un avec FA= {F ∈ F tel que F ⊆ A}.

On dit que (A, FA) est lematro¨ıde partiel de (E, F ) engendr´e par

(7)

1. Introduction

2. Algorithme glouton

3. D´efinitions

(8)

Algorithme glouton

I Soit E un ensemble fini.

I Soit F une famille de sous-ensembles de E.

I Soit c : E → R+ une fonction.

I Le coˆut d’un ensemble est le coˆut total de ses ´el´ements : c(F ) = P

e∈F

c(e) pour F ⊆ E.

I On veut d´eterminer un ensemble F ∈ F de coˆut c(F ) maximum.

(9)

Algorithme glouton (suite)

Consid´erons l’algorithme suivant :

GLOUTON

Ordonner les ´el´ements de E de telle sorte que E = {e1, e2, . . . , en} avec c(e1) ≥ c(e2) ≥ . . . ≥ c(en)

Poser F ← ∅

Pour i variant de 1 `a n Si F ∪ {ei} ∈ F

(10)

Algorithme glouton : Th´

eor`

eme 1

Si F satisfait les propri´et´esa)etb), alors les trois affirmations suivantes sont ´equivalentes :

1. L’algorithme GLOUTON produit un ensemble F ∈ F de coˆut c(F ) maximum, quel que soit c : E → R+.

2. F satisfait la propri´et´ec), et donc (E, F ) est un matro¨ıde.

3. Si A ⊆ E, (F, F0) ∈ F × F et F, F0 sont tous deux maximaux au sens de l’inclusion dans A, alors |F0| = |F |.

(11)

Algorithme glouton (suite)

I La derni`ere partie de la d´emonstration de l’Exemple 1 d´emontre ´egalement que lorsqu’on applique l’algorithme GLOUTON `a un matro¨ıde, alors l’ensemble ind´ependant obtenu `

a chaque it´eration est optimal parmi tous les ensembles ind´ependants de mˆeme cardinalit´e.

I Notons ´egalement que l’algorithme GLOUTON peut servir `a d´eterminer l’ensemble ind´ependant maximal de coˆut total minimum dans un matro¨ıde (E, F ).

I En effet, soit c : E → R+ la fonction de coˆut `a minimiser, et soit C le plus grand des coˆuts dans E. D´efinissons

(12)

Algorithme glouton (suite)

I Tous les ensembles maximaux au sens de l’inclusion ayant le mˆeme nombre d’´el´ements, on a c0(F ) = C|F | − c(F ) pour tout ind´ependant maximal F ∈ F .

I On peut donc maximiser c0 au lieu de minimiser c.

I Ce qui revient `a changer la premi`ere ligne de l’algorithme GLOUTON comme suit :

GLOUTON

Ordonner les ´el´ements de E de telle sorte que E = {e1, e2, . . . , en} avec c(e1) ≤ c(e2) ≤ . . . ≤ c(en)

(13)

1. Introduction

2. Algorithme glouton

3. D´efinitions

(14)

efinitions

I Soit (E, F ) un matro¨ıde et soit A ⊆ E. Le rang de A, not´e

rg(A), est la cardinalit´e du plus grand sous-ensemble ind´ependant dans A. En d’autres termes,

rg(A) = max

F ⊆A,F ∈F|F | = maxF ∈F|F ∩ A| .

(15)

efinition

I Soit (E, F ) un matro¨ıde et soit A ⊆ E. Laclˆoture de A, not´eecl(A), est le plus grand sous-ensemble E0 tel que A ⊆ E0 ⊆ E et rg(E0) = rg(A).

I Th´eor`eme : La clˆoture cl(A) de A est unique.

(16)

efinition

I Soit (E, F ) un matro¨ıde et soit A ⊆ E. Le sous-ensemble A est un stigmesi A /∈ F et A − {e} ∈ F pour tout e ∈ A.

I Th´eor`eme : Si F ∈ F et F ∪ {e} /∈ F pour e ∈ E − F , alors F ∪ {e} contient un unique stigme.

(17)

1. Introduction

2. Algorithme glouton 3. D´efinitions

(18)

Exemple 2

Soit E un ensemble fini de vecteurs et soit F l’ensemble des sous-ensembles de vecteurs de E qui sont lin´eairement

(19)

Exemple 3

I Soit G = (V, E) un graphe.

I Soit F l’ensemble des sous-graphes partiels sans cycle.

I Les propri´et´esa)etb) sont trivialement v´erifi´ees par (E, F ).

I De plus, tous les ind´ependants maximaux au sens de l’inclusion dans un sous-graphe G0= (V, A) avec A ⊆ E contiennent |V | − p(G0) arˆetes, o`u p(G0) est le nombre de composantes connexes dans G0.

I On a donc la propri´et´e 3)du Th´eor`eme 1, ce qui prouve que (E, F ) est un matro¨ıde, appel´e matro¨ıde graphique.

(20)

Exemple 3 (suite)

I Il s’agit en fait du matro¨ıde matriciel correspondant `a la matrice d’incidence sommets-arcs de G obtenue en orientant les arˆetes de mani`ere arbitraire.

I Le rang de ce matro¨ıde est ´egal `a |V | − p(G), et les stigmes correspondent aux cycles sans cordes.

(21)

Exemple 3 (suite)

Ainsi, l’algorithme glouton suivant (algorithme deKruskal) est optimal pour trouver un arbre de recouvrement de coˆut minimum.

KRUSKAL

Ordonner les ar^etes de E de telle sorte que c(e1) ≤ c(e2) ≤ . . . ≤ c(en)

Poser F ← ∅

Pour i variant de 1 `a n

Si F ∪ {ei} ne contient aucun cycle

(22)

Exemple 4

I Soit E un ensemble fini et soit k un entier positif.

I Soit F = {F ⊆ E tel que |F | ≤ k}.

I Il est facile de d´emontrer que (E, F ) est un matro¨ıde, appel´e

(23)

Exemple 5

I Soit E un ensemble fini.

I Soit {E1, E2, . . . , Ek} une partition de E en k sous-ensembles.

I Soient les k entiers positifs n1, n2, . . . , nk.

I On peut d´efinir

F = {F ⊆ E tel que |F ∩ Ei| ≤ ni, i = 1, 2, . . . , k}.

I Il est facile de d´emontrer que (E, F ) est un matro¨ıde appel´e

matro¨ıde de partition.

I Si tous les ni valent 1, on dit qu’il s’agit d’un matro¨ıde de

(24)

Exemple 6

I Soit G = (V, E) un graphe.

I Pour un ensemble A d’arˆetes, notons S(A) l’ensemble des sommets touch´es par A.

I Soit F =F ⊆ V tel qu’il existe un couplage C dans G avec F ⊆ S(C) .

I On peut montrer que (V, F ) est un matro¨ıde appel´e matro¨ıde de couplage.

(25)

Exemple 7

I Soit G = (V1, V2, E) un graphe biparti.

I Soit F =F ⊆ V1 tel qu’il existe un couplage C dans G avec

F ⊆ S(C) .

I Le couple (V1, F ) est un matro¨ıde appel´e matro¨ıde transversal.

I C’est en fait le matro¨ıde partiel du matro¨ıde de couplage engendr´e par V1 ⊆ V1∪ V2.

(26)

Exemple 8

I Soit E un ensemble de tˆaches de dur´ee unitaire devant ˆetre ex´ecut´ees l’une apr`es l’autre sur une machine, et soit di le

d´elai de la tˆache i (derni`ere p´eriode durant laquelle on peut ex´ecuter la tˆache i).

I D´efinissons F =F ⊆ E tel que toutes les tˆaches de F peuvent ˆetre ex´ecut´ees dans les d´elais .

I En d’autres termes, F est un ensemble ind´ependant si on peut associer une p´eriode ti `a chaque i ∈ F tel que ti ≤ di et

ti 6= tj si i 6= j.

I Le couple (E, F ) est un matro¨ıde appel´e matro¨ıde d’ordonnancement.

I C’est en fait un cas particulier du matro¨ıde transversal o`u V1= E, V2 est l’ensemble des p´eriodes possibles, et on met

(27)

Exemple 8 : application

I Supposons qu’une p´enalit´e pi soit associ´ee `a chaque tˆache

i ∈ E qui est ex´ecut´ee en retard. On d´esire d´eterminer un ordonnancement tel que la somme des p´enalit´es `a payer pour les tˆaches en retard soit minimale. En d’autres termes, on veut d´eterminer un ordonnancement tel que la somme des p´enalit´es associ´ees aux tˆaches r´ealis´ees dans les d´elais soit maximale (puisque c’est l’argent qu’on ´evite de d´epenser). En d´efinissant un ensemble de tˆaches comme ind´ependant si toutes les tˆaches de cet ensemble peuvent ˆetre ex´ecut´ees dans les d´elais, on est donc amen´es `a d´eterminer un ensemble ind´ependant de p´enalit´e totale maximale.

I On recherche donc un ensemble ind´ependant de valeur

maximale dans le matro¨ıde d’ordonnancement d´ecrit ci-dessus. On d´eduit qu’il suffit d’appliquer l’algorithme GLOUTON.

(28)

Exemple 8 : application, suite

On consid`ere les donn´ees suivantes :

i 1 2 3 4 5 6 di 1 4 5 1 3 2

pi 6 5 4 10 9 7

On commence par ordonner les tˆaches par p´enalit´e non-croissante. On ins`ere donc d’abord les tˆaches 4, 5, et 6. Puis, en essayant de rajouter la tˆache 1, on voit que {4,5,6,1} n’est pas un ensemble ind´ependant car il n’existe pas de couplage touchant tous les sommets de gauche dans le graphe ci-dessous `a gauche. On rejette donc la tˆache 1. On ins`ere ensuite les tˆaches 2 et 3 pour finalement obtenir une solution de valeur 35, o`u t2= 4, t3= 5, t4= 1, t5= 3

(29)

Références

Documents relatifs

En perspectives, côté informatique, la réalisation d’une interface conviviale de description de patrons pour l’enseignant, permettant de tester les patrons imaginés ;

Dans un ordonnancement donn´ e, on appelle tˆ aches ` a l’heure les tˆ aches dont la date limite est respect´ ee, et tˆ aches en retard les tˆ aches dont la date limite n’est

C.1 Dans l’ordonnancement f , certaines tˆ aches sont effectu´ ees ` a l’heure, formant un ensemble A, et les autres (en retard) forment un ensemble B.. Si l’on

• probl` eme : plusieurs tˆ aches, une ressource : comment garantir l’int´ egrit´ e des acc` es.. • probl` eme : les tˆ aches veulent ´ echanger des donn´ ees : comment

Donnez un algorithme en O(n) pour trier une permutation en utilisant le nombre minimum d’´ echanges (d’´ el´ ements non n´ ecessairement adjacents)..

En rassemblant les propri´ et´ es d´ emontr´ ees ci-dessus, conclure que de toute suite r´ eelle, on peut extraire une sous-suite monotone.. A l’aide de la propri´ et´ e

3 Il est connu pour chaque paire de tˆ aches si elles peuvent ˆetre ex´ecut´ees parall`element sur les machines. 4 On cherche le temps minimum d’ex´ecution de toutes les

Le graphe ”potentiels-tˆ aches” G = (X, U ) est un graphe sans circuit dont les sommets de X repr´ esentent l’ensemble des n tˆ aches du projet plus deux tˆ aches de dur´ ee