1 Énoncé
Le problème de la coupe de valeur maximale consiste à partitionner l’ensemble Sdes n
sommets d’un graphe orienté en deux sous-ensembles S1et S2=S\S1de façon à maximiser
la valeur de la coupe, c’est-à-dire le nombre d’arcs allant de S1vers S2.
Exemple. Voici un exemple de coupe de valeur maximale d’un graphe à n= 5
sommets. Les sommets de l’ensemble S1={1,2,4}sont grisés. Les sommets de
l’ensemble S2={3,5}sont blancs. La valeur de la coupe, c’est-à-dire le nombre
d’arcs de S1vers S2, est égale à 5.
2 Premières formulations
Soit Ala matrice d’adjacence du graphe. À chaque sommet 1≤i≤n, on associe la
variable indicatrice ξi, valant 1si i∈S1et 0sinon. On cherche donc un vecteur xT=
ξ1ξ2··· ξnqui maximise la valeur de la coupe, c’est-à-dire le nombre
1≤i,j≤n
ξi(1 −ξj)aij .(1)
En effet, on a ξi(1 −ξj)aij = 1 si, et seulement si, i∈S1,j∈S2et il existe un arc de i
vers j. En notant 1le vecteur dont toutes les coordonnées valent 1, le problème à résoudre
(maximiser (1)) peut se reformuler matriciellement en
maximiser xTA(1 −x) (ξi∈ {0,1}).(2)
3 Considérations sur la complexité
La taille de la donnée est représentée par la variable n(le nombre de sommets). Le
nombre d’arcs est majoré par n2. On s’intéresse à la complexité en temps, dans le pire des
cas. Cette complexité est donc une fonction f(n)qui compte des opérations élémentaires (non
précisées). La complexité est dite polynomiale si f(n)est un polynôme en n. Les exposants
ne doivent donc pas dépendre de n.
Il existe un algorithme naïf de complexité exponentielle : il consiste à énumérer les 2n
coupes possibles et en extraire une qui soit de valeur maximale.
Le problème de la coupe maximale est NP-dur. Par conséquent, si on connaissait un
algorithme polynomial de résolution du problème de la coupe maximale, la conjecture P ̸=
NP serait résolue. Voir la section B, page 15.
2