Vous êtes sur la page 1sur 94

École doctorale en Mathématiques et Informatique de Marseille

Chemin optimal, conception et amélioration de


réseaux sous contrainte de distance

THÈSE

présentée et soutenue publiquement

pour l’obtention du

Doctorat d’Aix Marseille Université


(MENTION INFORMATIQUE)

par

Elie Nakache

Composition du jury
Directeurs : M. Basile Couëtoux, Maı̂tre de conférences Aix-Marseille Université
M. Yann Vaxès, Professeur Aix-Marseille Université
Rapporteurs : M. Stéphane Bessy, Maı̂tre de conférences Université de Montpellier
M. Jérôme Monnot, Directeur de recherche CNRS LAMSADE
Examinateurs : M. Victor Chepoi, Professeur Aix-Marseille Université
M. Zoltán Szigeti, Professeur Ensimag INP Grenoble

Laboratoire d’Informatique Fondamentale de Marseille – Aix-Marseille Université et CNRS


Faculté des Sciences de Luminy, 13288 Marseille Cedex 9, France
Mis en page avec la classe thesul.
Remerciements
Tout d’abord, je tiens à préciser que je suis pas très fort à ce jeu là, j’aurais des
milliers de choses à dire en plus sur toutes les personnes citées.

Je tiens d’abord à remercier mes directeurs de thèse Basile Couëtoux et Yann Vaxès
pour à peu prêt tout. Je vais citer à la volée, leur patience, leurs connaissances, leur
soutien moral, leur aide dans la recherche, la rédaction... Je ne pense pas que j’aurais
achevé ce manuscrit sans eux. Vous êtes un binôme très complémentaire et j’espère vrai-
ment que vous continuerez à encadrer des étudiants ensemble.

Je voudrais aussi adresser mes remerciements à Stéphane Bessy et Jérôme Monnot


pour avoir accepté de rapporter cette thèse. Merci pour toutes vos corrections et re-
marques qui je pense, ont vraiment amélioré la qualité de ce document. Je rémercie
également Victor Chepoi et Zoltán Szigeti pour avoir accepté d’être membres du jury.
C’est un véritable honneur pour moi que vous fassiez tous partie de mon jury.

Plus généralement, je remercie tous les gens du LIF, je pense qu’il n’y a pas une seule
personne avec qui je ne m’entends pas dans ce labo. J’ai vraiment passé 4 très bonnes
années et je suis assez triste de le quitter (au moins, j’évite la fusion). Merci à l’équipe
ACRO, j’ai beaucoup appris dans les séminaires, surtout que vue mon parcours, je ne
partais pas avec une grande connaissance de l’optimisation combinatoire. Merci à toutes
les secrétaires sans exception, je ne sais pas comment c’est dans un autre labo mais
nous, en tout cas, on a de la chance. Merci à tous mes cobureaux, il y en a eu beaucoup
vu le nombre de déménagements, voici une liste exhaustive (j’espère) par ordre chro-
nologique : Youssouf, Florent, Mathieu, Sébastien, Jérôme, Makki, Antoine, Worachet,
Christina, Eloi. Ca a pas du être facile pour vous vue que j’ai quand même souvent
envie de tchatcher comme on dit chez nous. Désolé d’avoir un peu ralenti votre thèse.
En tout cas, j’ai bien rigolé et c’est grâce à vous. Un merci aussi à l’équipe jeux de so-
ciété, c’était vraiment cool et j’espère que je continuerai à être invité. Merci à Arnaud qui
grâce à son gros travail sur le cours d’automates et circuits, à alléger le mien pour les Tds.

Je remercie aussi mes parents. J’ai la grande chance d’habiter à 20 minutes de chez
eux et vue le nombre de fois où j’ai eu besoin d’eux pendant cette thèse, c’était pas du
luxe. Ils savent m’aider sans être non plus envahissants et j’ai vraiment beaucoup de
chance.

Enfin, merci Emma, tu as été avec moi tout au long de ces 3 ans, ça a pas du être
facile tous les jours de me supporter et je pense que c’est aussi un peu ta thèse, tu vas
encore devoir subir des tonnes de répétitions (vengeance !). Une page se tourne mais
j’espère qu’il y aura encore tout un tas de pages.

i
ii
Sommaire

Introduction

Chapitre 1
Chemin le plus étiqueté

1.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.1 Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.2 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.3 Résultats sur les graphes étiquetés . . . . . . . . . . . . . . . . . . 11
1.2 Chemin le plus étiqueté est AP X-difficile . . . . . . . . . . . . . . . 14
1.2.1 Réductions et conditions . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.2 Résultat sur Chemin le plus étiqueté à partir des résultats sur
Max-3SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3 Inapproximabilité de Chemin le plus étiqueté . . . . . . . . . . . . . . 19
1.3.1 Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.2 Objectif et schéma de preuve . . . . . . . . . . . . . . . . . . . . . 20
1.3.3 Auto-réduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.4 Preuve du Théorème 1.4 . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.5 Preuve du Lemme 1.8 . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4 Algorithme d’approximation avec un facteur √ 1 . . . . . . . . . . . . . 26
OP T
1.4.1 Idée de l’algorithme sur un exemple simple . . . . . . . . . . . . . 26
1.4.2 Algorithme Calcul du chemin . . . . . . . . . . . . . . . . . . . 27
1.4.3 Exemple serré pour l’analyse des performances de l’algorithme
Calcul du chemin . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1
1.5 OP T ǫ -approximation pour Chemin le plus étiqueté . . . . . . . . . . . 31
1.5.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

iii
Sommaire

1.5.2 Preuve du Théorème 1.6 . . . . . . . . . . . . . . . . . . . . . . . . 32


1.5.3 Version pondérée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6 Collecter toutes les étiquettes avec un nombre minimum de chemins . . . 35
1.6.1 MPCL n’est pas approximable avec un facteur constant . . . . . . 35
1.6.2 Un algorithme d’approximation pour MPCL . . . . . . . . . . . . 35
1.7 Les algorithmes non polynomiaux . . . . . . . . . . . . . . . . . . . . . . . 37
1.7.1 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . 37

Chapitre 2
Arbres couvrants de poids minimum sous contraintes

2.1 Arbre couvrant de poids minimum . . . . . . . . . . . . . . . . . . . . . . 40


2.2 Matroïdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.1 Matroïde U -graphique . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.2 Interactions entre deux matroïdes . . . . . . . . . . . . . . . . . . . 43
2.3 Arbre couvrant minimum avec un sommet intermédiaire . . . . . 44
2.3.1 Des tentatives infructueuses de résolution du problème Arbre
couvrant minimum avec un sommet intermédiaire . . . . . 45
2.3.2 Arbre couvrant minimum avec un sommet intermédiaire
se réduit à Indépendant de poids maximum commun à deux
matroïdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.3.3 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4 Arbre couvrant minimum avec une k + -chaîne . . . . . . . . . . . . 48
2.4.1 Arbre couvrant minimum avec une k + -chaîne se résout avec
le problème Indépendant de poids maximum commun à deux
matroïdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5 Arbre couvrant minimum avec un k − -chaîne . . . . . . . . . . . . . 50
2.5.1 Algorithme Complétion de la k − -chaîne . . . . . . . . . . . . 50
2.5.2 Exemple serré pour l’analyse des performances de l’algorithme
Complétion de la k − -chaîne . . . . . . . . . . . . . . . . . . . 51
2.5.3 Résultat d’inapproximabilité . . . . . . . . . . . . . . . . . . . . . 51
2.6 Les graphes à largeur arborescente bornée . . . . . . . . . . . . . . . . . . 53
2.6.1 Définitions et généralités . . . . . . . . . . . . . . . . . . . . . . . . 54
2.6.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . 55

iv
2.6.3 Correction et optimalité . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7 Autres problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Chapitre 3
Réduction de distance

3.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.2 Le problème Réduction de distances . . . . . . . . . . . . . . . 63
3.2 Résolution du problème Réduction de distances en temps polynomial 66
3.3 Sous-modularité et Réduction de distances . . . . . . . . . . . . . . . 68
3.3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.2 Sous-modularité de la fonction de coût du problème Réduction
de distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4 Mécanisme de partage de coût sur Réduction de distances . . . . . . 70
3.4.1 Règle d’un mécanisme de partage de coût . . . . . . . . . . . . . . 71
3.4.2 Mécanisme de partage de coût pour les fonctions sous-modulaires . 72
3.4.3 Adaptation du mécanisme pour Réduction de distances . . . . 73

Conclusion

Bibliographie 81

v
Sommaire

vi
Introduction

Cette thèse se situe dans le domaine de l’optimisation combinatoire et de l’algo-


rithmique des graphes et réseaux. Elle concerne des problèmes de recherche de chemins
optimaux, de conception et d’amélioration de réseaux. Ces problèmes sont formulés en
imposant des contraintes de connexité et de distance.
Un réseau est dit connexe si l’on peut trouver un chemin entre toute paire de noeuds
de ce réseau. Si on considère par exemple un réseau routier où les points représentent
des villes et les liaisons des routes, on dit que le réseau est connexe si il est possible de
rejoindre n’importe quelle ville à partir de n’importe quelle autre. La longueur d’un che-
min qui relie une ville A à une ville B est la somme des longueurs des routes empruntées
par ce chemin entre A et B. Le problème du plus court chemin consiste à trouver parmi
tous les chemins qui relient deux villes celui dont la longueur est minimum. La longueur
d’un tel chemin est appelée la distance entre la ville A et la ville B.
On considère maintenant un ensemble de villes et une matrice qui représente le coût
de construction d’une route directe entre chaque paire de villes. On envisage de construire
un ensemble de routes qui permet d’atteindre n’importe quelle ville à partir de n’importe
quel autre, c’est à dire un réseau connexe. Pour chaque paire de ville A et B, on a estimé
le coût de construction d’une route directe qui relie A à B. Le coût d’un réseau est la
somme des coûts de construction des routes qui constituent ce réseau. Le problème de
l’arbre couvrant de poids minimum consiste à déterminer le réseau le plus économique
qui connecte toutes les villes.
Le problème du calcul d’un plus court chemin et celui d’un arbre couvrant de poids
minimum sont deux problèmes classiques d’optimisation combinatoire. Ils consistent à
identifier parmi un très grand ensemble discret de solutions, une solution qui minimise
ou maximise un certain critère (ici le coût). Pour ces deux problèmes, des algorithmes
efficaces sont connus depuis l’apparition des premiers calculateurs. Par algorithme ef-
ficace, on entend un algorithme pour lequel le nombre d’étapes élémentaires est borné
par une fonction polynomiale de la taille de l’entrée du problème. On parle alors d’al-
gorithme polynomial (en temps). Un algorithme polynomial pour le problème de l’arbre
couvrant de poids minimum a été décrit pour la première fois en 1926 par Otakar Bo-
ruvka [9]. Les premiers travaux sur les problèmes de plus courts chemins datent de la
deuxième moitié des années cinquante, le premier algorithme polynomial et sans doute
le plus connu a été découvert par Djikstra en 1956 [22]. On peut aussi citer l’algorithme
de Bellman-Ford [3, 28], du nom de ces deux créateurs mais qui a aussi été découvert

1
Introduction

séparément par Moore [48], cet algorithme a la propriété supplémentaire de pouvoir trai-
ter des distances négatives sur les connexions du réseau. De nombreux autres problèmes
algorithmiques peuvent être formulés en utilisant les notions de distance et de connexité.
Pour la plupart d’entre eux, aucun algorithme efficace (polynomial) n’est connu. C’est
le cas, par exemple, du problème du voyageur de commerce qui consiste à trouver le
parcours le plus court qui visite toutes les villes exactement une fois et revient à la ville
de départ, c’est aussi le cas de bon nombre d’autres problèmes dans les réseaux, on peut
en retrouver un certain nombre dans [38]. Un autre problème difficile consiste à trouver
le réseau le plus économique parmi les réseaux connexes tels que la distance entre deux
villes spécifiées ne dépasse pas une certaine limite. C’est l’un des problèmes que nous
étudions dans cette thèse. Pour définir de manière formelle ces problèmes, nous utilisons
les notions de la théorie des graphes.

Théorie des graphes


Nous introduisons ici quelques notions de graphes qui sont utilisées dans ce manus-
crit. Pour une introduction plus complète à la théorie des graphes, nous renvoyons le
lecteur vers [4, 21]. Un graphe orienté G = (V, A) est déterminé par la donnée d’un en-
semble fini V dont les éléments sont appelés des sommets et d’un ensemble A dont les
éléments a ∈ A sont des couples ordonnés de sommets appelés des arcs. a = (uv) est
un arc de G, u est l’extrémité initiale de a et v l’extrémité terminale. Dans ce cas, on
dit que v est le successeur de u et que u est le prédécesseur de v. L’ensembe des suc-
cesseurs de x est noté δ + (x) et l’ensemble des prédécesseurs de x est noté δ − (x). Pour
certains problèmes de graphes, il arrive que l’orientation des arcs, la distinction entre
extrémité initiale et extrémité terminale, ne joue aucun rôle. On s’intéresse simplement à
l’existence ou à la non-existence d’un arc entre deux sommets (sans en préciser l’ordre).
Dans ce cas, on parle d’un graphe non-orienté (ou simplement d’un graphe) G = (V, E)
avec E l’ensemble des arêtes du graphe. uv ∈ E est l’arête dont les extrémités sont u et
v. De plus, nous considérons qu’il n’existe pas de boucle ni d’arc (ou d’arête) multiple
dans les graphes considérés, c’est-à-dire que pour tout u, v ∈ V , (uu) ∈ / A (ou E) et
il existe au plus un arc (ou une arête) dont les extrémités sont u et v. On parle alors
de graphe simple. On appelle graphe partiel de G = (V, E) un graphe ayant le même
ensemble de sommets V et pour ensemble d’arêtes un sous-ensemble E ′ de E. Un sous-
graphe de G = (V, E) est un graphe dont les ensembles de sommets et d’arêtes sont
des sous-ensembles de V et de E. Dans un graphe orienté (resp. non-orienté) un chemin
(une chaîne) de longueur q est une séquence de q arcs (arêtes) P = {a1 , a2 , ..., aq } avec
a1 = (u0 u1 ), a2 = (u1 u2 ),..., aq = (uq−1 uq ). u0 et uq sont les extrémités du chemin
(de la chaîne). P est un u0 uq -chemin (une u0 uq -chaîne). Un chemin (une chaîne) élé-
mentaire est un chemin (une chaîne) dans lequel (laquelle) on ne rencontre pas deux
fois le même sommet. Dans le cas des graphes simples, un chemin (une chaîne) de lon-
gueur q est parfaitement défini(e) par la succession des sommets qu’il (elle) rencontre
{u0 , u1 , ..., uq } et on le (la) note dans cette thèse (u0 , u1 , ..., uq ). Un circuit (cycle) est
un chemin (une chaîne) dont les extrémités coïncident. Un circuit (cycle) élémentaire
est un circuit (cycle) dans lequel on ne rencontre pas deux fois le même sommet sauf

2
le sommet choisi comme origine du parcours. Dans ce manuscrit, nous ne considérons
que des chemins, chaînes, circuits et cycles élémentaires. Nous omettons donc le mot
élémentaire dans la suite. Dans un graphe non orienté G = (V, E), la relation C définie
sur V par uCv ⇔ {u = v ou il existe une chaîne joignant u et v} est une relation d’équi-
valence. Les classes d’équivalence C1 , C2 , ..., Cp de cette relation sont les composantes
connexes du graphe G. Un graphe est connexe si la relation C ne contient qu’une seule
classe d’équivalence, autrement dit pour tout couple de sommets u, v ∈ V , il existe une
chaîne joignant u et v. Un arbre est un graphe connexe sans cycle. Un arbre couvrant
T = (V, E ′ ) d’un graphe G = (V, E) est un graphe partiel de G qui est aussi un arbre.

Théorie de la complexité
La théorie de la complexité fournit un cadre formel pour évaluer la difficulté intrin-
sèque des problèmes d’algorithmique des graphes et réseaux. La classe N P est la classe
des problèmes de décision que l’on peut résoudre à l’aide d’un algorithme non détermi-
niste polynomial. A l’intérieur de cette classe, la classe P est la classe des problèmes
de décision que l’on peut résoudre à l’aide d’un algorithme déterministe polynomial. La
conjecture P 6= N P suppose que certains problèmes de N P ne peuvent pas être résolus
par un algorithme polynomial déterministe.
Un problème Π est dit N P -difficile si l’existence d’un algorithme polynomial déter-
ministe pour Π implique l’existence d’un algorithme polynomial pour n’importe quel
problème de N P . Un problème N P -difficile est dit N P -complet s’il appartient à N P .
Dans les années soixante dix, SA. Cook et LA.Levin ont simultanément prouvé que le
problème de satisfaction de contraintes SAT, issu de la logique, est N P -complet [15,46].
Pour prouver la N P -difficulté d’un problème Π∗ , on utilise la notion de réduction poly-
nomiale. On dit qu’un problème de décision Π se réduit polynomialement à un problème
de décision Π′ s’il existe un algorithme polynomial qui transforme toute instance I de
Π en une instance I ′ de Π′ de telle manière que I a une réponse oui si et seulement
si I ′ a une réponse oui. Si un problème N P -difficile Π se réduit polynomialement au
problème Π′ alors par transitivité tout problème de N P se réduit polynomialement à
Π′ . Par conséquent, Π′ est N P -difficile. Les problèmes d’optimisation n’appartiennent
ni à la classe N P , ni à la classe P car ce ne sont pas des problèmes de décision, ils
peuvent par contre appartenir à la classe des problèmes N P -difficiles. En général, on
montre qu’un problème d’optimisation est N P -difficile en montrant que le problème de
décision associé (qui consiste à décider s’il existe une solution admissible de valeur au
moins ou au plus une borne donnée) est N P -complet.

Approches algorithmiques
De très nombreux problèmes sont N P -difficiles, y compris parmi ceux étudiés dans
cette thèse. A moins que P = N P , il n’existe aucun algorithme polynomial pour ces pro-
blèmes qui renvoie une solution optimale sur toutes les instances. Différentes approches
sont envisageables pour traiter de tels problèmes. Dans cette thèse nous considérons les
trois approches suivantes.

3
Introduction

La première approche et la principale dans cette thèse, consiste à relâcher la contrainte


d’optimalité de la solution. On cherche à concevoir un algorithme qui calcule en temps
polynomial, une solution qui n’est pas optimale mais dont la qualité est garantie. Cette
garantie est obtenue en démontrant que le rapport entre le coût de la solution renvoyée
par l’algorithme et celui de la solution optimale est bornée par une constante α. Un
tel algorithme est appelé algorithme d’approximation avec un facteur α. Pour certains
problèmes, il est possible de montrer qu’il n’existe aucun algorithme d’approximation
avec un facteur constant à moins que P = N P. Il est alors être intéressant de concevoir
un algorithme pour lequel le rapport est borné par une fonction de l’entrée du problème.
Un algorithme d’approximation ALG a un facteur f (I) pour un problème de minimisa-
tion (resp. maximisation) Π, si pour toute instance I de Π, on a l’inégalité suivante :
ALG(I) ALG(I)
OP T (I) ≤ f (I) (resp. OP T (I) ≥ f (I)) où OP T (I) est la valeur d’une solution optimale
pour l’instance I et ALG(I) est la valeur de la solution renvoyée par ALG. On dit aussi
que ALG est une f (I)-approximation du problème (ou α-approximation si f (I) = α).
Les livres [55, 56] couvrent un large éventail de domaines et contiennent des algorithmes
d’approximation pour de nombreux problèmes d’optimisation. Nous détaillons plus tard
différentes notions concernant l’approximation polynomiale utiles pour la présentation
de nos résultats.
La deuxième approche est plus récente [23], elle consiste à relâcher la contrainte de
polynomialité de l’algorithme. Un algorithme FPT est un algorithme dont la complexité
s’écrit f (p)P (|I|) où p est un paramètre du problème, f est une fonction continue, |I|
est la taille de l’instance et P est un polynôme. Lorsque le paramètre p est fixé, la com-
plexité de l’algorithme est polynomiale. Un problème est FPT (ou dans FPT, car c’est
aussi le nom de la classe) pour un certain paramètre p s’il admet un algorithme FPT
pour ce paramètre. Il faut savoir qu’un problème peut être FPT pour un paramètre et
ne pas l’être pour un autre. Cette approche donne l’espoir de trouver des algorithmes
efficaces pour de nombreux problèmes N P -difficiles pour lesquels on peut identifier dans
les instances rencontrées, des paramètres naturels de faible valeur. En plus de ce côté
pratique, déterminer qu’un problème N P -difficile est FPT en un certain paramètre per-
met aussi de déterminer pourquoi le problème est N P -difficile. En un sens, le paramètre
est le cœur de la complexité du problème.
La dernière approche consiste à relâcher la contrainte d’universalité de l’algorithme.
On ne cherche plus un algorithme qui résout le problème sur toutes les instances mais
sur un sous-ensemble de toutes les instances. On cherche alors à trouver des familles
d’instances les plus larges possibles dont on peut exploiter les propriétés spécifiques pour
obtenir un algorithme polynomial. Pour les problèmes d’optimisation dans les graphes,
une pratique courante consiste à faire des restrictions sur la structure ou les propriétés
métriques des graphes considérés, comme dans la Section 2.6 du Chapitre 2 où la classe
des graphes de largeur arborescente bornée est considérée.

4
Théorie de l’approximation polynomiale
Nous détaillons maintenant plusieurs notions qui permettent de classifier de façon
plus fines les problèmes N P -difficiles et de formuler des résultats négatifs dans le domaine
de l’approximation polynomiale. C’est à dire de démontrer que sous certaines hypothèses
(par exemple P 6= N P ), un problème d’optimisation combinatoire ne peut pas être ap-
proximé avec un certain facteur en temps polynomial. Plusieurs classes d’approximation
ont été définies.
La classe APX contient les problèmes d’optimisation pour lesquels il existe un algo-
rithme avec un facteur constant. Un problème est APX-difficile s’il existe un réel ǫ tel
que si P 6= N P , il n’existe aucun algorithme avec un facteur (1 + ǫ) pour un problème de
minimisation et (1 − ǫ) pour un problème de maximisation. Etant donné un problème de
minimisation (resp. maximisation) Π, on dit que Π admet un PTAS (Polynomial-Time
Approximation Scheme), schéma d’approximation polynomial en français, s’il existe une
famille d’algorithmes (Aǫ )ǫ>0 telle que pour tout ǫ > 0, Aǫ est un algorithme avec un
facteur (1 + ǫ) (resp. (1 − ǫ)) pour Π. A moins que P = N P , un problème APX-difficile
n’admet aucun PTAS et réciproquement, un problème qui n’admet pas de PTAS est
APX-difficile.

Contributions
Nous terminons ce chapitre introductif par une présentation générale des résultats
et de l’organisation de la thèse.
Le Chapitre 1 porte sur le problème Chemin le plus étiqueté. Dans un graphe
orienté sans cycle dont les sommets sont étiquetés (une même étiquette peut apparaître
plusieurs fois), on recherche un chemin qui collecte un nombre maximum d’étiquettes
distinctes. A l’aide des résultats sur l’APX-difficulté du problème, nous prouvons que le
problème Chemin le plus étiqueté n’appartient pas à la classe APX, i.e qu’il n’existe
pas d’algorithme polynomial qui le résout avec un facteur constant. Dans la suite, nous
1
donnons donc un algorithme avec un facteur non constant √OP T
qui fonctionne aussi sur
le problème Chemin le plus étiqueté pondéré où les étiquettes du graphe ont toutes
un poids et où on cherche un chemin qui collecte un ensembles d’étiquettes distinctes
dont la somme des poids est maximum. Suite à cet algorithme, nous présentons la mé-
thode Construction par niveaux qui nous permet d’obtenir, à partir d’un algorithme
polynomial avec un certain facteur, un algorithme polynomial avec un meilleur facteur.
1
Ainsi, à partir de l’algorithme facteur √OP T
, pour tout ǫ > 0, on peut construire un algo-
rithme polynomial avec facteur OP1T ǫ . Nous étudions aussi le problème dual de collecter
toutes les étiquettes d’un graphe orienté étiqueté sans cycle avec un nombre minimum
de chemins. A l’aide des résultats sur Chemin le plus étiqueté, nous déduisons que
ce problème n’appartient pas à la classe APX et que pour tout ǫ > 0, on peut construire
un algorithme avec facteur ln(|L(D)|)|L(D)|ǫ , où |L(D)| est le nombre d’étiquettes du
graphe D. Pour finir le chapitre, nous présentons rapidement un algorithme exact FPT
avec pour paramètre le nombre d’étiquettes dans le graphe.
Dans le Chapitre 2, nous étudions des problèmes d’arbre couvrant de poids minimum

5
Introduction

sous contrainte. Plus précisément, dans un graphe dont les arêtes sont pondérées, on re-
cherche un arbre de poids minimum parmi ceux répondant à une certaine contrainte.
Nous étudions d’abord le problème Arbre couvrant minimum avec un sommet
intermédiaire, étant donné un graphe G = (V, E), un sommet central v ∈ V et un
ensemble de sommets spéciaux U ⊆ V , la contrainte supplémentaire impose que v doit
être sur la chaîne entre toute paire de sommets de U . Nous nous intéressons aussi au
problème Arbre couvrant minimum avec une k + -chaîne. Etant donné un graphe
G = (V, E), u, v ∈ V , la contrainte supplémentaire impose que la distance (le nombre
d’arêtes) entre u et v doit être au moins k, où k est un entier fixé (pas une entrée
du problème). Nous prouvons à l’aide de résultats sur les matroïdes, que ces deux pro-
blèmes se résolvent en temps polynomial. En substance, nous prouvons que ces deux
problèmes reviennent à résoudre un ou plusieurs problèmes de recherche d’un indépen-
dant de poids maximum commun à deux matroïdes. Nous étudions ensuite le problème
Arbre couvrant minimum avec une k − -chaîne. Etant donné un graphe G = (V, E),
deux sommets s, t ∈ V et un entier k ∈ N, la contrainte supplémentaire impose que la
distance (le nombre d’arêtes) entre s et t doit être au plus k. Dans un premier temps,
nous décrivons l’algorithme Complétion de la k − -chaîne. Cet algorithme est très
simple et il permet d’obtenir un facteur d’approximation 2. Dans un second temps, à
l’aide d’une réduction vers Chemin le plus étiqueté et des résultats du Chapitre 1,
nous prouvons que pour tout ǫ > 0, il ne peut exister d’algorithme polynomial avec un
facteur 2 − ǫ à moins que P = N P . Pour finir le chapitre, à l’aide d’un travail classique
de programmation dynamique nous décrivons un algorithme polynomial qui résout ce
problème sur la classe des graphes de largeur arborescente bornée.

Dans le Chapitre 3, nous nous intéressons au problème d’amélioration de réseau Ré-


duction de distances. Étant donné un arbre T enraciné en un sommet s (le service),
une fonction de coût c sur les arêtes de T et un entier d(u) (la demande de u) pour
chaque feuille u de l’arbre (utilisateur), trouver un ensemble d’arêtes D de coût mini-
mum tels que pour toute feuille u, la chaîne entre s et u contient au moins d(u) arêtes
de D. L’ensemble D représente les arêtes qui vont être améliorées pour rapprocher les
utilisateurs du service. Nous prouvons d’abord que le problème se résout en temps po-
lynomial. A l’aide d’un résultat préliminaire qui montre que l’on peut se ramener au
problème Réduction de distances où toutes les feuilles ont la même demande no-
tée d, nous décrivons l’algorithme RechercheCM qui consiste à calculer une coupe de
poids minimum du graphe, la contracter puis réitérer le procédé jusqu’à obtenir d coupes
disjointes dont l’union est une solution optimale du problème . Pour une instance I du
problème, nous définissons la fonction de coût f associée à I. Pour tout ensemble A des
feuilles de l’arbre, f (A) est le coût d’un ensemble d’arêtes de coût minimum DA tel que
toutes les feuilles de A ont au moins d arêtes de DA sur leur chaîne vers la racine. En
utilisant les propriétés de sous-modularité des coupes, nous prouvons ensuite que cette
fonction f est sous-modulaire. Finalement, nous considérons le problème du point de vue
du partage de coût. Chaque utilisateur u a une utilité tu ∈ Q pour se rapprocher de la
source, donc pour recevoir le service. Pour tout sous-ensemble des feuilles A, le coût pour
satisfaire simultanément touts les clients de A est f (A). Nous cherchons un mécanisme

6
à véracité garantie qui, à partir d’un montant bu que déclare chaque utilisateur, décide
quels utilisateurs obtiennent le service et à quel prix xu , avec xu ≤ bu . Un utilisateur
peut mentir et déclarer un montant bu différent de son utilité tu . Nous exhibons un mé-
canisme polynomial dans lequel les utilisateurs n’ont aucun intérêt à déclarer une offre
bu différente de leur utilité tu . A l’aide des résultats sur la polynomialité du problème et
la sous-modularité de la fonction de coût associée, nous pouvons adapter un mécanisme
pour les fonctions sous-modulaires présentés dans l’article [20] de manière à ce qu’il soit
polynomial pour la fonction de coût associée au problème Réduction de distances.

7
Introduction

8
Chapitre 1

Chemin le plus étiqueté

