ปัญหาชุดฝาครอบชุดนี้เรียกว่าอะไร


12

การป้อนข้อมูลเป็นจักรวาลUและครอบครัวของส่วนย่อยของU , พูดF⊆2U U เราคิดว่าส่วนย่อยในFสามารถครอบคลุมUคือ⋃E∈FE=U U

ลำดับครอบคลุมเพิ่มขึ้นเป็นลำดับของส่วนย่อยในFพูด= { E 1 , E 2 , ... , E | A | }ที่น่าพอใจA={E1,E2,…,E|A|}

1) ∀E∈A,E∈F ,

∀i>1⋃j=1i−1Ei⊊⋃j=1iEi

ปัญหาคือการหาลำดับการครอบคลุมที่เพิ่มขึ้นของความยาวสูงสุด (นั่นคือสูงสุด ) โปรดทราบว่าลำดับความยาวสูงสุดในที่สุดก็จะต้องครอบคลุมคือ Uคุณ⋃ E ∈ A E = U|A|U⋃E∈AE=U

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


คุณต้องการครอบครัวของส่วนย่อยเพื่อครอบคลุมจักรวาลหรือไม่? เพราะแน่นอนว่าคุณอาจมีปัญหาเรื่องชุดฝาครอบที่ยากขึ้นเนื่องจากคุณกำลังมองหาชุดฝาครอบพร้อมคุณสมบัติเพิ่มเติม กล่าวอีกนัยหนึ่งชุดฝาครอบจะช่วยลดปัญหาของคุณ ที่ wiki ของ set cover ก็เป็นผลที่เกิดจากความสามารถในการแปรผันของชุดฝาครอบ UAU
— แฮร์รี่

1
เป็นเพียงการสังเกตการณ์ (เล็กเกินกว่าจะตอบได้): เมื่อชุดย่อยของคุณมีขนาดสองแล้วสิ่งที่คุณกำลังมองหาคือป่าที่ทอดยาว
— David Eppstein

อาจไม่ใช่เรื่องใหม่สำหรับ OP แต่เป็นข้อสังเกตเล็กน้อย (1) ค่าที่เหมาะสมที่สุดคือ | U | ไม่ว่าจะเป็นค่าที่ดีที่สุดจะเท่ากับ | U | หรือไม่สามารถตัดสินใจได้อย่างมีประสิทธิภาพโดยอัลกอริทึมโลภที่พยายามลดจำนวนองค์ประกอบที่ครอบคลุม (2) อัลกอริทึมโลภเดียวกันนี้ใช้งานได้หากเซตทั้งหมดใน F มีขนาดที่สองให้ดูความคิดเห็นของ David Eppstein (3) อัลกอริทึมโลภเดียวกันไม่ทำงาน (ถอนหายใจ) โดยทั่วไป ตัวอย่างที่ตอบโต้: F = {{1,2,3}, {1,4,5,6}, {2,4,5,6}, {3,4,5,6}}
— Tsuyoshi Ito

1
ปัญหาไม่ได้ดูเหมือนปัญหาการตั้งค่าเลย ... เหมือนไฮบริดระหว่างการจับคู่และการจับคู่ที่เกิดขึ้นในกราฟสองฝ่าย การปฏิรูปที่เท่าเทียมกันที่ดีคือครอบครัวไม่ดีหากไม่มีองค์ประกอบใดที่ครอบคลุมโดยครอบครัวหนึ่งชุด ปัญหาคือการหาครอบครัวย่อยที่ใหญ่ที่สุดของเช่นนั้นไม่มีอนุวงศ์ที่ไม่ดี F AAFA
— daniello

1
@Neal Youngไม่เลวเพราะครอบคลุมด้วยหนึ่งชุดเท่านั้น (คือ ) b { a , b }Fb{a,b}
— daniello

คำตอบ:


4

ที่นี่ฉันแสดงให้เห็นว่าปัญหาคือปัญหาที่สมบูรณ์

เราแปลง CNF เป็นตัวอย่างของปัญหาของคุณดังนี้ สมมติว่าตัวแปรของ CNF มี 'และคำสั่งที่มี ' s ที่<เมตร ให้โดยที่ชุดทั้งหมดในกลุ่มจะแยกออกจากกันอย่างสมบูรณ์ อันที่จริงแล้วและขณะคือชุดของ cardinality ใด ๆ 1 นอกจากนี้ยังแสดงว่าและแก้ไขสำหรับทุกตระกูลที่มีความยาวเพิ่มขึ้นอยู่ภายในซึ่งแสดงโดยสำหรับx i m C j n < m U = ∪ i ( A i ∪ B i ∪ Z i ) A i = { a i , j ∣ x i ∈ C j } ∪ { a i , 0 } B i = { b ฉัน, j ∣ x ฉัน ∈ C j } ∪n xim Cjn<mU=∪i(Ai∪Bi∪Zi)Ai={ai,j∣xi∈Cj}∪{ai,0}Z ฉัน k = 2 n + 1 Z = ∪ ฉันZ ฉันZ ฉัน k Z ฉัน, L L = 1 .. k x ฉัน 2 k F ฉัน ∪ Z ฉัน, L B ฉัน ∪ Z ฉัน, l C j F Z x ฉัน ∈ C j { aBi={bi,j∣xi∈Cj}∪{bi,0}Zik=2n+1Z=∪iZiZikZi,ll=1..kLทุกตัวแปรเราเพิ่มชุดชุดฟอร์มทุกและL} สำหรับทุกประโยคเราเพิ่มหนึ่งชุดเป็นซึ่งมีและสำหรับทุกองค์ประกอบและสำหรับทุกองค์ประกอบ\}xi2kFAi∪Zi,lBi∪Zi,lCjFZxi∈Cj ˉ x i ∈ C j { b i , j }{ai,j}x¯i∈Cj{bi,j}

