Pengurangan mudah dari 3SAT ke masalah jalur Hamiltonian

19

Ada pengurangan dalam buku Sipser "Pengantar teori komputasi" di halaman 286 dari 3SAT ke masalah jalur Hamilton.

Apakah ada pengurangan yang lebih sederhana?

Secara sederhana yang saya maksud adalah pengurangan yang akan lebih mudah dipahami (untuk siswa).

Apakah ada pengurangan yang menggunakan jumlah variabel linear?

Pengurangan dalam Sipser menggunakan variabel mana k adalah jumlah klausa dan n adalah jumlah variabel. Dengan kata lain, adalah mungkin bagi reduksi untuk meniup ukuran dari s ke O ( s 2 ) . Apakah ada reduksi sederhana di mana ukuran output reduksi linier dalam ukuran inputnya?O(kn)knsO(s2)

Jika tidak memungkinkan, adakah alasannya? Apakah itu menyiratkan hasil yang tidak diketahui dalam kompleksitas / algoritma?

Kaveh
sumber
Untuk lebih jelasnya: Apakah Anda ingin fungsi pengurangan yang memetakan instance 3SAT ke instance HP, atau Anda ingin bukti yang mengurangi "3SAT dalam NPC?" untuk "HP in NPC?"? (Saya kira yang pertama). Bisakah Anda jelaskan bukti yang Anda rujuk? Beberapa dari kita mungkin tidak memiliki buku yang praktis.
Raphael
@ Raphael, saya ingin pengurangan dari 3SAT ke HamPath.
Kaveh
Pengurangan dalam Sipser adalah gadget yang sudah lama digunakan, saya lebih suka untuk tidak mengulangi pengurangan di sini. Anda dapat menafsirkan pertanyaan pertama sebagai: apakah ada pengurangan sederhana?
Kaveh
2
@ Kaveh Saya menemukan slide kuliah di sini cukup mudah untuk diikuti: cbcb.umd.edu/~carlk/bioinfo-lectures/sat.pdf Mereka mengurangi 3sat menjadi Ham. Siklus, dan Ham. Siklus ke Ham. Path. Mereka dengan mudah menjadi hit pertama untuk "pengurangan dari 3sat ke jalur hamiltonian" tetapi mungkin tidak menjawab pertanyaan kedua Anda.
Joe
1
@ Kaveh: pertanyaan yang bagus, terutama pertanyaan "Apakah itu menyiratkan hasil yang tidak diketahui dalam kompleksitas / algoritma?" bagian :-). Saya bukan seorang ahli, tetapi saya ingin melihatnya ditanyakan di cstheory.
Vor

Jawaban:

7

O(n+k)nk

kn4k4k3kO(n+k)

cc
sumber