Probleme – Du seuil à l'approximation garantie : la couverture par sommets
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 31 — Décidabilité et classes de complexité
Énoncé
Une couverture par sommets d'un graphe est un ensemble de sommets tel que toute arête ait au moins une extrémité dans .
- Écrire la version décision, et donner un certificat.
- Écrire un algorithme glouton dont on démontre qu'il rend au plus deux fois l'optimum.
- Mesurer le rapport obtenu, et le comparer à un autre glouton.
- Que peut-on dire du glouton « degré maximal », qui semble meilleur ?
Corrigé
1. La version décision. « Le graphe possède-t-il une couverture par sommets de taille au plus ? » Le certificat est l'ensemble lui-même : on vérifie , puis que chaque arête a une extrémité dans — en . Le problème est donc dans ; il est np-complet, ce qu'on admet.
Par la dichotomie sur le seuil, la version optimisation n'est pas plus difficile — appels suffisent.
2. Le glouton, et sa garantie. L'algorithme est court, et son idée n'est pas celle qu'on croit :
C <-- ensemble vide
tant qu'il reste une arete non couverte
choisir une telle arete (u, v) -- n'importe laquelle
ajouter u ET v a C -- LES DEUX
rendre C
Terminaison : chaque tour couvre au moins une arête, le nombre d'arêtes non couvertes décroît strictement.
Correction : à la sortie, plus aucune arête n'est non couverte, donc est bien une couverture.
La garantie. Soit l'ensemble des arêtes choisies par l'algorithme. Deux arêtes de ne partagent aucune extrémité : dès qu'on choisit , toutes les arêtes touchant ou deviennent couvertes et ne seront plus choisies. est donc un couplage. Or toute couverture doit contenir au moins une extrémité de chaque arête de , et ces extrémités sont deux à deux distinctes :
Et l'algorithme rend . Donc .
Ce qui rend la preuve possible, et c'est le point du problème : on ne compare pas à l'optimum, qu'on ne connaît pas. On le compare à une borne inférieure calculée en même temps, le couplage . Toute approximation garantie fonctionne ainsi.
Prendre les deux extrémités est nécessaire. Un glouton qui n'ajouterait qu'une extrémité — disons — ne fournirait plus de couplage, et la borne s'effondrerait.
3. Les mesures. Sur graphes aléatoires de à sommets, l'optimum étant calculé par recherche exhaustive :
| Rapport moyen | Pire rapport observé | |
|---|---|---|
| Glouton par arêtes (garantie ) | ||
| Glouton « degré maximal » |
Le pire rapport observé pour le premier vaut exactement : la garantie est atteinte, elle n'est donc pas améliorable telle quelle. Le graphe qui la réalise est simple : une arête isolée demande une couverture de taille , et l'algorithme en rend .
4. Le glouton « degré maximal ». Il choisit à chaque tour le sommet de plus grand degré parmi les arêtes restantes. Les mesures lui donnent un rapport moyen de — meilleur en pratique, et de loin.
Et pourtant on garde l'autre. Car le glouton par degré n'a aucune garantie constante : on construit, pour tout , des graphes bipartis où il rend fois l'optimum. Son rapport est en , non borné.
| Rapport garanti | Rapport observé | |
|---|---|---|
| Glouton par arêtes | , démontré | en moyenne |
| Glouton par degré | aucun, croît en | en moyenne |
C'est la distinction la plus utile du chapitre, et elle rejoint celle de son ouverture : la mesure sur des instances aléatoires dit ce qu'un algorithme fait d'habitude, la démonstration dit ce qu'il fait toujours. Un rapport moyen de ne protège de rien si l'instance suivante est adverse — et sur un problème np-complet, elle finit toujours par l'être.
C'est aussi ce que voulait dire le chapitre chap:gloutons en parlant d'approximation garantie : le mot porte tout.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.