W książce Sipsera „Wprowadzenie do teorii obliczeń” na stronie 286 zmniejszono z 3SAT do problemu ścieżki Hamiltona.
Czy istnieje prostsza redukcja?
Mówiąc prościej, mam na myśli redukcję, która byłaby łatwiejsza do zrozumienia (dla studentów).
Czy istnieje redukcja wykorzystująca liniową liczbę zmiennych?
Redukcja w Sipserze wykorzystuje zmienne , gdzie jest liczbą klauzul, a jest liczbą zmiennych. Innymi słowy, możliwe jest, aby redukcja wydmuchała rozmiar od do . Czy istnieje prosta redukcja, w której wielkość wyniku redukcji jest liniowa względem wielkości jej wejścia?k n s O ( s 2 )
Jeśli nie jest to możliwe, czy istnieje powód? Czy oznaczałoby to nieznany wynik w złożoności / algorytmach?
complexity-theory
np-hard
Kaveh
źródło
źródło
Odpowiedzi:
Liczbę wierzchołków w znanej redukcji z 3SAT do ukierunkowanej ścieżki hamiltonowskiej (dHAMPATH) można łatwo zmniejszyć do , gdzie jest liczbą zmiennych, a jest liczbą klauzul, a zatem wielkości skonstruowana instancja graficzna jest liniowa do rozmiaru oryginalnej instancji 3SAT.n kO(n+k) n k
W pierwotnej redukcji mamy wierzchołek początkowy i końcowy, wierzchołków dla klauzul, list długości dla zmiennych. Chodzi o to, że nie musimy konstruować listy o długości dla każdej zmiennej, możemy konstruować listę zgodnie z liczbą, która pojawia się we wszystkich klauzulach. Ponieważ łączna liczba wystąpień zmiennych w klauzulach wynosi , jest to .n 4 k 4 k 3 k O ( n + k )k n 4k 4k 3k O(n+k)
źródło