informatique (MP2I/MPI) · Chapitre 24 · Application directe du cours
Problème — Le théorème de König
Composantes fortement connexes et couplages · niveau 3 (difficile)
Énoncé
Une couverture par sommets est un ensemble de sommets touchant toutes les arêtes. On note le cardinal minimal d'une couverture et celui d'un couplage maximum.
- Montrer que dans tout graphe.
- Montrer que l'inégalité peut être stricte.
- Démontrer l'égalité dans un graphe biparti, en construisant la couverture.
- Quelle conséquence algorithmique en tire-t-on ?
Corrigé
1. Soit un couplage et une couverture. Chaque arête de doit être touchée par au moins un sommet de . Deux arêtes distinctes de n'ayant aucune extrémité commune, elles sont touchées par des sommets distincts. L'application « arête de un sommet de qui la touche » est donc injective, d'où . En passant au maximum à gauche et au minimum à droite : .
2. Sur le triangle , — deux arêtes quelconques partagent un sommet — et — un seul sommet laisse une arête découverte. L'inégalité est stricte. C'est le cycle impair qui la rend stricte, et un graphe biparti n'en a pas.
3. La construction. Soit biparti de parties et , et un couplage maximum. Notons l'ensemble des sommets de non saturés par , et l'ensemble des sommets atteignables depuis par des chemins alternants (arête hors , puis arête de , etc.). Posons
est une couverture. Soit une arête avec , . Si , alors et c'est fini. Si , montrons que . Si , alors le chemin alternant qui atteint se prolonge par — il arrive en soit depuis directement ( non saturé), soit par une arête de —, donc . Si , alors est saturé, donc , donc a été atteint par une arête de , qui est justement : . Dans les deux cas .
. Deux observations. Premièrement, tout sommet de est saturé, puisque . Deuxièmement, tout sommet de est saturé : sinon le chemin alternant qui l'atteint serait un chemin augmentant, ce que le théorème de Berge interdit pour un couplage maximum. Chaque sommet de est donc l'extrémité d'une arête de . Enfin, aucune arête de n'a ses deux extrémités dans : si avec , on a vu que est alors atteint depuis par cette même arête de , donc , donc . L'application « sommet de son arête de » est donc injective : .
En combinant avec la question 1 : . Tout est égal.
Vérification : sur graphes bipartis aléatoires, le cardinal du couplage maximum et celui de la plus petite couverture (calculée par énumération de tous les sous-ensembles de sommets) coïncident sans un seul écart.
4. La conséquence algorithmique. Le couplage maximum est calculable en ; König donne donc, dans un graphe biparti, la couverture minimale en temps polynomial — et la construction ci-dessus l'exhibe, elle ne fait pas qu'annoncer son cardinal.
C'est remarquable, car la couverture minimale dans un graphe quelconque est np-difficile : c'est le problème que le chapitre chap:gloutons n'approchait qu'à un facteur . La bipartition fait passer un problème d'approximation à un problème exact, et le pont entre les deux est le couplage.
Et l'on retrouve la -approximation sous un autre jour : l'algorithme glouton du chapitre chap:gloutons prend les deux extrémités de chaque arête d'un couplage maximal ; dans un graphe biparti, König dit qu'une seule extrémité bien choisie par arête d'un couplage maximum suffit. Le facteur est exactement le prix de ne pas savoir laquelle.