ОНОВЛЕННЯ: відповідь нижче не вірна, тому що я помилково припустив, що гамільтонів шлях є в довільному графіку, а не в . Я залишаю це невизначеним, можливо, мені вдасться це виправити, або це дасть кілька підказок для іншої відповіді.Kn
Я думаю, що це NP-завершеність. Це дуже неформальна / швидка ідея скорочення від 3SAT
Для кожної змінної додаю "змінний гаджет" з:xi
- три вузли Xi,+Xi,−Xi
- два змінних ребра і ( X i , - X i )(Xi,+Xi)(Xi,−Xi)
Додайте вихідний вузол і підключіть його до всіх змінних X iSXi .
До кожного пункту додайте вузол C j і підключіть його до відповідних змінних + X i або - X i, що формує пропозицію.CjCj+Xi−Xi
На наступному малюнку зображено: (+x1∨−x2∨−x3)∧(−x2∨x3∨x4)
Безліч (вузли , які повинні бути пов'язані) містить ( S , C 1 ) , ( S , С 2 ) , . . .R(S,C1),(S,C2),...
Простий шлях повинен містити всі "СИНІ" краї, крім змінних ребер ( X i , + X i ) і ( X i , - X i ) (на малюнку над синіми краями позначаються ребра, які ми включаємо в P ).P(Xi,+Xi)(Xi,−Xi)P
На цьому етапі початкова формула є придатною тоді і лише тоді, коли найкоротший шлях від до кожного вузла пункту C j не перевищує трьох. Дійсно, щоб досягти пункту від S в три етапи, ми повинні пройти принаймні одну змінну X i : S → X i → ± X i → C j . Отже, ми повинні пройти один з двох ребер: X i → + X i або X i → - X i ) і включити його в CSCjSXiS→Xi→±Xi→CjXi→+XiXi→−Xi)C(бо за будівництвом це не є частиною P ). Але обидва не можуть бути включені, оскільки вони поділяють вершину.
Але ми не впевнені, що ми можемо побудувати простий шлях який включає всі сині краї, оскільки деякі вузли мають більше одного синього краю.P
Щоб виправити це, ми замінюємо кожен вузол декількома синіми країми падаючих, деревом, яке містить лише пари синіх країв, що потрапляють, які будуть включені в та ребра, які їх розділяють, і які повинні бути включені в C для досягнення вузлів пункту:PC
Початковий графік стає:
KCjS ).
C всі необхідні (не сині) краї, необхідні для досягнення вузлів пункту, оскільки вони не мають вершини.
P