อาจจะค่อนข้างง่าย แต่ฉันมีปัญหาในการลดขนาดนี้ ฉันต้องการลดผลรวมเซ็ตย่อยเป็น พาร์ติชันแต่ในเวลานี้ฉันไม่เห็นความสัมพันธ์!
เป็นไปได้ไหมที่จะลดปัญหานี้โดยใช้การลดเลวิน?
หากคุณไม่เข้าใจเขียนเพื่อชี้แจง!
อาจจะค่อนข้างง่าย แต่ฉันมีปัญหาในการลดขนาดนี้ ฉันต้องการลดผลรวมเซ็ตย่อยเป็น พาร์ติชันแต่ในเวลานี้ฉันไม่เห็นความสัมพันธ์!
เป็นไปได้ไหมที่จะลดปัญหานี้โดยใช้การลดเลวิน?
หากคุณไม่เข้าใจเขียนเพื่อชี้แจง!
คำตอบ:
อนุญาตเป็นตัวอย่างของผลรวมย่อยของเซตโดยที่คือรายการ (มัลติเซ็ต) ของตัวเลขและคือผลรวมเป้าหมาย ให้ L Let เป็นรายการที่เกิดขึ้นโดยการเพิ่มเพื่อL
(1) หากมีรายการย่อยข้อสรุปเพื่อแล้วสามารถแบ่งออกเป็นสองส่วนเท่า ๆ กัน: และ\} อันที่จริงส่วนเงินก้อนแรกที่และสองเพื่อ( S - B ) + ( S + B ) = 2 S
(2) ถ้าสามารถแบ่งออกเป็นสองส่วนเท่า ๆ กันแล้วมีรายการย่อยของข้อสรุปเพื่อBแน่นอนเนื่องจากและแต่ละส่วนจะรวมกันเป็นองค์ประกอบทั้งสองจึงอยู่ในส่วนที่แตกต่างกัน โดยไม่สูญเสียของทั่วไป, 1 องค์ประกอบที่เหลือในเป็นของและผลรวมไปB
คำตอบที่กล่าวถึงโดย@Yuval Filmusไม่ถูกต้อง (ถูกต้องเฉพาะในกรณีที่ไม่มีจำนวนเต็มลบ) พิจารณามัลติเซ็ตต่อไปนี้:
และผลรวมเป้าหมายคือ 2 เรารู้ว่าไม่มีส่วนย่อย ตอนนี้เราสร้างอินสแตนซ์สำหรับปัญหาพาร์ติชัน ทั้งสององค์ประกอบใหม่ที่เพิ่มขึ้นเป็น2 σ - T = 12และσ + T = 3 MultiSet ขณะนี้: { - 5 , 2 , 2 , 2 , 2 , 2 , 3 , 12 }และผลรวมเป็น20
ปัญหาของพาร์ติชันแก้คำตอบที่ให้เซ็ตย่อยนี่อิลิเมนต์ใหม่ 2 ตัวนั้นอยู่ในเซตย่อยเดียวกัน ดังนั้นนี่คือตัวอย่างเคาน์เตอร์ คำตอบที่ถูกต้องมีดังนี้:
เพิ่มองค์ประกอบที่มีค่าเป็น σ ผลรวมของ MultiSet ในขณะนี้คือ2ตัน แก้ปัญหาพาร์ทิชันที่จะให้ 2 ส่วนย่อยของจำนวนเงินเอาเสื้อ พาร์ทิชันเดียวเท่านั้นที่จะมีองค์ประกอบใหม่ เราเลือกพาร์ติชันอื่นที่มีผลรวมเป็นtและเราได้แก้ไขปัญหาชุดย่อยโดยลดลงในปัญหาพาร์ติชัน นี่คือสิ่งที่ลิงค์อธิบาย
นี่คือหลักฐานที่ตรงไปตรงมา:
เป็นเรื่องง่ายที่จะเห็นว่า SET-PARTITION สามารถตรวจสอบได้ในเวลาพหุนาม ให้พาร์ทิชันเพียงสรุปทั้งสองและตรวจสอบว่าผลรวมของพวกเขาเท่ากับแต่ละอื่น ๆ ซึ่งจะเห็นได้ชัดในการตรวจสอบเวลาพหุนาม (เพราะบวกคือการดำเนินการพหุนามและเราเป็นเพียงการแสดงที่มากที่สุด summations ๆ อีกมากมาย)
แก่นแท้ของการพิสูจน์คือการลด SUBSETSUM เป็น PARTITION; ที่ปลายได้รับชุดและค่า (แบบสอบถามเซตรวม) เราฟอร์มชุดใหม่ที่ x หากต้องการดูว่านี่เป็นการลด:
() ถือว่ามีอยู่บางดังกล่าวว่าแล้วเราจะมีที่
() สมมติว่ามีพาร์ทิชันของดังกล่าวว่า x โปรดสังเกตว่าสิ่งนี้ทำให้เกิดพาร์ติชันธรรมชาติและของเช่นนั้น WLOG เรามี
ดังนั้นจากวิธีแก้ปัญหาเราสามารถสร้าง parition , และตรงกันข้ามจากพาร์ติชันเราสามารถสร้าง soltuion ดังนั้นการทำแผนที่เป็นการลด (เนื่องจากอยู่ในภาษา / ชุด SUBSETSUMคือ ในส่วนของภาษา / ชุด) และเห็นได้ชัดว่าการเปลี่ยนแปลงได้ทำในเวลาพหุนาม
ผลรวมย่อย:
อินพุต: {a1, a2, ... , am} st M = {1..m} และ ai ไม่ใช่จำนวนเต็มลบและS⊆ {1..k} และΣai (i∈S) = t
Partition:
อินพุต: {a1, a2, ... , am} และS⊆ {1, ···, m} st Σai (i∈S) = Σaj (j∉S)
Partition Np Proof: ถ้า prover มีพาร์ติชั่น (P1, P2) สำหรับ verifier, verifier สามารถคำนวณผลรวมของ P1 และ P2 ได้อย่างง่ายดายและตรวจสอบว่าผลลัพธ์เป็น 0 ในเวลาเชิงเส้นหรือไม่
NP_Hard: กลุ่มผลรวม PARTp PARTITION
ปล่อยให้ x เป็นอินพุทของเซตย่อยและ x = 〈a1, a2, ... , am, t〉 และΣai (i จาก 1 ถึง m) = a
Case1: 2t> = a:
ให้ f (x) = 〈a1, a2, ... , am, am + 1〉 โดยที่ + 1 = 2t − a
เราต้องการแสดงให้เห็นว่าx∈SubsetSum⇔ f (x) ARTPARTITION
ดังนั้นจึงมีS⊆ {1, ... , m} st T = {1..m} - S และΣai (i∈T) = ที่
และให้ T '= {1 ... m, m + 1} - S so Σaj (j∈T') = a-t + 2t-a = t
ซึ่งก็คือΣai (i∈S) = t และจะแสดง f (x) ARTPARTITION
ตอนนี้เราจะแสดงให้เห็นว่าf (x) ARTPARTITION ∈x∈SubsetSum
ดังนั้นจึงมีS⊆ {1, ... , m, m + 1} st T = {1, ... , m, m + 1} - S และΣai (i∈T) = [a + (2t-a ) -t] = T
และมันแสดงให้เห็นΣai (i∈T) = Σaj (j∈S) ดังนั้น m + 1∈TและS⊆ {1, ···, m} และΣai (i∈S) = t
ดังนั้น xSubsetSum
กรณีที่ 2: 2t = <a :
เราสามารถตรวจสอบได้เหมือนกัน แต่ในเวลานี้ฉัน +1 คือ − 2t
ลิงก์นี้มีคำอธิบายที่ดีเกี่ยวกับการลดพาร์ติชันไปยังผลรวมย่อยและผลรวมย่อยของพาร์ติชัน ฉันคิดว่ามันชัดเจนกว่าคำตอบของ YUVAL ลิงค์ที่มีประโยชน์