การพิสูจน์ว่าการวินิจฉัยกราฟโดยตรงนั้นเป็นปัญหา NP-hard


11

ฉันมีการบ้านที่มอบหมายให้ฉันทุบตีหัวมาระยะหนึ่งแล้ว มันเกี่ยวกับการเลือกปัญหาที่ทราบแล้วความสมบูรณ์แบบ NP ซึ่งพิสูจน์แล้วและสร้างการลดลงของปัญหาดังกล่าวเป็นปัญหาต่อไปนี้ฉันจะเรียก DGD (การวินิจฉัยกราฟโดยตรง)

ปัญหา

ตัวอย่างของ DGDประกอบด้วยจุดขอบกำกับและเป็นจำนวนเต็มบวกkจุดที่มีขอบขาเข้าเท่านั้น: มีสามประเภทของจุดมี , จุดที่มีเพียงขอบขาออกและจุดที่มีทั้งขาเข้าและขาออกขอบBให้ยิ่งครั้งที่ฉันV = ฉัน O B E k I O B D = O × I(V,E,k)V=ผม.O.BEkผมOBD=O×I

ตอนนี้ปัญหาคือว่าเราสามารถครอบคลุมโหนดทั้งหมดด้วยองค์ประกอบมากที่สุดของคือDkD

SD,|S|k. vV. (v1,v2)S. v1vv2

ที่หมายความว่ามีเส้นทางกำกับจากจะขa babab


ฉันคิดว่าปัญหา Dominating Set เป็นสิ่งที่ฉันควรจะลดลงเพราะสิ่งนี้มีความกังวลเกี่ยวกับการครอบคลุมส่วนย่อยของโหนดด้วยชุดย่อยอื่น ฉันพยายามสร้างอินสแตนซ์ DGD โดยการสร้างสองโหนดแรกสำหรับแต่ละองค์ประกอบของชุดควบคุมคัดลอกขอบทั้งหมดจากนั้นตั้งค่าของอินสแตนซ์ DGD ให้เท่ากับอินสแตนซ์ DSk

สมมติว่าง่ายดีเอสอินสแตนซ์ที่มีโหนด ,และและขอบและ(1,3)นี่เป็นอินสแตนซ์ใช่ด้วย ; ชุดควบคุมในกรณีนี้ประกอบด้วยโหนดเท่านั้น การลดด้วยวิธีที่อธิบายไว้สิ่งนี้จะนำไปสู่อินสแตนซ์ DGD ที่มีสองเส้นทางและ ; เพื่อครอบคลุมโหนดทั้งหมดเพียงหนึ่งคู่จะเพียงพอ สิ่งนี้จะทำงานได้อย่างสมบูรณ์ถ้าไม่ใช่ชุด DS ที่มีอำนาจเหนือนั้นไม่สามารถระบุได้ในเวลาพหุนามซึ่งเป็นข้อกำหนดที่นี่123(1,2)(1,3)k=11(121)(131)(1,1)

ฉันได้พบว่ามีวิธีที่ดีจำนวนมากที่จะเปลี่ยนขอบและจุดเมื่อลด แต่ปัญหาของฉันเป็นอย่างใดแสดง DGD ของในแง่ของเอสเคDominating Set ดูเหมือนจะเป็นปัญหาที่เหมาะสมที่จะลดลง แต่ด้วยเหตุนี้ฉันจึงคิดว่าบางทีฉันควรพยายามลดปัญหาที่ไม่มีดังกล่าวหรือkkk


ยินดีต้อนรับ! ฉันพยายามชี้แจงคำแถลงปัญหาให้ชัดเจนขึ้น นี่เป็นวิธีที่คุณหมายถึงหรือไม่ Btw คุณอาจต้องการเลือกชื่อผู้ใช้ที่จดจำได้มากกว่า "user8879" :)
Raphael

ใช่ขอบคุณนี่เป็นรุ่นที่กะทัดรัดกว่า
user8879

คำตอบ:


9

ลดจาก NP-complete SET-COVERแทน

ให้กับk Nเป็นตัวอย่างของ set cover กำหนดอินสแตนซ์( V , E , k )ของ DGD ดังนี้:S1,,Sm{1,,n}kN(V,E,k)

  • V={s1,,sm,o1,,om,e1,,en,o}
  • E={(si,oi)i=1,,n}{(si,ej)jSi}{(ej,o)j=1,,n}
  • k=m+k

มันเป็นเรื่องง่ายที่จะเห็นว่าอินสแตนซ์ DGD ที่สร้างขึ้นมีคำตอบที่เป็นบวกถ้าและหากอินสแตนซ์ชุดที่กำหนดให้มีคำตอบที่เป็นบวก โดยเฉพาะอย่างยิ่งคู่ทั้งหมด( s i , o i )จะต้องถูกเลือกไม่ว่าจะเป็นอะไรเพื่อที่จะครอบคลุมทั้งหมดo i ; จากนั้นkของคู่m ( s i , o )จะต้องครอบคลุมeทั้งหมดjและองค์ประกอบแรกของสิ่งที่เลือกไว้นั้นเป็นคำตอบของอินสแตนซ์ของ SET-COVER หากไม่มีตัวเลือกดังกล่าวเป็นไปได้อินสแตนซ์ของ SET-COVER ก็ไม่มีทางออกเช่นกันm(si,oi)oผมkม.(sผม,โอ)อีJ

เนื่องจากการก่อสร้างมีความเป็นไปได้ในเวลาพหุนามจึงพิสูจน์ให้เห็นว่า SET-COVER DGDพี


ยกตัวอย่างเช่นพิจารณาตัวอย่างชุดครอบคลุมตัวอย่างที่กำหนดบนWikipediaคือและชุดS = { { 1 , 2 , 3 } , { 2 , 4 } , { 3 , 4 } , { 4 , 5 } } นี่แปลเป็นกราฟต่อไปนี้:{1,2,3,4,5}S={{1,2,3},{2,4},{3,4},{4,5}}

ตัวอย่าง
[ แหล่งที่มา ]


1
นี่เกือบจะถูกต้องซึ่งฉันและBได้รับการคุ้มครองอย่างสมบูรณ์ แต่Oไม่ใช่ อินสแตนซ์ set-cover เป็น yes-instance สำหรับk = 2 แต่ในอินสแตนซ์ DGD k = 2 จะเปิดไฟล์s2และs3 ผมคิดว่านี้อาจจะสามารถแก้ไขได้โดยการเพิ่มขอบจากแต่ละโหนดในโดยอัตโนมัติOเพื่อo
user8879

(si,o)siS

ได้รับมันในขณะนี้: สร้างโหนดเพิ่มเติมในBสำหรับแต่ละโหนดในOแล้วเชื่อมโยงกับมันสอดคล้องโหนดในOและo ในตัวอย่างนี้คุณจะได้รับสี่เส้นทางพิเศษ (s1 -> s1 '-> o ฯลฯ ) ในที่สุดหลังจากเพิ่มkด้วยสี่มันควรจะเสร็จสมบูรณ์
user8879

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