Intersection de matro¨ıdes
MTH6311
S. Le Digabel, ´Ecole Polytechnique de Montr´eal
H2018
Plan
1. Introduction
2. Algorithme pour l’intersection de deux matro¨ıdes
3. Exemples
1. Introduction
2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples
Probl`
eme
I Soient (E, F1) et (E, F2) deux matro¨ıdes d´efinis sur un
ensemble E et soit c : E → R+ une fonction.
I On veut d´eterminer un ensemble ind´ependant F ∈ F1∩ F2 de
Exemple 1 : Couplage de coˆ
ut maximum dans un
graphe biparti
I Soit G = (V = V1∪ V2, E) un graphe biparti et c : E → R+.
I Soit Ex l’ensemble des arˆetes incidentes `a x ∈ V dans G.
I On a E = S
x∈V1
Ex = S y∈V2
Ey.
I Soit F1= {F ⊆ E tel que |F ∩ Ex| ≤ 1 pout tout x ∈ V1}.
(E, F1) est un matro¨ıde de partition (unitaire).
I F2 = {F ⊆ E tel que |F ∩ Ey| ≤ 1 pout tout y ∈ V2}.
(E, F2) est un matro¨ıde de partition (unitaire).
I Un couplage dans G est un ensemble ind´ependant dans F1∩ F2.
Exemple 1 : Remarque
I Dans le matro¨ıde transversal, un ensemble ind´ependant est un sous-ensemble de V1.
I Si on associe des coˆuts aux sommets de V1, on peut
rechercher un couplage qui maximise les coˆuts des sommets de V1 incidents aux arˆetes du couplage.
I Ceci est un cas particulier du probl`eme de cet exemple dans lequel toutes les arˆetes de Ex ont le coˆut du sommet x ∈ V1.
I Alors que le couplage optimal dans le matro¨ıde transversal peut ˆetre d´etermin´e `a l’aide de l’algorithme glouton, un algorithme plus complexe est n´ecessaire pour la d´etermination d’un couplage optimal dans le cas o`u les arˆetes incidentes `a un mˆeme sommet de V1 peuvent avoir des coˆuts diff´erents.
Exemple 2 : Arborescence de poids maximum dans
un graphe
I Soit G = (V, A) un graphe orient´e, soit r ∈ V une racine dans G, et soit c : A → R+.
I On recherche une arborescence de racine r de coˆut total maximum.
I Une arborescence est un arbre orient´e. On recherche donc premi`erement un ensemble ind´ependant dans le matro¨ıde graphique associ´e `a G.
Exemple 2 (suite)
I De plus, pour que cet arbre soit une arborescence dans G, il faut que chaque sommet autre que la racine ait au plus un pr´ed´ecesseur dans l’arborescence et que la racine n’en ait pas.
I Notons Ax⊆ A l’ensemble des arcs pr´ed´ecesseurs de x dans
G. On a A = S
x∈V
Ax.
I Pour qu’un sous-ensemble F d’arcs dans G soit une
arborescence, il faut que |Ax∩ F | ≤ 1 pour tout x ∈ V − {r}
et |Ar∩ F | = ∅.
I Une arborescence est donc aussi un ensemble ind´ependant dans le matro¨ıde de partition d´ecrit ci-dessus, avec nx = 1
Exemple 2 (suite)
I Tout ´el´ement appartenant `a l’intersection des matro¨ıdes graphique et de partition d´ecrits ci-dessus d´efinit une
arborescence pour laquelle aucun arc dirig´e vers la racine n’est s´electionn´e.
I Cependant, la racine peut ne pas faire partie de l’arborescence.
I Ainsi, si on veut l’arborescence de racine r et de coˆut total maximum, il faut un ´el´ement dans l’intersection des matro¨ıdes qui contienne le noeud racine r.
1. Introduction
2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples
Notations
I Rang : rgi(F ) = max
X⊆F,X∈Fi|X| = maxX∈Fi|X ∩ F |.
I Clˆoture : cli(F ) : plus grand sous-ensemble de E contenant F
et tel que rgi(F ) = rgi(cl(F )). Est unique.
I Stigme : Si(F, e) est l’unique stigme contenu dans F ∪ {e},
avec F ∈ Fi et e ∈ E − F tel que F ∪ {e} /∈ Fi.
Algorithme pour l’intersection de deux matro¨ıdes
L’algorithme suivant d´etermine des ensembles ind´ependants Fk ∈ F1∩ F2, pour k ∈ {0, 1, . . . , R}, tels que Fk est de coˆut
c(Fk) maximum parmi les ensembles ind´ependants de F1∩ F2 de
taille k.
Inter 2 Matro¨ıdes
0. k ← 0, Fk← ∅
c1(e) ← 0, c2(e) ← c(e) pour tout e ∈ E 1. Pour i ∈ {1, 2}
mi ← max{ci(e), e ∈ E − cli(Fk)}
Ei ← {e ∈ E − cli(Fk), c(e) = mi}
Si E1= ∅ ou E2 = ∅
STOP : Fk ens. ind´ep. dans l’un des matro¨ıdes (@F ∈ F1∩ F2 : |F | > |Fk|)
Algorithme (suite)
2. Construire G = (E, A) avec (x, y) ∈ A si x /∈ Fk, y ∈ Fk, x ∈ cl
1(Fk), y ∈ S1(Fk, x), c1(x) = c1(y)
ou
y /∈ Fk, x ∈ Fk, y ∈ cl
2(Fk), x ∈ S2(Fk, y), c2(x) = c2(y)
S’il existe un chemin dans G reliant E2 `a E1
3. Choisir un plus court chemin entre E2 et E1
Noter W les sommets de ce chemin
Fk+1← (Fk− W ) ∪ (W − Fk) (diff. sym´etrique)
k ← k + 1 Aller en 1.
Algorithme (suite)
4. W ← sommets atteignables depuis E2
δ1 ← min{c1(y) − c1(x) : x /∈ Fk, y ∈ Fk, x ∈ cl 1(Fk) ∩ W, y ∈ S1(Fk, x) − W } δ2 ← min{m1− c1(x) : x ∈ (E − cl1(Fk)) ∩ W } δ3 ← min{c2(y) − c2(x) : x /∈ Fk, y ∈ Fk, x ∈ cl 2(Fk) − W, y ∈ S2(Fk, x) ∩ W } δ4 ← min{m2− c2(x) : x ∈ (E − cl2(Fk)) − W } δ ← min i∈{1,2,3,4}δi Si δ = ∞ STOP : @F ∈ F1∩ F2: |F | > |Fk| Sinon c1(x) ← c1(x) + δ pour tout x ∈ W c2(x) ← c2(x) − δ pour tout x ∈ W Aller en 1.
Propri´
et´
es
I La fonction f (i) = c(Fi) est concave :
c(Fk+1) − c(Fk) ≤ c(Fk) − c(Fk−1) .
I Si on recherche un ensemble ind´ependant (pas n´ecessairement maximal) de coˆut total maximum, on peut s’arrˆeter d`es que c(Fk+1) ≤ c(Fk) : l’ensemble Fk est alors un ensemble ind´ependant de coˆut total maximum.
I A l’´` etape 3., on a c(Fk+1) − c(Fk) = m1+ m2.
I Comme m1 et m2 sont non croissants, on peut stopper
1. Introduction
2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples
Exemple 3
Recherche d’un couplage de coˆut maximum dans le graphe ci-dessous :
Exemple 4
Recherche d’un couplage de coˆut maximum dans le graphe ci-dessous :
Exemple 5
Recherche d’une arborescence compl`ete de racine d et de coˆut minimum dans le graphe ci-dessous :
1. Introduction
2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples
Probl`
eme
I Soient (E, Fi), i ∈ {1, 2, . . . , k}, des matro¨ıdes d´efinis sur un
ensemble E, avec k > 2. Soit c : E → R+ une fonction.
I On veut d´eterminer un ensemble ind´ependant F ∈
k
T
i=1
Fi de
coˆut c(F ) maximum.
I Il n’existe `a ce jour aucun algorithme efficace pour r´esoudre ce probl`eme.
Exemple 6 : Probl`
eme du chemin hamiltonien de
coˆ
ut minimum dans un graphe
I Sans perte de g´en´eralit´e, on peut consid´erer que ce probl`eme consiste `a maximiser des coˆuts positifs.
I Il ne s’agit pas du TSP car on cherche un chemin et non une tourn´ee.
I Il s’agit d’un probl`eme d’intersection de k = 3 matro¨ıdes, car un chemin hamiltonien est une arborescence dans laquelle chaque sommet a au plus un successeur. On a donc une intersection entre :
I Le matro¨ıde graphique (le chemin est un arbre).
I Un premier matro¨ıde de partition (chaque sommet a au plus un pr´ed´ecesseur).
I Un deuxi`eme matro¨ıde de partition (chaque sommet a au plus un successeur).