• Aucun résultat trouvé

#12 Intersection de matroïdes

N/A
N/A
Protected

Academic year: 2021

Partager "#12 Intersection de matroïdes"

Copied!
22
0
0

Texte intégral

(1)

Intersection de matro¨ıdes

MTH6311

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

H2018

(2)

Plan

1. Introduction

2. Algorithme pour l’intersection de deux matro¨ıdes

3. Exemples

(3)

1. Introduction

2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples

(4)

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

(5)

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.

(6)

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.

(7)

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.

(8)

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

(9)

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.

(10)

1. Introduction

2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples

(11)

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.

(12)

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|)

(13)

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.

(14)

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.

(15)

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

(16)

1. Introduction

2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples

(17)

Exemple 3

Recherche d’un couplage de coˆut maximum dans le graphe ci-dessous :

(18)

Exemple 4

Recherche d’un couplage de coˆut maximum dans le graphe ci-dessous :

(19)

Exemple 5

Recherche d’une arborescence compl`ete de racine d et de coˆut minimum dans le graphe ci-dessous :

(20)

1. Introduction

2. Algorithme pour l’intersection de deux matro¨ıdes 3. Exemples

(21)

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.

(22)

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).

Références

Documents relatifs