MISE À JOUR: la réponse ci-dessous n'est pas correcte, car j'ai supposé à tort que le chemin hamiltonien est dans un graphe arbitraire, pas dans . Je ne le supprime pas, je pourrai peut-être le réparer ou il donnera quelques indices pour une autre réponse.Kn
Je pense que c'est NP-complet. Ceci est une idée de réduction très informelle / rapide de 3SAT
Pour chaque variable ajouter un « gadget variable » avec:Xje
- trois nœuds Xje, + Xje, - Xje
- deux bords variables et ( X i , - X i )( Xje, + Xje)( Xje, - Xje)
Ajoutez un nœud source et connectez-le à toutes les variables X i .SXje
Pour chaque clause ajoutez un nœud C j et connectez-le aux variables correspondantes + X i ou - X i qui forment la clause.CjCj+ Xje- Xje
L'image suivante représente: ( + x1∨ - x2∨ - x3) ∧ ( - x2∨ x3∨ x4)
L'ensemble (nœuds qui doivent être liés) contient ( S , C 1 ) , ( S , C 2 ) , . . .R( S, C1) , ( S, C2) , . . .
Le chemin simple doit inclure toutes les arêtes "BLEUES" à l'exception des arêtes variables ( X i , + X i ) et ( X i , - X i ) (dans l'image ci-dessus, les arêtes bleues représentent les arêtes que nous incluons dans P ).P( Xje, + Xje)( Xje, - Xje)P
À ce stade, la formule initiale est satisfaisable si et seulement si le chemin le plus court de à chaque nœud de clause C j n'est pas supérieur à trois. En effet pour atteindre une clause de S en trois étapes il faut parcourir au moins une variable X i : S → X i → ± X i → C j . Il faut donc traverser l'une des deux arêtes: X i → + X i ou X i → - X i ) et l'inclure dans CSCjSXjeS→ Xje→ ± Xje→ CjXje→ + XjeXje→ - Xje)C(car par construction ça ne fait pas partie de ). Mais les deux ne peuvent pas être inclus, car ils partagent un sommet.P
Mais nous ne sommes pas sûrs de pouvoir construire un chemin P simple qui inclut tous les bords bleus car certains nœuds ont plus d'un bord bleu incident.P
Pour résoudre ce problème, nous remplaçons chaque nœud par plusieurs bords bleus incidents, par un arbre qui ne contient que des paires de bords bleus incidents qui seront inclus dans et des bords qui les séparent et qui devraient être inclus dans C pour atteindre les nœuds de la clause:PC
Le graphique d'origine devient:
KCjS
C
P