การคำนวณการปิดสหภาพ


10

ป.ร. ให้ครอบครัวของที่มากที่สุดnย่อยของ{ 1 , 2 , ... , n } ปิดสหภาพFเป็นอีกหนึ่งครอบครัวชุดCที่มีการตั้งค่าที่สามารถสร้างขึ้นโดยการสหภาพ 1 ชุดขึ้นในทุกF โดย| C | เราแสดงว่าจำนวนชุดในCFn{1,2,…,n}FCF|C|C

วิธีที่เร็วที่สุดในการคำนวณการปิดสหภาพคืออะไร

ฉันได้แสดงความเท่าเทียมกันระหว่างการปิดสหภาพและแสดงรายการชุดอิสระสูงสุดทั้งหมดในกราฟสองฝ่ายดังนั้นเราจึงรู้ว่าการตัดสินใจขนาดของการปิดสหภาพคือ # P-complete

แต่มีวิธีที่จะแสดงรายการทั้งหมดสูงสุดอิสระชุด (หรือชมรมสูงสุด) ในเวลาสำหรับกราฟที่มีnโหนดและม.ขอบ Tsukiyama et al, 2520 แต่นี่ไม่ใช่เฉพาะสำหรับกราฟสองฝ่ายO(|C|⋅nm)nm

เราให้อัลกอริทึมสำหรับกราฟสองฝ่ายพร้อมรันไทม์ http://www.ii.uib.no/~martinv/Papers/BooleanWidth_I.pdf|C|⋅log⁡|C|⋅n2

วิธีการของเราตั้งอยู่บนพื้นฐานของการสังเกตว่าองค์ประกอบใด ๆ ในสามารถทำโดยการรวมกันขององค์ประกอบอื่น ๆ ของCและหนึ่งในชุดเดิม ดังนั้นเราจะเมื่อใดก็ตามที่เราเพิ่มองค์ประกอบในCพยายามที่จะขยายมันโดยหนึ่งในชุดเดิมn สำหรับแต่ละเหล่านี้n ⋅ | C | ชุดที่เราจำเป็นต้องตรวจสอบว่าพวกเขาจะยังคงอยู่ในC เราจัดเก็บCเป็นแผนผังการค้นหาแบบไบนารีดังนั้นการค้นหาแต่ละรายการจึงใช้บันทึก| C | เวลา⋅ nCCCnn⋅|C|CClog⁡|C|⋅n

มันเป็นไปได้ที่จะหาสิ่งที่ปิดสหภาพในO ( | C | ⋅ n 2 )เวลาหรือไม่ หรือแม้กระทั่งในเวลาO ( | C | ⋅ n ) ?CO(|C|⋅n2)O(|C|⋅n)


|C|

|C|C

แม้ว่าสิ่งนี้จะไม่ช่วยคำถามของคุณสิ่งที่คุณถามเป็นกรณีพิเศษของการคำนวณการปิดองค์ประกอบขึ้นในตาข่ายและฉันสงสัยว่ามีผลลัพธ์จากที่นั่นอาจเป็นประโยชน์
— Suresh Venkat

แบบสำรวจที่ฉันชี้ไปยังคำตอบของฉันด้านล่างมีลิงก์บางส่วนที่มีโปรย
— M. kanté

คำตอบ:


3

ความซับซ้อนของการแจกแจงชุดอิสระสูงสุดในกราฟนั้นเหมือนกับในกราฟสองฝ่ายดังนั้นความเป็นสองฝ่ายจึงไม่นำสิ่งใดมาใหม่

O(|C|⋅n2)

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