ตัดสูงสุดด้วยขอบน้ำหนักติดลบ


35

Letเป็นกราฟที่มีฟังก์ชั่นน้ำหนัก{R} ปัญหาตัดสูงสุดคือการหา: ถ้า ฟังก์ชั่นน้ำหนักไม่เป็นลบ (เช่นw (e) \ geq 0สำหรับe \ in E ทั้งหมด ) จากนั้นมีการประมาณค่าแบบง่าย ๆ 2 แบบสำหรับการตัดสูงสุด ตัวอย่างเช่นเราสามารถ:G=(V,E,w)w:ER

argmaxSV(u,v)E:uS,vSw(u,v)
w(e)0eE
  1. เลือกชุดย่อยแบบสุ่มของจุดSS
  2. เลือกการสั่งซื้อบนจุดยอดและวางแต่ละจุดสุดยอดvในSหรือS¯เพื่อเพิ่มขอบตัดให้ได้มากที่สุด
  3. ทำการปรับปรุงในท้องถิ่น: หากมีจุดสุดยอดใด ๆ ในSที่สามารถย้ายไปที่S¯เพื่อเพิ่มการตัด (หรือกลับกัน) ทำการย้าย

การวิเคราะห์มาตรฐานของอัลกอริทึมทั้งหมดเหล่านี้แสดงให้เห็นว่าการตัดผลลัพธ์อย่างน้อยที่สุดเท่ากับ12eEw(e)ซึ่งเป็นขอบเขตสูงสุดของ1/2น้ำหนักของ max-cut ถ้าwไม่เป็นลบ - แต่ถ้าขอบบางส่วนได้รับอนุญาตให้มีน้ำหนักเป็นลบไม่ได้!

ตัวอย่างเช่นอัลกอริทึม 1 (เลือกชุดย่อยของจุดยอดสุ่ม) อาจล้มเหลวอย่างชัดเจนในกราฟที่มีน้ำหนักขอบลบ

คำถามของฉันคือ:

มีอัลกอริทึม combinatorial ง่าย ๆ ที่ได้รับ O (1) ประมาณปัญหาสูงสุดตัดบนกราฟที่สามารถมีน้ำหนักลบขอบ?

เพื่อหลีกเลี่ยงปัญหาเหนียวที่อาจเกิดขึ้นจากค่าการตัดสูงสุด0ฉันจะอนุญาตให้eEw(e)>0และ / หรือพอใจกับอัลกอริทึมที่ทำให้เกิดข้อผิดพลาดเพิ่มเติมเล็กน้อยนอกเหนือจาก การประมาณค่าหลายปัจจัย


1
เป็นเงื่อนไขที่ "combinatorial ง่าย" จำเป็นที่นี่?
Hsien-Chih Chang 張顯之

ฉันสนใจมากที่สุดในอัลกอริทึมแบบ combinatorial ที่เรียบง่ายเช่นการประมาณค่า 2 ค่าสำหรับน้ำหนักเชิงบวก โปรดทราบว่าฉันกำลังถามเกี่ยวกับการประมาณ O (1) ใด ๆ ดังนั้นฉันคาดหวังว่าหากอัลกอริทึมใด ๆ สามารถบรรลุสิ่งนี้มันควรจะเป็นไปได้ด้วยวิธีง่าย ๆ แต่ผมก็จะสนใจในสิ่งที่ค้ำประกันการปฏิบัติมีการอัลกอริทึม SDP บนกราฟที่มีน้ำหนักขอบเชิงลบหรือหลักฐานที่แสดงว่าไม่มีอัลกอริทึมประมาณคงปัจจัยที่มีอยู่ถ้าNP PNP
Aaron Roth

คำตอบ:


28

นี่เป็นความพยายามครั้งแรกของฉันในการโต้แย้ง มันผิด แต่ฉันแก้ไขหลังจาก "แก้ไข:"

