1
Un multigraphe non orient´e est un triple G= (V, E, m) o`u
— (V, E) est un graphe non orient´e ;
—m:E→Nest une fonction.
La valeur m(e) est appel´ee multiplicit´e de l’arˆete e. Consid´erons le multigraphe ci-bas :
1
2
3
4
5
6
Alors
V={1,2,3,4,5,6}
E={{1,2},{1,3},{2,3},{2,4},{2,5},{3,4},{3,6},{4,5},{4,6},{5,6}}
et pour toute arˆete e∈E,
m(e) =
2,si e={2,3};
3,si e={5,6};
1,sinon.
Pour simplifier l’´ecriture, on suppose ´egalement que m(e) = 0 si e /∈E.
On dit d’un ensemble d’arˆetes C⊆Equ’il forme une coupe de Gsi le graphe r´esultant de
la suppression des arˆetes de Cest non connexe. Par exemple, dans le multigraphe plus haut, les
arˆetes {1,3}et {1,2}forment une coupe (s´eparant 1 des autres sommets) ou encore les arˆetes
{2,4},{2,5},{3,4},{3,6}(s´eparant 1,2,3 d’une part et 4,5,6 d’autre part). On dit d’une coupe
qu’elle est optimale si elle utilise le moins d’arˆete possible (en tenant compte de la multiplicit´e).
On s’int´eresse ici `a trouver une coupe optimale d’un multigraphe G.
Il existe un algorithme exact dˆu `a Stoer et Wagner (1995) qui permet de trouver une coupe
optimale en O(nm+n2log n), o`u nest le nombre de sommets et mle nombre d’arˆetes. Cependant,
l’impl´ementation de cet algorithme est assez compliqu´ee. Plutˆot que d’utiliser un algorithme exact,
on se rabattra ici sur un algorithme probabiliste qui trouve une coupe qui n’est pas n´ecessairement
optimale, mais qui donne en pratique de bons r´esultats, et qui est tr`es simple `a impl´ementer. Le
pseudocode correspondant `a l’algorithme se trouve plus bas. `
A noter que les sommets sont des
ensembles de valeurs plutˆot que de simples valeurs.
1: fonction Coupe(G: multigraphe non orient´e) : ensemble d’arˆetes
2: V0← {{v} | v∈V}Les sommets vde Gsont remplac´es par des singletons {v}.
3: E0←E
4: tant que |V0|>2faire
5: Soit {a, b} ∈ Eune arˆete choisie au hasard (dans le graphe de d´epart)
6: Soient Ale sommet contenant aet Ble sommet contenant b
7: C←A∪B
8: Ajouter Cdans V0
9: Retirer Aet Bde V0
10: Retirer de E0toutes les arˆetes de la forme {u, u0}pour u∈Uet u0∈U0
11: fin tant que