Problème de trouver un chemin passant par tous les sommets exactement une fois.
Définition
Un chemin hamiltonien dans est un chemin qui visite chaque sommet exactement une fois.
Problème de décision
- Instance : Graphe
- Question : possède-t-il un chemin hamiltonien ?
Complexité
HAM est NP-complet.
Certificat
- Certificat de verification : Permutation de
- Vérification :
Pour i = 2 à n:
si P[i-1]P[i] ∉ E alors retourner faux
retourner vrai
- Complexité de vérification :
Variante : Cycle Hamiltonien (HC)
HAM HC
Transformation :
est le graphe avec un sommet universel connecté à tous les sommets.
Preuve :
- Si a un chemin hamiltonien, alors a un cycle hamiltonien (passer par pour fermer le cycle)
- Si a un cycle hamiltonien, retirer donne un chemin hamiltonien dans
Application : Minimum Leaf Spanning Tree (MLST)
HAM MLST
Transformation :
Un arbre couvrant avec 2 feuilles est exactement un chemin hamiltonien.
Donc MLST est NP-difficile (même pour fixé).
Self-réductibilité
HAM est self-réductible : on peut retirer progressivement les arêtes tout en vérifiant l’existence d’un chemin hamiltonien.