หากคุณสามารถแก้ปัญหาปัญหาการตัดสูงสุดได้อย่างมีประสิทธิภาพด้วยน้ำหนักขอบลบคุณไม่สามารถใช้วิธีดังกล่าวเพื่อแก้ปัญหาน้ำหนักตัดสูงสุดด้วยน้ำหนักขอบบวกได้หรือไม่ เริ่มต้นด้วยปัญหาสูงสุดตัดคุณต้องการที่จะแก้ปัญหาที่มีทางออกที่ดีที่สุดคือขตอนนี้ใส่ขอบน้ำหนักเชิงลบขนาดใหญ่ (ที่มีน้ำหนัก ) ระหว่างและVทางออกที่ดีที่สุดของปัญหาใหม่คือดังนั้นอัลกอริธึมการประมาณสมมุติฐานของเราจะทำให้คุณได้รับโซลูชันด้วยการตัดสูงสุดซึ่งมีค่ามากที่สุดแย่กว่าดีที่สุด บนกราฟดั้งเดิมการตัดสูงสุดยังคงเป็นอย่างมากแย่กว่าที่ดีที่สุด หากคุณเลือกที่ใกล้กับbauvba(ba)/2(ba)/2abสิ่งนี้ละเมิดผลลัพธ์ที่ไม่สามารถหยั่งรู้ได้ว่าหาก P NP คุณไม่สามารถประมาณค่า max-cut ได้ดีกว่าปัจจัย 16/17

แก้ไข:

อัลกอริทึมด้านบนใช้งานไม่ได้เพราะคุณไม่สามารถรับประกันได้ว่าและอยู่ฝั่งตรงข้ามของการตัดในกราฟใหม่แม้ว่าจะเป็นตอนแรกก็ตาม ฉันสามารถแก้ไขได้ดังนี้uv

สมมติว่าเรามีอัลกอริทึมการประมาณค่าซึ่งจะทำให้เราตัดภายในปัจจัย 2 ของ OPT ตราบใดที่ผลรวมของน้ำหนักขอบทั้งหมดเป็นบวก

ดังกล่าวข้างต้นเริ่มต้นด้วยกราฟมีน้ำหนักไม่เป็นลบที่ขอบทั้งหมด เราจะพบกราฟกราฟมีการลบน้ำหนักบางอย่างเช่นหากเราสามารถประมาณค่าการตัดสูงสุดของภายใน 2 เท่าเราสามารถประมาณค่าการตัดสูงสุดของเป็นอย่างดีGGGG

เลือกจุดยอดสองจุดและและหวังว่าพวกมันจะอยู่ฝั่งตรงข้ามของค่าสูงสุด (คุณสามารถทำซ้ำสิ่งนี้สำหรับเป็นไปได้ทั้งหมดเพื่อให้แน่ใจว่าได้ลองใช้งาน) ตอนนี้ใส่น้ำหนักลบขนาดใหญ่บนขอบทั้งหมดและสำหรับและ a ขนาดใหญ่น้ำหนักบวกบนขอบV) สมมติว่าตัดที่ดีที่สุดมีน้ำหนักOPTuvvd(u,x)(v,x)xu,va(u,v)OPT

การตัดที่มีค่าในที่จุดยอดและอยู่ด้านเดียวกันของการตัดตอนนี้มีค่าที่โดยที่คือจำนวนของจุดยอดที่อีกด้านหนึ่งของการตัด ตัดกับในด้านตรงข้ามกับค่าเดิมตอนนี้มีค่าง ดังนั้นถ้าเราเลือกใหญ่พอเราสามารถบังคับให้การตัดทั้งหมดด้วยและในด้านเดียวกันมีค่าลบดังนั้นถ้ามีการตัดใด ๆ ที่มีค่าเป็นบวกการตัดที่ดีที่สุดในจะมีและcGuvc2dmm(u,v)cc+a(n2)dduvGuvในด้านตรงข้าม โปรดทราบว่าเรากำลังเพิ่มน้ำหนักคงที่ให้กับการตัดใด ๆ ที่มีและอยู่ฝั่งตรงข้าม(a(n2)d)uv