Les problèmes d’optimisation de réseau sur des graphes étiquetés ont largement été
étudiés dans la littérature [10–13, 16, 19, 31, 32, 43, 47]. Nous détaillons certains des résul-
tats présents dans ces articles dans la Sous-section 1.1.3. Ces problèmes qui sont souvent
N P -difficiles ont été étudiés du point de vue l’approximation polynomiale. Plusieurs de
ces études considèrent des graphes dont les arêtes sont étiquetées (et non les sommets)
et où les étiquettes représentent des types de connexion différents. L’objectif est donc de
minimiser le nombre de types de connexions utilisées. Notre motivation est différente,
nous considérons des étiquettes sur les sommets, une étiquette représente l’appartenance
d’un sommet à une certaine composante. Notre but est de maximiser le nombre de com-
posantes visitées par un chemin dans un graphe orienté. Dans ce chapitre, nous utilisons
le voccabulaire des graphes colorés et étiquetés que l’on peut retrouver dans les ouvrages
cités plus haut. Ainsi, un graphe où toutes les étiquettes sont distinctes est un graphe
arc-en-ciel. Un graphe qui contient toutes les étiquettes est un graphe tropical. Enfin,
un graphe qui contient exactement une fois chaque étiquette est un graphe bien coloré.
Plus précisément, ce chapitre porte sur l’étude du problème suivant. Etant donné
un graphe orienté sans circuit D = (V, A), un ensemble d’étiquettes L et une fonction
d’étiquetage l : V → L, on cherche à trouver un chemin P de D tel que le nombre
d’étiquettes associées aux sommets de P est maximum. Pour simplifier, on dit qu’on
recherche un chemin qui collecte un maximum d’étiquettes.
Dans la Section 1.1, nous définissons les notions utiles pour la suite du chapitre, nous
donnons une application du problème et différents résultats sur les graphes étiquetés.
Dans la Section 1.2, à l’aide d’une réduction polynomiale à partir du problème Max-
3SAT, nous prouvons que le problème est AP X-difficile même sur des classes d’instances
particulières du problème. Avec ce résultat, nous démontrons dans la Section 1.3, à l’aide
d’une réduction du problème vers lui-même (auto-réduction), qu’il n’existe pas d’algo-
rithme polynomial qui résout le problème avec un facteur constant à moins que P = N P .
Le problème n’appartient donc pas à la classe AP X. Dans la suite du chapitre, nous
recherchons donc des algorithmes polynomiaux dont les facteurs ne sont pas constants.
1
Dans la Section 1.4, nous explicitons un algorithme avec un facteur √OP T
, où OP T est la
valeur d’une solution optimale du problème. Cet algorithme fonctionne aussi sur la ver-

9
Chapitre 1. Chemin le plus étiqueté

sion pondéré du problème Chemin le plus étiqueté où on associe à chaque étiquette


un poids et on recherche un chemin qui collecte un ensemble d’étiquettes dont la somme
des poids est maximum. Dans la Section 1.5, nous décrivons un mécanisme qui permet à
partir d’un algorithme avec un certain facteur, d’obtenir un algorithme avec un meilleur
1
facteur. Ainsi, à partir de l’algorithme facteur √OP T
, pour tout ǫ > 0, nous pouvons
construire un algorithme avec un facteur OP1T ǫ . Dans la Section 1.7, nous présentons
un algorithme non polynomial qui résout le problème Chemin le plus étiqueté de
manière exacte. Cet algorithme est FPT avec comme paramètre le nombre d’étiquettes
du graphe. Pour finir, dans la Section 1.6, nous étudions un problème étroitement lié à
Chemin le plus étiqueté, étant donné un DAG D = (V, A) dont les sommets sont
étiquetés, le problème consiste à trouver un nombre minimum de chemins dont l’union
est un graphe tropical. A l’aide des résultats sur Chemin le plus étiqueté, nous prou-
vons que ce problème n’appartient pas à la classe AP X et que pour tout ǫ > 0, il existe
un algorithme polynomial qui résout ce problème avec un facteur ln(|L(D)|)|L(D)|ǫ .

1.1 Préliminaires
1.1.1 Cadre de travail
Pour rappel, un DAG est un graphe orienté sans circuit.
Une propriété intéressante des DAG est que l’on peut définir un ordre partiel sur les
sommets. En effet, comme il ne peut y avoir de circuit, s’il existe un chemin d’un sommet
x vers un sommet y, il ne peut pas exister de chemin de y vers x. Cette constatation
nous conduit à introduire les définitions suivantes.

Définition 1.1 (Niveau, profondeur, source et puits)


Le niveau λ(u) d’un sommet u ∈ V est le nombre maximum de sommets dans un
chemin dont le dernier sommet est u.
Le ième niveau de D, noté Li , est l’ensemble des sommets u tels que λ(u) = i.
La profondeur du graphe est le plus grand entier k tel que Lk 6= ∅.
Les sources de D sont les sommets de L1 , i.e les sommets qui n’ont aucun arc entrant.
Les puits sont les sommets qui n’ont aucun arc sortant.

Lk est un sous-ensemble de l’ensemble des puits. Un chemin P est maximal par in-
clusion si et seulement si il connecte une source à un puits.

Nous introduisons maintenant la notion de DAG sommet-étiqueté .

Définition 1.2 (DAG sommet-étiqueté) Un DAG sommet-étiqueté (D, l) est un


graphe orienté sans circuit dans lequel les sommets sont associés à une étiquette par une
fonction l : V → L, avec L l’ensemble des étiquettes. Plusieurs sommets peuvent avoir
la même étiquette.

10
1.1. Préliminaires

Définition 1.3 (Ensemble d’étiquettes) Soit S ⊆ V , on note l(S) = {l(u) : u ∈ S}


l’ensemble des étiquettes des sommets de S. Soit P un chemin de D, on note l(P )
l’ensemble des étiquettes des sommets de P.

Nous avons maintenant toutes les notions nécessaires pour définir le problème Che-
min le plus étiqueté dont l’étude est l’objectif principal de ce chapitre.

Problème 1.1 (Chemin le plus étiqueté)

Données: Un DAG sommet-étiqueté (D, l).


Problème: Trouver un chemin P de D tel que |l(P )| est maximum.

Chaque solution peut être étendue à un chemin maximal sans réduire le nombre
d’étiquettes collectées. On peut donc chercher un chemin maximum parmi les chemins
qui relient une source à un puits.

1.1.2 Application
Ce problème correspond à différentes situations concrètes. Prenons par exemple un
agent qui peut se déplacer sur les arêtes d’un réseau dans le but d’accomplir un ensemble
de tâches. Il connait le temps qu’il lui faut pour se déplacer sur une arête, le temps
requis pour exécuter une tâche et le sous-ensemble de nœuds où chaque tâche peut être
effectuée. Le but de l’agent est d’accomplir un maximum de tâches différentes en un
temps fixé. En utilisant une discrétisation du temps, ce problème se modélise comme
une instance de Chemin le plus étiqueté. Chaque sommet ut du DAG étiqueté (D, l)
correspond à la position de l’agent en u au temps t. Il existe un arc entre un sommet
ut et un sommet vt′ si, lorsque l’agent se trouve sur le sommet u au temps t, il peut
accomplir la tâche de u et rejoindre le sommet v avant le temps t′ . L’étiquette d’un
sommet ut correspond à la tâche qui peut être accompli en u au temps t, si plusieurs
tâches peuvent être accomplies en u au temps t, il suffit de séparer le sommet en plusieurs
copies reliées par un chemin que l’agent peut parcourir sans délai. Trouver un chemin qui
collecte un maximum d’étiquettes équivaut à trouver le chemin que doit suivre l’agent
pour accomplir un maximum de tâches. Nous donnons un exemple de cette application
sur la Figure 1.1.

1.1.3 Résultats sur les graphes étiquetés


Dans cette section, nous mentionnons certains résultats sur l’étude de versions étique-
tées de problèmes d’optimisation combinatoire. Dans ces articles, les étiquettes sont aussi
quelquefois appelées couleurs. La littérature sur ce sujet est vaste, nous nous sommes
limités aux problèmes les plus proches de Chemin le plus étiqueté.
Dans [10], les auteurs étudient les problèmes suivants. Etant donné un graphe G dont
les arêtes sont étiquetées, trouver un arbre couvrant de G qui maximise (ou minimise)

11
Chapitre 1. Chemin le plus étiqueté

9h00 9h30 10h00


P J P
PM JM PM
J J
JT JT
J L J
JT LM JM
L L L
LM LM LM
P P P
PT PT PT

Figure 1.1 – Entre 9h et 10h, un livreur doit délivrer des paquets à Jacques (étiquette
J) Louis (étiquette L) et Pierre (étiquette P) en se déplaçant dans le graphe de gauche
où XM représente la maison de X et XT représente le lieu de travail de X. Il peut délivrer
un paquet à une personne seulement si elle est présente. Pierre est chez lui à 9h et au
travail à partir de 9h30. Jacques, au contraire, travaille de nuit jusqu’à 9h30 et rentre
chez lui pour 10h. Louis est sans emploi et reste chez lui. Le graphe de droite est le
graphe espace temps qui correspond aux données du problème. Si le livreur part de la
maison de Pierre à 9h, passe par le travail de Jacques à 9h30 et délivre le dernier paquet
chez Louis à 10h, il peut délivrer tout les paquets.

le nombre d’étiquettes collectées. Ils prouvent que que le problème de maximisation se


résout en temps polynomial comme un problème de calcul d’un ensemble indépendant
de cardinalité maximum commun à deux matroïdes . Ils montrent aussi que le problème
Minimum Dominating Set se réduit au problème de minimisation, ce qui implique la
N P -difficulté de ce problème.
Parallèlement, dans [13], les auteurs étudient aussi la version minimisation du pro-
blème d’arbre couvrant. Ils prouvent que le problème est N P -difficile même sur les
graphes complets. Ils présentent aussi deux heuristiques en temps O(mn) et O(lmn),
avec m le nombre d’arêtes du graphe, n le nombre de sommets et l le nombre d’éti-
quettes, et donnent des résultats expérimentaux intéressants. Ils finissent par donner un
algorithme exponentiel qui résout le problème de manière exacte.
Quelques années plus tard, dans [43], les auteurs prouvent que l’heuristique donnée
par Chang et Leu dans [13] est un algorithme avec un facteur logarithmique. Ils prouvent
aussi que le problème n’est pas approximable avec un facteur constant à moins que
P = NP.
Dans [12], les auteurs étudient le cas où chaque couleur apparait au plus r fois dans

12
1.1. Préliminaires

le graphe. Ils donnent un algorithme polynomial pour le cas où r = 2 et prouvent que


pour r ≥ 3, le problème est N P -difficile et AP X-complet.
Dans [11], les auteurs étudient le problème suivant. Etant donné un graphe G dont les
arêtes sont étiquetées, trouver un chemin (cycle) de G entre deux sommets particuliers
s et t qui minimise le nombre d’étiquettes utilisées. Ils prouvent que ce problème est
N P -difficile. Ils expliquent aussi que l’algorithme qui consiste juste à trouver le plus
court chemin entre s et t a un facteur de c(G) où c(G) est le nombre d’étiquettes dans le
graphe. Enfin, ils donnent un algorithme inspiré de l’algorithme de Djikstra qui donne
m(m+1)
mn+
un facteur m+n
2
, où n est le nombre de sommets dans le graphe et m le nombre
d’arêtes.
Dans [47], J.Monnot étudie les problèmes suivants. Etant donné un graphe biparti
coloré G qui contient un couplage parfait, trouver un couplage parfait qui contient un
minimum (Min P M ) ou maximum (max P M ) de couleurs. Il étudie d’abord le cas
particulier des graphes bipartis 2-réguliers (les cycles). Il montre que sur ces graphes,
Min P M est AP X-complet même si les étiquettes apparaissent au plus r fois (pour
r ≥ 2) dans le graphe. Il prouve aussi que Min P M est 2-approximable sur ces graphes.
Il démontre que Max P M le problème est AP X-complet et 0.7846-approximable sur ces
graphes. Il étudie ensuite Min P M sur les graphes bi-parties complets Kn,n . Il montre
que, pour tout ǫ > 0, le problème n’est pas ln(n)( 12 −ǫ)-approximable dans Kn,n , à moins
que N P ⊂ DT IM E(nlog log n ). Il donne enfin un algorithme facteur Hr2+r pour le cas
P
des graphes bi-parties où une étiquette apparait au plus r fois, avec Hr = ri=1 1i .
Dans [31], les auteurs étudient les problèmes suivants. Etant donné un multi-graphe
G connexe dont les arêtes sont étiquetées et chaque étiquette l a un coût c(l), trouver
un arbre couvrant de G qui minimise le coût total des étiquettes des arêtes utilisées. De
même, il cherche un chemin entre deux sommet s et t qui minimise le coût des étiquettes
utilisées. Pour le problème de l’arbre, ils donnent un algorithme facteur O(log(n)). Ils
montrent entre autres que la version du chemin n’est pas approximable avec un facteur
polylogarithmique.
Dans [16], les auteurs étudient le problème suivant. Etant donné un graphe G dont
les arêtes sont étiquetées, trouver un tour de G entre deux sommets particuliers s et t
qui maximise (minimise) le nombre d’étiquettes utilisées. Pour rappel, un tour est un
chemin qui passe une seule et unique fois par chaque sommet. Les auteurs prouvent
que le problème de maximisation est AP X-complet et donnent une 12 -approximation en
temps polynomial du problème. Pour la minimisation, ils démontrent qu’il ne peut pas
exister un algorithme polynomial avec un facteur n1−ǫ , où n est le nombre de sommets
dans le graphe.
Dans [19], les auteurs étudient le problème suivant. Etant donné un graphe simple
sommet-coloré Gc , trouver un sous-graphe connexe dont le nombre de sommets est mini-
mum qui contient toutes les couleurs du graphe. Ils démontrent que ce problème est N P -
difficile même sur des classes de graphes particulières comme les arbres ou les graphes
d’intervalles.

13
Chapitre 1. Chemin le plus étiqueté

1.2 Chemin le plus étiqueté est AP X-difficile


Dans cette section, nous montrons par une suite de réductions que le problème Che-
min le plus étiqueté est AP X-difficile même sur des instances particulières. En par-
tant du problème Max-3SAT, qui est connu pour être AP X-difficile, nous décrivons une
suite de réductions qui nous permettent d’établir l’AP X-difficulté du problème Chemin
le plus étiqueté soumis aux contraintes supplémentaires ci-dessous.
(C1) Tous les chemins maximaux de D contiennent le même nombre de sommets k.
(C2) (D, l) contient un chemin collectant toutes les étiquettes, i.e. OP T ((D, l)) = |L|.
Autrement dit, (D, l) contient un chemin tropical.
(*) k ≤ 3|L|.
(C3) (D, l) contient un chemin collectant toutes les étiquettes exactement une fois, i.e.
OP T ((D, l)) = k = |L|. Autrement dit, (D, l) contient un chemin bien coloré.
(C4) OP T ((D, l)) = k = |L| est une puissance de 2.
(*) n’est pas une condition que l’on veut conserver pour l’auto-réduction de la partie
suivante. Par contre, elle nous est nécessaire pour préserver le facteur d’approximation
dans les réductions entres les instances de Chemin le plus étiqueté satisfaisant les
conditions (C1),(C2) et (*) et les instances de Chemin le plus étiqueté satisfaisant
les conditions (C1) et (C3).
Il est important de noter que (C4) est une hypothèse plus forte que (C3) qui est plus
forte que (C2). In fine, satisfaire les contraintes (C1),...,(C4) est équivalent à satisfaire
seulement (C1) et (C4).

Nous séparons les réductions en deux sous-sections. Dans la première, nous expliquons
comment réduire l’ensemble des instances qui satisfont uniquement la condition (C2)
à l’ensemble des instances qui satisfont toutes les conditions (C1),...,(C4). Pour cela,
nous explicitons une suite de réductions qui nous donnent un lien entre les facteurs
d’algorithmes d’approximation sur les différentes classes d’instances.
Dans une deuxième sous-section, nous explicitons une réduction à partir de l’ensemble
des instances satisfaisables de Max-3SAT vers l’ensemble des instances de Chemin le
plus étiqueté qui satisfont les conditions (C2) et (*). Cette réduction, quant à elle,
préserve l’approximation.
Les résultats de ces deux sections, combinés avec l’AP X-difficulté des instances sa-
tisfaisables de Max-3SAT, impliquent l’AP X-difficulté de Chemin le plus étiqueté
pour les instances satisfaisant les conditions (C1) et (C4).

1.2.1 Réductions et conditions


Rajout de la condition (C1) à toute instance
Dans un premier temps, nous expliquons que toute instance de Chemin le plus
étiqueté peut être convertie en une instance équivalente satisfaisant (C1).

Lemme 1.1 Soit une instance (D, l) de Chemin le plus étiqueté, on peut construire
en temps polynomial une instance (D′ , l′ ) satisfaisant la condition (C1) et tel qu’il existe

14
1.2. Chemin le plus étiqueté est AP X-difficile

une bijection entre l’ensemble des chemins maximaux de D et ceux de D′ préservant


l’ensemble des étiquettes collectées.

Preuve Pour obtenir D′ à partir de D, on transforme d’abord chaque arc uv ∈ A(D)


tel que λ(v) > λ(u) + 1 en un chemin comprenant λ(v) − λ(u) arcs et on assigne aux
sommets internes du chemin l’étiquette de u. S(u, v) définit les sommets rajoutés entre u
et v. Ensuite, pour chaque puits w appartenant à un niveau Li distinct du dernier niveau
Lk (k est la profondeur du graphe), on ajoute un chemin de longueur k − i dont une
extrémité est w et l’autre est un nouveau puits w′ tels que λ(w′ ) = k. R(w) définit les
sommets qui suivent w et on attribue l’étiquette l(w) à tous les sommets de cet ensemble.
Le niveau d’un sommet u ∈ V (D) est le même que son niveau dans D′ . De plus, chaque
arc de D′ connecte deux sommets qui sont dans deux niveaux successifs et tous les puits
appartiennent au dernier niveau Lk .
Nous décrivons la bijection T . Soit un chemin maximal P = (u1 , u2 , ..., ui , w) avec w
un puits, T (P ) = (u1 , S(u1 , u2 ), u2 , ..., S(ui−1 , ui ), ui , w, R(w)). Par construction de D′ ,
l(T (P )) = l(P ). Pour la réciproque T −1 , étant donné un chemin P ′ de D′ , il suffit de
conserver les sommets de P ′ qui sont aussi dans D.
Pour tout arc (uv) ∈ A, on ajoute |S(u, v)| ≤ |V | sommets et pour tout puits w ∈ V ,
on ajoute |S(w)| ≤ |V | sommets. Ainsi, on ajoute au plus O(|A||V | + |V |2 ) sommets et
la transformation est donc polynomiale. 

Résultats sur les instances satisfaisant (C1) et (C3) à partir des résultats sur
les instances satisfaisant (C1),(C2) et (*)
Lemme 1.2 Soit une instance (D, l) satisfaisant les conditions (C1),(C2) et (*), on peut
construire en temps polynomial une instance (D′ , l′ ) satisfaisant les conditions (C1) et
(C3). On a le rapport suivant entre les solutions, on pose r = k − |L| :
S’il existe un chemin dans (D, l) qui collecte n étiquettes alors il existe un chemin
dans (D′ , l′ ) qui collecte n + r étiquettes. S’il existe un chemin dans (D′ , l′ ) qui collecte
n étiquettes alors il existe un chemin dans (D, l) qui collecte au moins n − r étiquettes.

Preuve Soit un DAG sommet-étiqueté (D = (V, A), l) qui satisfait les conditions (C1)
(C2) et (*). Tout chemin maximal de D contient le même nombre k de sommets. Soit
m := |L| le nombre d’étiquettes des sommets de D. Comme (D, l) satisfait (C2), on sait
que m ≤ k. Nous construisons un DAG sommet-étiqueté (D′ , l′ ) de la manière suivante.
Pour chaque sommet v ∈ V (D), on fait correspondre l’ensemble {v0 , v1 , . . . , vr } ⊆ V (D′ ).
Le sommet v ∈ V (D) est l’antécédent des sommets {v0 , v1 , . . . , vr }. Un arc relie deux
sommets dans D′ si et seulement si un arc relie leur antécédent dans D.
Tout chemin maximal de D′ correspond à un chemin maximal de D, en particulier
il contient exactement k sommets. L’ensemble des étiquettes de D′ est L′ := L ∪ {m +
1, m + 2, . . . , m + r = k}. Pour chaque sommet v de D, l(v0 ) = l(v) et pour chaque entier
j ∈ {1, 2, . . . , r}, l’étiquette du sommet vj est m + j. Nous appelons l’instance (D′ , l′ )
l’extension de l’instance (D, l). Pour tout sommet v ∈ V , on ajoute r ≤ |V | sommets. Le
nombre de sommets ajoutés est donc polynomial et D′ se construit en temps polynomial.

15
Chapitre 1. Chemin le plus étiqueté

Soit P un chemin maximal de D qui collecte n étiquettes. Comme n ≤ m, P contient


au moins k − m = r sommets u tel que, il existe un sommet v ∈ P tel que λ(v) < λ(u)
et l(v) = l(u). On nomme R l’ensemble des r premiers sommets de P qui vérifient cette
propriété. On construit le chemin P ′ , l’extension du chemin P , en remplaçant le ième
sommet w de R par le sommet wi dont l’étiquette est r + i. Par construction, le chemin
P ′ collecte n + r étiquettes. Réciproquement, soit un chemin maximal de P ′ qui collecte
n étiquettes, le chemin P de D dont les sommets sont les antécédents des sommets de
P ′ , collecte au moins n − r étiquettes. 

Lemme 1.3 S’il existe un algorithme polynomial qui produit un facteur α pour Chemin
le plus étiqueté restreint aux instances satisfaisant les conditions (C1) et (C3) alors
il existe un algorithme polynomial qui produit un facteur 3α − 2 pour Chemin le plus
étiqueté restreint aux instances satisfaisant les conditions (C1),(C2) et (*).

Preuve Supposons qu’il existe un algorithme polynomial ALG′ qui produit un fac-
teur α pour Chemin le plus étiqueté restreint aux instances (D′ , l′ ) satisfaisant
les conditions (C1) et (C3). Pour une telle instance (D′ , l′ ), l’algorithme calcule en
temps polynomial un chemin P ′ qui collecte αOP T (D′ , l′ ) où OP T (D′ , l′ ) est à la fois le
nombre k de sommets dans un chemin maximal de D′ et le nombre |L′ | d’étiquettes dans
(D′ , l′ ), i.e. OP T (D′ , l′ ) = |L′ | = k. Pour chaque instance (D, l) de Chemin le plus
étiqueté satisfaisant les conditions (C1),(C2) et (*), l’algorithme ALG suivant utilise
ALG′ comme routine et calcule un chemin P qui collecte (3α − 2)OP T (D, l) étiquettes
où OP T (D, l) = |L| est le nombre d’étiquettes de (D, l).

Algorithme 1 : ALG(D)
Données : Un DAG sommet-étiqueté (D, l)
Résultat : un chemin maximal de D qui collecte (3α − 2)OP T ((D, l)) étiquettes.
Calculer l’extension (D′ , l′ ) de l’instance (D, l) ;
Exécuter ALG′ sur (D′ , l′ ) pour produire un chemin P ′ qui collecte αOP T (D′ , l′ )
étiquettes de D′ ;
Retourner la projection P du chemin P ′ dans D ;

Pour prouver que l’algorithme ALG est correct, remarquons d’abord que l’extension
(D′ , l′ ) de (D, l) contient un chemin qui collecte chaque étiquette de (D′ , l′ ) exactement
une fois. En effet, par hypothèse, l’instance (D, l) satisfait la condition (C2). Il existe
donc un chemin tropical P ∗ dans D qui collecte m = |L| étiquettes. Par le Lemme 1.2,
l’extension de P ∗ dans (D′ , l′ ) collecte m + (k − m) = k = |L′ | étiquettes. Il nous reste à
prouver que le chemin P renvoyé par ALG collecte au moins (3α − 2)|L| étiquettes. Par
le facteur de l’algorithme ALG′ , P ′ collecte au moins αk étiquettes. Par le Lemme 1.2,
P collecte au moins αk − (k − m) = m + (α − 1)k étiquettes. Puisque D satisfait la
condition k ≤ 3m, P collecte au moins (3α − 2)m = (3α − 2)OP T (D, l) étiquettes.

16
1.2. Chemin le plus étiqueté est AP X-difficile

Résultats sur les instances satisfaisant (C1) et (C4) à partir des résultats sur
les instances satisfaisant (C1) et (C3)
Lemme 1.4 Etant donné une instance (D, l) satisfaisant les conditions (C1) et (C3), on
peut construire en temps polynomial une instance (D′ , l′ ) satisfaisant les conditions (C1)
et (C4) tel que il existe un chemin dans (D, l) qui collecte n étiquettes si et seulement
si il existe un chemin dans (D′ , l′ ) qui collecte n + r étiquettes, où r = 2p − k avec p le
plus petit entier tel que k ≤ 2p .

Preuve Considérons un DAG sommet-étiqueté (D, l) qui satisfait les conditions (C1)
et (C3). Tout chemin maximal de D contient le même nombre k = |L| de sommets.
L’ensemble L′ des étiquettes de (D′ , l′ ) est L ∪ {k + 1, . . . , k + r = 2p = k ′ }. Soit T
l’ensemble des puits de D. Considérons le DAG (D′ , l′ ) obtenu à partir de (D, l) en
ajoutant un chemin dirigé Q = (q1 , q2 , . . . , qr ) et en connectant chaque puits t ∈ T au
sommet q1 . Pour i = 1, . . . , r, on assigne au sommet qi une nouvelle étiquette k + i. Les
étiquettes des sommets de D′ qui appartiennent aussi à D restent inchangées. Il est clair
qu’à tout chemin de (D, l) qui collecte n étiquettes, correspond un chemin de (D′ , l′ ) qui
collecte n + r étiquettes et réciproquement. 

Lemme 1.5 S’il existe un algorithme polynomial qui produit un facteur α pour Chemin
le plus étiqueté restreint aux instances satisfaisant les conditions (C1) et (C4) alors
il existe un algorithme polynomial qui produit un facteur 2α − 1 pour Chemin le plus
étiqueté restreint aux instances satisfaisant les conditions (C1) et (C3).

En utilisant la transformation, le fait que k ′ = 2p ≤ 2k et une preuve identique à celle


du Lemme 1.3, il est possible de définir un algorithme polynomial ALG avec un facteur
2α − 1 pour les instances de Chemin le plus étiqueté satisfaisant les conditions (C1)
et (C3) à partir d’un algorithme polynomial ALG′ avec un facteur α pour les instances
de Chemin le plus étiqueté satisfaisant les conditions (C1) et (C4).

1.2.2 Résultat sur Chemin le plus étiqueté à partir des résultats sur
Max-3SAT
Nous passons maintenant à la réduction la plus importante. Dans un premier temps,
nous rappelons la définition du problème Max-3SAT ainsi que le résultat d’inapproxi-
mabilité donné par Håstad en 2001 pour ce problème [33].

Problème 1.2 (Max-3SAT)

Données: Une formule booléenne F , i.e une collection de clauses qui sont des disjonc-
tions d’au plus trois littéraux.
Problème: Trouver une affectation des variables de F qui satisfait un nombre maximum
de clauses.

17
Chapitre 1. Chemin le plus étiqueté

Une instance de Max-3SAT est satisfaisable s’il existe une affectation des variables
qui satisfait toutes les contraintes. Nous pouvons déjà voir le parallèle entre une formule
satisfaisable et un chemin tropical.
Le résultat suivant a été établi par Håstad en 2001.

Théorème 1.1 (Håstad [33]) A moins que P 6= N P , il n’existe aucun algorithme po-
lynomial avec un facteur supérieur à 78 pour Max-3SAT même restreint aux instances
satisfaisables du problème.

En utilisant la réduction polynomiale qui préserve l’approximation ci-dessous, nous


obtenons l’AP X-difficulté de Chemin le plus étiqueté.

Théorème 1.2 A moins que P = N P , il n’existe aucun algorithme polynomial avec un


facteur supérieur à 78 pour Chemin le plus étiqueté même restreint aux instances
satisfaisant les conditions (C1), (C2) et (*) .

Preuve Etant donné une instance F de Max-3SAT, nous définissons une instance
(DF = (V, A), l) de Chemin le plus étiqueté comme suit. Soient {x1 , x2 , ..., xq }
l’ensembles des variables de F. Pour tout j ∈ {1, ..., q}, on note par Aj le nombre
d’occurrences du littéral xj et par Bj le nombre d’occurrences de sa négation. On crée
Aj + Bj sommets et les nommons xj,1 , xj,2 , ..., xj,Aj et ¬xj,1 , ¬xj,2 , ..., ¬xj,Bj . On crée
un chemins P (xj ) qui connecte les sommets qui représentent les littéraux xj , i.e. on
ajoute un arc (xj,i , xj,i+1 ) pour tout i ∈ {1, . . . , AJ − 1}. De la même manière, on crée un
chemins P (¬xj ) qui connecte les sommets qui représentent les littéraux ¬xj . Pour tout
j ∈ {1, ..., q − 1}, on connecte par un arc le dernier sommet de P (xj ) et de P (¬xj ) aux
premiers sommets de P (xj+1 ) et de P (¬xj+1 ). Définissons la fonction d’étiquetage l :
V → L := {1, . . . , m} où m est la cardinalité de l’ensemble des clauses {C1 , C2 , . . . , Cm }
de F. Il y a une correspondance directe entre les occurrences des littéraux dans les clauses
et les sommets de DF . Un sommet u reçoit l’étiquette j si et seulement si u correspond
à l’occurrence d’un littéral de la clause Cj (voir Fig. 1.2).
En appliquant la réduction aux instances satisfaisables F de Max-3SAT, nous obte-
nons une instance (DF , l) de Chemin le plus étiqueté qui contient un chemin tropical,
i.e qui satisfait la condition (C2). De plus, puisque chaque clause contient au plus trois
littéraux, le nombre k de sommets dans un chemin maximal de DF est au plus trois
fois le nombre m d’étiquettes, i.e. k ≤ 3m (condition (*)). Dans le graphe DF , chaque
chemin maximal P est un chemin reliant un sommet de {x1,1 , ¬x1,1 } à un sommet de
{xq,Aq , ¬xq,Bq } qui contient pour tout j ∈ {1, . . . , q} P (xj ) ou P (¬xj ) mais pas les deux.
Ainsi, P représente une affectation des variables (xj = vrai ⇔ P (xj ) ⊂ P ).
A partir du choix de l’étiquetage des sommets de DF , il est facile de vérifier qu’une
affectation des variable satisfaisant n clauses correspond à un chemin maximal contenant
n étiquettes. Cette transformation produit en temps polynomial l’instance (DF , l) satis-
faisant les conditions (C2) avec k ≤ 3|L| (*). De plus, en effectuant la transformation du
Lemme 1.1, on peut assurer que notre instance de Chemin le plus étiqueté satisfait
aussi la condition (C1).
En utilisant le Théorème 1.1, cela conclut la preuve du Théorème 1.2. 

18
1.3. Inapproximabilité de Chemin le plus étiqueté

1 a1 ¬a1 2 1 a1 ¬a1 2

1 b1 ¬b1 3 1 b1 ¬b1 3

2 b2 2 b2 3
3

