Là vấn đề k-clique NP-hoàn thành?


23

Trong bài viết Wikipedia này về vấn đề Clique trong lý thuyết đồ thị , ban đầu, người ta nói rằng vấn đề tìm một cụm có kích thước K, trong đồ thị G là NP-đầy đủ:

Clique cũng đã được nghiên cứu trong khoa học máy tính: tìm xem liệu có một cụm có kích thước nhất định trong đồ thị (bài toán clique) đã hoàn thành NP hay không, nhưng mặc dù độ cứng này dẫn đến nhiều thuật toán tìm kiếm các bản sao đã được nghiên cứu.

Nhưng trong bài viết Wikipedia khác về vấn đề Clique trong CS, nó nói rằng nó đang giải quyết vấn đề cho một kích thước cố định k là một vấn đề trong P, nó có thể bị ép buộc trong thời gian đa thức.

Một thuật toán vũ lực để kiểm tra xem một đồ thị G có chứa một cụm k-vertex hay không, và để tìm ra bất kỳ cụm sao nào mà nó chứa, là kiểm tra từng sơ đồ con với ít nhất k đỉnh và kiểm tra xem liệu nó có tạo thành một cụm không. Thuật toán này cần có thời gian O (n ^ kk ^ 2): có các sơ đồ con O (n ^ k) để kiểm tra, mỗi sơ đồ có các cạnh O (k ^ 2) có sự hiện diện trong G cần được kiểm tra. Do đó, vấn đề có thể được giải quyết trong thời gian đa thức bất cứ khi nào k là hằng số cố định. Tuy nhiên, khi k là một phần của đầu vào cho vấn đề, thời gian là theo cấp số nhân.

Có cái gì tôi đang thiếu ở đây? Có lẽ một sự khác biệt trong từ ngữ của vấn đề? Và câu cuối cùng có nghĩa gì, rằng "Khi k là một phần của đầu vào cho vấn đề, tuy nhiên, thời gian là theo cấp số nhân."? Tại sao có sự khác biệt khi k là một phần của đầu vào cho vấn đề?

Ý tưởng của tôi là để tìm một cụm kích thước k trong biểu đồ G, trước tiên chúng ta chọn một tập hợp con có kích thước k của các nút từ G và kiểm tra xem chúng có liên quan đến các nút k khác không, có thể được thực hiện không đổi thời gian. Và lặp lại điều này cho đến khi chúng ta có một nhóm kích thước k. Số lượng tập hợp các nút k chúng ta có thể chọn từ G là n! / k! * (nk)!.


13
Tính đầy đủ NP của một vấn đề phụ thuộc vào những gì bạn coi là đầu vào. Bởi vì một vấn đề nằm ở nếu có một thuật toán đa thức để quyết định nó. Nếu K là hằng số (không phải đầu vào), thuật toán là đa thức tính theo n . Nếu k là một phần của đầu vào, thì thuật toán là hàm mũ theo k . PKnkk

Câu trả lời:


17

Chỉ cần giải thích những gì @Lamine đã chỉ ra: Khi là một phần của đầu vào, k có thể lớn bằng nkk , trong trường hợp đó, số lượng các nhóm clique tiềm năng là ( nn2ít nhất là(n(nn2) . Do đó thuật toán ngây thơ của bạn sẽ mất thời gian2n(nn2)n2 rõ ràng theo cấp số nhân về độ dài đầu vào| x| +| k| =n+logn. Phiên bản được tham số hóatrong đó chúng tôi đang tìm kiếm-cliques trongbiểu đồ-vertex ghi lại độ cứng của vấn đề ở dạng tổng quát nhất vì2n2|x|+|k|= =n+đăng nhậpnG(n,k)knk là một phần của đầu vào. Do đó, thuật toán đa thời gian cho cũng có nghĩa là thuật toán đa thời gian cho bất kỳ k cụ thể nào .G(n,k)k

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.