التمرين 1
Exercice 1 — Forêts et arbres de poids maximum
Rappeler les propriétés équivalentes caractérisant un graphe qui est un arbre. Soit un graphe connexe auquel on associe à chaque arête de un poids .
- Montrer qu'un arbre de est de poids maximum si et seulement si pour chaque arête et pour toute arête de la chaîne , on a .
- Décrire et justifier un algorithme glouton pour trouver une forêt de poids maximum de .
- Donner une condition nécessaire et suffisante pour qu'une forêt de poids maximum soit un arbre.
- Quelle modification doit-on apporter à l'algorithme pour qu'il donne un arbre de poids maximum ?
- On considère le programme linéaire en 0-1 du sujet. Montrer qu'il formule le problème de la forêt de poids maximum, ajouter la contrainte pour obtenir une formulation de l'arbre de poids maximum, et montrer l'équivalence avec la formulation par coupes.
◀الحل
1.
Critère d'optimalité par échange : si une arête hors arbre a un poids strictement supérieur à une arête du cycle qu'elle crée, on peut améliorer le poids total. Donc dans un arbre maximal, chaque arête hors arbre est au plus égale au minimum des arêtes du chemin unique entre ses extrémités.
2.
Algorithme glouton : trier les arêtes par poids décroissant et ajouter successivement toute arête qui ne crée pas de cycle. Cela construit une forêt de poids maximum (Kruskal maximal).
3.
Une forêt de poids maximum est un arbre ssi elle est connexe, i.e. elle possède exactement arêtes et relie tous les sommets.
4.
Pour obtenir un arbre de poids maximum, on poursuit l'algorithme jusqu'à obtenir arêtes en imposant la connexité finale.
5.
La formulation 0-1 standard avec contraintes de sous-graphes acycliques décrit une forêt. Ajouter donne l'arbre. Les contraintes de coupes sont équivalentes à la connexité.