Matro¨ıdes
MTH6311
S. Le Digabel, ´Ecole Polytechnique de Montr´eal
H2018
Plan
1. Introduction
2. Algorithme glouton
3. D´efinitions
1. Introduction
2. Algorithme glouton 3. D´efinitions
D´
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 .
D´
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.
D´
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
1. Introduction
2. Algorithme glouton
3. D´efinitions
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.
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
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 |.
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
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)
1. Introduction
2. Algorithme glouton
3. D´efinitions
D´
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| .
D´
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.
D´
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.
1. Introduction
2. Algorithme glouton 3. D´efinitions
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
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.
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.
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
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
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
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.
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.
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
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.
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