ปัญหานี้เกิดจาก NP-hard โดยการลดจาก Vertex Cover
ในปัญหา Vertex Cover, เราจะได้รับกราฟและจำนวนและงานของเราคือการตรวจสอบว่ามีบางเซตของที่มากที่สุดจุดจากเช่นที่ขอบในทุกเป็นเหตุการณ์ที่เกิดขึ้น อย่างน้อยหนึ่งจุดสุดยอดในU(เทียบเท่า: เป็นไปได้ไหมที่จะฆ่าทุก ๆ ขอบในโดยการลบที่จุดยอดที่สุด?)G=(V,E)rUrVEUGr
ครั้งแรกแบ่งเข้าไปย่อยเคลื่อนเทียบเท่ากับการกำหนดแต่ละองค์ประกอบในว่าหนึ่งในป้ายที่เป็นไปได้ แนวคิดพื้นฐานของการลดคือการสร้างฉลากสำหรับแต่ละจุดสุดยอดในและเพื่อ "อนุญาต" แต่ละขอบจะได้รับมอบหมายเพียงหนึ่งในสองป้ายที่สอดคล้องกับจุดสิ้นสุดของมันในแง่ต่อไปนี้: การกำหนดขอบที่สอดคล้องกัน ฉลากไม่มีข้อ จำกัด (ของแท้) ในสิ่งที่ขอบอื่น ๆ สามารถกำหนดป้ายชื่อเดียวกันได้ในขณะที่การกำหนดขอบให้กับฉลากที่ไม่สอดคล้องกันจะช่วยป้องกันขอบอื่น ๆ ที่ได้รับมอบหมายฉลากเดียวกัน - ซึ่งแน่นอนว่ามีผลในการเพิ่มจำนวน ต้องการฉลากที่แตกต่างAsAsSj VvjV
ในการสร้างอินสแตนซ์ปัญหาของคุณจากอินสแตนซ์ของ Vertex Cover:(A,a,s)(G,r)
- ตั้งค่าเป็นและสร้างองค์ประกอบในสำหรับแต่ละขอบในE(คู่เหล่านี้สามารถคิดเป็นจำนวนเต็ม ; bijection ใด ๆ ระหว่างพวกเขาจะทำ.)k|E|(i,j)AvivjE1,…,k
- ตั้งค่าเป็นถ้าหรือ ; มิฉะนั้นให้ตั้งค่าเป็น 1a(b,c),d|E|d=bd=ca(b,c),d
- ชุด rs=r
ถ้าเป็น YES อินสแตนซ์ของเวอร์เท็กซ์ปกแล้วมันเป็นเรื่องง่ายที่จะเห็นว่าอินสแตนซ์ที่เพิ่งสร้างขึ้นของปัญหาของคุณยังเป็น YES อินสแตนซ์: เพียงแค่เลือกป้ายสอดคล้องกับจุดในการแก้ปัญหาใด ๆและสำหรับแต่ละขอบกำหนดองค์ประกอบที่สอดคล้องกันไม่ว่าจะเลือกหนึ่งในป้ายกำกับหรือ (เลือกโดยพลการถ้าเลือกป้ายกำกับทั้งสอง) โซลูชันนี้ใช้ชุดย่อยและใช้ได้เนื่องจากใช้บังคับเท่านั้นคือชุดที่สอดคล้องกัน(G,r)SjvjUvbvc∈E(b,c)∈ASbScsaijป้ายกำกับซึ่งมีผล (ไม่ใช่) ในการป้องกันมากกว่าขอบถูกกำหนดฉลากเดียวกัน|E|
มันยังคงแสดงให้เห็นว่า YES-instanceของปัญหาของคุณหมายความว่าต้นฉบับเป็นอินสแตนซ์ YES ของ Vertex Cover นี้จะมากกว่าเล็กน้อยซับซ้อนเนื่องจากวิธีการแก้ปัญหาที่ถูกต้องไปอาจกำหนดในทั่วไปขอบไม่ใช่ป้าย -correspondingคือหมายความว่าเราไม่สามารถ จำเป็นต้อง "อ่านออก" จุดสุดยอดที่ถูกต้องปกจากวิธีการแก้ปัญหาที่ถูกต้องYX=(A,a,s)(G,r)YX(i,j) m ∉ { i , j } U YSmm∉{i,j}UY
อย่างไรก็ตามการกำหนดฉลากที่ไม่สอดคล้องกันนั้นมีค่าใช้จ่ายสูงที่ จำกัด โครงสร้างของโซลูชันอย่างรุนแรง: เมื่อใดก็ตามที่ขอบถูกกำหนดเช่นป้ายกำกับด้วย , ความจริง ที่ทำให้มั่นใจได้ว่าจะต้องเป็นขอบเดียวที่กำหนดป้ายกำกับนี้ ดังนั้นในโซลูชันใด ๆที่ประกอบด้วยขอบที่ไม่มีป้ายกำกับเราสามารถสร้างโซลูชันทางเลือกดังนี้:S m m ∉ { i , j } a ( i , j ) , m = 1 Y ( i , j ) ↦ S m Y ′(i,j)Smm∉{i,j}a(i,j),m=1Y(i,j)↦SmY′
- โดยพลการเลือกป้ายกำกับใหม่สำหรับที่จะเป็นได้ทั้งหรือS_j ( i , j ) S i S jSz(i,j)SiSj
- กำหนดป้ายกำกับใหม่นี้ หากสิ่งนี้ส่งผลให้เกิดโซลูชันที่ไม่ถูกต้องจะต้องเป็นเพราะขอบอื่น ๆ ,ได้รับการกำหนดฉลากแล้ว ในกรณีนั้นให้ตั้งค่าและไปที่ขั้นตอนที่ 1( i ′ , j ′ ) z ∉ { i ′ , j ′ } S z ( i , j ) = ( i ′ , j ′ )(i,j)(i′,j′)z∉{i′,j′}Sz(i,j)=(i′,j′)
อัลกอริทึมด้านบนจะต้องยุติด้วยวิธีใดวิธีหนึ่งจากสองวิธี: ไม่ว่าจะเป็นฉลากใหม่ที่แนะนำว่าไม่ขัดแย้งหรือพบวัฏจักรของจุดยอดสมบูรณ์ ในกรณีก่อนหน้านี้พบโซลูชันใหม่ที่ถูกต้องพร้อมในขณะที่ในกรณีหลังพบโซลูชันใหม่ที่ถูกต้องพร้อมชุดทั้งทางเราได้สร้างโซลูชั่นใหม่ที่ถูกต้องมีอย่างน้อยหนึ่งขอบมอบหมายให้สอดคล้องฉลาก หลังจากทำซ้ำกระบวนการทั้งหมดนี้อย่างมากที่สุดครั้งที่เราจะได้มีการผลิตวิธีการแก้ปัญหาที่ถูกต้องซึ่งวิธีการแก้ปัญหา Vertex ปกเดิมสามารถจะอ่านออกSzs−1s|E|Y′′
การก่อสร้างนี้เป็นเวลาพหุนามอย่างชัดเจนดังนั้นจึงเป็นไปตามปัญหาของคุณคือ NP-hard