ให้ง) เลือกเพื่อให้ (เราจะแสดงให้เห็นถึงเรื่องนี้ในภายหลัง) ตัดมีน้ำหนักในมีและในด้านตรงข้ามตอนนี้กลายเป็นตัดกับน้ำหนักOPT ที่นี้หมายถึงการตัดที่ดีที่สุดในมีน้ำหนักOPT อัลกอริทึมใหม่ของเราพบว่าการตัดในมีน้ำหนักอย่างน้อยOPT นี่แปลว่าเป็นการตัดในกราฟดั้งเดิมที่มีน้ำหนักอย่างน้อย (เนื่องจากการตัดทั้งหมดในโดยมีการแยกน้ำหนักบวกf=(a(n2)d)af0.98OPTcGuvc0.98OPTG0.02OPTG0.01OPTG0.99OPTGuและ ) ซึ่งดีกว่าผลลัพธ์ที่ไม่สามารถทำได้v

ไม่มีปัญหากับการเลือกใหญ่พอที่จะทำให้การตัดใด ๆ กับและในด้านลบเดียวกันเนื่องจากเราสามารถเลือกที่มีขนาดใหญ่เท่าที่เราต้องการ แต่วิธีการที่เราไม่เลือกเพื่อให้เมื่อเราไม่ได้รู้ว่า ? เราสามารถประมาณดีจริงๆ ... ถ้าเราปล่อยให้เป็นผลรวมของน้ำหนักขอบในเรารู้T ดังนั้นเราจึงมีช่วงค่าที่ค่อนข้างแคบสำหรับและเราสามารถทำซ้ำมากกว่ารับค่าทั้งหมดระหว่างและduvdaf.99OPTOPTOPTTG12TOPTTff.49T.99Tในช่วงเวลาของ0.005Tสำหรับหนึ่งในช่วงเวลาเหล่านี้เรารับประกันว่าและดังนั้นหนึ่งในการทำซ้ำเหล่านี้จึงรับประกันว่าจะได้ผลตอบแทนที่ดี0.005Tf0.98OPT

สุดท้ายเราต้องตรวจสอบว่ากราฟใหม่มีน้ำหนักขอบซึ่งผลรวมเป็นบวก เราเริ่มต้นด้วยกราฟที่น้ำหนักของขอบมีผลรวมและเพิ่มลงในผลรวมของน้ำหนักขอบ ตั้งแต่เราก็โอเค Tf.99Tf.49T


1
แต่สิ่งที่เป็นของคุณและ ? การกำหนดปกติของปัญหา max-cutไม่มี "โหนดพิเศษ" ใด ๆ ที่จำเป็นต้องแยกออกจากกัน uv
Jukka Suomela

3
สวัสดีเอียน - ฉันไม่คิดว่ามันจะใช้งานได้ เหตุใดจึงจำเป็นต้องมีอยู่และใด ๆที่คั่นด้วย max-cut ในกราฟต้นฉบับและยังคงถูกคั่นด้วย max-cut หลังจากเพิ่มขอบลบหนักระหว่างพวกเขา? ลองพิจารณาตัวอย่างกราฟที่สมบูรณ์ - การเพิ่มขอบลบหนึ่งอันโดยพลการใดก็ได้จะไม่เปลี่ยนค่าตัดเลย uv
Aaron Roth

2
ปัญหาหนึ่งคือถ้าคุณเพิ่มขอบลบระหว่างจุดยอดคู่ทุกคู่คุณจะแก้ไขค่าของการตัดที่แตกต่างกันตามจำนวนที่แตกต่างกัน (เราลบพูดจากค่าของการตัด ) ดังนั้นเราจึงมีปัญหาว่าข้อมูลเฉพาะตัวของค่าสูงสุดในกราฟที่แก้ไขไม่จำเป็นต้องตรงกับค่าสูงสุดในกราฟต้นฉบับ |S||S¯|aS
Aaron Roth

1
@ Peter: ในวรรคหนึ่งหลังจากที่ผมยกมาที่คุณเลือกขนาดเล็กพอที่จะทำให้OPT คุณไม่สามารถได้อย่างปลอดภัยเลือกจะมีขนาดใหญ่เพียงพอในวรรคหนึ่งและขนาดเล็กเพียงพอในต่อไป! โดยเฉพาะไม่มีวิธีเลือกและเพื่อให้แน่ใจว่าสำหรับทั้งหมดและOPT นี้ต่อไปเพราะทั้งหมดหมายความว่า0 af0.98OPTaadc+a(n2)d>cdm0mna(n2)d=f0.98OPTc+a(n2)d>cdm0mnf=a(n2)d>0
Warren Schudy

