Apakah masalah k-klik NP-complete?


23

Dalam artikel Wikipedia ini tentang masalah Clique dalam teori graph, ia menyatakan di awal bahwa masalah menemukan klik ukuran K, dalam grafik G adalah NP-complete:

Klik juga telah dipelajari dalam ilmu komputer: menemukan apakah ada klik ukuran yang diberikan dalam grafik (masalah klik) adalah NP-lengkap, tetapi meskipun ini hasil kekerasan banyak algoritma untuk menemukan klik telah dipelajari.

Tetapi dalam artikel Wikipedia lainnya tentang masalah Clique di CS dikatakannya menyelesaikan masalah karena ukuran tetap k adalah masalah di P, bisa jadi kekerasan di masa polinomial.

Algoritma brute force untuk menguji apakah grafik G berisi k-vertex clique, dan untuk menemukan klik yang dikandungnya, adalah untuk memeriksa setiap subgraph dengan setidaknya k simpul dan memeriksa untuk melihat apakah itu membentuk klik. Algoritma ini membutuhkan waktu O (n ^ kk ^ 2): ada subgraph O (n ^ k) untuk diperiksa, yang masing-masing memiliki O (k ^ 2) tepi yang keberadaannya dalam G perlu diperiksa. Dengan demikian, masalah dapat diselesaikan dalam waktu polinomial setiap kali k adalah konstanta tetap. Ketika k adalah bagian dari input ke masalah, waktu adalah eksponensial.

Apakah ada sesuatu yang saya lewatkan di sini? Mungkin perbedaan dalam kata-kata masalah? Dan apa arti kalimat terakhir, bahwa "Ketika k adalah bagian dari input untuk masalah, bagaimanapun, waktunya eksponensial."? Mengapa ada perbedaan ketika k merupakan bagian dari input untuk masalah?

Ide saya adalah untuk menemukan klik ukuran k dalam grafik G, adalah bahwa kita pertama-tama memilih subset ukuran k dari node dari G, dan menguji apakah mereka semua terkait dengan node k lainnya, yang dapat dilakukan dalam konstanta waktu. Dan ulangi ini sampai kita memiliki klik ukuran k. Jumlah set k node yang dapat kita pilih dari G adalah n! / k! * (nk) !.


13
Kelengkapan NP suatu masalah tergantung pada apa yang Anda anggap sebagai input. Karena masalah ada di jika ada algoritma polinomial untuk memutuskannya. Jika adalah konstanta (bukan input), algoritmanya polinomial dalam . Jika adalah bagian dari input, maka algoritmanya eksponensial dalam . PKnkk

Jawaban:


17

Hanya menguraikan apa yang ditunjukkan @Lamine: Ketika adalah bagian dari input, k dapat sebesar nkk , dalam hal jumlah potensi klik setyang setidaknya. Karenanya algoritma naif Anda akan membutuhkan waktuyang jelas eksponensial dalam panjang input. Versi parameterizedmana kita mencari-cliques dalamgrafik-vertex menangkap kekerasan masalah dalam bentuk yang paling umum karenaadalah bagian dari input. Karenanya algoritma poli-waktu untukjuga akan menyiratkan algoritma poli-waktu untuk setiaptertentu.n2(nn2)(nn2)n22n2|x|+|k|=n+lognG(n,k)knkG(n,k)k

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.