สมมติว่าสูตรเป็นที่พอใจและแก้ไขการมอบหมายที่น่าพอใจ จากนั้นเลือกชุดของแบบฟอร์มหรือขึ้นอยู่กับว่าเป็นจริงหรือไม่ เหล่านี้เป็นชุดที่เพิ่มขึ้นตอนนี้เพิ่มชุดสอดคล้องกับข้อ สิ่งเหล่านี้ยังคงเพิ่มขนาดอย่างต่อเนื่อง สุดท้ายเรายังสามารถเพิ่มชุดขึ้นไป (สำหรับแต่ละตัวแปร) เพื่อให้ปกลำดับUA i ∪ Z i , l B i ∪ Z i , l x i n k m k UkAi∪Zi,lBi∪Zi,lxinkmkU

ทีนี้สมมติว่าอยู่ในลำดับที่เพิ่มขึ้น ขอให้สังเกตว่าที่มากที่สุดชุดที่สอดคล้องกับสามารถเลือกสำหรับแต่ละx_iดังนั้นหากไม่มีชุดประโยคในลำดับที่เพิ่มขึ้นสามารถเลือกส่วนใหญ่ซึ่งน้อยเกินไป โปรดสังเกตว่าทันทีที่เลือกชุดคำสั่งเราสามารถเลือกได้สูงสุดสองชุดที่สอดคล้องกับแต่ละจำนวนรวมสูงสุดชุด ดังนั้นเราต้องเลือกชุดตัวแปรอย่างน้อยก่อนที่จะเลือกชุดประโยคใด ๆ แต่เนื่องจากเราสามารถเลือกมากที่สุดสำหรับแต่ละนี่หมายความว่าสำหรับแต่ละอย่างที่เราเลือกอย่างน้อยk + 1 x i x i n ( k + 1 ) x i 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+mk+1xixin(k+1)xi2nn(k−1)k+1xi1เป็น 1 สิ่งนี้จะกำหนด "ค่า" ของตัวแปรดังนั้นเราจึงสามารถเลือกเฉพาะคำสั่ง "true" เท่านั้นk=2n+1

อัปเดต: เปลี่ยนค่าจากเป็นตามที่ Marzio ชี้n 2 n + 1kn2n+1


1
คำชี้แจง: ฉันตรวจสอบการก่อสร้างอย่างรวดเร็วสำหรับสูตรที่ไม่น่าพอใจ ( ) แต่ดูเหมือนว่าเราสามารถสร้างลำดับของของ การเพิ่มชุดF ฉันอาจทำผิดพลาด: เรามี ? n = k = 1 , M = 2 n ( k + 1 ) + M = 4 F F = { { 1 , 0 , 1 , 1 , 1 , 2 , Z 1 } , { b 1 , 0 , b 1 , 1 , bx1∧¬x1n=k=1,m=2n(k+1)+m=4FF={{a1,0,a1,1,a1,2,z1},{b1,0,b1,1,b1,2,z1},{a1,1,z1},{b1,2,z1}}
— Marzio De Biasi

รู้ว่าคุณและตัวเองฉันแน่ใจว่าความผิดพลาดเป็นของฉัน ... ฉันคิดว่าเราควรได้รับแต่แน่นอน มันยังคงเป็นปัญหาอยู่ ตกลงฉันเห็นว่าฉันทำผิดพลาดที่ไหนฉันแก้ไขได้ในอีกหนึ่งนาทีขอบคุณ! F={{a1,0,a1,1,z1},{b1,0,b1,2,z1},{a1,1,z1},{b1,2,z1}}
— domotorp

Fxi∧¬xik=2n+1n(k+1)+m=2n2+2n+m
— Marzio De Biasi

F={{a1,0,a1,1,z1,},{a1,0,a1,1,z1,z2},{a1,0,a1,1,z1,z2,z3},{b1,0,b1,2,z1},{b1,0,b1,2,z1,z2},{b1,0,b1,2,z1,z2,z3},{a1,1,z1,z2,z3},{b1,2,z1,z2,z3}}

n(k+1)+m=65

0

AB⊆A⋃X∈BX

E1,…,EmE ฉันB E ฉันBEiBEi

สำหรับทิศทางอื่นมันก็ง่ายเช่นกัน เริ่มต้นจากโซลูชันค้นหาองค์ประกอบที่ครอบคลุมเพียงครั้งเดียวตั้งเป็นชุดสุดท้ายในลำดับเอาชุดนี้ออกแล้วทำซ้ำ QEDA


นี่เป็นปัญหาที่ค่อนข้างเป็นธรรมชาติ ....


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


คำตอบนี้เป็นเพียงการพิสูจน์ว่าคำถามนั้นเป็นเรื่องธรรมดาหรือมีอย่างอื่นที่คุณเรียกร้องหรือไม่?
— domotorp

มันระบุไว้ในวิธีที่ง่ายกว่า ไม่มี?
— Sariel Har-Peled

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