2
@Warren คุณเลือกใหญ่พอเพื่อให้สำหรับการตัดทั้งหมด ซึ่งสามารถทำได้โดยการเลือกขนาดใหญ่พอ คุณแล้วเลือกขนาดที่เหมาะสมเพื่อให้ตัดที่ดีที่สุดคือเพิ่งข้างต้นdcdm<0da0 0อ่านสองย่อหน้าสุดท้ายของคำตอบของฉัน
Peter Shor

11

ในบทความ " Max Cut สูงสุดโดยประมาณ " โดย S. Har-Peled บรรทัดสุดท้ายของกระดาษกล่าวถึงว่ามีการพูดถึง max-cut เวอร์ชันถ่วงน้ำหนักจริงใน

การประมาณค่าการตัดผ่านความไม่เท่าเทียมของ Grothendieck , Noga Alon และ Assaf Naor, วารสาร SIAM เกี่ยวกับการคำนวณ, 2006

มันเป็นอัลกอริธึม SDP และดูเหมือนว่าสำหรับฉันนั้นอัตราส่วนโดยประมาณคือ 0.56 ถึงแม้ว่าฉันไม่แน่ใจว่าการลดที่กล่าวถึงในเอกสารนั้นเป็นการรักษาอัตราส่วน บางทีการมองลึกลงไปในกระดาษอาจช่วยได้!


ปัญหาใน Alon-Naor นั้นคล้ายกัน แต่ฉันไม่คิดว่าจะมีอัตราส่วนที่ลดลง ปัญหาของพวกเขาคือการเพิ่มที่สุดโดยที่และคือ matrix สำหรับ max-cut และญาติสนิทของมันเป็นสิ่งสำคัญที่xTMyx,y{±1}nMn×nx=y
Sasho Nikolov

@SashoNikolov: สำหรับบรรทัดฐานการตัดมันไม่สำคัญขึ้นอยู่กับปัจจัยคงที่ไม่ว่าเราต้องการหรือไม่ x=y
david

@ David ฉันรู้ว่าการลดลงนี้ แต่คำสั่งที่เป็นจริงคือโดยที่ค่าสูงสุดทั้งหมดอยู่เหนือและเป็นสมมาตรที่มีเส้นทแยงมุมที่ไม่เป็นลบ อย่างไรก็ตามปัญหาสามารถมีค่าแตกต่างจาก (ซึ่งเป็นสิ่งที่เราต้องการสำหรับ MaxCut) ตัวอย่างเช่นพิจารณาโดยที่คือเมทริกซ์ทั้งหมด คุณสามารถเห็นเกี่ยวกับmaxx|xTMx|maxx,yxTMy4maxx|xTMx|{1,1}nMmaxx|xTMx|maxxxTMxM=IJJn×nmaxxxTMxn/2ในขณะที่เป็นn maxx|xTMx|n2n
Sasho Nikolov

6

ปัญหาของคุณมีการประมาณลอการิทึมโดยลดปัญหาการเขียนโปรแกรมสมการกำลังสอง

ปัญหา MaxQP เป็นปัญหาของใกล้เคียงกับรูปแบบสมการกำลังสองสำหรับเมทริกซ์ที่ช่วงกว่า n MaxCut สามารถเขียนได้ในรูปแบบนี้โดยการตั้งค่าที่ซึ่งคือเมทริกซ์เอกลักษณ์และคือเมทริกซ์ adjacency อัลกอริทึมของ MaxQP Charikar และเวิร์ ธให้ประมาณสำหรับ MaxQP ตราบเท่าที่มีเส้นทแยงมุมที่ไม่ใช่เชิงลบ ดังนั้นตราบใดที่ , MaxCut ที่มีน้ำหนักติดลบจะมีค่าประมาณลอการิทึมxTMxn×nMx{±1}nM=12n(we)I12AIAO(logn)Mwe0

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