ปัญหา 3SUM (k-SUM) ทั่วไปใช่ไหม


29

3sumปัญหาพยายามที่จะระบุจำนวนเต็ม 3จากชุดขนาดเช่นที่0a,b,cSna+b+c=0

มันเป็นที่คาดคะเนได้ว่าจะไม่มีทางออกที่ดีกว่ากำลังสองคือ2) หรือจะนำมันแตกต่างกัน:2)o(n2)o(nlog(n)+n2)

ดังนั้นฉันสงสัยว่าสิ่งนี้จะนำไปใช้กับปัญหาทั่วไป: ค้นหาจำนวนเต็มสำหรับในเซตขนาดเช่นนั้น .aii[1..k]Sni[1..k]ai=0

ฉันคิดว่าคุณสามารถทำสิ่งนี้ได้ในสำหรับ (มันไม่สำคัญที่จะพูดคุยกับอัลกอริธึมธรรมดา) แต่มีอัลกอริธึมที่ดีกว่าสำหรับค่าอื่น ๆหรือไม่?o(nlog(n)+nk1)k2k=3
k


ข่าว / กระดาษเมื่อเร็ว ๆ นี้เกี่ยวกับ3SUMที่ดูขอบเขตที่ต่ำกว่าเกี่ยวกับความซับซ้อนของต้นไม้ตัดสินใจ
vzn

คำตอบ:


27

k -UM สามารถแก้ไขได้เร็วขึ้นดังนี้

  • สำหรับคู่ :kคำนวณรายการที่เรียงลำดับของผลรวมทั้งหมดขององค์ประกอบอินพุตตรวจสอบว่ามีทั้งบางจำนวนและลบล้าง-xอัลกอริทึมทำงานในเวลาเวลาSk/2SxxO(nk/2logn)

  • สำหรับแปลก :k Compute รายการที่เรียงลำดับของผลรวมทั้งหมดขององค์ประกอบของการป้อนข้อมูล สำหรับแต่ละองค์ประกอบเข้าตรวจสอบว่ามีทั้งและสำหรับบางหมายเลขx(ขั้นตอนที่สองคืออัลกอริทึม - เวลาสำหรับ 3SUM) อัลกอริทึมทำงานในเวลาเวลาS(k1)/2aSxaxxO(n2)O(n(k+1)/2)

อัลกอริธึมทั้งสองนั้นดีที่สุด (ยกเว้นอาจเป็นเพราะปัจจัยบันทึกเมื่อยิ่งใหญ่กว่า ) สำหรับค่าคงที่ในข้อ จำกัด ที่อ่อนแอ แต่เป็นธรรมชาติของโมเดลการตัดสินใจเชิงเส้นของการคำนวณเชิงเส้น สำหรับรายละเอียดเพิ่มเติมดู:k2k

  • Nir Ailon และ Bernard Chazelle ต่ำกว่าขอบเขตสำหรับการทดสอบความเสื่อมเชิงเส้น JACM 2005

  • Jeff Erickson ต่ำกว่าขอบเขตสำหรับปัญหา satisfiability เชิงเส้น CJTCS 1999


stackoverflow.com/a/14737071/511736แนะนำอัลกอริทึม O (n ^ 2) เมื่อ k = 4
Kowser

1
Hashing กำลังโกง อัลกอริทึมที่อธิบายที่ StackOverflow จะทำงานในเวลา O (n ^ 2) สำหรับอินพุตจำนวนเต็มเท่านั้นและมีความน่าจะเป็นสูงเท่านั้นและถ้าคุณใช้ฟังก์ชันแฮชแบบสุ่มที่เหมาะสมเท่านั้น อัลกอริทึมในคำตอบของฉันทำงานในรูปแบบ RAM จริงซึ่งกำหนดไว้อย่างสมบูรณ์และขอบเขตเวลาเป็นกรณีที่เลวร้ายที่สุด นอกจากนี้คุณยังสามารถกำจัด log-factor ในการตั้งค่าจำนวนเต็มโดยใช้ "bit tricks" แต่มันน่าเบื่อ
JeffE

12

