ตัดขั้นต่ำในกราฟเส้นกำกับน้ำหนักด้วยน้ำหนักเชิงลบ


9

ฉันพบปัญหาต่อไปนี้:

ให้กราฟไซโคลชีทที่มีน้ำหนักขอบมูลค่าจริงและสองจุดยอด s และ t คำนวณการตัดขั้นต่ำ

สำหรับกราฟทั่วไปนี่คือ NP-hard เนื่องจากหนึ่งสามารถลด max-cut ได้เล็กน้อยโดยเพียงแค่ย้อนกลับน้ำหนักขอบ (แก้ไขฉันถ้าฉันผิด)

สถานการณ์กับ DAG คืออะไร สามารถตัด min-cut (หรือ max-cut) ในเวลาพหุนามได้หรือไม่? มันเป็น NP-hard หรือไม่ถ้ามีมีขั้นตอนวิธีการประมาณที่รู้จักหรือไม่?

ฉันพยายามหางานทำ แต่ไม่สามารถ (บางทีฉันแค่ใช้คำหลักผิดในการค้นหาของฉัน) ดังนั้นฉันจึงหวังว่าจะมีคนรู้ (หรือค้นหา) บางอย่างเกี่ยวกับเรื่องนี้


2
สูตรการเขียนโปรแกรมเชิงเส้นของ min-cut ไม่ตรงไหน?
Peter Shor

(การใช้สัญลักษณ์จากen.wikipedia.org/wiki/… ): สำหรับขอบที่มีน้ำหนักเชิงลบ d_ {ij} อาจมีขนาดใหญ่โดยพลการ แม้ว่าหนึ่งขอบเขต d_ {ij} จากด้านบนมันจะใช้ค่าที่เป็นไปได้สูงสุดสำหรับขอบที่มีน้ำหนักเชิงลบเสมอ ดังนั้นการแก้ปัญหาของโปรแกรมดังกล่าวจะไม่ได้ผลที่ถูกต้องเสมอไป ฉันอาจผิดเพราะฉันไม่ค่อยประสบปัญหาเช่นนั้นโปรดแก้ไขให้ถูกต้อง โดยทั่วไปฉันต้องการทราบว่า max-cut (ที่มีน้ำหนักตามอำเภอใจ) สามารถแก้ไขได้อย่างมีประสิทธิภาพสำหรับ DAG หรือไม่
จอร์จ

1
ในการทำให้งานนี้คุณต้องเปลี่ยนความไม่เสมอภาคแรกเป็นความเสมอภาค: dผมJ=พีJ-พีผม. ฉันยังไม่เห็นสาเหตุที่มันล้มเหลว แต่บางทีฉันอาจพลาดบางสิ่ง ฉันไม่ได้คิดมาก
Peter Shor

อาจเป็นฉันที่ขาดอะไรบางอย่างที่นี่ สิ่งนี้รับประกันได้หรือไม่พีผมรับค่าอินทิกรัล? หนึ่งอาจผูกพันพีผมจากด้านบนด้วย 1 แต่ฉันไม่แน่ใจว่าใช้งานได้หรือไม่ ปัญหาน่าจะเป็นที่ว่าถ้าสิ่งนี้สามารถแก้ไขได้ใคร ๆ ก็สามารถลดค่า max-cut ได้ด้วยการกลับน้ำหนักของขอบซึ่งไม่ควรเป็นไปได้เนื่องจาก max-cut นั้นคือ NP-hard อย่างไรก็ตามฉันอาจจะผิดที่นี่
จอร์จ

1
st max-cut NP-hard สำหรับ DAGs หรือไม่ หากกราฟไม่ใช่ DAG คุณไม่สามารถเปลี่ยนความไม่เสมอภาคนั้นเป็นความเสมอภาคได้เพราะคุณต้องการความไม่เท่าเทียมหากมีวัฏจักร ดังนั้นในกรณีทั่วไป LP ไม่ทำงานกับน้ำหนักเชิงลบ
Peter Shor

คำตอบ:


10

คุณได้ทำให้ปัญหาของคุณดีขึ้นอีกในความคิดเห็น หากต้องการเฉพาะเจาะจงมากขึ้นคุณมี DAG ที่มีขอบทั้งหมดไหลออกมาจากแหล่งที่มาs และไปยังอ่างล้างจาน เสื้อ (นั่นคือขอบทั้งหมดอยู่บนเส้นทางจาก s ถึง เสื้อ) คุณต้องการค้นหาการตัดขั้นต่ำระหว่าง DAG สองชิ้นที่เชื่อมต่อชิ้นแรกsและครั้งที่สองเชื่อมต่อกับ เสื้อ. สำหรับปัญหานี้รูปแบบของอัลกอริทึมการเขียนโปรแกรมเชิงเส้นมาตรฐานสำหรับ MIN-CUT ทำงานได้แม้จะมีน้ำหนักติดลบ

เราใช้สัญกรณ์เช่นเดียวกับในวิกิพีเดีย ค่าใช้จ่ายของขอบ(ผม,J) คือ ผมJ. เราใส่ฟังก์ชั่นที่มีศักยภาพพีผม บนแต่ละโหนดและปล่อยให้ dผมJ=พีผม-พีJ. LP คือ

ม.ผมnผมม.ผมZอี Σ(ผม,J)EผมJdผมJsยูJอีเสื้อ เสื้อโอ    dผมJ=พีผม-พีJ  (ผม,J)E   dผมJ0           (ผม,J)E   พีs=1   พีเสื้อ=0

สมการเหล่านี้รับประกันได้ว่า 0พีผม1เนื่องจากทุกจุดสุดยอดอยู่ในบางส่วน s-เสื้อเส้นทาง. ในทำนองเดียวกันตั้งแต่dผมJ=พีผม-พีJ ไม่ใช่เชิงลบศักยภาพบนเส้นทางใดก็ได้ s ถึง เสื้อกำลังลดลง เรายังต้องแสดงให้เห็นว่ามีทางออกที่ดีที่สุดสำหรับ LP ด้วยทั้งหมดพีผม ทั้ง 0 หรือ 1. สิ่งนี้ตามมาจากความจริงที่ว่ามูลค่าของโซลูชันของ LP ด้านบนเป็นค่าที่คาดหวังของการตัดWที่ไหน W ถูกเลือกแบบสุ่มใน [0,1]และสถานที่ที่ถูกตัด W ได้มาจากการใส่ทุกจุด ผม กับ พีผมW ในชุดแรกของจุดยอดและจุดยอดทั้งหมดด้วย พีผม<W ในชุดที่สอง


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมของคุณปีเตอร์ มันไม่ชัดเจนตั้งแต่แรกเห็นว่า0พีผมล.อีQ1แต่ฉันคิดว่าฉันเข้าใจแล้ว อย่างไรก็ตามฉันมีปัญหาในการเข้าใจข้อโต้แย้งเกี่ยวกับการแก้ปัญหาสำคัญ
จอร์จ

@ George: มันเป็นอาร์กิวเมนต์เดียวกับที่แสดงให้เห็นว่า Min-Cut LP ปกติมีโซลูชั่นที่ครบถ้วน ควรมีคำอธิบายที่ยาวและเข้าใจง่ายกว่าทางออนไลน์
Peter Shor

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