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

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.