d -SUM ต้องใช้เวลาเว้นแต่ k-SAT สามารถแก้ไขได้ในเวลาสำหรับค่าคงที่ k นี่แสดงในกระดาษโดย Mihai Patrascu และ Ryan Williams (1)nΩ(d)2o(n)

กล่าวอีกนัยหนึ่งสมมติว่าสมมติฐานเวลาเอ็กซ์โพเนนเชียลอัลกอริธึมของคุณดีที่สุดจนถึงปัจจัยคงที่ในเลขชี้กำลัง (พหุนามปัจจัยใน )n

(1) Mihai Patrascu และ Ryan Williams เกี่ยวกับความเป็นไปได้ของอัลกอริทึม SAT ที่เร็วขึ้น พร การประชุมวิชาการ ACM / SIAM ครั้งที่ 21 ในอัลกอริธึมแบบไม่ต่อเนื่อง (SODA2010)


3

นี่คือข้อสังเกตง่ายๆ

สำหรับคุณสามารถทำได้ในเวลาโดยการสแกนอาร์เรย์เพื่อหาศูนย์ สำหรับ , คุณสามารถทำมันได้โดยไม่ต้องคร่ำเครียดในเวลา จัดเรียงอาร์เรย์แล้วสแกน สำหรับแต่ละองค์ประกอบจะค้นหาไบนารี-iผลนี้ในความซับซ้อนรวมของn) สำหรับกรณีคุณสามารถทำได้ในเวลาโดยการสะสมอาร์เรย์และตรวจสอบผลลัพธ์k=1Θ(n)k=2Θ(nlogn)iiΘ(nlogn)k=nΘ(n)

สำหรับการอ้างอิงบางเพิ่มเติมโปรดดูที่หน้าปัญหาเปิดโครงการ 3sum


-1

ดูhttp://arxiv.org/abs/1407.4640

อัลกอริทึมใหม่สำหรับการแก้ปัญหา rSUM Valerii Sopin

นามธรรม:

อัลกอริทึมที่กำหนดถูกนำเสนอสำหรับการแก้ปัญหา rSUM สำหรับ r ธรรมชาติใด ๆ ที่มีการประเมินผลย่อยกำลังสองของความซับซ้อนของเวลาในบางกรณี ในแง่ของจำนวนหน่วยความจำที่ใช้อัลกอริทึมที่ได้รับยังมีคำสั่งย่อยกำลังสอง ความคิดของอัลกอริทึมที่ได้รับนั้นไม่ได้พิจารณาจากจำนวนเต็ม แต่ให้ k bitsN บิตต่อเนื่องของตัวเลขเหล่านี้ในระบบการนับเลขฐานสอง มันแสดงให้เห็นว่าหากผลรวมของตัวเลขจำนวนเต็มเท่ากับศูนย์แล้วผลรวมของตัวเลขที่นำเสนอโดยบิตต่อเนื่องใด ๆ ของตัวเลขเหล่านี้จะต้อง "พอ" เป็นศูนย์อย่างเพียงพอ สิ่งนี้ทำให้เป็นไปได้ที่จะละทิ้งตัวเลขซึ่ง fortiori ไม่ได้สร้างโซลูชัน

เป็นสิ่งใหม่ในฉบับนี้


1
คุณสามารถอ้างอิงผลลัพธ์จากบทความที่เกี่ยวข้องกับคำถามได้อย่างชัดเจนหรือไม่? (การวางบทคัดย่ออาจไม่เป็นไรถ้าบทความมีความเกี่ยวข้องโดยรวม) บทความใน SE ควรจะเป็นมากกว่าลิงค์
FrankW

1
ตามที่เป็นอยู่คำตอบนี้เป็นความคิดเห็น (อาจมีประโยชน์) ไม่ใช่คำตอบ ดังนั้นมันจะต้องมีเนื้อหาต้นฉบับบางอย่างเช่นคุณอธิบายอัลกอริทึมในคำพูดของคุณเอง คุณต้องการที่จะทำเช่นนั้น? ฉันสามารถแปลงคำตอบของคุณเป็นความคิดเห็นหากคุณไม่ได้ (ฉันทราบว่าคุณไม่สามารถแสดงความคิดเห็นเนื่องจากตัวแทนของคุณ)
Raphael

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