1 c1 ¬c1 2 1 c1 ¬c1 2

3 c2 3 c2 2

Figure 1.2 – L’instance (DF , l) associée à la formule F = (a∨b∨c)∧(¬a∨b∨¬c)∧(¬b∨c)


avant la transformation du Lemme 1.1 (à gauche) et après (à droite).

Pour la section suivante, nous avons besoin d’un résultat d’inapproximabilité sur les
instances de Chemin le plus étiqueté satisfaisant les conditions (C1) et (C4). Le
Lemme 1.3 et le Lemme 1.5 nous permettent d’étendre le résultat du Théorème 1.2 à
ces instances.

Théorème 1.3 A moins que P = N P , il n’existe aucun algorithme polynomial avec un


facteur supérieur à 47
48 pour Chemin le plus étiqueté même restreint aux instances
satisfaisant les conditions (C1) et (C4) .

Preuve Supposons par l’absurde, qu’il existe un algorithme avec un facteur α ≥ 47 48


pour les instances de Chemin le plus étiqueté satisfaisant les conditions (C1) et
23
(C4). Par le Lemme 1.5, il existe un algorithme avec un facteur 2α − 1 ≥ 24 pour les
instances de Chemin le plus étiqueté satisfaisant les conditions (C1) et (C3). Par le
Lemme 1.3, il existe un algorithme avec un facteur 3(2α − 1) − 2 ≥ 78 pour les instances
satisfaisant les conditions (C1), (C2) et (*). A moins que P = N P , ceci est impossible
par le Théorème 1.2. 

Il est important que le résultat négatif soit valable pour le sous-ensemble des instances
qui vérifient les conditions (C1) et (C4). En effet, l’auto-réduction que nous décrivons
dans la section suivante n’est valable que pour les instances satisfaisant ces conditions.

1.3 Inapproximabilité de Chemin le plus étiqueté


Dans cette section, nous prouvons qu’il n’existe pas d’algorithme d’approximation
avec un facteur constant pour le problème Chemin le plus étiqueté. En fait, nous

19
Chapitre 1. Chemin le plus étiqueté

prouvons qu’il n’existe pas d’algorithme d’approximation avec un facteur constant pour
le problème Chemin le plus étiqueté restreint à l’ensemble des instances satisfaisant
les conditions (C1) et (C4). Mais il est clair que tout résultat négatif sur ce sous-ensemble
d’instances s’étend directement à l’ensemble de toutes les instances.

1.3.1 Cadre de travail


Dans cette section, nous considérons seulement les instances de Chemin le plus
étiqueté satisfaisant les conditions (C1) et (C4). Soit (D = (V, A), l) un DAG sommet-
étiqueté, avec l : V → L = {1, . . . , k} tel qu’il existe un chemin collectant chaque
étiquette exactement une fois et le nombre k = |L| de sommets dans un chemin maximal
est une puissance de deux. Pour simplifier les preuves, nous supposons que D contient
une seule source s et un seul puits t. Si ce n’est pas le cas, on peut ajouter une super-
source S et un arc de S vers toutes les autres sources s ∈ V (D). De même, on peut
ajouter un super-puits T et un arc de tout puits t ∈ V (D) vers T . On associe à S et T
deux nouvelles étiquettes qui n’appartiennent pas à L. On ajoute donc un facteur additif
constant de 2 à toute solution maximale de l’instance mais ce n’est pas important pour
ce que l’on veut prouver dans cette section. Avec cette supposition, tout chemin maximal
est un st-chemin (i.e un chemin de s à t) et tous les sommets de D appartiennent à un
st-chemin. Rappelons que, pour tout sommet u ∈ V , λ(u) est le nombre de sommets
dans un su-chemin (tous ces chemins ont la même longueur car (D, l) satisfait (C1)).
Pour tout u ∈ V, λ(s) = 1 ≤ λ(u) ≤ k = λ(t).

1.3.2 Objectif et schéma de preuve


L’objectif de cette section est de prouver le théorème suivant :

Théorème 1.4 A moins que P = N P, il n’existe aucun algorithme polynomial avec


un facteur constant pour Chemin le plus étiqueté même restreint aux instances
satisfaisant les conditions (C1) et (C4).

Pour prouver le Théorème 1.4, nous raisonnons par l’absurde. Nous supposons qu’il
existe un algorithme polynomial avec un facteur α et nous prouvons que cela implique
qu’il existe un algorithme avec un facteur meilleur que 47
48 pour le problème Chemin le
plus étiqueté. Pour cela, nous montrons que si il existe un algorithme d’approximation
avec un facteur constant α, nous pouvons déduire un algorithme avec un facteur g(α),
où g est une fonction croissante définie ultérieurement. Ce résultat est obtenu à partir
d’une réduction du problème vers lui-même (auto-réduction). Cette réduction permet
d’obtenir un algorithme avec un facteur g(α) à partir d’un algorithme avec un facteur
α. A partir d’une instance (D, l), nous construisons une instance (D̃, ˜l) sur laquelle nous
calculons un chemin P̃ avec l’algorithme dont le facteur est α, et nous déduisons un
chemin P dans D qui collecte g(α)OP T ((D, l)) étiquettes.

20
1.3. Inapproximabilité de Chemin le plus étiqueté

1.3.3 Auto-réduction

Graphe carré et graphe cube.

Le graphe carré D̄ de D est obtenu à partir de D en remplaçant chaque sommet


u ∈ V par une copie Du du graphe D. On note vu la copie du sommet v ∈ V dans le
graphe Du . Il y a un arc vu wu dans D̄ si et seulement s’il y a un arc vw dans D. En
plus des arcs des sous-graphes Du , pour chaque arc uv dans D, on ajoute un arc tu sv
à D̄. Le graphe cube D̃ de D est obtenu à partir de D̄ en remplaçant chaque sommet
vu de D̄ par un chemin P (vu ) avec k sommets. Chaque arc qui entre dans un sommet
vu de D̄ est remplacé par un arc de D̃ qui entre dans le premier sommet de P (vu ). De
manière analogue, chaque arc qui sort d’un sommet vu de D̄ est remplacé par un arc de
D̃ qui sort du dernier sommet de P (vu ) (voir Fig. 1.3). On définit une nouvelle instance
de Chemin le plus étiqueté sur le graphe D̃ dont la source est le premier sommet de
P (ss ) et le puits est le dernier sommet de P (tt ). La fonction d’étiquetage ˜l est définie
après la figure.

1 3
c e

2 a f 4

b d cc ec ce ee
3 2
ac fc ae fe
S1,2 (1) S1,2 (3)
ca ea bc dc be de cf ef

S1,2 (2) aa fa S1,2 (4) af ff

ba da cb eb cd ed bf df
S1,2 (3) S1,2 (2)
ab fb ad fd
Da
bb db bd dd fd1 fd2 fd3 fd4

P (fd )

Figure 1.3 – Un exemple de graphe carré D̄ avec k = |L| = 4. Nous avons représenté
en gras un chemin optimal P de D et son chemin correspondant P̄ dans D̄. Dans le sous
graphe Da , chaque sommet v de D̄ est étiqueté par un sous ensemble d’étiquettes reçues
par les sommets du chemin P (v) de D̃. Dans D̃, le sommet fd de D̄ est remplacé par le
chemin P (fd ).

21
Chapitre 1. Chemin le plus étiqueté

Etiquetage : définition de la fonction ˜l.


Soit un sommet vu de D̄, l’ensemble d’étiquettes des sommets de P (vu ) dépend
des étiquettes l(u) et l(v) et du niveau de λ(u) dans D. Puisqu’un chemin de D̃ entre
la source et le puits passe par tous les sommets de P (vu ) ou par aucun, ˜l assigne un
ensemble d’étiquettes au chemin P (vu ) et ne précise pas l’ordre dans lequel les étiquettes
apparaissent. L’ensemble des étiquettes L̃ qui définissent la fonction d’étiquetage consiste
en k sous-ensembles disjoints L˜1 , . . . , L˜k tel que |L˜1 | = . . . = |L˜k | = k 2 . Pour chaque
étiquette c ∈ L et chaque niveau i ∈ {1, . . . , k}, on construit une partition Si,c :=
{Si,c (c′ ) : c′ ∈ L} de L̃c en k sous-ensembles de taille k tels que deux sous ensembles de
différentes partitions s’intersectent en exactement une étiquette, i.e. pour tout c′ , c′′ ∈ L,
|Si1 ,c (c′ )∩Si2 ,c (c′′ )| = 1. Puisque k est une puissance de deux (k = 2r ), de telles partitions
peuvent être construites comme les classes de droites parallèles d’un plan affine fini
(chaque classe de droites parallèles induit une partition dont les sous ensembles sont
les droites). La construction d’un plan affine à partir d’un corps fini est décrite par
exemple dans [2]. Le corps fini GF (2r ) (le corps à 2r éléments) peut être construit en
temps polynomial en la taille de D en identifiant un polynôme irréductible P de degré
r par brute force et en utilisant l’isomorphisme GF (2r ) ≃ GF (2)[X]/(P ). La fonction
d’étiquetage ˜l assigne aux sommets de P (vu ) les étiquettes qui appartiennent au sous-
ensemble Sλ(u),l(u) (l(v)) de la partition Sλ(u),l(u) .

Lemme 1.6 Il existe un chemin bien coloré dans D̃ qui collecte toutes les étiquettes de
L̃.
Preuve Soit P un chemin tropical de D qui collecte toutes les étiquettes de L. On
considère le chemin P̃ qui passe par chaque sous-graphe Du pour tout u ∈ P et tel que
le sous-chemin P̃u de P̃ à l’intérieur du sous-graphe Du passe par les sommets vu pour
tout v ∈ P (Voir Fig 1.3). Puisque P collecte chaque étiquette de L une fois, le sous
chemin P̃u collecte tous les sous-ensembles de la partition Sλ(u),l(u) . Ce qui implique que
P̃u collecte chaque étiquette de L̃l(u) exactement une fois. En appliquant cette assertion
à tous les sommets u ∈ P et en réutilisant que P collecte chaque étiquette de L, nous
S
concluons que P̃ collecte toutes les étiquettes de L̃ = u∈P L̃l(u) exactement une fois. 

Le lemme précédent et le fait que |L̃| est une puissance de deux nous assurent que D̃
est une instance de Chemin le plus étiqueté satisfaisant les conditions (C1) et (C4).
De plus, l’instance D̃ peut être construite en temps polynomial à partir de l’instance D.

1.3.4 Preuve du Théorème 1.4


