ปัญหา k-clique NP-complete หรือไม่


23

ในบทความ Wikipedia เกี่ยวกับปัญหา Clique ในทฤษฎีกราฟนั้นระบุไว้ในตอนต้นว่าปัญหาในการค้นหากลุ่มขนาด K ในกราฟ G คือ NP-complete:

กลุ่มวิชายังได้รับการศึกษาในสาขาวิทยาการคอมพิวเตอร์: การค้นหาว่ามีกลุ่มขนาดที่กำหนดในกราฟ (ปัญหากลุ่ม) คือ NP-complete แต่ถึงแม้จะมีความแข็งนี้ส่งผลให้มีการศึกษาอัลกอริธึมหลายอย่าง

แต่ในบทความ Wikipedia อื่น ๆ เกี่ยวกับปัญหา Clique ใน CS มันบอกว่ามันกำลังแก้ปัญหาสำหรับขนาดคงที่ k เป็นปัญหาใน P มันสามารถถูกเดรัจฉานบังคับในเวลาพหุนาม

อัลกอริทึมแรงเดรัจฉานเพื่อทดสอบว่ากราฟ G มีกลุ่ม k-vertex หรือไม่และค้นหากลุ่มใด ๆ ที่มีอยู่นั้นคือการตรวจสอบแต่ละกราฟย่อยอย่างน้อย k vertices และตรวจสอบว่ามันเป็นกลุ่มหรือไม่ อัลกอริทึมนี้ใช้เวลา O (n ^ kk ^ 2): มีกราฟย่อย O (n ^ k) ที่จะตรวจสอบซึ่งแต่ละอันจะมีขอบ O (k ^ 2) ที่ต้องมีการตรวจสอบใน G ดังนั้นปัญหาอาจแก้ไขได้ในเวลาพหุนามเมื่อใดก็ตามที่ k คงที่ อย่างไรก็ตามเมื่อ k เป็นส่วนหนึ่งของอินพุตของปัญหาเวลาจะเป็นเลขชี้กำลัง

มีบางอย่างที่ฉันขาดหายไปที่นี่หรือไม่? อาจมีความแตกต่างในถ้อยคำของปัญหาหรือไม่ และประโยคสุดท้ายหมายความว่าอย่างไร "เมื่อ k เป็นส่วนหนึ่งของอินพุตของปัญหาอย่างไรก็ตามเวลามีการยกกำลัง" เหตุใดจึงมีความแตกต่างเมื่อ k เป็นส่วนหนึ่งของอินพุตของปัญหา

ความคิดของฉันคือการหากลุ่ม k ขนาดในกราฟ G คืออันดับแรกเราเลือกเซตย่อยขนาด k ของโหนดจาก G และทดสอบว่าพวกมันทั้งหมดเกี่ยวข้องกับโหนด k อื่น ๆ ซึ่งสามารถทำได้ในค่าคงที่ เวลา. และทำซ้ำสิ่งนี้จนกว่าเราจะมีกลุ่มขนาด k จำนวนชุดโหนด k ที่เราสามารถเลือกได้จาก G คือ n! / k! * (nk) !.


13
ความสมบูรณ์ของปัญหาขึ้นอยู่กับสิ่งที่คุณพิจารณาว่าเป็นอินพุต เนื่องจากปัญหาอยู่ในหากมีอัลกอริทึมพหุนามในการตัดสินใจ ถ้าKเป็นค่าคงที่ (ไม่ใส่) อัลกอริทึมเป็นพหุนามในn ถ้าkเป็นส่วนหนึ่งของการป้อนข้อมูลแล้วอัลกอริทึมชี้แจงในk PKnkk

คำตอบ:


17

เพียงอธิบายสิ่งที่ @Lamine ชี้ให้เห็น: เมื่อเป็นส่วนหนึ่งของอินพุตkสามารถมีขนาดใหญ่เท่ากับnkkซึ่งในกรณีนี้จำนวนกลุ่มเซตที่มีศักยภาพคือซึ่งอย่างน้อย{2}} ดังนั้นขั้นตอนวิธีการที่ไร้เดียงสาของคุณจะใช้เวลาซึ่งเป็นที่ชี้แจงอย่างชัดเจนในระยะเวลาในการป้อนข้อมูลn พารามิเตอร์ที่กำหนดเวอร์ชันที่เรากำลังมองหา-cliques ในกราฟ-vertex จะจับความแข็งของปัญหาในรูปแบบที่ถูกทำให้เป็นมาตรฐานมากที่สุดเพราะเป็นส่วนหนึ่งของอินพุต ดังนั้นขั้นตอนวิธีการโพลีเวลาสำหรับนอกจากนี้ยังจะบ่งบอกถึงขั้นตอนวิธีการโพลีเวลาที่เฉพาะเจาะจงใด ๆkn2nkG(n,k)k(nn2)(nn2)n22n2|x|+|k|=n+lognG(n,k)knkG(n,k)k

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