ลดปัญหาเส้นทาง 3SAT ไปยัง Hamiltonian ได้ง่าย


19

มีการลดลงของหนังสือ Sipser "รู้เบื้องต้นเกี่ยวกับทฤษฎีการคำนวณ" ในหน้า 286 จาก 3SAT ถึงปัญหาเส้นทางมิลโตเนียน

มีการลดลงที่ง่ายขึ้น?

โดยง่ายฉันหมายถึงการลดที่จะเข้าใจได้ง่ายขึ้น (สำหรับนักเรียน)

มีการลดลงที่ใช้จำนวนตัวแปรเชิงเส้นหรือไม่?

การลดลงของ Sipser ใช้ตัวแปรโดยที่คือจำนวนของ clauses และคือจำนวนของตัวแปร ในคำอื่น ๆ ก็เป็นไปได้สำหรับการลดลงจะระเบิดขนาดจากไป2) มีการลดลงอย่างง่าย ๆ หรือไม่ที่ขนาดของเอาต์พุตของการลดเป็นเส้นตรงในขนาดของอินพุตO(kn)knsO(s2)

หากไม่สามารถทำได้มีเหตุผลหรือไม่ นั่นจะหมายถึงผลลัพธ์ที่ไม่ทราบแน่ชัดในความซับซ้อน / อัลกอริทึมหรือไม่?


เพื่อให้ชัดเจน: คุณต้องการฟังก์ชั่นการลดขนาดที่แมปอินสแตนซ์ของ 3SAT กับอินสแตนซ์ของ HP หรือคุณต้องการหลักฐานที่ลด "3SAT ใน NPC หรือไม่" ถึง "HP ใน NPC?" (ฉันเดาก่อน) คุณช่วยอธิบายโครงเรื่องที่คุณอ้างถึงได้ไหม พวกเราบางคนอาจไม่มีหนังสือเล่มนี้
Raphael

@ ราฟาเอลฉันต้องการลดจาก 3SAT เป็น HamPath
Kaveh

การลดลงของ Sipser นั้นเป็นแกดเจ็ตที่ใช้งานมานานฉันไม่ต้องการทำซ้ำการลดลงที่นี่ คุณสามารถตีความคำถามแรกว่า: มีการลดลงอย่างง่ายหรือไม่?
Kaveh

2
@Kaveh ฉันพบสไลด์บรรยายที่นี่เป็นเรื่องง่ายที่จะติดตาม: cbcb.umd.edu/~carlk/bioinfo-lectures/sat.pdfพวกเขาลด 3sat เป็น Ham รอบและแฮม ขี่จักรยานไปแฮม เส้นทาง. พวกเขาได้รับความสะดวกในการเข้าชมครั้งแรกของ "การลดจาก 3sat ไปสู่เส้นทาง hamiltonian" แต่อาจไม่ตอบคำถามที่สองของคุณ
Joe

1
@Kaveh: เป็นคำถามที่ดีโดยเฉพาะอย่างยิ่ง "นั่นจะบ่งบอกถึงผลลัพธ์ที่ไม่รู้จักในความซับซ้อน / อัลกอริทึมหรือไม่" ส่วน :-) ฉันไม่ใช่ผู้เชี่ยวชาญ แต่ฉันต้องการจะดูมันถามเกี่ยวกับ cstheory
Vor

คำตอบ:


7

จำนวนจุดยอดในการลดที่รู้จักกันดีจาก 3SAT ไปยังเส้นทาง Hamiltonian เส้นทาง (dHAMPATH) สามารถลดลงได้อย่างง่ายดายถึงโดยที่คือจำนวนของตัวแปรและคือจำนวนของคำสั่งดังนั้นขนาดของ อินสแตนซ์กราฟที่สร้างขึ้นเป็นเส้นตรงตามขนาดของอินสแตนซ์ 3SAT ดั้งเดิมO(n+k)nk

ในการลดขนาดดั้งเดิมเราได้เริ่มต้นจุดยอดและจุดสุดยอดจุดยอดสำหรับคำสั่งรายการของความยาวสำหรับตัวแปร แนวคิดคือเราไม่ต้องสร้างรายการความยาวสำหรับตัวแปรแต่ละตัวเราสามารถสร้างรายการตามหมายเลขที่ตัวแปรปรากฏในส่วนคำสั่งทั้งหมด ตั้งแต่จำนวนรวมของการปรากฏตัวของตัวแปรในคำสั่งเป็นมันเป็นk)kn4k4k3kO(n+k)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.