Etude de la fonction g d’augmentation du facteur
Nous définissons par g la fonction réciproque sur l’intervalle ]0, 1] de la fonction h
continue et strictement croissante définie par :
(
h1 (x) := x(x2 − x + 1) if 0 < x < 12 ;
h(x) :=
h2 (x) := x2 − 14 x + 14 if 21 ≤ x ≤ 1.

22
1.3. Inapproximabilité de Chemin le plus étiqueté

Lemme 1.7 Pour tout 0 < β < 1, la suite βn définie par β0 = β et βn+1 = g(βn ) a
pour limite 1.

Preuve Si x ∈ [ 21 , 1[ alors la différence h2 (x) − x = x2 − 54 x + 41 = (x − 1)(x − 14 ) est


négative. Supposons maintenant que x ∈]0, 12 [, alors h1x(x) = x2 − x + 1 < 1, h1 (x) < x.
Nous concluons que pour tout x ∈]0, 1[, h(x) < x. Puisque h est strictement croissante sur
l’intervalle ]0, 1[, g l’est aussi et en appliquant cela des deux côtés de cette inégalité, nous
obtenons que pour tout x ∈]0, 1[, x < g(x). Ceci implique que la suite βn est strictement
croissante et bornée par 1. Ainsi sa limite est un réel l tel que g(l) = l ⇔ l = h(l).
Puisque β0 > 0 et h1l(l) = l2 − l + 1 < 1 pour tout l ∈]0, 21 [, nous déduisons que l ≥ 12 .
Finalement, en utilisant que h2 (l) − l = (l − 1)(l − 41 ) = 0 et l > 41 , nous concluons que
la limite de la suite βn est 1. 

Algorithme d’approximation avec un facteur g(β)


Le lemme qui suit, que nous prouvons dans la section suivante, est la clef de la
preuve du Théorème 1.4. Comme nous l’expliquons ci-dessous, le reste de la preuve
découle naturellement de ce lemme.

Lemme 1.8 Etant donné un chemin Q de D̃ qui collecte au moins βk 3 étiquettes, on


peut calculer en temps polynomial un chemin P de D qui collecte au moins g(β)k éti-
quettes.

La construction implique directement le lemme suivant :

Lemme 1.9 S’il existe un algorithme polynomial avec un facteur β pour Chemin le
plus étiqueté alors il existe un algorithme polynomial avec un facteur g(β) pour Che-
min le plus étiqueté.

Preuve Supposons qu’il existe un algorithme polynomial ALGβ qui produit un facteur
au moins β sur Chemin le plus étiqueté. Soit D une instance de Chemin le plus
étiqueté, nous utilisons l’algorithme suivant :

Algorithme 2 : Algorithme d’approximation ALGg(β) avec un facteur g(β)


Données : Un DAG sommet-étiqueté (D, l)
Résultat : un chemin maximal de D qui collecte g(β)k étiquettes.
Construire le graphe D̃ à partir du graphe D;
Exécuter ALGβ pour obtenir un chemin Q de D̃ qui collecte βk 3 labels;
Déduire, à partir de Q, un chemin P de D qui collecte g(β)k étiquettes;
Retourner P ;
Cet algorithme est polynomial car toutes ses étapes le sont. Nous avons donc un
algorithme polynomial avec un facteur g(β) pour Chemin le plus étiqueté. 

23
Chapitre 1. Chemin le plus étiqueté

Supposons qu’il existe un algorithme d’approximation avec un facteur constant β


pour Chemin le plus étiqueté. Par le Lemme 1.7, il existe un entier n tel que βn > 47 48 .
En appliquant n fois le Lemme 1.9, il existe un algorithme polynomial pour le problème
47
Chemin le plus étiqueté avec un facteur strictement supérieur à 48 . Un argument
similaire assure que l’existence d’un algorithme d’approximation avec un facteur constant
entraine l’existence d’un PTAS pour le problème. Par le Théorème 1.3, un tel algorithme
ne peut pas exister à moins que P = N P .
Pour conclure la preuve du Théorème 1.4, nous prouvons le Lemme 1.8 dans la sous-
section suivante.

1.3.5 Preuve du Lemme 1.8


Soit un chemin Q de D̃ qui collecte un ensemble L̃Q ⊆ L̃ contenant au moins βk 3
étiquettes. Nous expliquons dans la suite comment construire en temps polynomial à
partir de Q, un chemin P de D qui collecte un ensemble LP ⊆ L contenant au moins
g(β)k étiquettes.
Nous définissons par V Q ⊆ V l’ensemble des sommets u tel que Q passe par Du et par
LQ ⊆ L l’ensemble des étiquettes des sommets de V Q . Pour chaque sommet u ∈ V Q , nous
définissons WuQ ⊆ V l’ensemble des sommets v tels que Q contient P (vu ) comme sous-
chemin et par LQ Q Q
u ⊆ L l’ensemble des étiquettes des sommets de Wu . Soit αu := |Lu |/k.
Q Q
Nous prouvons que ou bien |L | ≥ g(β)k, ou bien il existe un sommet u ∈ V tel que
|LQ
u | = αu k ≥ g(β)k. Dans le premier cas, les sommets de V
Q induisent un chemin dans

D qui collecte g(β)k étiquettes. Dans le second cas, les sommets de Q qui appartiennent
au sous-graphe Du induisent un chemin dans D qui collecte g(β)k étiquettes. Ainsi, si
une des deux assertions est vraie, on peut dériver en temps polynomial un chemin P de
D qui collecte g(β)k étiquettes et la preuve du lemme est finie.
Supposons par contradiction qu’aucune de ces deux assertions ne soit vraie, |LQ | <
g(β)k et pour tout u ∈ V Q , αu < g(β). Soit c une étiquette de LQ . Nous notons
VcQ ⊆ V Q l’ensemble des sommets u ∈ V Q tels que l(u) = c et nous définissons αc :=
maxu∈V Q αu et uc := arg maxu∈V Q αu . Par hypothèse, αc < g(β). Dans Duc , Q collecte
P c
′ P c
2
Q |Sc,λ(u) (c )| = Q k = αc k étiquettes.
c ∈L

uc c ∈L

uc

Soit u un sommet de VcQ − {uc }. Le nombre d’étiquettes collectées par Q dans Du


qui ne sont pas collectées par Q dans Duc est la somme sur toutes les étiquettes c′ ∈ LQ
u
de

[ [  
Sc,λ(u) (c′ ) − Sc,λ(uc ) (c′′ ) = k− Sc,λ(u) (c′ ) ∩ Sc,λ(uc ) (c′′ ) (1.1)
c′′ ∈LQ
uc c′′ ∈LQ
uc
X
= k− Sc,λ(u) (c′ ) ∩ Sc,λ(uc ) (c′′ ) (1.2)
c′′ ∈LQ
uc
X
= k− 1 (1.3)
c′′ ∈LQ
uc

24 = k − αc k (1.4)
1.3. Inapproximabilité de Chemin le plus étiqueté

Nous déduisons (1.1) de Sc,λ(u) (c′ ) = k et des propriétés d’ensembles. Pour (1.2),
rappelons que la famille {Sc,λ(uc ) (c′′ ) : c′′ ∈ LQ
uc } est une partition L̃c . Le choix des parti-
tions utilisées pour définir la fonction d’étiquetage de D̃ assure que Sc,λ(u) (c′ ) ∩ Sc,λ(uc ) (c′′ ) =
1 et explique (1.3). Pour (1.4), nous utilisons |LQuc | = αc k. Nous concluons que le nombre
d’étiquettes collectées par Q dans Du et qui ne sont pas collectées par Q dans Duc est
|LQ Q
u |(k − αc k). Puisque (k − αc k) ≥ 0 et |Lu | = αu k ≤ αc k, ce nombre est au plus
αc k(k − αc k).
En utilisant la borne pour tous les sommets u ∈ VcQ − {uc } et le fait que αc k 2
étiquettes sont collectées par Q dans Duc , nous obtenons la borne suivante sur le nombre
d’étiquettes de L̃c collectées par Q :

L̃Q ∩ L̃c ≤ αc k 2 + (|VcQ | − 1)αc k(k − αc k)


≤ k 2 (αc + αc (|VcQ | − 1)(1 − αc ))

En sommant sur toutes les étiquettes c ∈ LQ , nous obtenons que le nombre total
d’étiquettes collectées par Q est majoré comme suit :

X  
L̃Q ≤ k2 αc + αc (|VcQ | − 1)(1 − αc )
c∈LQ
X  
2
< k g(β) + αc (|VcQ | − 1)(1 − αc ) (∗)
c∈LQ

Nous obtenons la dernière inégalité en utilisant la supposition initiale αc < g(β).


Nous distinguons deux cas selon la valeur de g(β). Supposons d’abord que g(β) ≥ 21 .
Notons que le maximum 41 de la fonction x(1 − x) sur l’intervalle [0, 1] est réalisé pour 12 .
De là, pour tout c ∈ LQ , αc (1 − αc ) ≤ 41 et nous dérivons à partir de (∗) les inégalités
suivantes :

X  1

Q 2
L̃ < k g(β) + (|VcQ | − 1) (1.5)
4
c∈LQ
 
  X
1 1 X
< k 2  g(β) − 1+ |VcQ | (1.6)
4 4
c∈LQ c∈LQ
  
1 1
< k2 g(β)k + k
g(β) − (1.7)
4 4
 
1 1
< k 3 g(β)2 − g(β) + (1.8)
4 4
3
< k (h(g(β))) (1.9)
3
< k β (1.10)

25
Chapitre 1. Chemin le plus étiqueté

Dans (1.7), nous déduisons la borne supérieure du membre de gauche de la somme par
P
la supposition initiale g(β)k > |LQ | = c∈LQ 1 et (g(β) − 41 ) ≥ 0. Comme tout chemin
P
entre s et t dans D contient exactement k sommets, nous obtenons que c∈LQ |VcQ | = k.
(1.10) contredit le choix de Q et conclut la preuve du cas g(β) ≥ 21 .
Supposons maintenant que g(β) < 21 . Puisque la fonction x(1 − x) est strictement
croissante sur l’intervalle ]0, 21 [ et |VcQ |−1 ≥ 0, pour tout c ∈ LQ , nous pouvons remplacer
αc par g(β) dans l’inéquation (∗) :

X  
|L̃Q | < k 2 g(β) + g(β)(|VcQ | − 1) (1 − g(β)) (1.11)
c∈LQ
 
X
< k 2 g(β)  1 − (1 − g(β)) + |VcQ | (1 − g(β)) (1.12)
c∈LQ
 
X X
< k 2 g(β) g(β) 1 + (1 − g(β)) |VcQ | (1.13)
c∈LQ c∈LQ
 
< k 2 g(β) g(β)2 k + (1 − g(β)) k (1.14)
 
= k 3 g(β) g(β)2 − g(β) + 1 (1.15)
3
= k h(g(β)) (1.16)
3
< k β (1.17)
P P
Nous utilisons encore c∈LQ 1 < g(β)k et c∈LQ |VcQ | = k pour obtenir (1.14). (1.17)
contredit le choix de Q et conclut la preuve du cas g(β) < 12 .
Dans les deux cas, nous obtenons une contradiction avec la supposition que Q collecte
au moins βk 3 étiquettes. Ceci conclut la preuve du Lemme 1.8 et celle du Théorème 1.4.


1.4 Algorithme d’approximation avec un facteur √ 1


OP T

Dans la section précédente, nous avons montré qu’il n’existe pas d’algorithme poly-
nomial avec un facteur constant pour le problème Chemin le plus étiqueté à moins
que P = N P . Dans cette section, nous présentons un algorithme d’approximation avec
un facteur non constant pour Chemin le plus étiqueté. Nous expliquons par la suite
comment améliorer ce facteur.

1.4.1 Idée de l’algorithme sur un exemple simple


Pour donner une intuition de notre algorithme, nous nous plaçons d’abord dans le
cadre des instances (D, l) de Chemin le plus étiqueté qui contiennent un chemin bien
coloré. Un chemin P ∗ qui réalise l’optimum sur ces instances a des propriétés particulières
que l’on peut exploiter. Pour tout sommet v ∈ P ∗ , pour tout j, nous définissons par

26
1.4. Algorithme d’approximation avec un facteur √ 1
OP T

B(v, j) l’ensemble des sommets des chemins d’origine v qui contiennent au plus j arêtes
(j + 1 sommets). P ∗ contient exactement une fois chaque étiquette du graphe donc, pour
tout sommet v de P ∗ et tout j ∈ {1, ..., k − λ(v)}, B(v, j) contient au moins j étiquettes.
Rappelons que λ(v) définit le niveau du sommet v dans le DAG.
Nous présentons d’abord une routine de nettoyage des sommets qui permet de ne
conserver que des sommets qui vérifient la propriété précédente.

Routine de nettoyage des sommets


La routine s’effectue par niveau de manière décroissante (de k vers 1). Soit un sommet
v, on considère que tous les sommets qui sont sur un chemin entre v et un puits ont déjà
été nettoyés. Si pour tout j ∈ {1, ..., k − λ(v)}, B(v, j) contient au moins j étiquettes, v
est conservé ; sinon, il est supprimé.
Aucun sommet de P ∗ n’est supprimé par cette procédure de nettoyage des sommets.

Algorithme
L’algorithme est assez simple, nous le définissons de manière récursive. On pose v0 = s
la source du DAG. On note vj le sommet sur lequel on a collecté la jème étiquette. Comme
vj n’a pas été supprimé par la routine, B(vj , j + 1) contient au moins j + 1 étiquettes,
vj+1 ∈ B(vj , j + 1) est un sommet tel que, pour tout i ∈ [[1, j]], l(vj+1 ) 6= l(vi ).
Pour tout j, le chemin (v1 , ..., v2 , ..., v3 , ...., vj ) collecte au moins j étiquettes et
contient au plus 1 + 2 + ... + j = j(j+1)
2 < j 2 sommets.
Ainsi, si k est le nombre d’étiquettes et de niveaux, (v1 , ..., v2 , ..., v3 , ...., v⌊√k⌋ ) collecte

au moins ⌊ k⌋ étiquettes et contient au plus k sommets.

1.4.2 Algorithme Calcul du chemin


Nous introduisons dans cette section le problème Chemin le plus étiqueté pon-
déré qui est la version pondérée du problème de collecte d’étiquettes. Dans cette version,
chaque étiquette a un poids et on recherche un chemin tel que la somme des poids des
étiquettes (distinctes) collectées soit maximum. On peut exprimer une instance de Che-
min le plus étiqueté comme une instance de Chemin le plus étiqueté pondéré
où toutes les étiquettes ont un poids 1. L’ensemble des instances de Chemin le plus
étiqueté pondéré contient donc l’ensemble des instances de Chemin le plus éti-
queté. Il n’existe donc pas d’algorithme d’approximation polynomial avec un facteur
constant pour la version pondérée.

Problème 1.3 (Chemin le plus étiqueté pondéré)

Données: Un DAG sommet-étiqueté (D, l) et une fonction poids c : L → N+ ;


Problème: Trouver un chemin P de D qui maximise le poids total des étiquettes col-
P
lectées c(P ) := l∈l(P ) c(l).

27
Chapitre 1. Chemin le plus étiqueté

Comme pour la version non pondérée du problème, le poids d’une étiquette qui
apparait plusieurs fois dans P ne compte qu’une fois dans la somme.

Cadre de travail
Pour simplifier la description de l’algorithme, nous supposons que le graphe contient
une unique source s et un unique puits t. Notre algorithme peut aisément être adapté
pour traiter le cas de plusieurs sources et plusieurs puits en introduisant une super source
S (resp. un super-puits T ) qui a un arc sortant (resp. entrant) vers chaque source (resp.
à partir de chaque puits) de D . Sans perte de généralité, nous pouvons aussi supposer
que (i) la source s de D a une étiquette de poids 0 (une instance équivalente satisfaisant
cette condition peut être obtenue en ajoutant à D une nouvelle source s′ dont l’étiquette
est de poids 0 et un arc s′ s) ; (ii) tous les autres sommets ont une étiquette de poids
strictement positif. On peut supprimer un sommet dont l’étiquette est de poids zéro en
remplaçant chaque chemin de longueur deux passant par ce sommet par un arc.

Routine d’évaluation de la borne supérieure


La première étape de l’algorithme est de calculer en temps O(|V |3 ) une fonction
F : V → N. F (u) est une borne supérieure du poids total maximum des étiquettes qu’un
su-chemin peut collecter.
Pour tous sommets u, v ∈ V, nous définissons par Du,v le sous-graphe de D induit
par les sommets qui sont sur un uv-chemin. Nous notons par Γ(u, v) le poids total
des étiquettes de l’ensemble des sommets de Du,v et P u l’ensemble des su-chemins. La
fonction F : V → N est récursivement définie comme suit :
(
0, si u = s ;
F (u) := maxu min F (x) + Γ(y, u), sinon.
P ∈P xy∈P

Pour tout u ∈ V , P (u) est un chemin qui réalise le maximum F (u), i.e. F (u) =
minxy∈P (u) F (x) + Γ(y, u).
Le lemme suivant montre que, pour chaque sommet u ∈ V, F (u) est bien une borne
supérieure du poids total des étiquettes qui peuvent être collectées par un su-chemin.

Lemme 1.10 Si P = (s = u0 , u1 , ..., un = u) est un su-chemin alors F (u) ≥ c(P ).

Preuve Par induction sur n. Pour n = 0, F (u0 ) = F (s) = 0. Considérons un chemin


P = (s = u0 , u1 , ..., un = u). Pour chaque i = 1, . . . , n, Pi est le chemin (u0 , u1 , ..., ui ).
Le poids du chemin (ui , ..., un ) est au moins c(P ) − c(Pi−1 ) et il appartient à Dui ,u ,
de là Γ(ui , u) ≥ c(P ) − c(Pi−1 ). Par induction, pour tout i = 1, . . . , n, nous obtenons
F (ui−1 ) ≥ c(Pi−1 ) et donc F (ui−1 ) + Γ(ui , u) ≥ c(P ). Ce qui nous mène à F (u) ≥ c(P ).


Nous déduisons le corollaire suivant qui justifie l’efficacité de l’algorithme.

28
1.4. Algorithme d’approximation avec un facteur √ 1
OP T

Corollaire 1.1 F (t) ≥ OP T où OP T est le poids maximum des étiquettes qui peuvent
être collectées par un st-chemin.

Nous décrivons maintenant l’algorithme qui calcule la fonction F en temps O(|V |3 ).


On calcule d’abord la clôture transitive du graphe D représenté par une matrice M (u, v),
u ∈ V, v ∈ V, telle que M (u, v) = 1 s’il y a un uv-chemin dans D, et M (u, v) = 0
sinon. Puis, pour tous sommets u, v ∈ V , on calcule l’ensemble des étiquettes L(u, v)
des sommets de Du,v (rappelons que Γ(u, v) = |L(u, v)|). Ceci peut être fait en temps
O(|V |3 ) en utilisant la matrice M. Finalement, on considère les sommets de V dans
l’ordre croissant de leur distance à s, i.e que lorsqu’on calcule F (u), la valeur de F (x) a
déjà été calculée pour tous les sommets x ∈ Ds,u . Ainsi, calculer F (u) revient à résoudre
un problème de chemin de capacité maximum dans le graphe Ds,u où la capacité d’un
arc xy est F (x) + Γ(y, u) et la capacité d’un chemin est la plus petite capacité d’un
arc dans ce chemin. Ce problème peut être résolu en temps linéaire dans un DAG en
utilisant un algorithme de type Dijkstra [5]. Nous avons une représentation implicite de
Ds,u à partir de la matrice M et de la représentation de D. Ainsi, tous les F (u) et P (u)
se calcule en temps O(|V |3 ) .

L’algorithme Calcul du chemin


Dans cette section, on considère que l’on connait F (u) et P (u) pour tout u ∈ V .
Soit u ∈ V , l’algorithme Calcul du chemin
p retourne un su-chemin qui collecte des
étiquettes d’un poids total supérieur à ⌊ F (u)⌋. Par le Corrolaire 1.1, en appliquant
cette procédure avec u =√t nous obtenons un st-chemin qui collecte des étiquettes d’un
poids total supérieur à ⌊ OP T ⌋.

Algorithme 3 : Calcul du chemin(u ∈ V )


Données : Un DAG sommet-étiqueté (D, l) p
Résultat : un chemin P entre s et u tel que c(P ) ≥ ⌊ F (u)⌋
si u = s alors
retourner (s)
sinon p
Soit xy unparc de P (u) avec F (x) ≤ (⌊ F (u)⌋ − 1)2 et
F (y) ≥ (⌊ F (u)⌋ − 1)2 ;
P ′ ← Calcul du chemin(y) ;
p
si c(P ′ ) ≥ ⌊ F (u)⌋ alors
retourner P ′ .Q où Q est un yu-chemin quelconque;
sinon
Exécuter un BFS dans Dy,u pour trouver un chemin v ayant une étiquette
non collectée par P ′ , i.e l(v) ∈
/ l(P ′ );

retourner P .Q où Q est un yu-chemin passant par le sommet v ;

Le lemme suivant est nécessaire pour prouver que l’algorithme Calcul du chemin
est correct.

29
Chapitre 1. Chemin le plus étiqueté

p 2
Lemme
p 1.11 Il existe un arc (xy) dans P (u) tel que F (x) ≤p (⌊ F (u)⌋ − 1) et F (y) ≥
2
(⌊ F (u)⌋ − 1) . De plus, si (xy) est un tel arc, Γ(y, u) ≥ ⌊ F (u)⌋.
p
Preuve
p La première assertion est vraie car F (s) = 0 ≤ (⌊ F (u)⌋ − 1)2 et F (u) ≥
(⌊pF (u)⌋ − 1)2 . Pour vérifier
p la seconde assertion, soit xy un arc tel que F (x) ≤
(⌊ F (u)⌋ − 1)2 et F (y) ≥ (⌊ F (u)⌋ − 1)p2 . Puisque xyp∈ P (u), F (x) + Γ(y,
p u) ≥ F (u).
Cela 2 2
p implique Γ(y, u) ≥ F (u) − F (x) ≥ ⌊ F (u)⌋ − (⌊ F (u)⌋ − 1) = 2⌊ F (u)⌋ − 1 ≥
⌊ F (u)⌋. 

Théorème
p 1.5 Calcul du chemin(u) calcule un chemin P ′ .Q tel que c(P ′ .Q) ≥
⌊ F (u)⌋.

Preuve Nous procédons par induction sur le nombre d’appels récursifs. Si u = s l’al-
gorithme retourne le chemin (s) qui collecte l’étiquette l(s) de poids F (s) = 0. D’autre
part, la première
p assertion du Lemme p 1.11 assure2 que P (u) contient un arc xy tel que
2
F (x) ≤ (⌊ F (u)⌋ − 1) et F (y) ≥ (⌊ F (u)⌋ − 1) . Parphypothèse d’induction, p Calcul
du chemin(y) retourne un chemin P ′ tel que c(P ′ ) ≥ ⌊ F (u)⌋ − 1. Si c(P ′ ) ≥ ⌊ F (u)⌋,
p p
alors par suite, c(P ′ .Q) ≥ ⌊ F p(u)⌋. Maintenant, supposons que c(P ′ ) = ⌊ F (u)⌋ − 1.
Par le Lemme 1.11, Γ(y, u) ≥ ⌊ F (u)⌋. Ceci implique que Dy,u contient au moins une
étiquette non collectée par P ′ (et ainsi distincte de l(y)). Un parcours de Dy,u permet de
trouver un sommet v 6= y ayant cette étiquette et un chemin Q entre y et u passant par
v.pPuisque c(l(v)) ≥ 1, le chemin
p P ′ .Q collecte des étiquettes de poids total supérieur à
⌊ F (u)⌋ − 1 + c(l(v)) ≥ ⌊ F (u)⌋. 

Pour conclure cette section, le théorème précédent ainsi que le Corollaire 1.1 nous
1
mène à la conclusion que Calcul du chemin est une √OP T
-approximation en temps
polynomial de Chemin le plus étiqueté pondéré.

1.4.3 Exemple serré pour l’analyse des performances de l’algorithme


Calcul du chemin
Dans cette section, nous décrivons une instance du problème Chemin le plus éti-
queté qui montre que notre analyse de l’algorithme Calcul du chemin est serrée
même si on se limite aux instances non pondérées du problème, i.e c(l) = 1 pour tout
l ∈ L. Soit D9 le graphe de Fig 1.4. Soit s la source et t le puits du graphe. Il est facile
de vérifier que F (u) = λ(u), pour tout u ∈ V. En particulier, F (t) = 9. En effet, pour
la fonction F , chaque sommet dans le chemin du haut est équivalent au sommet dans le
même niveau du chemin du bas. De plus, F (x) + Γ(y, t) est au moins 9 pour chaque arc
xy dans le chemin du haut. Ainsi, on peut supposer que le chemin P (t) choisi par l’algo-
rithme est le chemin du haut. Quand l’algorithme Calcul du chemin est appelé avec
t comme paramètre, il explore P (t) jusqu’à ce qu’il trouve un arc xy tel que F (x) ≤ 4 et
F (y) ≥ 4. Alors il appelle récursivement Calcul du chemin(y) qui peut retourner le
chemin du haut P ′ entre s et y et qui collecte deux étiquettes 1 et 10. Ensuite, le BFS
dans Dy,t trouve le sommet v qui est à la droite de y et étiqueté avec 9. Le chemin Q

30
1
1.5. OP T ǫ -approximation pour Chemin le plus étiqueté

entre y et t qui passe par v peut encore une fois être le yt-chemin du haut. Finalement,
Calcul du chemin(t) peut retourner le chemin du haut qui collecte 3 étiquettes alors
que l’optimum est le chemin du bas qui collecte 9 étiquettes. Des exemples arbitrairement
grands peuvent être obtenus en utilisant une construction analogue.

10 1 10 9 1 10 9
x x y v x x x

1 s t 9

x x x x x x x
2 3 4 5 6 7 8

Figure 1.4 – D9 , un exemple serré pour Calcul du chemin

1
1.5 OP T ǫ -approximation pour Chemin le plus étiqueté
Dans cette section, nous décrivons une méthode pour améliorer la performance de
1
notre √OP T
-approximation pour Chemin le plus étiqueté. Nous décrivons d’abord
la méthode pour le cas non pondéré que nous adaptons ensuite pour prendre en compte
le poids des étiquettes. Nous transformons un algorithme qui retourne un chemin col-

lectant c OP T α étiquettes en un algorithme qui retourne un chemin collectant c′ OP T α
1
étiquettes où α′ = 2−α et c′ est une constante dépendante de c et α. En commençant avec
1
notre √OP T
-approximation et en appliquant n fois cette transformation, nous obtenons
n
un algorithme qui retourne des chemins qui collectent au moins c(n)OP T n+1 étiquettes
où c(n) est une constante dépendante de n. Pour tout ǫ > 0, il existe un entier n tel
n
n
que n+1 > 1 − ǫ, ainsi, pour OP T assez grand, c(n)OP T n+1 ≥ OP T 1−ǫ . Si OP T est
borné, une solution optimale peut être calculée en temps polynomial par un algorithme
de programmation dynamique semblable à celui de la Section 1.7.

Théorème 1.6 Pour tout ǫ > 0 et toute instance (D, l) de Chemin le plus étiqueté,
on peut calculer en temps polynomial un chemin qui collecte OP T (D)1−ǫ étiquettes.

1.5.1 Préliminaires
Soit (D, l) une instance de Chemin le plus étiqueté, avec L comme ensemble
d’étiquettes. Soit un sous-ensemble des étiquettes L′ ⊆ L, la projection de l’instance D
sur L − L′ est l’instance D − L′ obtenue à partir de D en supprimant les étiquettes de
L′ . Dans l’instance projetée, des sommets peuvent ne pas avoir d’étiquette. Ces sommets
peuvent être supprimés en remplaçant chaque chemin de longueur deux qui passe par
un tel sommet par un arc (comme dans la Section 1.4.2 pour les sommets ayant une
étiquette de poids 0). Rappelons que pour toute paire de sommets x, y ∈ V, Dx,y est le
graphe induit par les sommets qui sont sur un xy-chemin. Un sommet y est dit couvert
par un sommet x si y ∈ V (Dx,t ). Par extension, y est dit couvert par un ensemble de

31
Chapitre 1. Chemin le plus étiqueté

sommets U si au moins un sommet de U couvre y. L’ensemble des sources d’un ensemble


de sommets U , noté sources(U ), est le sous-ensemble minimal de U qui couvre tous les
sommets de U, i.e un sommet u appartient à sources(U ) si et seulement si u ∈ U et
aucun autre sommet de U ne couvre u.

1.5.2 Preuve du Théorème 1.6


Mécanisme d’amélioration du facteur : Construction par niveauxβ,k
Soit A un algorithme qui, étant donné un DAG étiqueté (D, l) avec une source unique
s ∈ V (D) et un entier β, retourne une collection de chemins {Pu : u ∈ U } où Pu est un
su-chemin qui collecte exactement β étiquettes. Pour tout 0 < α < 1, on dit que A ∈ Aα
s’il existe une constante c telle que pour toute instance D et pour tout sy-chemin de
D qui collecte p étiquettes, la collection de chemins obtenue en exécutant A avec tout
entier β ≤ cpα comme paramètre sur D contient un su-chemin Pu tel que u couvre y.
L’algorithme Construction par niveauxβ,k (Algorithme 4) utilise un algorithme
A ∈ Aα comme oracle. Il prend comme entrée un DAG étiqueté (D, l) avec une unique
source s ∈ V (D) et retourne une collection de chemins {Pu : u ∈ U } où Pu est un
chemin entre s et u qui collecte exactement βk étiquettes. Nous montrons plus bas
que pour un choix approprié des paramètres β et k, Construction par niveauxβ,k
appartient à A 1 . L’idée de l’algorithme est de séparer le DAG D en k niveaux et de
2−α
collecter β étiquettes dans chaque niveau. Les niveaux sont caractérisés par les sous-
ensembles de sommets S0 , . . . , Sk . Le sous-ensemble Si contient les sommets v qui sont
les derniers sommets d’un chemin P (v) collectant iβ étiquettes découvertes dans les
itérations 1, 2, . . . , i. Le ième niveau contient tous les sommets couverts par Si−1 mais pas
par Si . Pendant la ième itération, pour tout sommet v dans Si−1 , on appelle l’algorithme
A sur l’instance obtenue à partir de D en supprimant les iβ étiquettes collectées par
P (v) et tous les sommets qui ne sont pas sur un chemin entre le sommet v et le puits
t. On ajoute à Si l’ensemble des sommets Uv pour lesquels l’algorithme A retourne un
chemin Qu . Le chemin Pu obtenu en concaténant Qu au chemin Pv collecte exactement
iβ étiquettes distinctes. A la fin de la ième itération, les sommets de Si couverts par
d’autres sommets de Si sont supprimés de Si .

Correction et performance de l’algorithme Construction par niveauxβ,k


Lemme 1.12 Pour tout DAG étiqueté (D, l) et pour tous les entiers β et k, les chemins
de Construction par niveauxβ,k (D) collectent βk étiquettes.

Preuve Sans perte de généralité, nous supposons que la source s de D n’a pas d’étiquette
(une instance équivalente satisfaisant cette condition peut être obtenue en ajoutant à D
une nouvelle source s′ sans étiquette et un arc s′ s). Par induction sur i, nous prouvons
que pour tout sommet u ∈ Si , il existe un chemin entre s et u qui collecte exactement
βi étiquettes. Puisque S0 = {s} et que s n’a pas d’étiquette, la condition est vraie pour
i = 0. Supposons maintenant que la condition est satisfaite pour i − 1. Pendant la ième
itération de l’algorithme Construction par niveaux, si un sommet u est ajouté à Si

32
1
1.5. OP T ǫ -approximation pour Chemin le plus étiqueté

Algorithme 4 : Construction par niveauxβ,k


Données : Un DAG sommet-étiqueté (D, l)
Résultat : {Pu : u ∈ Sk } avec Pu su-chemins qui collectent exactement βk
étiquettes
S0 = {s}, P (s) = {s};
pour i = 1 . . . k faire
Si ← ∅;
pour tous les v ∈ Si−1 faire
Soit Dv,t − LP (v) la projection sur L − LP (v) de l’instance Dv,t ;
Soit {Qu : u ∈ Uv } les chemins retournés par A avec paramètre β sur
Dv,t − LP (v) ;
Si ← Si ∪ Uv ;
pour tous les u ∈ Uv faire
P (u) ← P (v).Q(u);

Si ← sources(Si );
retourner {Pu : u ∈ Sk }

alors l’algorithme A a calculé un chemin Qu qui collecte β étiquettes entre un sommet


v ∈ Si−1 et u. Par induction, il existe un chemin P (v) qui collecte β(i − 1) étiquettes
entre s et v. Puisque Qu a été calculé dans un graphe étiqueté dans lequel toutes les
étiquettes collectées par Pv ont été supprimées, le chemin Pv .Qu collecte exactement βi
étiquettes. 

Soit (D, l) un DAG étiqueté contenant un sy-chemin P qui collecte p étiquettes


distinctes. Soient u1 , . . . , up les sommets où une nouvelle étiquette est rencontrée pour
la première fois dans le chemin P. Par commodité, on fixe aussi u0 = s. Puisque s n’a
1
pas d’étiquette, u0 6= u1 . Soient βe = (β/c) α et µ la suite définie récursivement :

µ(0) := 0
µ(i + 1) := µ(i) + iβ + βe

Lemme 1.13 Pour tout i tel que µ(i) ≤ p, le sous-ensemble de sommets Si calculé par
Construction par niveauxβ,k (D) couvre uµ(i) .

Preuve Nous prouvons ce lemme par induction. S0 = {s} couvre u0 = s. Supposons


maintenant que v ∈ Si couvre uµ(i) . Le sous-chemin de P entre uµ(i)+1 et uµ(i+1) ap-
partient à Dv,t et contient iβ + βe étiquettes distinctes. Puisque |LP (v) | = iβ, le DAG
étiqueté (Dv,t , lv,t ) obtenu à partir de (D, l) en supprimant les étiquettes de Pv et les
sommets non couverts par v contient un chemin qui termine en uµ(i+1) et qui collecte au
moins βe étiquettes distinctes. Puisque l’algorithme A ∈ Aα , losrqu’on l’appelle sur Dv,t
avec β pour paramètre, il retourne un chemin terminant sur un ancêtre de uµ(i+1) . 

33
Chapitre 1. Chemin le plus étiqueté

Considérons maintenant que le DAG étiqueté (D, l), contient un sy-chemin P avec p
étiquettes distinctes. La procédure Construction par niveauxβ,k appelée sur D avec
2/α p α 1
α −1
β = ⌊( 2c 3 ) 2−α ⌋ et k = ⌊ β 1 ⌋ retourne un chemin qui collecte au moins (β − 1)(k − 1)

étiquettes et termine en un sommet v couvrant y. Mais pour p assez grand, (β − 1)(k − 1)
1
est équivalent à βk = c′ p 2−α , avec c′ une constante dépendante de c et α.
Il nous reste à confirmer que le sy-chemin termine bien en un sommet v couvrant y,
2
puisque par définition µ(k) = k βe + k(k−1)2 β ≤ k βe + k2 β, nous déduisons
1
β α −1  3 2−α
µ 1 ≤ 2 β α = p.
c α 2c α

Donc, uµ(k) est un sommet de P et par le Lemme 1.13, Sk doit contenir un sommet v
couvrant uµ(k) . Par le Lemme 1.12, Construction par niveauxβ,k retourne un chemin
′ 1
qui termine en v et qui collecte exactement βk = c′ pα étiquettes avec α′ = 2−α et donc
Construction par niveauxβ,k ∈ A 1 .
2−α
La construction précédente transforme tout algorithme polynomial A ∈ Aα en un
algorithme polynomial A′ ∈ A 1 , ce qui conclut la preuve du Théorème 1.6 et prouve
2−α
1
l’existence d’un algorithme polynomial facteur OP T ǫ pour tout ǫ > 0.

1.5.3 Version pondérée


Notons d’abord que Chemin le plus étiqueté pondéré peut être réduit à Chemin
le plus étiqueté en assignant à chaque étiquette l ∈ L de poids c(l) un ensemble Cl
de c(l) étiquettes de poids 1 et en séparant chaque sommet u en un chemin contenant
c(l(u)) sommets étiquetés par les étiquettes de l’ensemble Cl(u) . Cette réduction est
polynomiale si et seulement si les poids des étiquettes sont polynomiaux en la taille
de l’instance initiale. Ce n’est pas vrai en général. Toutefois, en mettant à l’échelle les
poids des étiquettes, on peut assurer des poids polynomiaux tout en préservant le facteur
d’approximation.
Soit λ := ⌊ OP2nT (D)
⌋ où n est le nombre de sommets dans le DAG D. Si λ ≥ 1, aucune
mise à l’échelle n’est nécessaire. Sinon, les poids de l’instance (D′ , l′ ) obtenus à partir de
(D, l) en remplaçant le poids c(l) de chaque étiquette l ∈ L par ⌊c(l)/λ⌋ sont clairement
polynomiaux en la taille de D. Ainsi, la réduction de D′ à sa version non pondérée mène
à un algorithme polynomial. Soit P le chemin retourné par l’algorithme dont le facteur
est OP1T ǫ sur l’instance non pondérée associée à D′ . Le poids (avant la mise à l’échelle)
des étiquettes collectées par P est au moins

λ × (OP T (D′ ))1−ǫ ≥ (λ × OP T (D′ ))1−ǫ


≥ (OP T (D) − nλ)1−ǫ
≥ ( 12 OP T (D))1−ǫ

La première inégalité est vraie car λ ≥ 1. La solution optimale S de D sur l’instance


échelonnée a un poids strictement supérieur à c(S)/λ−|S|, ainsi λOP T (D′ ) ≥ OP T (D)−

34
1.6. Collecter toutes les étiquettes avec un nombre minimum de chemins

nλ. Ceci nous mène à la seconde inégalité. Finalement, la dernière inégalité suit par
définition de λ. Nous en concluons que l’algorithme pour Chemin le plus étiqueté
pondéré qui consiste à mettre à l’échelle les poids d’une instance , à la transformer en
une instance de Chemin le plus étiqueté et à résoudre le problème sur cette instance,
a pour facteur OP1T ǫ .

1.6 Collecter toutes les étiquettes avec un nombre mini-


mum de chemins
Dans cette section, nous étudions un problème étroitement lié à Chemin le plus
étiqueté.

Problème 1.4 (MPCL)

Données: Un DAG sommet-étiqueté (D, l).


Problème: Trouver un nombre minimum de (D, l) dont l’union est tropicale.

En utilisant les résultats des sections précédentes, nous prouvons que MPCL n’ap-
partient pas à AP X et décrivons pour tout réel fixé ǫ > 0, un algorithme qui calcule
en temps polynomial une solution de MPCL dont le nombre de chemins est au plus
ln(|L(D)|)|L(D)|ǫ OP T .

1.6.1 MPCL n’est pas approximable avec un facteur constant


Théorème 1.7 A moins que P = N P, il n’existe aucun algorithme polynomial avec un
facteur constant pour MPCL même restreint aux instances D contenant un chemin bien
coloré, i.e OP T (D) = 1.

Preuve Supposons, par contradiction, qu’il existe un algorithme ALG avec un facteur
α pour MPCL. Soit (D, l) un DAG sommet-étiqueté avec un chemin collectant toutes
les étiquettes, ALG calcule en temps polynomial au plus α chemins qui collecte toutes
les étiquettes de D. Un de ces chemins doit collecter au moins |L|/α étiquettes. Ainsi,
l’existence d’un algorithme avec un facteur constant pour MPCL implique l’existence
d’un algorithme avec un facteur constant pour Chemin le plus étiqueté, ce qui est
impossible à moins que P = N P par le Théorème 1.4. 

1.6.2 Un algorithme d’approximation pour MPCL


Théorème 1.8 Pour tout ǫ > 0, il existe un algorithme Bǫ tel que pour tout DAG
étiqueté (D, l), Bǫ calcule en temps polynomial une solution de l’instance D de MPCL
avec un facteur ln(|L(D)|)|L(D)|ǫ de l’optimum.

35
Chapitre 1. Chemin le plus étiqueté

Preuve Soit (D, l) une instance de MPCL avec L(D) l’ensemble d’étiquettes, nous défi-
nissons par N la valeur optimale de (D, l), i.e le nombre minimum de chemins nécessaires
pour collecter toutes les étiquettes de (D, l).
On construit (D′ , l′ ) comme N copies de (D, l) : (D1 , l), . . . , (DN , l) telles que pour
tout i < N , il existe un arc entre tout puits de Di et toute source de Di+1 . Dans
(D′ , l′ ), il existe un chemin qui collecte toutes les étiquettes de L(D). De plus, à partir
d’un ensemble de k chemins de D′ qui collectent toutes les étiquettes on peut extraire
un ensemble de kN chemins dans D qui collectent toutes les étiquettes. En devinant
N ≤ |L(D)|, (D′ , l′ ) peut être construit en temps polynomial. Par cette transformation,
nous nous ramenons à une instance où il existe un chemin qui collecte toutes les étiquettes
du DAG-étiqueté (OP T = 1). Nous décrivons un algorithme sur D′ . Par le Théorème 1.6,
pour tout ǫ > 0, il existe un algorithme Aǫ pour Chemin le plus étiqueté qui calcule
un chemin collectant|L(D′ )|1−ǫ étiquettes.
L’algorithme Bǫ pour MPCL est le suivant : on applique Aǫ sur D′ pour trouver un
chemin P0 , puis on supprime les étiquettes de P0 de D′ et on applique encore Aǫ pour
trouver un chemin P1 et on répète le processus jusqu’à ce que toutes les étiquettes soient
collectées. La valeur de la solution retournée par l’algorithme A est le nombre de fois où
l’algorithme Aǫ doit être utilisé sur D′ .
Nous définissons la fonction fǫ (x) := (|L(D′ )|ǫ − ǫx)1/ǫ qui est positive, convexe et
′ ǫ
décroissante sur l’intervalle réel [0, |L(Dǫ )| ]. Nous prouvons par induction que pour tout
entier positif i, fǫ (i) est une borne supérieure du nombre d’étiquettes qui restent après
la ième itération. Puisque fǫ (0) = |L(D′ )|, cette propriété est vraie pour i = 0.
Puisque f est une fonction convexe, nous avons

fǫ (x + 1) ≥ fǫ (x) + fǫ′ (x)


= fǫ (x) − (|L(D′ )|ǫ − ǫx)1/ǫ−1
= fǫ (x) − fǫ (x)1−ǫ

Par induction, il reste r ≤ fǫ (i) étiquettes après le ième itération. Puisqu’il existe un
chemin les collectant toutes, Aǫ retourne un chemin P avec au moins r1−ǫ étiquettes.
Après la suppression de ces étiquettes, il reste au plus r−r1−ǫ ≤ fǫ (i)−fǫ (i)1−ǫ étiquettes
dans D′ car la fonction x − x1−ǫ est croissante et r ≤ f (i). Ainsi, fǫ (i + 1) est bien une
borne supérieure du nombre d’étiquettes qui restent après la i + 1ème itération.
1 ln(1−ǫ)
Nous remarquons que fǫ (|L(D′ )|ǫ ) = |L(D′ )|(1 − ǫ) ǫ = |L(D′ )| exp ǫ .
Or, limǫ→0 ln(1−ǫ)
ǫ = − limǫ→0 ln(1−ǫ)−ln(1)
−ǫ = − ln′ (1) = −1.
1 1
1 1
La fonction (1 − ǫ) ǫ tend donc vers e par valeur inférieure, donc (1 − ǫ) < e .
ǫ

Nous en déduisons que fǫ (|L(D′ )|ǫ ) < |L(D
e
)|
et par continuité, en réitérant le même
′ ′ ǫ
raisonnement, fǫ (ln(|L(D )|)|L(D )| ) < 1.
Le nombre de chemins retournés par Bǫ sur D′ est au plus ln(|L(D′ )|)|L(D′ )|ǫ .
On peut donc calculer en temps polynomial une solution sur D de valeur au plus
ln(|L(D)|)|L(D)|ǫ N . 

36
1.7. Les algorithmes non polynomiaux

1.7 Les algorithmes non polynomiaux


Par le résultat négatif de la Section 1.3, il n’existe aucun algorithme polynomial
qui résout le problème Chemin le plus étiqueté avec un facteur constant. Dans
la Section 1.4, nous présentons des algorithmes d’approximation en temps polynomial.
Sur certaines instances, une solution renvoyée par un de ces algorithme peut être assez
éloignée de la solution optimale.
Dans cette section, nous relâchons la contrainte de polynomialité pour obtenir un
algorithme qui renvoie une solution optimale. Ici, la performance d’un algorithme n’est
plus jugée par son facteur d’approximation mais par sa complexité.
Le premier algorithme qui vient à l’esprit consiste à énumérer tous les chemins pos-
sibles et à renvoyer le chemin qui collecte le plus d’étiquettes, la complexité de cet
algorithme est O(|V |!).
Nous présentons ici un algorithme qui est FPT avec pour paramètre le nombre d’éti-
quettes.

1.7.1 Programmation dynamique


Soit un graphe étiqueté (D = (V, E), l : V → L). Nous définissons la fonction P
suivante, P : V × 2L → B = {0, 1}. Pour x ∈ V, L ⊆ L, P (x, L) = 1 si et seulement s’il
existe un chemin entre une source et x qui collecte exactement les étiquettes de L. Plus
formellement :


 1 si δ − (x) = ∅, L = {l(x)}.


 0 si δ − (x) = ∅, L 6= {l(x)}.
P (x, L) := max max(P (x′ , L), P (x′ , L − {l(x)})) si l(x) ∈ L.



 x′ ∈δ − (x)

0 sinon.

Où δ − (x) est l’ensemble des arcs entrants dans x. Pour simplifier, si x est une source,
le seul ensemble pour lequel P (x, L) n’est pas nul est {l(x)}. Si x n’est pas une source, un
chemin arrive en x en ayant collecté l’ensemble d’étiquettes L si un de ces prédécesseurs
a collecté l’ensemble L ou l’ensemble L − {l(x)}.

Théorème 1.9 P (x, L) = 1 si et seulement s’il existe un chemin entre une source et x
qui collecte exactement les étiquettes de L.

La preuve de ce théorème est directe par induction et par construction de la fonction


P (x, L).

Théorème 1.10 L’algorithme qui consiste à calculer P (x, L) pour tout (x, L) ∈ V × 2L
et à renvoyer le chemin collectant le plus d’étiquettes résout le problème Chemin le
plus étiqueté et s’effectue en temps O(2|L| |E|).

Preuve La correction de l’algorithme est directe par le théorème précédent. Pour la


complexité, on peut voir l’algorithme comme suit. Pour chaque ensemble d’étiquette

37
Chapitre 1. Chemin le plus étiqueté

L ∈ 2L , on considère au plus une fois chaque arc (x′ x), pour le calcul de P (x, L). Ce qui
nous donne directement la complexité désirée. 

Pour conclure, l’algorithme est FPT avec pour paramètre nombre d’étiquettes dans
le graphe. Les questions de trouver un algorithme FPT avec pour paramètre OP T ou le
nombre de niveaux du graphe restent ouverte.

38
Chapitre 2

Arbres couvrants de poids


minimum sous contraintes

La recherche d’un arbre couvrant de poids minimum est un problème classique d’op-
timisation combinatoire. En effet, c’est un des plus simples problèmes de connexité. Dans
le domaine de la conception de réseaux la contrainte de connexité est généralement pré-
sente et des conditions plus fortes peuvent être requises, comme la multi-connexité qui
garantit une certaine résistance aux pannes. Une autre thématique importante est la
distance qui joue un rôle crucial dans les délais. Les distances considérées peuvent être
requises sur certains sommets du graphes ou bien sur l’ensemble de tous les sommets
pour des mesures comme le diamètre. Enfin l’intermédiarité est une contrainte dans les
réseaux qui permet d’imposer une certaine forme globale. Celle-ci demande à certains
sommets de séparer d’autres sommets dans le réseau, ce premier ensemble agit comme
une coupe, qui est une notion centrale de la conception de réseaux et duale à la connexité.
Dans ce chapitre, nous considérons des problèmes obtenus par l’ajout de certaines
contraintes d’intermédiarité ou de distance au problème d’arbre couvrant minimum.
Les contraintes ajoutées ne portent que sur quelques sommets de manière à ce que le
problème d’optimisation combinatoire lié qui ne considère que ces contraintes ajoutées
reste polynomial. De plus notre objectif est aussi d’esquisser une frontière parmi les
problèmes basés sur l’arbre couvrant de poids minimum entre les problèmes polynomiaux
et ceux qui ne le sont pas.
Nous détaillons les trois variantes du problème d’arbre couvrant minimum que nous
considérons dans ce chapitre. Soit un graphe G = (V, E) pondéré par une fonction
poids c : V → Q. Etant donné un sommet central v ∈ V et un ensemble de sommets
spéciaux u = {u1 , u2 , ..., uk } ⊆ V , la première variante consiste à trouver un arbre T de
poids minimum tels que pour tout i, j ∈ {1, ..., k}, la chaîne entre ui et uj passe par le
sommet central v. Etant donné deux sommets disjoints u, v ∈ V , et un entier k ∈ N fixé
(pas en entrée du problème), la seconde variante consiste à trouver un arbre T de poids
minimum tel que la chaîne entre u et v contient au moins k arêtes. Le troisième problème
est semblable au second, sauf que l’entier k est une entrée du problème et que l’on impose
d’avoir une chaîne entre u et v qui contient au plus k arêtes. Nous démontrons dans la

39
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

Section 2.3 et le Section 2.4 que les deux premiers problèmes présentés ci-dessus peuvent
être résolus en temps polynomial comme un ou plusieurs problèmes de recherche d’un
indépendant de poids maximum commun à deux matroïdes. Dans la Section 2.2, nous
rappelons donc quelques notions sur les matroïdes, notamment le problème de recherche
d’un indépendant de poids maximum commun à deux matroïdes. Dans cette section, nous
définissons aussi le matroïde U -graphique qui nous est utile dans la résolution des deux
problèmes. Le troisième problème qui est étudié dans la Section 2.5 ne peut pas être résolu
en temps polynomial à moins que P = N P . Dans cette section, nous prouvons même
que pour tout ǫ ∈ R, il n’existe pas d’algorithme avec un facteur constant 2−ǫ qui résout
le problème en temps polynomial à moins que P = N P . Nous utilisons pour cela une
réduction polynomiale du problème Chemin le plus étiqueté du chapitre précédent
vers le problème considéré. Nous donnons aussi un algorithme simple et polynomial qui
résout le problème avec un facteur 2. Cet algorithme est donc optimal du point de vue de
l’approximation polynomiale avec un facteur constant. Dans la Section 2.6, nous étudions
ce dernier problème sur la classe d’instance des graphes à largeur arborescente bornée
par un entier L ∈ N. Nous montrons à l’aide d’un travail classique de programmation
dynamique, que ce dernier problème peut être résolu en temps polynomial sur cette
classe d’instance.
Au lieu de considérer des contraintes ”locales” sur quelques sommets, certains cher-
cheurs se sont intéressés à la recherche d’arbre couvrant minimum avec des contraintes
globales. Il existe par exemple par exemple des contraintes sur le diamètre [18, 34] ou
sur le degré [29, 54]. La contrainte sur le degré impose que le degré de chaque sommet
v du graphe soit borné par un entier bv dans l’arbre couvrant. Si l’on considère le cas
d’une borne uniforme égale à 2, le problème devient le problème du Chemin Hamiltonien
de coût minimum. Une approche intéressante pour ce problème est de relâcher un peu
la contrainte de degré. Si l’on s’autorise à avoir un degré qui est au plus dv + 2, on
peut obtenir en temps polynomial une solution dont le coût est au plus le coût de la
solution optimale sur le problème de base [29]. Ce résultat a été amélioré dans [54], où
la relaxation n’est plus d’un facteur additif de 2 mais de 1. Il existe un algorithme pour
trouver un arbre couvrant de diamètre minimum. Pourtant, le problème de trouver un
arbre de coût minimum avec diamètre borné est N P -difficile [34].

2.1 Arbre couvrant de poids minimum


Rappelons d’abord le problème de l’arbre couvrant de poids minimum.
Problème 2.1 (Arbre couvrant de poids minimum)

Données: Un graphe G = (V, E), une fonction poids c : E → Q+


Problème: Trouver un arbre couvrant T de G qui minimise c(T ).

P
Par abus de notation, c(T ) = e∈E(T ) c(e), cette notation est reprise de nombreuses
fois au cours de cette thèse.

40
2.2. Matroïdes

Comme mentionné dans l’introduction, Otakar Boruvka a été le premier à donner un


algorithme polynomial résolvant ce problème. Néanmoins, un des algorithmes les plus
connus est l’algorithme de Kruskal conçu en 1956 par son homonyme dans l’article [45].
Nous le présentons ci-dessous :
Algorithme 5 : Algorithme de Kruskal
Données : Un graphe G = (V, E), une fonction poids c : E → Q+
Résultat : Un arbre couvrant T = (V, E ′ ) de poids minimum.
Trier les arêtes dans l’ordre croissant, E = {e1 , e2 , ..., em } ;
E ′ ← ∅;
pour tous les i ∈ {1, ..., m} faire
si (V, E ′ ∪ {ei }) est acyclique alors
E ′ ← E ′ ∪ {ei };

On peut adapter cet algorithme afin de compléter de manière optimale n’importe


quelle forêt de G en un arbre couvrant. Il suffit pour cela d’initialiser E ′ avec les arêtes
de cette forêt.
Plus généralement, tout algorithme résolvant le problème de l’arbre couvrant de
poids minimum peut s’adapter afin de compléter optimalement n’importe quelle forêt.
Il suffit de contracter toute composante connexe de la forêt en un sommet et de lancer
l’algorithme d’arbre couvrant de poids minimum sur le graphe contracté.

2.2 Matroïdes
Nous donnons ici des définitions et notions sur les matroïdes. Nous ajoutons aussi
quelques exemples de matroïdes, notamment le matroïde graphique qui correspond aux
forêts d’un graphe. Toutes les notions de cette section sont inspirées de l’ouvrage [53],
voir aussi le livre [50] pour une étude plus poussée des matroïdes.

Définition 2.1 (Matroïde) Un couple (S, I) est un matroïde si S est un ensemble fini
et I est une collection non vide de sous-ensembles de S satisfaisant :
(M1) Si I ∈ I et J ⊆ I, alors J ∈ I ;
(M2) Si I, J ∈ I et |I| < |J|, alors ∃z ∈ J \ I tel que I ∪ {z} ∈ I.

Étant donné un matroïde (S, I), un sous-ensemble I de S est dit indépendant si I


appartient à I et dépendant sinon. Pour U ⊆ S, un sous-ensemble B de U est appelé
une base de U si B est un ensemble indépendant maximal du point de vue de l’inclusion,
c’est-à-dire que B ∈ I et il n’existe pas d’ensemble Z ∈ I tel que B ⊂ Z ⊆ U . Un
ensemble B est simplement une base si il est une base de S.
Sous la condition (M1) de la Définition 2.1, la condition (M2) est équivalente à :
(M2’) pour tout sous-ensemble U ⊆ S, deux bases de U ont la même taille.
Il est d’ailleurs possible de définir un matroïde par une axiomatique sur les bases.

41
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

Définition 2.2 Si S est un ensemble fini et B est une collection non vide de sous-
ensembles de S telle que :
- Si A, B ∈ B et a ∈ A \ B, alors ∃b ∈ B \ A tel que A \ {a} ∪ {b} ∈ B.
alors il existe un matroïde sur S dont les bases sont B.

Il existe d’autres axiomatiques pour définir les matroïdes, comme par exemple avec
les ensembles minimaux dépendants, appelés les circuits.
Toutes ces définitions reprennent le champ lexical des espaces vectoriels, un exemple
de matroïde non-fini est le couple (Rn , I) où une famille de vecteurs X appartient à I
si les vecteurs qui la composent sont linéairement indépendants, on parle d’ailleurs de
famille de vecteurs indépendants.
La proposition suivante relie les matroïdes et les arbres.

Proposition 2.1 (Matroïde graphique) Soit G = (V, E) un graphe et G la collection


des sous-ensembles de E qui forment une forêt. (E, G) est un matroïde. Si le graphe G
est connexe, ses bases sont les arbres couvrants de G.

Preuve La condition (M1) de la définition des matroïdes est vérifiée car l’acyclicité est
une propriété close par sous-ensemble. Soit F ⊆ E. Par définition, chaque base B de
F est une forêt U contenue dans F maximale du point de vue de l’inclusion. U forme
un arbre couvrant dans chaque composante connexe de (V, F ). Donc U contient |V | − k
arêtes avec k le nombre de composantes connexes de (V, F ). Chaque base de F contient
donc |V | − k arêtes, ce qui prouve la condition (M2’) et termine la preuve. 

Dans ce chapitre, nous recherchons des arbres couvrants avec des contraintes sup-
plémentaires, nous définissons dans la sous-section suivante un nouveau matroïde qui
exprime la séparation de certains sommets dans un graphe.

2.2.1 Matroïde U -graphique


Définition 2.3 (Matroïde U -graphique) Soit G = (V, E) un graphe connexe, U =
{u1 , u2 , ..., uk } ⊆ V , la collection d’ensemble notée F(U, G) est composée des sous-
ensembles F de E qui forment une forêt où chaque composante connexe contient au plus
un élément de U . C’est-à-dire que pour tout couple ui , uj ∈ U , ui et uj n’appartiennent
pas à la même composante connexe de (V, F ).

Proposition 2.2 (E, F(U, G)) est un matroïde appelé matroïde U -graphique de G.

Preuve Supprimer une arête ne crée pas un cycle et ne place pas non plus deux sommets
de U dans la même composante, donc la propriété (M1) des matroïdes est satisfaite.
Pour prouver que (E, F(U, G)) satisfait (M2), nous considérons deux ensembles d’arêtes
A, B ∈ F(U, G), avec |A| < |B|. Soit CA , CB ⊆ V les ensembles de composantes connexes
de (V, A) et (V, B) qui ne contiennent pas d’élément de U . Puisque |A| < |B| et que
les graphes sont acycliques, les composantes connexes de (V, A) sont strictement plus
nombreuses que les composantes connexes de (V, B). Comme une composante connexe de

42
2.2. Matroïdes

(V, A) ou (V, B) contient au plus un élément de U , le nombre de composantes connexes


qui contiennent un élément de U est le même dans (V, A) et (V, B). Nous déduisons
des deux affirmations précédentes que |CA | > |CB |. S’il existe une composante connexe
S ∈ CA , dont l’ensemble d’arêtes δ(S) = {xy ∈ E, x ∈ S, y ∈ V − S} contient une
arête e ∈ B, alors (V, A ∪ {e}) est un graphe acyclique dont les composantes connexes
contiennent au plus un élément de U et (M2) est satisfait. Supposons qu’il n’existe pas
une telle composante, alors toute composante S ∈ CA contient au moins une composante
de CB , ce qui mène à une contradiction avec |CA | > |CB |. 

Il est aussi possible de définir le matroïde précédent par l’ensemble des ses bases
B. Les éléments de B sont les forêts de k composantes connexes où chacune de ces
composantes contient exactement un élément de U .

2.2.2 Interactions entre deux matroïdes


Un seul matroïde n’est pas suffisant pour caractériser les solutions réalisables des
problèmes que nous considérons dans ce chapitre. Dans cette section, nous explicitions
les différentes interactions possibles entre deux matroïdes.
La plus simple interaction se fait lorsque deux matroïdes n’ont pas le même ensemble
de base S, il est alors possible de définir l’union de deux matroïdes.

Théorème 2.1 (Union de deux matroïdes disjoints) Soient (S, I) et (S ′ , I ′ ) deux


matroïdes avec S et S ′ deux ensembles disjoints, le couple (S ∪ S ′ , I ∪ I ′ ) défini par
I ∪ I ′ := {I ∪ I ′ , I ∈ I et I ′ ∈ I ′ } est un matroïde.

Lorsque deux matroïdes (S, I) et (S, I ′ ) partagent leur ensemble de base, il est in-
téressant de considérer l’intersection (S, I ∩ I ′ ) de ces deux matroïdes. (S, I ∩ I ′ ) n’est
pas un matroïde car la condition (ii) n’est pas vérifiée. En effet, soient deux ensembles
I, J ∈ I ∩ I ′ et |I| < |J|. Il existe z ∈ J \ I tel que I ∪ {z} ∈ I et il existe z ′ ∈ J \ I tel
que I ∪ {z ′ } ∈ I ′ mais il n’y a aucune raison pour laquelle I ∪ {z} ∈ I ′ ou I ∪ {z ′ } ∈ I.
Néanmoins, nous nous intéressons quand même à l’intersection de deux matroïdes
car il est impossible (à notre connaissance) d’exprimer les problèmes de ce chapitre
avec un seul matroïde. Par contre, nous pouvons les exprimer par la recherche d’un
ensemble indépendant commun à deux matroïdes. L’un des matroïdes est le matroïde
graphique qui nous permet d’assurer l’acyclicité du graphe, le deuxième matroïde quant
à lui, exprime la contrainte additionnelle du problème. Nous présentons ci-dessous le
problème de l’indépendant de poids maximum commun à deux matroïdes.

Problème 2.2 (Indépendant de poids maximum commun à deux matroïdes)

Données: Deux matroïdes (E, F1 ), (E, F2 ), une fonction poids c : E → Q+ .


Problème: Pour tout k ≤ |E|, trouver un ensemble X ∈ F1 ∩ F2 de cardinalité k tel
que c(X) est maximum.

43
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

Edmonds a prouvé que ce problème se résout en temps polynomial [25]. Notons que
le problème Indépendant de poids minimum commun à deux matroïdes se réduit
facilement au problème de maximisation en transformant les poids en leur opposé.

Théorème 2.2 (Edmonds) Il existe un algorithme polynomial qui résout le problème


Indépendant de poids maximum commun à deux matroïdes.

Cet algorithme consiste à augmenter itérativement la cardinalité d’un indépendant


pour les deux matroïdes tout en conservant à chaque étape un indépendant de poids
maximum. Pour augmenter la cardinalité d’un indépendant I, il trouve une chaîne amé-
liorante dans un graphe biparti sur (I, E \ I) dont les deux extrémités sont dans E \ I.
Appliquer cette chaîne consiste à faire la différence symétrique entre les sommets de cette
chaîne et I, ce qui augmente la cardinalité de 1. Le graphe est construit de manière à ce
que la transformation produise un indépendant pour les deux matroïdes, restant ainsi
dans l’intersection. De plus, en choisissant une chaîne de poids maximum dont le poids
correspond à la somme des poids des éléments ajoutés moins ceux des éléments enlevés,
l’algorithme garantit à chaque étape une augmentation optimale de la chaîne considé-
rée. Par induction, il renvoie donc un indépendant de poids maximum pour toutes les
cardinalités.

2.3 Arbre couvrant minimum avec un sommet intermé-


diaire
Problème 2.3 (Arbre couvrant minimum avec un sommet intermédiaire)

Données: Un graphe G = (V, E), une fonction poids c : E → Q+ , un sommet central


v ∈ V , U = {u1 , u2 , ..., uk } ⊆ V .
Problème: Trouver un arbre couvrant T de G de poids minimum tel que la chaîne dans
T entre toute paire de sommets de U passe par v.

La contrainte d’intermédiarité s’exprime aussi comme suit : la suppression de v dans


T donne une forêt dans laquelle tous les sommets de U sont dans des composantes
connexes différentes.

Sans perte de généralité, nous considérons des graphes complets. En effet, si le graphe
n’est pas complet, il suffit d’ajouter des arêtes avec un coût prohibitif entre les sommets
qui ne sont pas adjacents de manière à le rendre complet sans changer les solutions
optimales. Cela assure l’existence d’une solution et reste équivalent au cas général.

44
2.3. Arbre couvrant minimum avec un sommet intermédiaire

2.3.1 Des tentatives infructueuses de résolution du problème Arbre


couvrant minimum avec un sommet intermédiaire
La première question naturelle est de savoir si un seul matroïde est suffisant pour
définir le problème. Nous définissons le couple système (E, H′ ) où H′ est constitué des
ensembles d’arêtes F ⊆ E tels que :
(i) Le graphe (V, F ) est acyclique ;
(ii) ∀i, j ∈ {1, ..., k} , ui et uj sont dans différentes composantes connexes de (V −
{v}, F − Ev ).
(E, H′ ) n’est pas un matroïde. En effet, considérons les deux arbres T = (V, F ) et
T = (V, F ′ ) sur le même graphe G = (V, E) représentés par les schémas de la Figure 2.1.
Le sommet central de l’instance est v et les sommets à séparer sont u1 et u2 . Il n’existe
aucune possibilité d’échange entre ces deux solutions du problème. Pour obtenir un arbre
à partir du sous-ensemble d’arêtes F \ {e2 }, on doit connecter C2 avec V \ C2 . L’unique
arête de F ′ qui traverse la coupe (C2 , V \ C2 ) est f ′ . L’ensemble d’arêtes F \ {e2 } ∪ {f ′ }
n’est pas une solution car la chaîne entre u1 et u2 ne passe pas par v. Ce qui implique
que (E, H′ ) n’est pas un matroïde.

u1 C∅ C 2 u2 u1 C∅ C 2 u2
C1 C1 ′
f

e′1
e0 e2 e0

v
T = (V, F ) v
T ′ = (V, F ′)

Figure 2.1 – Un exemple qui montre que (E, H′ ) n’est pas un matroïde.

La deuxième idée pour construire un algorithme polynomial avec une complexité


moindre est de trouver une base du matroïde U -graphique et de la compléter de manière
optimale en un arbre couvrant avec des arêtes adjacentes à v. Comme illustré dans la
Figure 2.2, l’ensemble indépendant obtenu par cet algorithme n’est pas nécessairement
optimal. Il n’est pas non plus possible de le transformer en une solution optimale par
une succession d’améliorations locales.

2.3.2 Arbre couvrant minimum avec un sommet intermédiaire se ré-


duit à Indépendant de poids maximum commun à deux matroïdes
Dans cette sous-section, nous prouvons qu’une instance de Arbre couvrant mini-
mum avec un sommet intermédiaire se réduit à une instance du problème Indépen-
dant de poids maximum commun à deux matroïdes. Pour cela, nous identifions
deux matroïdes définis sur l’ensemble des arêtes tel qu’un ensemble indépendant com-
mun à ces deux matroides de cardinalité |V | − 1 est un arbre couvrant satisfaisant la
contrainte d’intermédiarité, et réciproquement.

45
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

v
2

2
100
1
2 1
1
2
u1 1 u2
2 1
1
2 1
1
2
2 1

Figure 2.2 – Sur cette instance où le sommet central est v et où U = {u1 , u2 }, l’algo-
rithme proposé dans la Sous-section 2.3.1 trouve la solution donnée par les arêtes solides
alors que la solution optimale du problème est constituée de toutes les arêtes en pointillés
plus l’arête vu2 .

Soit (G, c, v, U ) une instance de Arbre couvrant minimum avec un sommet


intermédiaire. Nous définissons Ev := {vx : vx ∈ E} le cocycle de v.
En utilisant la Proposition 2.2, (E − Ev , F(U, G − {v}) est un matroïde, où G − {v}
est le graphe obtenu en supprimant dans G le sommet v et ses arêtes adjacentes.
Nous voulons étendre ce matroïde à E. En faisant l’union du matroïde trivial (Ev , P(Ev ))
et du matroïde (E − Ev , F(U, G − {v}), par le Théorème 2.1, nous obtenons un matroïde
(E, H) où F ⊆ E appartient à H si et seulement si :
(i) Le graphe (V − {v}, F − Ev ) est une forêt de G − {v} ;
(ii) ∀i, j ∈ {1, ..., k} , ui et uj sont dans différentes composantes connexes de (V, F −
Ev ).
Nous considérons l’instance Indépendant de poids maximum commun à deux
matroïdes sur (E, G) (le matroïde graphique de E) et (E, H). Ces deux matroïdes sont
représentés sur la Figure 2.3.

Proposition 2.3 Soit F ⊆ E. Le graphe (V, F ) est un arbre couvrant qui satisfait la
contrainte d’intermédiarité si et seulement si F ∈ G ∩ H et |F | = |V | − 1.

Preuve Soit T = (V, F ) un tel arbre couvrant. Puisque T est un arbre couvrant, F ∈ G
et |F | = |V | − 1, et v est un sommet central de T donc F ∈ H.
Soit F un ensemble d’arêtes qui satisfait les contraintes, puisque F est acyclique et
|F | = |V | − 1, (V, F ) est un arbre couvrant de G. Parce que F ∈ H, lorsqu’on retire v

46
2.3. Arbre couvrant minimum avec un sommet intermédiaire

u1 u2 u1 u2
u3 u3

v v

Figure 2.3 – Le dessin de gauche est l’exemple d’un ensemble indépendant pour le
matroïde H, il assure que la suppression de v déconnecte les sommets de U . Le dessin
de droite est l’exemple d’un ensemble indépendant pour le matroïde G, il assure que le
graphe est acyclique.

à (V, F ), tous les ui sont dans différentes composantes et v est donc sur la chaîne entre
toute paire de sommets spéciaux. 

Le problème Arbre couvrant minimum avec un sommet intermédiaire est


donc une instanciation du problème Indépendant de poids maximum commun à
deux matroïdes. Grâce au Théorème 2.2, nous concluons cette section par le résultat
suivant.

Théorème 2.3 Arbre couvrant minimum avec un sommet intermédiaire se


résout en temps polynomial.

2.3.3 Application
Nous considérons le problème suivant avec k ∈ N fixé :

Problème 2.4

Données: Un graphe pondéré connexe G = (V, E, c), deux sommets u, v ∈ V .


Problème: Trouver un graphe partiel connexe G′ = (V, E ′ ) avec |E ′ | = |V | − 1 + k de
poids minimum tel qu’il existe k chaînes sommets disjoints entre u et v.

Théorème 2.4 Le Problème 2.4 se réduit en temps polynomial au problème Arbre


couvrant minimum avec un sommet intermédiaire.

Preuve Etant donné un graphe pondéré G = (V, E, c) et deux sommets u, v ∈ V . On


construit une instance G′ de Arbre couvrant minimum avec un sommet inter-
médiaire. Dans un premier temps, on sépare le sommet u en k sommets u1 , u2 , ..., uk
ayant le même voisinage que u avec même poids sur les arêtes. Si uv ∈ E, l’arête n’est

47
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

pas dupliquée, seule l’arête u1 v est ajoutée à G′ . Nous considérons l’instance de Arbre
couvrant minimum avec un sommet intermédiaire sur G′ avec v comme sommet
central et U = {u1 , u2 , ..., uk } l’ensemble des sommets spéciaux. Nous devons prouver
que toute solution T ′ de l’instance (G′ , v, U ) induit une solution T de même coût sur
l’instance (G, u, v). Pour tout i ∈ {1, 2, ..., k}, il existe une chaîne Pi entre ui et v qui ne
passe par aucun autre sommet uj . Pour retrouver une solution T de l’instance (G, u, v),
il suffit de contracter les sommets de U en un sommet u. Pour tout i ∈ {1, 2, ..., k}, Pi est
une chaîne entre u et v disjointe des autres chaînes. De plus, par construction, T est une
solution de (G, u, v) de même coût que T ′ . Réciproquement, toute solution T de (G, u, v)
implique une solution T ′ de même coût sur (G′ , U, v). Il existe k chaînes disjointes P1 ,
P2 ,...,Pk entre u et v. On appelle ei la première arête de Pi entre u et v. Dans T ′ , ui
est une extrémité de ei , et l’autre extrémité est la même que dans G. Ainsi, T ′ est une
solution de (G, U, v) de même coût que T . 

Par le théorème précédent ainsi que le Théorème 2.3, nous déduisons directement le
théorème suivant.

Théorème 2.5 Le Problème 2.4 se résout en temps polynomial.

2.4 Arbre couvrant minimum avec une k + -chaîne


Définition 2.4 Soit G = (V, E), pour tout k ∈ N, une k + -chaîne de G est une chaîne
avec au moins k arêtes.

Problème 2.5 (Arbre couvrant minimum avec une k + -chaîne)

Données: Un graphe G = (V, E), u, v ∈ V et une fonction de poids c : E → Q+ .


Problème: Trouver un arbre couvrant T de poids minimum tel que T contient une k + -
chaîne entre u et v.

Dans cette section, nous considérons le problème où k n’est pas une entrée du pro-
blème. Si k est une entrée du problème, pour k = |V | − 1, le problème revient à trouver
un chemin hamiltonien de G de poids minimum. Il n’est donc pas approximable avec un
facteur constant à moins que P = N P .

2.4.1 Arbre couvrant minimum avec une k + -chaîne se résout avec le


problème Indépendant de poids maximum commun à deux ma-
troïdes
Dans cette section, nous décrivons un algorithme polynomial pour le problème Arbre
couvrant minimum avec une k + -chaîne. La première étape de cet algorithme consiste
à trouver les k premiers sommets (u exclus) dans la k + -chaîne entre u et v. Cela nous

48
2.4. Arbre couvrant minimum avec une k + -chaîne

mène à un facteur |V |k dans la complexité de l’algorithme puisque l’on doit essayer


toutes les chaînes possibles de k sommets commençant par u.
Soit G(u = u0 , u1 , ..., uk ) le graphe obtenu à partir de G en contractant les som-
mets u0 , u1 , . . . uk−1 en un unique sommet u′ et en supprimant l’arête u′ uk . Si le graphe
contient une multi-arête, on conserve uniquement l’arête de poids minimum. L’Algo-
rithme 6 calcule un sous-ensemble des arêtes F ⊆ E ′ de coût minimum qui induit une
forêt de deux arbres, l’un des deux contient le sommet u′ et l’autre contient les sommets
uk et v (Voir Figure 2.4). Comme expliqué ci-dessous, cette étape se réalise en temps
polynomial en utilisant une instance du problème Indépendant de poids maximum
commun à deux matroïdes. L’algorithme calcule l’arbre couvrant obtenu à partir de
F en ajoutant l’arête u′ uk et en remplaçant le sommet u′ par la chaîne (u0 , u1 , . . . , uk−1 ).
Nous définissons par Pk l’ensemble des chaînes de longueur k de G qui commencent en
u. Ainsi, pour toute chaîne (u0 , u1 , . . . , uk ) ∈ Pk , l’algorithme calcule un arbre couvrant
T (u0 , u1 , . . . , uk ) de la manière expliquée ci-dessus et retourne ensuite celui de coût mi-
nimal.

u
uk−1 uk v

Figure 2.4 – Contracter la chaîne de u à uk−1 en u′ et supprimer uk−1 uk place uk et v


dans une autre composante que celle de u′

Une description plus formelle de l’algorithme est donnée ci-dessous :


Algorithme 6 : Test des différents k + -chaînes
Données : Un graphe G = (V, E), une fonction poids c : V → Q+ , u, v ∈ V
Résultat : un arbre couvrant contenant une k + -chaîne entre u et v
pour tous les P = (u0 , u1 , . . . , uk ) ∈ Pk faire
G′ ← G(P );
Calculer un sous-ensemble F de coût minimum tel que
F ∈ F(G′ , {u′ , uk }) ∩ F(G′ , {u′ , v}) avec |F | = |V | − (k − 1) − 2;
T (P ) ← P ∪ F ;
retourner L’arbre T ∈ (T (P ))P ∈Pk de coût minimum

Théorème 2.6 Soit k ∈ N un fixé , l’algorithme Test des différents k + -chaînes


résout le problème Arbre couvrant minimum avec une k + -chaîne en temps poly-
nomial.

Preuve Par construction, chaque arbre (T (P ))P ∈Pk est couvrant et contient une k + -
chaîne entre u et v. Soit T ∗ une solution optimale de Arbre couvrant minimum avec

49
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

une k + -chaîne et P ∗ = (u0 , . . . , uk ) les k premières arêtes de la chaîne de u vers v. La


forêt F ∗ = T ∗ \ P ∗ induit dans G′ une forêt composée de deux arbres, l’un contenant u′
et l’autre contenant uk et v. Ainsi, F ∗ appartient à F(G′ , {u′ , uk }) ∩ F(G′ , {u′ , v}) et son
coût est au moins le coût de F = T (P ∗ ) \ P ∗ . Le coût de T (P ∗ ) est au plus le coût de
T ∗ et l’algorithme Test des différents k + -chaînes renvoie une solution optimale.
Par la Proposition 2.2, (F(G′ , {u′ , uk }), E ′ ) et (F(G′ , {u′ , v}), E ′ ) sont deux matroïdes.
L’algorithme Test des différents k + -chaînes est donc polynomial et s’effectue en
temps O(|V |k ) fois le temps d’un algorithme qui résout le problème Indépendant de
poids maximum commun à deux matroïdes. 

2.5 Arbre couvrant minimum avec un k − -chaîne


Définition 2.5 Soit G = (V, E), pour tout k ∈ N, une k − -chaîne de G est une chaîne
avec au plus k arêtes.
Problème 2.6 (Arbre couvrant minimum avec une k − -chaîne)

Données: Un graphe G = (V, E), une fonction coût c : E → Q+ , deux sommets u, v ∈ V


et un entier k ∈ N.
Problème: Trouver un arbre couvrant T de poids minimum tel que T contient un k − -
chaîne entre u et v.

Dans cette section, nous considérons cette fois ci que k est une entrée du problème.
Si k est un entier fixé, le problème se résout en temps polynomial en listant toutes les
k − -chaînes possibles entre u et v (qui sont en nombre polynomial) et en les complétant
de manière optimale.

L’algorithme d’approximation avec un facteur 2 que nous présentons dans la sous-


section suivante consiste à calculer une k − -chaîne P de coût minimum et à la compléter
de manière optimale en un arbre couvrant T de G. Dans cette section, en utilisant une
réduction à partir de Chemin le plus étiqueté et un résultat d’inapproximabilité sur
ce problème, nous prouvons que, pour tout ǫ > 0, il n’existe pas d’algorithme d’approxi-
mation avec un facteur 2 − ǫ à moins que P = N P .

2.5.1 Algorithme Complétion de la k − -chaîne

Algorithme 7 : Complétion de la k − -chaîne(G, u, v, k)


Données : Un graphe G = (V, E), une fonction poids c : V → Q+ , u, v ∈ V
Résultat : un arbre couvrant contenant une k − -chaîne entre u et v
Calculer une k − -chaîne P de coût minimum entre u et v ;
Compléter optimalement P en un arbre couvrant T de G ;
Retourner T ;

50
2.5. Arbre couvrant minimum avec un k − -chaîne

Théorème 2.7 Complétion de la k − -chaîne est un algorithme polynomial avec un


facteur 2 pour Arbre couvrant minimum avec une k − -chaîne.

Preuve La première étape de Complétion de la k − chaîne peut être implémentée


en temps O(k|E|) par programmation dynamique, ce temps est polynomial car k ≤
|E|. Comme expliqué dans l’introduction de ce chapitre, la deuxième étape peut être
accomplie par un algorithme de calcul d’arbre couvrant minimum. Soit Tmin un arbre
couvrant minimum de G. Par construction, c(T ) ≤ c(P ) + c(Tmin ). Soit T ∗ une solution
optimale de notre problème. Puisque T ∗ est un arbre couvrant c(Tmin ) ≤ c(T ∗ ), et
puisque il contient une k-chaîne entre u et v, c(P ) ≤ c(T ∗ ). En combinant les deux
inégalités précédentes, nous obtenons c(T ) ≤ 2c(T ∗ ). 

2.5.2 Exemple serré pour l’analyse des performances de l’algorithme


Complétion de la k − -chaîne
L’exemple paramétré par k suivant montre que notre analyse de l’algorithme Com-
plétion de la k − -chaîne est serrée. La chaîne du bas contient k arêtes.
1
1− k
u v
1 1
k 1 1 1 1 1 k
k k k k k

La k − -chaîne la moins chère est l’arête uv. Tout arbre couvrant minimum contenant
l’arête uv contient aussi k − 1 arêtes de la chaîne du bas et a un coût c(T ) = 2 − k2
alors que la solution optimale pour le problème Arbre couvrant minimum avec une
k − -chaîne est la chaîne du bas et a un coût de 1. En faisant tendre k vers l’infini, nous
déduisons que, pour tout ǫ > 0, l’algorithme n’a pas pour facteur 2 − ǫ.

2.5.3 Résultat d’inapproximabilité


Dans cette section, nous prouvons que Complétion de la k − -chaîne est optimal
dans le sens où il ne peut pas exister d’algorithme avec un facteur constant meilleur que
2 à moins que P = N P. La preuve de ce résultat utilise une réduction de Chemin le
plus étiqueté au problème Arbre couvrant minimum avec une k − -chaîne.
Nous rappelons ici le résultat d’inapproximabilité donné dans le chapitre précédent.
Nous détaillons les conditions qui nous sont nécessaires pour le résultat sur le problème
de cette section.

Théorème 2.8 A moins que P = N P , il n’existe aucun algorithme polynomial avec


un facteur constant pour Chemin le plus étiqueté même restreint aux instances
satisfaisant les conditions suivantes :
- D contient une unique source u et un unique puits v ;

51
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

- Tous les chemins maximaux de D contiennent le même nombre de sommets k ;


- D contient un chemin collectant toutes les étiquettes exactement une fois, i.e
OP T (D) = k = |L|.

Nous prouvons le théorème suivant :

Théorème 2.9 A moins que P = N P, pour tout ǫ > 0, il n’existe aucun algorithme
polynomial avec un facteur 2 − ǫ pour le problème Arbre couvrant minimum avec
une k − -chaîne, même restreint aux instances dont le poids des arêtes est seulement 0
ou 1.

Preuve Pour prouver ce théorème, nous explicitions une réduction polynomiale de toute
instance (D, l) du problème Chemin le plus étiqueté vers une instance du problème
Arbre couvrant minimum avec une k − -chaîne. Soit (D, l) un DAG étiqueté satis-
faisant les conditions du Théorème 2.8. Rappelons que k est le nombre d’arêtes de tout
chemin entre l’unique source u et l’unique puits v de D. Nous construisons un graphe
pondéré G obtenu à partir de D de la manière suivante. On remplace d’abord chaque
arc a de D par une arête de coût 1. Puis, on ajoute une chaîne contenant k nouveaux
sommets et k + 1 nouvelles arêtes de poids 0 entre toute paire x, y ∈ V (D) telle que
l(x) = l(y) (Voir Figure 2.5). Une chaîne entre u et v ne peut pas passer par une des
arêtes de la nouvelle chaîne entre x et y car il devrait passer dans les k + 1 arêtes, ce qui
est impossible car la chaîne entre u et v doit contenir au plus k arêtes.
L’instance correspondante du problème Arbre couvrant minimum avec une k − -
chaîne consiste à trouver un arbre couvrant minimum de G tel que la chaîne entre u et
v est une k − -chaîne.
Notons que les k − -chaînes de G entre u et v sont exactement les k − -chemins de D
entre u et v (ils ne contiennent aucune arête de poids 0). Les composantes connexes du
graphe obtenu à partir de G en supprimant toutes les arêtes de poids 1 sont appelées
composantes zéro. Le nombre de composantes zéro traversées par une k − -chaîne P de G
est exactement le nombre d’étiquettes distinctes collectées par P dans D. Par le choix
de l’instance (D, l) de Chemin le plus étiqueté, il existe une k − -chemin P ∗ de D qui
collecte toutes les étiquettes. Puisque P ∗ traverse toutes les composantes zéro, il peut
être complété en un arbre couvrant T ∗ tel que c(T ∗ ) = k en ajoutant seulement des
arêtes de poids zéro, ainsi c(T ∗ ) = k. Cet arbre couvrant T ∗ est une solution optimale
de l’instance G de Arbre couvrant minimum avec une k − -chaîne.
Supposons qu’il existe un algorithme polynomial avec un facteur 2 − ǫ pour Arbre
couvrant minimum avec une k − -chaîne. Soit T un arbre couvrant de G calculé par
cet algorithme. Soit P la k − -chaîne de T entre u et v et β le nombre de composantes
zéro non traversées par P. Puisque T est un arbre couvrant, il doit contenir une arête de
poids 1 pour toute composante zéro qui n’est pas traversée par P, ainsi c(T ) ≥ k + β. De
plus, on peut toujours remplacer T par un arbre obtenu en ajoutant à P seulement une
arête de poids 1 pour chaque composante zéro non traversée par P , donc c(T ) ≤ k + β.
On choisit T tel que c(T ) = k + β. Puisque c(T ∗ ) = k, le facteur d’approximation
supposé de l’algorithme implique c(T ) = k + β ≤ (2 − ǫ)k. Ainsi β ≤ k − ǫk et P

52
2.6. Les graphes à largeur arborescente bornée

1 3
1
b d b d
1 1

2 u v 4 u 1 v
0
1 1
a c a c
1
3 2

Figure 2.5 – Les étiquettes du graphe de gauche sont les entiers de 1 à 4 indiqués à
côté des sommets, les arêtes en pointillés représentent les chaînes avec 4 arêtes de poids
0. L’instance du graphe de droite est paramétrée par k = 3.

collecte k + 1 − β ≥ 1 + ǫk ≥ ǫ(k + 1) étiquettes. Puisque P peut être calculé en temps


polynomial à partir de T, nous obtenons un algorithme avec un facteur d’approximation
ǫ pour Chemin le plus étiqueté, ce qui est impossible à moins que P = N P par le
Théorème 2.8. 

2.6 Les graphes à largeur arborescente bornée


Lorsqu’un problème d’optimisation est N P -difficile, une option est de considérer
le problème sur des classes d’instances. Dans cette section, nous étudions le problème
Arbre couvrant minimum avec une k − -chaîne sur la classe des graphes à largeur
arborescente bornée. La largeur arborescente d’un graphe est un nombre qui d’une cer-
taine manière, mesure la proximité du graphe avec un arbre. Par exemple, les arbres
sont de largeur arborescente 1 et les graphes séries-parallèles sont de largeur arbores-
cente 2. Dans le début des années 1970, des chercheurs ont observé qu’une large classe des
problèmes d’optimisation combinatoire définis sur les graphes pouvaient se résoudre en
temps polynomial par programmation dynamique sur les graphes de dimension bornée,
un paramètre relié à la largeur arborescente [7]. Vers la fin des années 1980, plusieurs
auteurs ont indépendamment observé que de nombreux problèmes qui sont N P -complets
pour des graphes arbitraires peuvent se résoudre en temps polynomial par programma-
tion dynamique sur les graphes de largeur arborescente bornée, en utilisant la décomposi-
tion arborescente de ces graphes [1,6,8]. En 2012, B.Courcelle prouve que tout problème
sur les graphes qui s’exprime dans la logique MSO (Monadic Second-order Logic), peut
se résoudre en temps polynomial sur les graphes à largeur arborescente bornée [17]. Mal-
heureusement, le problème Arbre couvrant minimum avec une k − -chaîne ne peut
s’exprimer dans cette logique à cause de la contrainte de distance. Dans cette section,
nous effectuons donc un travail de programmation dynamique pour résoudre le problème
Arbre couvrant minimum avec une k − -chaîne sur la classe des graphes à largeur
arborescente bornée.

53
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

2.6.1 Définitions et généralités


Dans cette sous-section, nous rappelons les définitions et notions pour la théorie de
la décomposition arborescente. Nous rappelons aussi les résultats algorithmiques utili-
sés dans cette section. Toutes les notions et résultats présentés dans cette sous-section
peuvent se retrouver dans le livre Treewidth. Computations and approximations [40] de
Kloks.

Définition 2.6 Une décomposition arborescente d’un graphe G = (V, E) est un couple
(A, X ), où A est un arbre avec un ensemble I de sommets, et X = {Xi |i ∈ I} est une
collection de sous-ensembles de V appelés sacs tels que :
(1) pour tout sommet x ∈ V , il existe un nœud i ∈ T tel que x ∈ Xi ;
(2) pour toute arête xy ∈ E, il existe un nœud i ∈ T tel que x, y ∈ Xi ;
(3) pour tout sommet x ∈ V , l’ensemble des sacs Xi ∈ T contenant le sommet x
induit un sous-arbre Tx de T .
La largeur de la décomposition arborescente (A, X ) est égale à la taille du plus grand
sac de cette décomposition moins 1, c’est-à-dire maxi∈T |Xi | − 1. La largeur arborescente
ou (treewidth) du graphe G, notée tw(G), correspond à la plus petite largeur parmi les
largeurs de toutes les décompositions arborescentes possibles de G.

Il est très intéressant de pouvoir déterminer la largeur arborescente d’un graphe,


mais ce problème est malheureusement N P -difficile sur l’ensemble de tous les graphes.
Par contre, si on fixe L ∈ N comme largeur arborescente maximum d’un ensemble de
graphes, on peut trouver en temps linéaire une décomposition arborescente de G de
largeur au plus L .
Pour simplifier le travail et l’analyse des cas de la programmation dynamique, on
peut considérer une jolie décomposition arborescente.

Définition 2.7 Une jolie décomposition arborescente (A, X ) d’un graphe G = (V, E)
est une décomposition arborescente, où A est un arbre enraciné, et contenant seulement
quatre types de nœuds :
- nœud feuille : une feuille i de l’arbre A, avec |Xi | = 1 ;
- nœud suppression : un nœud i avec un unique fils j, et tel que Xi = Xj \ {x} ;
- nœud introduction : un nœud interne i avec un unique fils j, et tel que Xi =
Xj ∪ {x} ;
- nœud jonction : un nœud interne i avec exactement deux fils j et l, et tel que
Xi = Xj = Xl .

Théorème 2.10 Soit (A, X ) une décomposition arborescente de largeur L, on peut con-
struire en temps polynomial une jolie décomposition arborescente (A′ , X ′ ) de largeur L
enracinée en n’importe quel sommet de la décomposition de base.

La preuve est simple. On choisit la racine X0 de notre décomposition arborescente.


Pour toute arête (XX ′ ) ∈ A, avec X plus proche de la racine X0 que X ′ . On crée une
suite de nœuds dont le premier nœud est relié à X ′ et qui supprime, par des nœuds

54
2.6. Les graphes à largeur arborescente bornée

suppression, les sommets de X ′ \ X un à un. Le dernier nœud de cette suite est relié au
premier nœud d’une suite qui ajoute un à un, par des nœuds introduction, les sommets
de X \ X ′ . On relie le dernier nœud de cette suite à X. On fait le même genre de
transformation pour que tous les nœuds qui sont des feuilles de l’arbre soient des nœuds
feuille. Cette transformation s’effectue en temps polynomial.

Définition 2.8 Soit la décomposition arborescente (A, X ) d’un graphe G = (V, E) en-
racinée en X0 . Pour tout X ∈ X , on note VX l’union des sommets de X et des sommets
de ces descendants dans la décomposition arborescente (A, X ) et GX = (VX , EX ) le
sous-graphe de G induit par VX .

2.6.2 Programmation dynamique


Nous fixons L ∈ N la borne sur la largeur arborescente.
Dans cette section, nous considérons le problème suivant :

Problème 2.7 (Arbre couvrant minimum avec une k − -chaîne largeur bornée)

Données: Un graphe G = (V, E), une décomposition arborescente (A, X ) de G de lar-


geur L, une fonction coût c : E → Q+ , u, v ∈ V , k ∈ N.
Problème: Trouver un arbre couvrant T de poids minimum tel que T contient une k − -
chaîne entre u et v.

Avec une transformation polynomiale décrite précédemment, nous pouvons nous ra-
mener au cas d’une jolie décomposition arborescente du graphe G qui est enracinée en
X0 avec v ∈ X0 . A partir de cette décomposition arborescente, en rajoutant un nœud
vide à la suite de chaque nœud feuille puis en rajoutant u à tous les sacs de la décom-
position, nous pouvons considérer que (A, X ) est une jolie décomposition arborescente
enracinée en X0 où tous les nœuds contiennent u.

Préliminaires et notations
Le but de la programmation dynamique décrite dans cette section est de construire
une solution de manière inductive, en remontant des feuilles vers la racine X0 (qui
contient v). Plus précisément, pour tout sac X de la décomposition arborescente, pour
toutes les métriques de distance possibles sur X, on veut conserver un ensemble d’arêtes
de EX de coût minimum qui induit cette métrique. Au final, dans le sac racine X0 conte-
nant v où GX0 = G, on choisit l’ensemble E ∗ coût minimum parmi toutes les métriques
dont le nombre d’arêtes entre u et v est inférieur ou égal à k et dont tous les sommets
sont connectés.

Soit X ∈ X . Pour tout ensemble d’arêtes F ⊆ EX , dF : X 2 → N ∪ {∞} est la


projection sur X de la métrique de distance induite par le graphe (VX , F ). Pour tout

55
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

x, y ∈ X, dF (x, y) est le nombre minimun d’arêtes dans une chaîne entre x et y dans
(VX , F ), dF (x, y) = ∞ si les deux sommets ne sont pas reliés.

L’objectif de la programmation dynamique décrite plus bas est de construire de


manière inductive, pour tout X, un ensemble CX ⊆ P(EX ) qui satisfait les propriétés
suivantes :
(1) Si F ∈ CX , pour tout y ∈ VX , il existe x ∈ X tel que (VX , F ) contient une chaîne
entre x et y ;
(2) Si F, F ′ ∈ CX , alors dF 6= dF ′ ;
(3) Pour tout F ⊆ EX satisfaisant (1), il existe F ′ ∈ CX tel que dF = dF ′ et c(F ′ ) ≤
c(F ).
La contrainte (1) est nécessaire pour assurer la connexité de notre solution finale. En
effet, supposons qu’il existe un sommet y ∈ VX \ X qui n’est relié à aucun sommet de X.
Aucun sommet de sa composante connexe A dans (VX , F ) ne se trouve dans X. Par les
propriétés de la décomposition arborescente, aucun sommet de A ne se retrouve non plus
dans un ancêtre de X. Donc, il est impossible de connecter A au reste du graphe dans
un ancêtre de X. (2) nous assure que CX est polynomial. En effet, |CX | est borné par le
nombre de métriques d : X 2 → N ∪ {∞} différentes sur X. Comme pour tout x, y ∈ X,
2 2
d(x, y) ≤ |E| ou d(x, y) = ∞, on déduit qu’il existe au plus O(|V ||X| ) = O(|V |L )
métriques différentes sur X, ce qui est polynomial car L n’est pas une entrée du problème.
Enfin (3) nous assure que pour toutes les métriques réalisables dans X, CX contient un
ensemble d’arêtes de coût minimum qui induit cette distance.

Nœud feuille

Par le choix de la décomposition arborescente, tous les nœuds feuilles sont de la forme
X = {u}. CX = {∅}.

Nœud suppression

X a un unique fils X ′ tel que X = X ′ − {z}. Le nœud suppression est le seul type
de nœud où l’on supprime un sommet entre un fils et son père. C’est donc dans ce cas
que l’on doit gérer la contrainte (1).
On construit CX de la manière suivante. On initialise CX = {∅}. Pour tous les F ′ ∈
CX ′ tels que z est connecté à un sommet de X dans (VX ′ , F ′ ) = (VX , F ′ ) ; soit il n’existe
pas F ∈ CX tel que dF = dF ′ , alors on ajoute F ′ à CX , sinon il existe un unique F ∈ CX
tel que dF = dF ′ , alors si c(F ′ ) < c(F ), on remplace F par F ′ dans CX .
2
On effectue cette construction en temps O(|CX ′ |) = O(|V |L ).

Nœud introduction

Cette étape permet d’ajouter des arêtes à la solution partielle. X a un unique fils X ′
tel que X = X ′ ∪ {z}. z n’a pas été rencontré dans un des descendants de X car sinon

56
2.6. Les graphes à largeur arborescente bornée

z appartiendrait à X ′ par la propriété (3) de la décomposition arborescente. On note Z


l’ensemble des arêtes xz ∈ E avec x ∈ X.
On construit CX de la manière suivante. On initialise CX = {∅}. Pour tous les
(F , Z ′ ) ∈ CX ′ × P(Z) ; soit il n’existe pas F ∈ CX tel que dF = dF ′ ∪Z ′ , alors on

ajoute F ′ ∪ Z ′ à CX , sinon il existe un unique F ∈ CX tel que dF = dF ′ ∪Z ′ , alors si


c(F ′ ) + c(Z ′ ) < c(F ), on remplace F par F ′ ∪ Z ′ dans CX .
Pour la complexité de cette construction, on doit faire toutes les unions possibles
entre les éléments de CX ′ et les sous-ensembles de Z, cette construction s’effectue donc
2
en temps O(|CX ′ |2|Z| ) = O(|V |L 2L ).

Nœud jonction
X a deux fils X1 et X2 tel que X1 = X2 = X.
On construit CX de la manière suivante. On initialise CX = {∅}. Pour tous les
(F1 , F2 ) ∈ CX1 × CX2 tel que F1 ∩ F2 = ∅ ; soit il n’existe pas F ∈ CX tel que dF = dF1 ∪F2 ,
alors on ajoute F1 ∪ F2 à CX , sinon il existe un unique F ∈ CX tel que dF = dF1 ∪F2 , alors
si c(F1 ) + c(F2 ) < c(F ), on remplace F par F1 ∪ F2 dans CX .
On ne considère que des couples d’arêtes disjoints car par optimalité, on peut toujours
supposer que les élements de CX proviennent d’une union entre des ensembles disjoints.
Pour la complexité de cette construction, on doit faire toutes les unions possibles
entre les éléments de CX1 et ceux de CX2 , cette construction s’effectue donc en temps
2
O(|CX1 |CX2 |) = O(|V |2L ).

2.6.3 Correction et optimalité


Nous devons maintenant prouver que la construction des CX est correcte.

Théorème 2.11 Pour tout X ∈ X , CX satisfait les propriétés suivantes :


(1) Si F ∈ CX , pour tout y ∈ VX , il existe x ∈ X tel que (VX , F ) contient une
chaîne entre x et y ;
(2) Si F, F ′ ∈ CX , alors dF 6= dF ′ ;
(3) Pour tout F ⊆ EX satisfaisant (1), il existe F ′ ∈ CX tel que dF = dF ′ et
c(F ′ ) ≤ c(F ).

Preuve (2) est direct par construction. En effet, par la manière dont CX est construit,
il ne peut pas exister deux ensembles de CX qui induisent la même métrique.
Nous prouvons (1) par induction. Pour les cas de base, les nœuds feuilles, CX = {∅}
et il n’y a donc rien à prouver. Pour les nœuds introduction et jonction, tous les sommets
des fils de X se retrouvent dans X. Donc, par hypothèse d’induction, tout sommet y
de VX est connecté à un sommet x d’un fils de X et donc à un sommet de X. Pour
un nœud suppression X avec un unique fils X ′ tel que X = X ′ \ {z}. Soit F ∈ CX et
y ∈ VX . Par construction, F ∈ CX ′ . Par hypothèse d’induction sur X ′ , y est connecté à
un sommet x′ dans (VX ′ , F ) = (VX , F ). Si x′ ∈ X, y est connecté à un sommet de X.
Sinon x′ = z et par construction de CX , z est connecté à un sommet x ∈ X dans (VX , F ).

57
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

Par transitivité, y est donc connecté à un sommet x dans (VX , F ). Par induction, (1) est
prouvé.
Nous prouvons (3) par induction. Nos cas de base sont les nœuds feuilles pour lesquels
le résultat est direct. Pour alléger la preuve, nous prouvons seulement le cas des nœuds
jonction (les cas des nœuds introduction et suppression se traite de façon similaire). X
a deux fils X1 et X2 tel que X1 = X2 = X.
Soit F ⊆ EX satisfaisant (1). On a VX = VX1 ∪ VX2 et par les propriétés de la
décomposition arborescente, EX1 ∩ EX2 ⊆ E(X). En attribuant de façon arbitraire les
arêtes de F ∩ E(X) à EX1 , on décompose F en deux ensembles disjoints F1 ∈ EX1
et F2 ∈ EX2 . F1 et F2 satisfont la condition (1) car F satisfait la condition (1). Par
hypothèse d’induction sur X1 et X2 , il existe F1′ ∈ CX1 et F2′ ∈ CX2 tel que dF1 = dF1′ ,
c(F1′ ) ≤ c(F1 ) et dF2 = dF2′ , c(F2′ ) ≤ c(F2 ). F1′ et F2′ sont aussi disjoints car supposons
qu’il existe xy ∈ F1′ ∩ F2′ , comme xy ∈ E(X), dF1′ (x, y) = dF1 (x, y) = 1 et dF2′ (x, y) =
dF2 (x, y) = 1, ce qui contredit que F1 et F2 sont disjoints. Par construction de CX , il
existe F ′′ ∈ CX tel que dF ′′ = dF1′ ∪F2′ et c(F ′′ ) ≤ c(F1′ ) + c(F2′ ). Par suite, F ′′ ∈ CX et
dF = dF1 ∪F2 = dF1′ ∪F2′ = dF ′′ et c(F ′′ ) ≤ c(F1′ ) + c(F2′ ) ≤ c(F1 ) + c(F2 ) = c(F ). 

Théorème 2.12 L’algorithme qui consiste à calculer CX0 et à renvoyer l’ensemble E ∗ ∈


CX0 de coût minimum tel que ∀x, y ∈ X0 , d(x, y) ≤ ∞ et d(u, v) ≤ k résout le problème
Arbre couvrant minimum avec une k − -chaîne en temps polynomial dans le cas
d’un graphe de largeur L fixée.

Preuve Soit une solution optimale F ⊆ E = EX0 de Arbre couvrant minimum


avec une k − -chaîne, par (3), il existe F ′ ∈ CX0 tel que dF = dF ′ et c(F ′ ) ≤ c(F ). Par
choix de E ∗ , c(E ∗ ) ≤ c(F ′ ) ≤ c(F ). E ∗ est donc un ensemble d’arêtes de coût optimal.
Il nous reste à prouver que l’algorithme s’effectue en temps polynomial. A la fin
de chaque type de nœud, on a prouvé que le construction de CX s’effectue en temps
polynomial. Comme le nombre de nœud est aussi polynomial, on déduit que l’algorithme
s’effectue lui aussi en temps polynomial. 

2.7 Autres problèmes


Une extension naturelle de la contrainte de distance entre deux sommets est de de-
mander l’existence de plusieurs chaînes bornées sommets disjoints entre ces sommets.
Plusieurs contraintes arrivent séparément, ou bien on recherche des chaînes dont le
nombre d’arêtes total est borné par un entier, ou bien on recherche des chaînes dont
le nombre d’arêtes de chacun est borné par un entier (qui peut être différent pour toutes
les chaînes). Pour deux chaînes, si l’on ajoute la contrainte de connexité, cela nous donne
les deux problèmes suivants. Dans la définition des problèmes suivants, l(P ) définit le
nombre d’arêtes du chemin P .

58
2.7. Autres problèmes

Problème 2.8

Données: Un graphe pondéré G = (V, E, c) connexe, deux sommets u, v ∈ V , k ∈ N.


Problème: Trouver un arbre plus une arête T ∪ {e} minimisant c(T ∪ {e}), tels que
T ∪{e} contient deux chaînes sommets disjoints P et P ′ entre u et v tel que l(P )+l(P ′ ) ≤
k.

Problème 2.9

Données: Un graphe pondéré G = (V, E, c) connexe, deux sommets u, v ∈ V , k, k ′ ∈ N.


Problème: Trouver un arbre plus une arête T ∪ {e} minimisant c(T ∪ {e}), tels que
T ∪ {e} contient deux chaînes sommets disjoints P et P ′ entre u et v tel que l(P ) ≤ k
et l(P ′ ) ≤ k ′ .

Si l’on souhaite reproduire le schéma d’étude pour Arbre couvrant minimum


avec une k − -chaîne, nous souhaitons trouver un algorithme exact ou approché sur le
problème similaire sans la contrainte de connexité global du graphe. Par exemple, pour
résoudre le Problème 2.9, on cherche à résoudre le problème suivant :
Problème 2.10

Données: Un graphe pondéré G = (V, E, c), deux sommets u, v ∈ V , k, k ′ ∈ N.


Problème: Trouver deux chaînes sommets disjoints P et P ′ entre u et v minimisant
c(P ) + c(P ′ ), tels que l(P ) ≤ k et l(P ′ ) ≤ k ′ .

Par le même technique que dans la Section 2.5, une α-approximation sur le Pro-
blème 2.10 nous permettrait d’obtenir directement une (α + 1)-approximation sur le
Problème 2.9.
Dans la suite, nous prouvons que ce problème est N P -difficile. Pour cela, nous prou-
vons que le problème de décision suivant, qui est bien plus contraint, est N P -complet.
Problème 2.11

Données: Un graphe G = (V, E), deux sommets u, v ∈ V , k ∈ N.


Problème: Trouver deux chaînes sommets disjoints P et P ′ entre u et v tel que P
contient au plus k arêtes.

Théorème 2.13 Le Problème 2.11 est N P -complet.


Dans l’article [27], les auteurs prouvent que le problème de trouver deux chemins
disjoints en minimisant la longueur d’un des deux chemins est N P -difficile. On déduit
le théorème de ce résultat.

59
Chapitre 2. Arbres couvrants de poids minimum sous contraintes

60
Chapitre 3

Réduction de distance

Dans la littérature, de nombreux problèmes d’amélioration de réseaux ont été étudiés.


Ces problèmes se divisent en deux branches principales. On peut améliorer les nœuds
du réseau, par exemple en posant un équipement qui améliore le temps d’émission d’un
message à ce nœud [35, 41–44, 51]. Dans le deuxième type de problème, on cherche à
améliorer les arêtes en réduisant par exemple le délai de transmission de la connexion [14,
24, 57, 58]. Le problème Réduction de distances présenté dans ce chapitre considère
également des améliorations sur les arêtes.
Etant donné un arbre T = (V, E) enraciné en la racine s ∈ V dont les arêtes sont
pondérées par une fonction coût c, une fonction de demande d : F (T ) → N où F (T ) est
l’ensemble des feuilles de T , le problème consiste à trouver un ensemble d’arêtes D de
coût minimum tel que si on contracte D dans T , la distance (le nombre d’arêtes) entre
toute feuille u ∈ F (T ) et s diminue d’au moins d(u). Dans la littérature, le diameter
lowering problem se rapproche particulièrement de ce problème. Etant donné un arbre
T = (V, E), une fonction de longueur l : E → Q, une fonction c de coût et B ∈ Q
le budget disponible, le problème consiste à trouver un ensemble de réels x(e) avec
P
0 ≤ x(e) ≤ l(e) tels que, e∈E c(e)l(e) ≤ B et l’arbre obtenu en réduisant la longueur
de l’arête e de x(e) est de diamètre minimum. Un problème connexe est d’imposer un
diamètre maximal D pour l’arbre et de minimiser le coût de l’amélioration sur l’arbre.
Dans l’article [24], les auteurs montrent que si on considère seulement des 0/1 réduction
où une arête est soit contractée entièrement soit pas du tout comme dans le problème
de ce chapitre, le diameter lowering problem est N P -difficile. Dans ce même article,
ils montrent aussi que sur les graphes généraux, ce problème est au moins aussi dur à
approximer que le problème Couverture d’ensemble. Dans l’article [14], les auteurs
présentent un algorithme en temps O(|V |2 ) pour résoudre le problème diameter lowering
problem. Ils utilisent pour cela des algorithmes de même complexité sur le problème lié, où
comme dans le problème Réduction de distances, l’arbre est enraciné en un sommet
particulier s et où on impose une borne supérieure sur l’excentricité de ce sommet.
Dans la Section 3.1, nous expliquons comment se ramener au cas où les demandes
sont uniformément égales à un entier d. Des solutions minimales de ce type d’instance
ont la propriété de se décomposer en d coupes disjointes contenant chacune exactement

61
Chapitre 3. Réduction de distance

une arête du chemin entre s et toute feuille u ∈ F (T ). Dans la Section 3.2, nous décrivons
l’algorithme RechercheCM qui permet de résoudre en temps polynomial le problème
Réduction de distances. Cet algorithme est simple, il suffit de calculer une coupe
de poids minimum et minimale pour l’inclusion sur T (on peut toujours obtenir une
telle coupe en supprimant des arêtes de poids inutiles), de la contracter et de réitérer le
procédé jusqu’à obtenir d coupes. L’objectif de la Section 3.2 est donc de prouver que
cet algorithme naturel renvoie une solution optimale du problème en temps polynomial.
Pour toute instance I = (T, c, s, d) du problème, nous définissons une fonction de coût
f associée à l’instance I. f associe à tout sous-ensemble A ∈ F (T ) le coût f (A) d’un
ensemble d’arêtes DA de coût minimum tel que DA sépare d fois les feuilles de A. Dans
la Section 3.3, nous prouvons que cette fonction f est sous-modulaire. Pour prouver
cela, nous exprimons DA et DB comme des ensembles de d coupes {δ(SiA )}i∈{1,...,d} et
{δ(SiB )}i∈{1,...,d} avec certaines propriétés. Par la technique de décroisement des coupes,
sur chaque paire de coupe (δ(SiA ), δ(SiB )), nous prouvons que l’union disjointe de ces
deux ensembles se décompose en un ensemble d’arêtes qui sépare A ∩ B, un ensemble
d’arêtes qui sépare A ∪ B, plus d’autres arêtes. Ceci nous mène directement à la sous-
modularité de la fonction f . Pour finir, dans la Section 3.4, l’objectif est de trouver un
de partage de coût qui s’effectue en temps polynomial pour le problème Réduction
de distances. Pour toute instance (T, c, s, d) du problème, on ajoute pour toute feuille
u ∈ F (T ) une utilité tu ∈ Q de l’utilisateur u pour se rapprocher de la racine s de d
arêtes. Pour chaque ensemble A de feuilles, le coût pour satisfaire simultanément tous
les utilisateurs de A est f (A). Dans un mécanisme de partage de coût, chaque utilisateur
u déclare le montant bu qu’il est prêt à payer pour être rapproché de s (ce montant peut
être différent de son utilité tu ). Un mécanisme de partage de coût est un algorithme
qui calcule l’ensemble des utilisateurs qui vont recevoir le service et pour chacun de
ces utilisateurs u, le montant xu ≤ bu dont ils doivent s’acquitter. Nous cherchons un
mécanisme résistant aux stratégies, c’est-à-dire qu’un utilisateur a intérêt à déclarer
un montant bu égal à son utilité réelle tu pour le service . A l’aide d’un mécanisme
de partage de coût sur les fonctions sous-modulaires présenté dans l’ouvrage [20] et de
certaines propriétés de notre problème, nous donnons un mécanisme de partage de coût
en temps polynomial pour Réduction de distances.

3.1 Préliminaires
3.1.1 Définitions
Dans ce chapitre, nous considérons des arbres enracinés. Ainsi, nous parlons de che-
mins à la place de chaînes afin de distinguer un chemin qui se rapproche de la racine
d’un chemin qui s’éloigne de la racine. De même, nous notons les arêtes (xy) au lieu de
xy car x et y n’ont pas le même rôle selon qui est le plus proche de la racine.
Soit T = (V, E) un arbre enraciné en un sommet s ∈ V. Nous notons F (T ) l’ensemble
des feuilles de T. Pour tout sommet x ∈ V, P (x) est l’unique chemin de T entre x et la
racine s. Les ancêtres de x sont les sommets du chemin P (x) (sauf x). Le père de x est

62
3.1. Préliminaires

le premier sommet après x sur son chemin vers la racine (son plus proche ancêtre lors
d’un parcours débutant en x). Les descendants de x sont les sommets y ∈ V tels que
x est un ancêtre de y. Les fils de x sont les descendants de x qui lui sont adjacents. Tx
définit le sous-arbre enraciné en x, c’est-à-dire le graphe induit par x et ses descendants.
Chaque arête (xy) ∈ E relie un père x à son fils y. Par convention, les descendants de
l’arête (xy) sont les descendants de y (du fils) et les ancêtres de l’arête (xy) sont les
ancêtres de x (du père). Le sous-arbre Te associée à l’arête e est le sous-arbre Ty induit
par y et ses descendants. L’opération de contraction de l’arête (xy) consiste à remplacer
les sommets x et y par un seul sommet dont le père est celui de x (ce sommet n’a aucun
père si x est la racine) et les fils sont les fils de y et ceux de x (sauf y). Nous notons
T[e] l’arbre obtenu à partir de T par cette opération. Si une arête incidente à la racine
est contractée, la nouvelle racine est le sommet résultat de la contraction de l’arête, i.e.
l’unique sommet de T[e] qui n’appartient pas à T. Soit C ⊆ E, T[C] définit l’arbre obtenu
à partir T en contractant chacune des arêtes de C (cet arbre ne dépend pas de l’ordre
dans lequel les opérations de contraction sont effectuées).
Nous disposons maintenant de toutes les notions nécessaires pour définir formelle-
ment le problème Réduction de distances.

3.1.2 Le problème Réduction de distances


Problème 3.1 (Réduction de distances)

Données: Un arbre T = (V, E) enraciné en s ∈ V , une fonction coût c : E → Q+ et


une fonction demande d : F (T ) → N.
Problème: Trouver un ensemble d’arêtes D de coût minimum tel que pour toute feuille
u ∈ F (T ), |P (u) ∩ D| ≥ d(u).

Dans la suite, nous considérons toujours que les instances admettent au moins une
solution. Une instance n’est pas réalisable s’il existe une feuille u ∈ F (T ) telle que le
nombre d’arêtes dans le chemin entre s et u est inférieur à d(u). On peut donc vérifier en
temps polynomial si une instance est réalisable ou pas. Nous représentons une instance
de ce problème sur la Figure 3.1.
Pour simplifier l’étude de ce problème, nous pouvons supposer sans perte de géné-
ralité que la demande d(u) est la même pour toutes les feuilles u de l’arbre. Une telle
instance de Réduction de distances est dite uniforme. Etant donnée une instance
(T, c, s, d) de Réduction de distances, il est possible de construire une instance uni-
forme équivalente en temps polynomial de la façon suivante.
On pose d = maxu∈F (T ) d(u). Pour tout u ∈ F (T ) tel que d(u) < d, on ajoute un
chemin de longueur d−d(u) dont les arêtes ont un poids 0 et dont l’une des extrémités est
u et l’autre est une nouvelle feuille u′ pour laquelle d(u′ ) = d. La demande d’un utilisateur
est inférieure au nombre d’arêtes maximum dans un chemin d’origine s noté h, donc le
nombre d’arêtes ainsi ajoutées est au plus h|F (T )| ≤ |E||V |, ce qui est polynomial en la
taille de l’instance. Avec cette transformation, toutes les feuilles ont la même demande

63
Chapitre 3. Réduction de distance

s s

4 3 4

3 4 3 2 2

u1 , u2 u3 u4

3 3

1 1 2 2

u1 u2 u3 u4

Figure 3.1 – Sur le dessin de gauche, un exemple d’instance (T, c, s, d), où ∀i ∈


{1, 2, 3, 4}, d(ui ) = 2. Sur le dessin de droite, nous avons représenté le même arbre après
contraction d’une solution optimale D. Toutes les feuilles se sont rapprochées de 2 arêtes
de la source s.

d, ce qui signifie qu’on recherche un ensemble d’arêtes D tels que pour toute feuille
u |P (u) ∩ D| ≥ d, autrement dit le chemin P (u) contient au moins d arêtes de D. Il
est facile de montrer que pour toute solution de l’instance de base (T, c, s, d), on peut
déduire une solution de même coût sur l’instance uniforme associée, et réciproquement.
Pour la suite du chapitre, nous considérons donc uniquement des instances uniformes du
problème Réduction de distances.

Problème 3.2 (Réduction uniforme de distances)

Données: Un arbre T = (V, E) enraciné en s ∈ V , une fonction coût c : E → Q+ et un


entier d ∈ N.
Problème: Trouver un ensemble d’arêtes D de coût minimum tel que pour toute feuille
u ∈ F (T ), |P (u) ∩ D| ≥ d.

Dans la suite, nous ne considérons plus que ce type d’instance. Pour moins de lour-
deur, Réduction de distances fait maintenant référence à Réduction uniforme de
distances.
Le lemme suivant établit une propriété des solutions minimales des instances du
problème Réduction de distances.

64
3.1. Préliminaires

Lemme 3.1 Soit D une solution minimale pour l’inclusion de l’instance (T, c, s, d) du
problème Réduction de distances. Pour toute feuille u ∈ F (T ), le chemin entre s et
u contient exactement d arêtes de D.

Preuve Supposons par contradiction qu’il existe une feuille u telle que P (u) contient
au moins d + 1 arêtes de D. Soit (xy) la première arête de D rencontrée sur le chemin
qui va de u vers la racine s, avec x le père de y. Au moins d arêtes de D sont sur le
chemin entre x et la racine. L’ensemble d’arêtes D − e est également une solution. En
effet, soit u′ une feuille de T. Si (xy) ∈
/ P (u′ ) alors D − e a autant d’arêtes sur le chemin
′ ′
P (u ) que D. Sinon e ∈ P (u ) et les d arêtes de D sur le chemin entre x et la racine sont
aussi sur le chemin entre u′ et la racine. Par conséquent D − e est une solution, ce qui
contredit la minimalité de D. 

Etant donné une solution optimale du problème, il est facile de construire une solution
optimale minimale pour l’inclusion en enlevant des arêtes (elles sont de poids 0) qui ne
sont pas nécessaires. Cette solution vérifie la propriété du Lemme 3.1. Par la suite, nous
considérons uniquement des solutions optimales qui sont minimales pour l’inclusion.
Ce lemme nous permet de décomposer toute solution minimale en d coupes disjointes.
Rappelons d’abord la définition d’une coupe.

Définition 3.1 Soit G = (V, E) un graphe, une coupe de G est déterminée par une
partition des sommets de V en deux ensembles disjoints non-vides S et V \ S. La coupe
est le sous-ensemble d’arêtes δ(S) ayant une extrémité dans S et l’autre dans V \ S.

Soit D une solution minimale pour l’inclusion d’une instance (T, c, s, d) du problème
Réduction de distances. Nous définissons une famille laminaire d’ensembles de som-
mets (Si )i∈{1,...,d} de la façon suivante, on supprime toutes les arêtes de D, S1 est la
composante connexe contenant s, puis on rajoute les arêtes de δ(S1 ) et S2 est la nouvelle
composante connexe contenant s et ainsi de suite. Plus formellement, S1 est la compo-
sante connexe du graphe (V, E \ D) contenant s et δ(S1 ) ⊆ D la coupe définie par cet
ensemble. S2 est la composante du graphe (V, E \ D ∪ δ(S1 )) contenant s et δ(S2 ) ⊆ D la
coupe définie par cet ensemble. Par suite, pour tout i ∈ {1, ..., d}, Si est la composante
Si−1
connexe du graphe (V, E \ D ∪ j=1 δ(Sj )) contenant s et δ(Si ) ⊆ D la coupe définie par
cet ensemble. La famille (Si )i∈{1,...,d} est laminaire par construction, i.e pour tout i < j,
on a Si ⊆ Sj . Chaque coupe δ(Si ) contient exactement une arête sur chaque chemin
P (u) avec u ∈ F (T ). De plus, par définition des ensembles, si une arête (xy) ∈ δ(Si ),
alors pour tout j > i, x ∈ Sj et y ∈ Sj , et donc (xy) ∈ / δ(Sj ). Ce qui entraine que les
coupes δ(Si )i∈1,...,d sont disjointes. En utilisant le Lemme 3.1, nous pouvons conclure que
S
D = di=1 δ(Si ).
Par exemple, dans la solution D de l’instance représentée par la Figure 3.1, la coupe
δ(S1 ) est seulement composée de l’arête de poids 4 commune à tous les chemins P (ui ).
La coupe δ(S2 ) est composée des deux arêtes de poids 1 qui séparent u1 et u2 ainsi que
l’arête de poids 3 commune à P (u3 ) et P (u4 ).

65
Chapitre 3. Réduction de distance

3.2 Résolution du problème Réduction de distances en


temps polynomial
Dans cette section, nous décrivons un algorithme qui résout le problème Réduction
de distances en temps polynomial. En se basant sur le Lemme 3.1, on recherche d
coupes disjointes de l’arbre T qui séparent chacune des feuilles de F (T ) de la racine s.
Comme l’on recherche des coupes disjointes dont la somme des coûts est minimum, il
est naturel de s’intéresser au problème de la coupe de coût minimum. Etant donné un
graphe G = (V, E), une fonction c : E → Q, deux sommets s, t ∈ V , trouver un ensemble
S tel que s ∈ S, t ∈/ S et c(δ(S)) est de coût minimum. En d’autres termes, on recherche
un ensemble d’arêtes δ(S) de coût minimum qui sépare s et t. Ce problème se résout en
temps polynomial comme le problème dual du problème du flot de valeur maximum [26].
Dans notre cas, il s’agit de trouver une coupe minimum qui sépare la racine d’un arbre
de ces feuilles, ce qui peut se faire simplement en temps linéaire.
Problème 3.3 (Coupe minimum dans un arbre enraciné)

Données: Un arbre T = (V, E) enraciné en s ∈ V , une fonction coût c : E → Q+ .


Problème: Trouver un ensemble C de coût minimum tel que, pour tout u ∈ F (T ),
C ∩ P (u) 6= ∅.

Le calcul d’une coupe minimum qui sépare les feuilles d’un arbre de la racine se fait
en temps linéaire avec un algorithme de programmation dynamique. Il parcourt l’arbre
des feuilles vers la racine et calcule la coupe optimale séparant un sommet x des feuilles
de l’arbre Tx à partir des coupes optimales qui séparent chacun des fils y de x des feuilles
du sous-arbre Ty .
Théorème 3.1 Le problème Coupe minimum dans un arbre enraciné se résout en
temps O(|V |).
L’algorithme RechercheCM, dont la description formelle apparaît ci-dessous, consiste
à trouver une coupe minimum, à la contracter et à réitérer le procédé jusqu’à obtenir d
coupes disjointes.
Algorithme 8 : RechercheCM(T, c, s, d)
Données : Un arbre T = (V, E), une fonction c : E → Q+ , s ∈ V la source du
graphe.
Résultat : D ⊆ E telle que |P (u) ∩ D| = d pour tout feuille u ∈ F (T ).
si d = 0 alors
retourner ∅
sinon
Calculer une coupe minimum C ⊆ E qui sépare la racine s de F (T ) ;
Calculer l’arbre T[C] obtenu à partir de T en contractant les arêtes de C ;
retourner l’union D ⊆ E de C et de RechercheCM(T[C] , c, s, d − 1);

66
3.2. Résolution du problème Réduction de distances en temps polynomial

Lorsque l’on contracte les arêtes de C, il est possible que certaines feuilles de T ne
soient plus des feuilles dans T[C] . S’il existe une telle feuille u ∈ F (T ), on peut supprimer
les descendants de u et les arêtes incidentes dans T[C] . En effet, comme u est séparée
d − 1 fois dans la solution RechercheCM(T[C] , c, s, d − 1), toutes les feuilles de Tu , qui
sont des descendants de u, sont automatiquement séparées d − 1 fois.

Lemme 3.2 (Correction de l’algorithme) Etant donné une instance (T, c, s, d) du


problème Réduction de distances. La solution D renvoyée par RechercheCM(T, c, s,
d) est l’union de d coupes disjointes de T qui séparent la racine s de F (T ).

Preuve Nous prouvons ce lemme par induction sur d. Pour d = 0, il n’y a rien à démon-
trer. Par hypothèse d’induction, RechercheCM(T[C] , c, s, d−1) renvoie l’union de d−1
coupes disjointes C1 , C2 , ..., Cd−1 qui séparent la racine des feuilles de T[C] . De plus, la
coupe C est nécessairement disjointe des coupes renvoyées par RechercheCM(T[C] , c, s, d−
1) car les arêtes de C n’apparaissent pas dans T[C] . Par conséquent, D est bien l’union
de d coupes disjointes de T qui séparent s de F (T ). 

Le lemme suivant est utile pour prouver l’optimalité de l’ensemble d’arêtes renvoyé
par RechercheCM.

Lemme 3.3 Etant donné une instance (T, c, s, d) du problème Réduction de dis-
tances. Soit C une coupe minimum qui sépare s de F (T ), il existe une solution optimale
de (T, c, s, d) qui contient C.

Preuve Soit D une solution optimale de (T, c, s, d) (minimale pour l’inclusion), D ne


contient pas forcément C. Notre objectif est de construire une solution optimale qui
contient C. L’algorithme suivant calcule une coupe C0 .

Algorithme 9 : Construction d’une coupe C0 contenant C


C0 ← C ∩ D ;
tant que Il existe une feuille u qui n’est pas séparée de s par C0 faire
Trouver eu ∈ P (u) ∩ D à distance minimum de u ;
C0 ← C0 ∪ {eu } ;

On peut toujours trouver une telle arête eu car D sépare u de s, C0 est donc une
coupe. Nous souhaitons montrer que le chemin entre chaque feuille u de F (T ) et la racine
contient une seule arête de C0 . Supposons le contraire, i.e. il existe une feuille u dont le
chemin vers la racine contient deux arêtes e1 et e2 de C0 avec e2 plus près de la racine
que e1 . Par définition de l’algorithme, l’arête e2 a été ajoutée après l’arête e1 pour une
feuille u′ qui n’était pas séparée de la racine à ce moment là. L’arête e2 est l’arête la
plus proche de u′ qui sépare u′ de s. Or, il existe d − 1 autres arêtes qui séparent u′ de
s au-dessus de e2 , nous pouvons conclure que u est séparée d + 1 fois dans D, ce qui
contredit la minimalité de D par le Lemme 3.1. Toute feuille u de F (T ) est donc séparée

67
Chapitre 3. Réduction de distance

de s par une seule arête de C0 . Par construction, D \ C0 est un ensemble d’arêtes disjoint
de C qui sépare toutes les feuilles de F (T ) d − 1 fois. Ainsi, D \ C0 ∪ C sépare toutes les
feuilles de F (T ) d fois. Par optimalité de C, D \ C0 ∪ C est de coût inférieur ou égal à
D, donc D \ C0 ∪ C est une solution optimale de (T, c, s, d) qui contient C. 

Lemme 3.4 (Optimalité de l’algorithme) La solution renvoyée par l’algorithme Re-


chercheCM est optimale.

Preuve Par induction sur d. Pour d = 1, l’optimalité de RechercheCM(T, c, s, d) se


déduit de l’optimalité d’un algorithme de calcul de la coupe minimum. Nous rappelons
que la solution DALG renvoyée par l’algorithme est l’union de C et de la solution D′
renvoyée par RechercheCM(T[C] , c, s, d − 1). Par le Lemme 3.3, il existe une solution
optimale D de l’instance (T, c, s, d) qui contient C. Le sous-ensemble d’arêtes de D \ C
contient d − 1 arêtes entre la racine et chacune des feuilles. C’est donc une solution de
l’instance (T[C] , c, s, d − 1). Par hypothèse d’induction, c(D′ ) ≤ c(D \ C). Finalement,
nous obtenons que c(DALG ) = c(D′ ) + c(C) ≤ c(D \ C) + c(C) = c(D) ce qui montre
que la solution DALG est optimale. 

Ainsi, la solution renvoyée par l’algorithme RechercheCM(T, c, s, d) est une so-


lution optimale de l’instance (T, c, s, d) de Réduction de distances. Cet algorithme
revient à calculer successivement d coupes minimum.

Théorème 3.2 L’algorithme RechercheCM résout le problème Réduction de dis-


tances en temps O(d|V |).

Preuve Le Lemme 3.2 et le Lemme 3.4 montrent que l’algorithme RechercheCM est
correct et optimal. L’algorithme RechercheCM revient à calculer d coupes minimum
dans des arbres qui contiennent au plus |V | sommets. Par le Théorème 3.1, le problème
Coupe minimum dans un arbre enraciné se résout en temps O(|V |), la complexité
de l’algorithme RechercheCM est donc O(d|V |). 

3.3 Sous-modularité et Réduction de distances


Dans cette section, nous effectuons d’abord quelques rappels sur la notion de sous-
modularité, nous rappelons notamment la complexité du problème de minimisation d’une
fonction sous-modulaire. A partir d’une instance uniforme (T, c, s, d) du problème Ré-
duction de distances, nous définissons une fonction f qui associe à chaque sous-
ensemble A de feuilles de l’arbre le coût minimum f (A) d’un sous-ensemble d’arêtes
DA qui intersecte d fois chacun des chemins entre une feuille u ∈ A et la racine. Nous
prouvons que cette fonction est sous-modulaire.

3.3.1 Définitions
Rappelons dans un premier temps la définition d’une fonction sous-modulaire.

68
3.3. Sous-modularité et Réduction de distances

Définition 3.2 Une fonction f : P(U ) → Q est sous-modulaire si pour toute paire
d’ensembles A, B ⊆ U , f (A)+f (B) ≥ f (A∪B)+f (A∩B). Ici, nous imposons également
la condition f (∅) = 0 qui est naturelle pour une fonction de coût.

Problème 3.4 (Minimisation d’une fonction sous-modulaire)

Données: Un ensemble de base U , un sous-ensemble S ∈ P(U ) et une fonction sous-


modulaire f : S → Q+ .
Problème: Trouver un ensemble A ∈ S tel que f (A) est minimum.

Théorème 3.3 Le problème Minimisation d’une fonction sous-modulaire se ré-


sout en temps polynomial.

Le premier algorithme polynomial a été donné par Grötschel, Lovász et Schrijver


en 1988 [30]. Il utilise la méthode des ellipsoïdes [39]. Des algorithmes combinatoires
permettant de résoudre ce problème ont ensuite été décrits de façon indépendante par
Schrjiver en 2000 [52] et Iwata, Fleisher et Fujishige en 2001 [36].

3.3.2 Sous-modularité de la fonction de coût du problème Réduction


de distances
Nous établissons dans cette section que la fonction de coût associée à Réduction
de distances est sous-modulaire.
Pour toute instance du problème (T, c, s, d) de Réduction de distances, nous
définissons la fonction de coût f : P(F (T )) → Q associée qui à tout sous-ensemble A
de feuilles de T , associe le poids minimum d’un ensemble d’arêtes DA tel que pour tout
a ∈ A, le chemin entre a et s contient au moins d arêtes de DA .
Soit A ⊆ F (T ), nous considérons l’instance (T A , s, c, d), où T A est l’arbre construit
à partir de T en gardant seulement les arêtes de T qui sont sur un chemin P (a) pour
une feuille a ∈ A. Par construction, on a F (T A ) = A. Il est facile de vérifier que DA est
une solution optimale de l’instance (T A , s, c, d).

Théorème 3.4 Soit une instance (T, c, s, d) de Réduction de distances, la fonction


de coût associée f est sous-modulaire.

Preuve Soit A, B ⊆ F (T ) deux sous-ensembles des feuilles de T .


Nous cherchons à prouver que f (A ∩ B) + f (A ∪ B) ≤ f (A) + f (B). En fait, nous
prouvons que le multi-ensemble de l’union des arêtes de DA et DB se décompose en deux
ensembles d’arêtes qui séparent respectivement les feuilles de A ∩ B et A ∪ B.
Par la remarque faite plus haut, DA et DB sont des solutions minimales des instances
(T A , s, c, d) et (T B , s, c, d). Par le Lemme 3.1 de la première section, il existe donc d
S
ensembles S1A ⊂ S2A ⊂ ... ⊂ SdA tels que DA = di=1 δ(SiA ), pour tout i, s ∈ SiA
et A ∩ SiA = ∅. Il existe de même d ensembles S1B , ..., SdB avec les mêmes propriétés

69
Chapitre 3. Réduction de distance

S
d’inclusions successives tels que DB = di=1 δ(SiB ), pour tout i, s ∈ SiB et A ∩ SiB = ∅.
Pour tout couple (SiA , SiB ), nous définissons deux ensembles de sommets Xi = SiA ∩ SiB
et Yi = SiA ∪ SiB . Il est clair que Xi sépare s de A ∩ B, et de même Yi sépare s de A ∪ B .
Dans la suite, M ∪∗ N définit le multi ensemble résultat de l’union de deux ensembles.
M ∪∗ N contient une copie de x si x ∈ M \ N ou x ∈ N \ M et M ∪∗ N contient deux
copies de x si x ∈ M ∩ N .
Nous voulons montrer que δ(Xi ) ∪∗ δ(Yi ) ⊆ δ(SiA ) ∪∗ δ(SiB ). Par définition, nous
avons directement δ(Xi ), δ(Yi ) ⊆ δ(SiA ) ∪ δ(SiB ), et donc δ(Xi ) ∪ δ(Yi ) ⊆ δ(SiA ) ∪ δ(SiB ).
Il nous reste à prouver que si δ(Xi ) ∪∗ δ(Yi ) contient deux copies d’une arête (uv)
alors δ(SiA ) ∪∗ δ(SiB ) contient également deux copies de (uv). Nous démontrons que
si (uv) ∈ δ(Xi ) ∩ δ(Yi ) alors (uv) ∈ δ(SiA ) ∩ δ(SiB ). Soit une telle arête (uv), u ∈ SiA
et u ∈ SiB , v ∈ / SiA et v ∈ / SiB . Nous concluons que (uv) ∈ δ(SiA ) ∩ δ(SiB ). Nous
obtenons donc bien δ(Xi )∪ δ(Yi ) ⊆ δ(SiA )∪∗ δ(SiB ), cela signifie que l’on peut décomposer

δ(SiA ) ∪∗ δ(SiB ) en δ(Xi ), δ(Yi ) et des arêtes restantes. Cette technique de décroisement
des coupes est représentée sur la Figure 3.2.
Nous prouvons maintenant que les coupes δ(Xi ) (resp δ(Yi )) sont deux à deux dis-
jointes. Commençons par les δ(Xi ). Soit une arête (uv) ∈ δ(Xi ), avec u ∈ Xi et v ∈ / Xi . Si
v ∈ SiA alors, par inclusion pour tout j > i, v ∈ SjA , sinon (uv) ∈ δ(SiA ) et par définition
des SiA , pour tout j > i, v ∈ SjA . Dans les deux cas, pour tout j > i, u ∈ SjA et v ∈ SjA .
De même, pour tout j > i, u ∈ SjB et v ∈ SjB , et donc u, v ∈ SjA ∩ SjB = Xj . Ainsi, pour
tout j > i, (uv) ∈ / δ(Xj ). Nous concluons que les coupes δ(Xi ) sont disjointes. Par un
raisonnement similaire, les coupes δ(Yi ) sont également disjointes.
S S
On pose ∆X = di=1 δ(Xi ) et ∆Y = di=1 δ(Xi ). Chaque feuille u ∈ A ∩ B est séparée
une fois dans chaque δ(Xi ) et comme ces ensembles sont disjoints, u est séparé d fois
dans ∆X . De même, toute feuille u ∈ A ∪ B est séparé d fois dans ∆Y . En utilisant
δ(Xi ) ∪∗ δ(Yi ) ⊆ δ(SiA ) ∪∗ δ(SiB ), nous concluons que DA ∪∗ DB peut être décomposé en
l’ensemble ∆X qui sépare d fois A∩B, l’ensemble ∆Y qui sépare d fois A∪B et des arêtes
restantes. Ainsi, c(DA ) + c(DB ) ≥ c(∆X ) + c(∆Y ). Comme f (A ∩ B) et f (A ∪ B) sont les
coûts minimaux d’un ensemble d’arêtes qui sépare respectivement d fois A ∩ B et A ∪ B,
nous obtenons c(DA )+c(DB ) ≥ f (A∩B)+f (A∪B) ⇔ f (A)+f (B) ≥ f (A∩B)+f (A∪B).


3.4 Mécanisme de partage de coût sur Réduction de dis-


tances
Dans cette section, nous regardons cette fois le problème Réduction de distances
du point de vue de la théorie des mécanismes de partage de coût [49]. Soit une instance
(T, c, s, d) de Réduction de distances, on considère que toutes les feuilles u ∈ F (T )
sont des utilisateurs qui veulent se rapprocher de s d’une distance d. Pour tout ensemble
A ⊆ F (T ), le coût nécessaire pour satisfaire tous les utilisateurs de A est f (A), où f
est la fonction de coût associée à l’instance (T, s, c, d). De plus, tout utilisateur u a une

70
3.4. Mécanisme de partage de coût sur Réduction de distances

SiA SiA ∩ SiB SiB SiA SiA ∩ SiB SiB

δ(SiA ) δ(SiB ) δ(SiA ) δ(SiB )

Figure 3.2 – Le dessin de gauche représente les arêtes de δ(SiA ) ∪∗ δ(SiB ), celui de
droite les arêtes de δ(Xi ) ∪∗ δ(Yi ). Les arêtes en gras apparaissent une fois dans les deux
membres du multi-ensemble de l’union. Les arêtes (xy), x ∈ SiA ∩ SiB , y ∈ V \ (SiA ∪ SiB )
apparaissent deux fois dans δ(SiA ) ∪∗ δ(SiB ) et deux fois dans δ(Xi ) ∪∗ δ(Yi ). Par contre,
les arêtes (xy), x ∈ SiA \ SiB , y ∈ SiB \ SiA apparaissent deux fois dans δ(SiA ) ∪∗ δ(SiB )
mais aucune dans δ(Xi ) ∪∗ δ(Yi ).

utilité tu ∈ Q pour obtenir un tel rapprochement. Chaque utilisateur déclare le montant


bu qu’il est prêt à payer pour obtenir ce rapprochement. Il peut déclarer un montant bu
supérieur ou inférieur à tu , personne d’autre que lui n’est au courant de son utilité réelle
pour le rapprochement. Un mécanisme de partage de coût détermine en fonction des
montants déclarés, un ensemble de clients qui va recevoir le service et pour tout client u
de cet ensemble, sa contribution financière xu ≤ bu pour l’installation du service. Toutes
les définitions de cette section se retrouvent dans l’article [49].

3.4.1 Règle d’un mécanisme de partage de coût


Un problème de partage de coût illustre souvent des questions réelles qui s’imposent
à des fournisseurs d’accès internet ou autre. Un mécanisme de partage de coût doit donc
obéir à certaines règles afin de le rendre applicable et équitable. Dans les conditions qui
suivent, A est l’ensemble des utilisateurs qui reçoivent le service et c(A) le coût nécessaire
pour satisfaire tous les utilisateurs de A.
1. Résistance aux stratégies : chaque utilisateur u a une utilité tu connue de lui seul
qui représente son intérêt pour recevoir le service. Si on définit par xu le montant
qui lui est réclamé, alors son profit est tu − xu . Supposons que les utilisateurs
sont égoïstes, i.e qu’ils sont seulement intéressés par maximiser leur profit et rien
d’autre. Un mécanisme est résistant aux stratégies, si pour tout utilisateur u,
quelques soient les montants déclarés par les autres utilisateurs, son profit est
maximisé en déclarant son utilité réelle tu .
2. Solde Budgétaire (SB) :
P
a. Recouvrement du coût : u∈A xu ≥ c(A), i.e le coût du service est couvert
par les utilisateurs.
P
b. Compétitivité : u∈A xu ≤ c(A), i.e aucun surplus n’est créé. En effet, si un
surplus était créé, un concurrent pourrait délivrer le service à un coût réduit.
La condition (SB) consiste à satisfaire ensemble les conditions de Recouvrement
P
du coût et de Compétitivité, i.e i∈A xu = c(A) (les utilisateurs qui reçoivent le

71
Chapitre 3. Réduction de distance

service payent exactement le coût total de A).


3. Pas de transfert positif (NTP) : Les contributions sont positives, personne n’est
payé pour recevoir le service ;
4. Participation volontaire (PV) : Si u ∈ / A, alors xu = 0 et si xu ∈ A, alors
xu ≤ bu , i.e seul les utilisateurs u qui reçoivent le service paient. De plus, il n’est
jamais demandé à un utilisateur de payer plus que son montant déclaré bu . Tout
utilisateur a l’option de ne pas recevoir le service et donc d’avoir un profit de 0.
5. Souveraineté du consommateur (CS) : Chaque utilisateur est garanti de recevoir
le service s’il déclare un montant bu assez important. Cette condition interdit la
solution triviale où personne n’a le service.

3.4.2 Mécanisme de partage de coût pour les fonctions sous-modulaires


Dans cette sous-section, nous nous intéressons à des instances du problème de partage
de coût où la fonction de coût f est sous-modulaire, on considère que pour tout ensemble
S, un oracle renvoie f (S) en temps polynomial. L’algorithme ci-dessous est présenté dans
l’article [20]. Ce mécanisme est une amélioration du mécanisme pour les fonctions sous-
modulaires présenté dans [49].
Pour tout utilisateur i, xi définit sa contribution pour avoir le service, ce montant
évolue au cours de l’algorithme. On le fixe à 0 pour tous les utilisateurs au début de
l’algorithme. S représente l’ensemble des utilisateurs qui reçoivent le service. Lorsqu’un
utilisateur i reçoit le service pour une certaine contribution xi , cet utilisateur reçoit le
service à la fin du mécanisme pour une contribution de xi .
On augmente tous les xi à la même vitesse. Dès que la contribution d’un utilisateur
i dépasse bi , on l’informe que sa demande pour obtenir le service ne sera pas satisfaite
et on le retire de la liste des contributeurs possibles.
Si un ensemble T d’utilisateurs qui ne reçoivent pas le service est capable de payer
la différence f (S ∪ T ) − f (S), alors les utilisateurs i de T reçoivent le service à leur
contribution courante xi . On ajoute donc T à l’ensemble S des clients satisfaits et il est
fixé que ces clients obtiennent le service à leur contribution courante xi .
On augmente les contributions jusqu’à ce que tout les clients qui ne sont pas suppri-
més soient satisfaits.

72
3.4. Mécanisme de partage de coût sur Réduction de distances

Algorithme 10 : Mécanisme de partage de coût pour les fonctions de coût sous-


modulaires
Données : Un ensemble universel U , une fonction de coût sous-modulaire
f : P(U ) → Q+ et pour tout utilisateur i, un montant bi ∈ Q.
Résultat : L’ensemble S des utilisateurs qui reçoivent le service, et leur
contribution respective xi .
S←∅;
xi = 0 pour tout i ∈ U ;
tant que S 6= U faire
Augmenter tous les xi des utilisateurs de U \ S à la même vitesse jusqu’à ce
qu’un des deux évènements suivants se produise :
si xi > bi alors
U ←U \i ;
P
si pour un ensemble T ⊆ U \ S, f (S ∪ T ) − f (S) = i∈T xi alors
S ← S ∪ T;

Théorème 3.5 [20] Ce mécanisme a les propriétés SB, PV, NTP, SC et il est résistant
aux stratégies.

Pour prouver ce théorème, les auteurs prouvent que leur mécanisme renvoie la même
distribution des coûts que le mécanisme présenté dans [49]. Et dans cet article, Moulin,
Hervé, Shenker et Scott prouvent que leur mécanisme est résistant aux stratégies.
Ce mécanisme n’est pas clairement polynomial. En effet, pour chaque étape dans la
boucle, nous devons faire le minimum entre toutes les valeurs de bi et toutes les valeurs
auxquelles un ensemble T peut devenir serré. Or, le nombre d’ensembles T n’est pas
polynomial.

3.4.3 Adaptation du mécanisme pour Réduction de distances


Une méthode pour exécuter l’algorithme de la section précédente en temps polyno-
mial est suggérée dans l’article [37]. Dans cette sous-section, nous décrivons comment la
mettre en œuvre de façon plus explicite dans le cas du problème Réduction de dis-
tances. Nous montrons que le problème de trouver le sous-ensemble serré que l’on doit
résoudre à chaque itération de l’algorithme précédent peut se résoudre en temps poly-
nomial. Pour cela, nous montrons que chaque étape peut se réduire à la minimisation
d’une fonction sous-modulaire.
Soit une instance (T, s, c, d) de Réduction de distances, nous rappelons que par
le Théorème 3.4, la fonction de coût f associée à l’instance est sous-modulaire et par le
Théorème 3.2 pour tout A ⊆ F (T ), f (A) se calcule en temps polynomial. Pour identifier
un évènement dans l’algorithme de la sous-section précédente, il faut pouvoir calculer
minB⊆F (T )\A f (A∪B)−f
|B|
(A)
. Pour tout utilisateur u ∈ A, xu est gelé. Nous cherchons
donc à identifier un ensemble B ∈ F (T ) \ A des nouveaux utilisateurs tel que ces |B|

73
Chapitre 3. Réduction de distance

utilisateurs doivent payer la différence de coût entre f (A ∪ B) − f (A). Il faut donc


minimiser la fonction g(B) := f (A∪B)−f
|B|
(A)
mais cette fonction n’est pas sous-modulaire.
Pour notre étape de recherche nous définissons pour tout λ ∈ R+ , une fonction
gλ (B) := f (A ∪ B) − f (A) − λ|B|. Par définition, gλ (B) ≤ 0 ⇔ f (A∪B)−f |B|
(A)
≤ λ,
cela signifie que si tous les utilisateurs de B donnent λ, le coût nécessaire pour séparer
A ∪ B peut être payé. Notre étape de recherche revient donc à calculer min{λ, ∃B ⊆
F (T ) \ A t.q gλ (B) ≤ 0}. Pour cela, nous utilisons la proposition suivante.

Proposition 3.1 Pour tout λ, gλ est sous-modulaire.

Preuve Soit λ. Comme f (A) est une constante, il nous suffit de prouver que la fonction
B → f (A ∪ B) − λ|B| est sous-modulaire. Or comme f est sous-modulaire, la fonction
B → f (A ∪ B) est sous-modulaire. Mais comme la fonction B → −λ|B| est modulaire
(par modularité de la fonction cardinalité des ensembles), nous déduisons directement
que B → f (A ∪ B) − λ|B| est sous-modulaire. 

Par cette proposition et par la Théorème 3.3, on peut savoir en temps polynomial si
il existe un ensemble B ⊆ F (T ) tel que gλ (B) ≤ 0. Il nous reste maintenant à déterminer
le minimum sur λ en temps polynomial.
Depuis le début de ce chapitre, nous supposons que la fonction de coût c a pour
ensemble d’arrivée l’ensemble Q. Sur cet ensemble de |E| rationnels, on peut calculer un
dénominateur commun q ∗ en temps polynomial en faisant la multiplication de tous les
dénominateurs. Par la suite, pour tout e, il nous suffit de redéfinir c(e) = c(e)q ∗ ∈ N.
Ainsi, pour toute instance (T, c, s, d) de Réduction de distances, on obtient en temps
polynomial une instance équivalente (T, c, s, d) où c : E → N. Pour la fin de ce chapitre,
nous ne considérons plus que ce type d’instance. Comme c(e) ∈ N pour tout e, nous
déduisons directement que f (A) ∈ N pour tout A ⊆ F (T ). Cette restriction des instances
permet d’effectuer la dichotomie qui suit.
Dans le pire des cas, λ prend pour valeur l’ensemble { pq , p ∈ {1, 2, ..., f (F (T ))}, q ∈
{1, 2, ..., |F (T )|}}. L’astuce est donc de deviner la valeur du dénominateur q et d’effec-
tuer une dichotomie sur l’ensemble { pq , p ∈ {1, 2, ..., f (F (T ))}}. Cet ensemble contenant
f (F (T )) éléments, la dichotomie s’effectue en temps O(log(f (F (T ))), ce qui est polyno-
mial en la taille du problème.
Le mécanisme de la page suivante résout donc le problème de partage de coût sur
Réduction de distances en temps polynomial.

74
3.4. Mécanisme de partage de coût sur Réduction de distances

Algorithme 11 : Mécanisme de partage de coût polynomial pour Réduction de


distances
Données : Une instance (T, s, c, d) de Réduction de distances et pour tout
utilisateur u ∈ F (T ), la fonction de coût associé f associée à
l’instance, un montant bu ∈ Q.
Résultat : L’ensemble A des utilisateurs u qui reçoivent le service, et les
participations respectives xu .
A←∅;
t←0;
tant que A 6= F (T ) faire
bmin ← minu∈F (T )\A bu ;
Deviner q le nombre d’utilisateurs supplémentaires qui vont être satisfaits à la
prochaine étape ;
Effectuer une dichotomie sur [t, f (Fq(T )) ] avec comme pas 1q afin de déterminer
λ = min{λ, ∃B ⊆ F (T ) \ A, gλ (B) ≤ 0} et un ensemble B qui réalise
gλ (B) ≤ 0 ;
si λ > bmin alors
t ← bmin ;
F (T ) ← F (T ) \ {u, bu = bmin } ;
sinon
t←λ;
∀u ∈ B, xu ← λ;
A ← A ∪ B;

La variable t représente le temps. Dans le mécanisme de base, on peut le voir comme


le coût partagé des xu qui augmente constamment. Avec cette observation, nous remar-
quons que cet algorithme renvoie le même résultat que l’algorithme de la sous-section
précédente pour les fonctions sous-modulaires sur le cas particulier des instance de Ré-
duction de distances. Il a donc toutes les propriétés souhaitées pour un mécanisme
de partage de coût. Il nous reste à prouver qu’il est polynomial.

Théorème 3.6 Le mécanisme 11 s’exécute en temps polynomial.

Preuve Prouvons d’abord qu’un passage dans la boucle s’exécute en temps polyno-
mial. Deviner q signifie que l’on va tester toutes les valeurs possibles pour q, donc
|F (T )| valeurs différentes. Nous avons déjà montré que la dichotomie s’effectue en temps
O(log(f (F (T ))). Donc, un passage dans la boucle s’effectue en temps O(|F (T )| log(f (F (T ))).
Comme à chaque étape, |A| augmente strictement ou |F (T )| diminue strictement, l’al-
gorithme s’exécute en un maximum de |F (T )| passages dans la boucle. Nous pouvons
conclure que l’algorithme s’exécute en temps O(|F (T )|2 log(f (F (T ))) qui est un temps
polynomial. 

75
Chapitre 3. Réduction de distance

76
Conclusion

Nous concluons ce manuscrit en rappelant les résultats principaux présentés dans


chacun des trois chapitres précédents et en ouvrant quelques perspectives de recherche
dans le prolongement de ces travaux.
Dans le Chapitre 1, nous étudions le problème de trouver un chemin qui collecte
un maximum d’étiquettes dans un graphe orienté acyclique dont les sommets sont éti-
quetés. L’ordre partiel induit par le graphe permet de répartir de façon naturelle ses
sommets en niveaux. En exploitant cette structure spécifique, nous décrivons deux mé-
thodes systématiques qui permettent, à partir d’un algorithme d’approximation donné,
d’obtenir un algorithme d’approximation avec un meilleur facteur. Ces méthodes sont
utilisées pour les deux principaux résultats de ce chapitre. Pour l’auto-réduction, en ap-
pliquant un algorithme facteur β sur le graphe cube D̃, on déduit un algorithme facteur
g(β) sur le graphe initial D. Cette auto-réduction combinée avec l’AP X-difficulté du
problème étudié permet d’obtenir un résultat d’inapproximabilité du problème par un
facteur constant. Pour obtenir le schéma d’algorithmes polynomiaux facteur ( OP1T ǫ )ǫ>0 ,
nous exploitons de nouveau une décomposition du graphe orienté sans cycle par niveaux.
Dans chacun de ces niveaux, on applique l’algorithme donné et on rassemble ensuite les
solutions sur les différents niveaux afin d’obtenir une meilleure solution que celle qu’on
aurait pu obtenir en lançant simplement l’algorithme sur le graphe de base. Notre pre-
mière piste de recherche consiste à combler l’écart entre le résultat positif et le résultat
négatif. D’un côté, nous cherchons à améliorer le facteur ( OP1T ǫ )ǫ>0 , de l’autre, nous
cherchons à faire avancer le facteur d’inapproximabilité. Peut-on trouver un algorithme
polynomial avec un facteur logarithmique ou au contraire peut on montrer qu’un tel
algorithme n’existe pas à moins que P = N P ? La deuxième piste de recherche consiste
à abandonner la contrainte de polynomialité pour rechercher des algorithmes FPT. Nous
présentons d’ailleurs un algorithme exact FPT avec comme paramètre le nombre d’éti-
quettes dans le graphe. Cet algorithme ne peut pas être efficace pour traiter un graphe
avec un grand nombre d’étiquettes mais pour lequel le nombre maximum d’étiquettes
collectées par un chemin est petit. Obtenir un algorithme FPT pour le paramètre natu-
rel, i.e le nombre maximum d’étiquettes collectées (OP T ), est une question intéressante.
Le nombre de niveaux dans le graphe qui est un des paramètres central de l’étude du pro-
blème, est une borne supérieure triviale du paramètre naturel OP T . Par cette remarque,
tout algorithme FPT avec pour paramètre OP T est aussi FPT pour le nombre de ni-
veaux. Il est donc plus difficile de trouver un algorithme FPT pour le nombre de niveaux,

77
Conclusion

et c’est aussi une question qui nous intéresse. Notre dernière piste de recherche consiste
à considérer des instances particulières du problème. On peut par exemple, comme dans
l’article [12] , considérer des instances où chaque étiquette apparait au plus r fois, où r
est un entier fixé. Par notre réduction à partir Max-3SAT, nous savons déjà que pour
r ≥ 3, le problème est AP X-difficile. Mais, nous ne savons pas si l’inapproximabilité par
un facteur constant tient pour ces instances particulières. Nous ne savons rien pour le
cas r = 2 qui, contrairement à ce qu’on pourrait penser, n’est déjà pas trivial.
Dans le Chapitre 2, nous prouvons que les problèmes d’arbre couvrant minimum avec
contrainte d’intermédiarité et de k + -chaîne se résolvent en temps polynomial. Pour cela,
nous réduisons ces problèmes à des problèmes de recherche d’un indépendant de poids
maximum commun à deux matroïdes dont la résolution est polynomiale. L’utilisation de
cette boîte noire dissimule les caractéristiques importantes de nos problèmes qui nous
permettent de les résoudre en temps polynomial. Nous aimerions donc trouver des algo-
rithmes combinatoires en temps polynomial qui ne font pas appel au problème sur les
matroïdes. Cele pourrait aussi permettre d’obtenir des algorithmes avec une meilleure
complexité. La notion de U -matroïde nous parait intéressante en elle-même et nous sou-
haiterions également étudier la possibilité d’utiliser cette notion pour résoudre d’autres
problèmes d’arbre couvrant minimum avec contrainte. Dans ce chapitre, nous étudions
également le problème de l’arbre couvrant minimum avec la contrainte de k − -chaîne.
Nous donnons un algorithme polynomial facteur 2 et nous prouvons qu’il est impossible
d’obtenir un algorithme avec un meilleur facteur constant à moins que P = N P . D’une
certaine manière, ce résultat est assez surprenant. En effet, l’algorithme facteur 2 est très
simple alors que la preuve d’inapproximabilité nécessite l’utilisation du résultat principal
du Chapitre 1 sur l’inapproximabilité du problème du chemin le plus étiqueté qui est
beaucoup plus difficile à démontrer. Même s’il n’existe pas d’algorithme polynomial avec
un facteur meilleur que 2, nous pouvons encore trouver des algorithmes polynomiaux
avec un facteur du type 2 − f (I) où f (I) est une fonction de l’instance I considérée.
Mais nos principales pistes de recherche consistent à considérer d’autres problèmes de
conception de réseaux qui prennent en compte à la fois des contraintes de connexité et
de distance. Certains problèmes intéressants sont déjà présentés dans la dernière section
du chapitre. Ces problèmes sont difficiles du point de vue de l’approximation polyno-
miale. Par exemple, trouver deux uv-chaînes sommets disjoints dans un graphe tel que
le nombre d’arêtes d’une des deux chaîne est bornée est déjà N P -difficile. Un autre
problème intéressant que nous souhaitons étudier est le suivant. Etant donné un graphe
dont les arêtes sont pondérées, deux sommets particuliers u et v et un entier k, trouver
un sous-graphe connexe H de coût minimum tel que u et v appartiennent à un cycle élé-
mentaire contenant au plus k arêtes de H. Pour les problèmes de ce type, notre objectif
est de déterminer les limites de ce qu’il est possible de calculer en temps polynomial,
éventuellement du point de vue de l’approximation si le problème est N P -difficile.
Dans le Chapitre 3, nous formulons un problème de réduction de distance dans les
arbres. Nous exhibons d’abord un algorithme qui résout le problème en temps polyno-
mial. Cet algorithme consiste juste à résoudre successivement des problèmes de coupe
minimum. Nous sommes aussi intéressés par le problème sur les graphes généraux où

78
l’on veut réduire les distances entre un sommet source s et un ensemble de sommets U
(qui représentent les feuilles dans l’arbre). On peut formuler toute instance du diameter
lowering problem comme une instance particulière du problème de réduction de distance
sur les graphes généraux. Par les résultats de l’article [24], le diameter lowering problem
est N P -difficile et il en est de même pour le problème de ce chapitre. En effet, même si
on sait que le support de la solution optimale est contenu dans un arbre de plus court
chemin, il est compliqué de choisir l’arbre optimal. Nous cherchons donc des algorithmes
d’approximation pour le problème sur les graphes généraux. Dans le Chapitre 3, nous
montrons aussi que la fonction de coût associée à toute instance du problème est sous-
modulaire (ce qui est assez attendu compte tenu de l’algorithme de résolution qui consiste
à calculer des coupes minimum). Pour cela, nous utilisons la technique de décroisement
des coupes. Comme expliqué dans l’article [49], les fonctions sous-modulaires ont un rôle
central dans la théorie du partage de coût, c’est notamment grâce aux résultats de cet
article combinés aux résultats de [20], que nous montrons l’existence d’un mécanisme de
partage de coût polynomial et résistant aux stratégies pour le problème de réduction de
distance. Nous cherchons à étendre le mécanisme au cas des graphes généraux. Comme
le problème est N P -difficile, nous cherchons donc un mécanisme qui demande aux uti-
lisateurs de payer des montants qui ne couvrent pas la totalité du coût du service mais
qui en couvre une part garantie par un facteur d’approximation. Parallèlement, nous
pensons également étudier la version fractionnaire du problème où les arêtes peuvent
être contractées partiellement. Nous savons que l’on peut résoudre le problème en temps
polynomial par programmation linéaire, nous souhaiterions obtenir un algorithme com-
binatoire et prouver que la fonction de coût associée à une instance est sous-modulaire
afin de déduire un mécanisme de partage de coût polynomial.

79
Conclusion

80
Bibliographie

[1] Stefan Arnborg and Andrzej Proskurowski. Linear time algorithms for NP-hard
problems restricted to partial k-trees. Discrete applied mathematics, 23(1) :11–24,
1989.
[2] Lynn Margaret Batten. Combinatorics of finite geometries. Cambridge University
Press, 1997.
[3] Richard Bellman. On a routing problem. Technical report, DTIC Document, 1956.
[4] Claude Berge. Graphes et hypergraphes. 1970. Dunod, Paris.
[5] Oded Berman and Gabriel Y Handler. Optimal minimax path of a single service unit
on a network to nonservice destinations. Transportation Science, 21(2) :115–122,
1987.
[6] Marshall W. Bern, Eugene L. Lawler, and Alice L Wong. Linear-time computation
of optimal subgraphs of decomposable graphs. Journal of Algorithms, 8(2) :216–235,
1987.
[7] Umberto Bertele and Francesco Brioschi. Nonserial dynamic programming. Acade-
mic Press, Inc., 1972.
[8] Hans L Bodlaender. Dynamic programming on graphs with bounded treewidth. Sprin-
ger, 1988.
[9] Otakar Boruvka. O jistém problému minimálním. 1926.
[10] Hajo Broersma and Xueliang Li. Spanning trees with many or few colors in edge-
colored graphs. Discussiones Mathematicae Graph Theory, 17(2) :259–269, 1997.
[11] Hajo Broersma, Xueliang Li, Gerhard Woeginger, and Shenggui Zhang. Paths and
cycles in colored graphs. Australasian Journal on Combinatorics, 31 :299–311, 2005.
[12] Tobias Brüggemann, Jérôme Monnot, and Gerhard J Woeginger. Local search for
the minimum label spanning tree problem with bounded color classes. Operations
Research Letters, 31(3) :195–201, 2003.
[13] Ruay-Shiung Chang and Leu Shing-Jiuan. The minimum labeling spanning trees.
Information Processing Letters, 63(5) :277–282, 1997.
[14] Victor Chepoi, Hartmut Noltemeier, and Yann Vaxes. Upgrading trees under dia-
meter and budget constraints. Networks, 41(1) :24–35, 2003.

81
Bibliographie

[15] Stephen A Cook. The complexity of theorem-proving procedures. In Proceedings of


the third annual ACM symposium on Theory of computing, pages 151–158. ACM,
1971.
[16] Basile Couëtoux, Laurent Gourves, Jérôme Monnot, and Orestis A Telelis. Labeled
traveling salesman problems : Complexity and approximation. Discrete Optimiza-
tion, 7(1) :74–85, 2010.
[17] Bruno Courcelle and Joost Engelfriet. Graph structure and monadic second-order
logic : a language-theoretic approach, volume 138. Cambridge University Press,
2012.
[18] Geir Dahl, Luis Gouveia, and Cristina Requejo. On formulations and methods for
the hop-constrained minimum spanning tree problem. In Handbook of Optimization
in Telecommunications, pages 493–515. Springer, 2006.
[19] Jean-Alexandre Angles D’Auriac, Nathann Cohen, Hakim Maftouhi, Ararat Haru-
tyunyan, Sylvain Legay, and Yannis Manoussakis. Connected tropical subgraphs in
vertex-colored graphs. In 9th International colloquium on graph theory and combi-
natorics.
[20] Nikhil R Devanur, Milena Mihail, and Vijay V Vazirani. Strategyproof cost-sharing
mechanisms for set cover and facility location games. Decision Support Systems,
39(1) :11–22, 2005.
[21] Reinhard Diestel. Graduate texts in mathematics : Graph theory, 2000.
[22] Edsger W Dijkstra. A note on two problems in connexion with graphs. Numerische
mathematik, 1(1) :269–271, 1959.
[23] Rodney G Downey, Michael R Fellows, and Ulrike Stege. Parameterized com-
plexity : A framework for systematically confronting computational intractability.
In Contemporary trends in discrete mathematics : From DIMACS and DIMATIA
to the future, volume 49, pages 49–99. AMS-DIMACS Proceedings Series, 1999.
[24] Kay U Drangmeister, Sven O Krurnke, Madhav V Marathe, Hartmut Noltemeier,
and SS Ravi. Modifying edges of a network to obtain short subgraphs. Theoretical
Computer Science, 203(1) :91–121, 1998.
[25] Jack Edmonds. Matroids and the greedy algorithm. Mathematical programming,
1(1) :127–136, 1971.
[26] Jack Edmonds and Richard M Karp. Theoretical improvements in algorithmic
efficiency for network flow problems. Journal of the ACM (JACM), 19(2) :248–264,
1972.
[27] Tali Eilam-Tzoreff. The disjoint shortest paths problem. Discrete applied mathe-
matics, 85(2) :113–138, 1998.
[28] Lester Randolph Ford. Network flow theory. 1956.
[29] Michel X Goemans. Minimum bounded degree spanning trees. In Foundations
of Computer Science, 2006. FOCS’06. 47th Annual IEEE Symposium on, pages
273–282. IEEE, 2006.

82
[30] M Grotschel, L Lovasz, and A Schrijver. The ellipsoid method and combinatorial
optimization, 1988.
[31] Refael Hassin, Jérôme Monnot, and Danny Segev. Approximation algorithms and
hardness results for labeled connectivity problems. Journal of Combinatorial Opti-
mization, 14(4) :437–453, 2007.
[32] Refael Hassin, Jérôme Monnot, and Danny Segev. The complexity of bottleneck
labeled graph problems. In Graph-Theoretic Concepts in Computer Science, pages
328–340. Springer, 2007.
[33] Johan Håstad. Some optimal inapproximability results. Journal of the ACM
(JACM), 48(4) :798–859, 2001.
[34] Jan-Ming Ho, DT Lee, Chia-Hsiang Chang, and CK Wong. Minimum diameter
spanning trees and related problems. SIAM Journal on Computing, 20(5) :987–997,
1991.
[35] Toshihide Ibaraki, Yann Vaxès, and Xiao-guang Yang. Lowering eccentricity of a
tree by node upgrading. Networks, 45(4) :232–239, 2005.
[36] Satoru Iwata, Lisa Fleischer, and Satoru Fujishige. A combinatorial strongly polyno-
mial algorithm for minimizing submodular functions. Journal of the ACM (JACM),
48(4) :761–777, 2001.
[37] Kamal Jain and Vijay V Vazirani. Equitable cost allocations via primal-dual-type
algorithms. In Proceedings of the thiry-fourth annual ACM symposium on Theory
of computing, pages 313–321. ACM, 2002.
[38] Richard M Karp. Reducibility among combinatorial problems. Springer, 1972.
[39] Leonid G Khachiyan. Polynomial algorithms in linear programming. USSR Com-
putational Mathematics and Mathematical Physics, 20(1) :53–72, 1980.
[40] Ton Kloks. Treewidth : computations and approximations, volume 842. Springer
Science & Business Media, 1994.
[41] Sven O Krumke, Madhav V Marathe, Hartmut Noltemeier, R Ravi, and SS Ravi.
Approximation algorithms for certain network improvement problems. Journal of
Combinatorial Optimization, 2(3) :257–288, 1998.
[42] Sven O Krumke, Hartmut Noltemeier, Hans-C Wirth, Madhav V Marathe, R Ravi,
SS Ravi, and R Sundaram. Improving spanning trees by upgrading nodes. Theore-
tical Computer Science, 221(1) :139–155, 1999.
[43] Sven O Krumke and Hans-Christoph Wirth. On the minimum label spanning tree
problem. Information Processing Letters, 66(2) :81–85, 1998.
[44] Sven Oliver Krumke, Madhav V. Marathe, Hartmut Noltemeier, R Ravi, SS Ravi,
Ravi Sundaram, and H-C Wirth. Improving minimum cost spanning trees by up-
grading nodes. Journal of Algorithms, 33(1) :92–111, 1999.
[45] Joseph B Kruskal. On the shortest spanning subtree of a graph and the traveling
salesman problem. Proceedings of the American Mathematical society, 7(1) :48–50,
1956.

83
Bibliographie

[46] Leonid A Levin. Universal sequential search problems. Problemy Peredachi Infor-
matsii, 9(3) :115–116, 1973.
[47] Jérôme Monnot. The labeled perfect matching in bipartite graphs. Information
Processing Letters, 96(3) :81–88, 2005.
[48] Edward F Moore. The shortest path through a maze. Bell Telephone System., 1959.
[49] Hervé Moulin and Scott Shenker. Strategyproof sharing of submodular costs :
budget balance versus efficiency. Economic Theory, 18(3) :511–533, 2001.
[50] James G Oxley. Matroid theory, volume 3. Oxford University Press, USA, 2006.
[51] Doowon Paik and Sartaj Sahni. Network upgrading problems. Networks, 26(1) :45–
58, 1995.
[52] Alexander Schrijver. A combinatorial algorithm minimizing submodular functions
in strongly polynomial time. Journal of Combinatorial Theory, Series B, 80(2) :346–
355, 2000.
[53] Alexander Schrijver. Combinatorial optimization : polyhedra and efficiency, vo-
lume 24. Springer Science & Business Media, 2003.
[54] Mohit Singh and Lap Chi Lau. Approximating minimum bounded degree spanning
trees to within one of optimal. In Proceedings of the thirty-ninth annual ACM
symposium on Theory of computing, pages 661–670. ACM, 2007.
[55] Vijay V Vazirani. Approximation algorithms. Springer Science & Business Media,
2013.
[56] David P Williamson and David B Shmoys. The design of approximation algorithms.
Cambridge university press, 2011.
[57] JZ Zhang, XG Yang, and MC Cai. Inapproximability and a polynomially solvable
special case of a network improvement problem. European Journal of Operational
Research, 155(1) :251–257, 2004.
[58] JZ Zhang, XG Yang, and MC Cai. A network improvement problem under different
norms. Computational Optimization and Applications, 27(3) :305–319, 2004.

84
Résumé
Cette thèse porte sur différents problèmes d’optimisation combinatoire dont nous
avons caractérisé la difficulté en décrivant des réductions et des algorithmes polyno-
miaux exacts ou approchés. En particulier, nous étudions le problème de trouver, dans
un graphe orienté sans cycle dont les sommets sont étiquetés, un chemin qui passe par un
maximum d’étiquettes différentes. Nous établissons qu’il n’existe pas d’algorithme po-
lynomial avec un facteur constant pour ce problème. Nous présentons aussi un schéma
qui permet d’obtenir, pour tout ǫ > 0, un algorithme polynomial qui calcule un chemin
collectant O(OP T 1−ǫ ) étiquettes. Nous étudions ensuite des variantes du problème de
l’arbre couvrant de poids minimum auquel nous ajoutons des contraintes de distance
et d’intermédiarité. Nous prouvons que certaines variantes se résolvent en temps poly-
nomial comme des problèmes de calcul d’un libre de poids minimum commun à deux
matroïdes. Pour une autre variante, nous présentons un algorithme d’approximation fac-
teur 2 et nous prouvons qu’il n’existe pas d’algorithme polynomial avec un meilleur
facteur constant. Enfin, nous étudions un problème d’améliorations de réseaux du point
de vue du partage des coûts. Nous montrons que la fonction de coût associée à ce pro-
blème est sous-modulaire et nous utilisons ce résultat pour déduire un mécanisme de
partage des coûts qui possède plusieurs bonnes propriétés.

Mots-clés: Réseaux, optimisation combinatoire, complexité, chemins, arbres couvrant.

Abstract
In this thesis, we investigate several combinatorial optimization problems and
characterize their computational complexity and approximability by providing polyno-
mial reductions and exact or approximation algorithms. In particular, we study the
problem of finding, in a vertex-labeled directed acyclic graph, a path collecting a max-
imum number of distinct labels. We prove that no polynomial time constant factor ap-
proximation algorithm exists for this problem. Furthermore, we describe a scheme that
produces, for any ǫ > 0, a polynomial time algorithm that computes a solution collect-
ing O(OP T 1−ǫ ) labels. Then, we study several variants of the minimum cost spanning
tree problem that take into account distance and betweenness constraints. We prove
that most of these problems can be solved in polynomial time using a reduction to the
weighted matroid intersection problem. For an other problem, we give a factor 2 approx-
imation algorithm and prove the optimality of this ratio. Finally, we study a network
improvement problem from a cost sharing perspective. We establish that the cost func-
tion corresponding to this problem is submodular and use this result to derive a cost
sharing mechanism having several good properties.

Keywords: Networks, combinatorial optimization, complexity, paths, spanning trees.

Vous aimerez peut-être aussi