Suppongo che il numero nella definizione del problema CLIQUE p sia esattamente uguale al numero di spigoli nel grafico, a differenza del commento di gphilip alla domanda.⌈p(t2)⌉
Il problema CLIQUE p è NP-completo per qualsiasi costante razionale 0 < p <1 di una riduzione rispetto al solito problema CLIQUE. (Il presupposto che p sia razionale è richiesto solo in modo che possa essere calcolato dal polinomio N in time in N. )⌈pN⌉
Sia k ≥3 un numero intero che soddisfi sia k 2 ≥1 / p che (1−1 / k ) (1−2 / k )> p . Dato un grafico G con n vertici e bordi m insieme a un valore di soglia s , la riduzione funziona come segue.
- Se s < k , risolviamo il problema CLIQUE nel tempo O ( n s ) tempo. Se c'è una cricca di dimensioni almeno s , produciamo un sì istanza fissa. Altrimenti, produciamo una non istanza fissa.
- Se n < s , produciamo una no-istanza fissa.
- Se n ≥ s ≥ k , aggiungiamo a G un grafico a parti ( k −1) in cui ogni set è costituito da n vertici che ha esattamente edge e produce questo grafico.⌈p(nk2)⌉−m
Si noti che il caso 1 richiede O ( n k −1 ) tempo, che è polinomiale in n per ogni p . Il caso 3 è possibile perché se n ≥ s ≥ k , allora non è negativo e al massimo il numero di bordi nel completo ( k −1) grafico a parti K n ,…, n come mostrato nelle seguenti due rivendicazioni.⌈ p ( n k2) ⌉-m
Rivendicazione 1 . .⌈ p ( n k2) ⌉-m≥0
Prova . Poiché , è sufficiente dimostrare che o equivalentemente pnk ( nk −1) ≥ n ( n -1). Poiché p ≥ 1 / k 2 , abbiamo pnk ( nk −1) ≥ n ( n −1 / k ) ≥ n ( n −1). QED . p ( nkm ≤ ( n2)p ( n k2) ≥ ( n2)
Rivendicazione 2 . . (Notare che il lato destro è il numero di spigoli nel grafico a parti complete (k − 1) K n ,…, n .)⌈ p ( n k2) ⌉-m<n2( k-12)
Prova . Poiché e m ≥ 0, è sufficiente dimostrare che , o equivalentemente n 2 ( k −1) ( k −2) - pnk ( nk −1) - 2 ≥ 0. Dato che p <(1−1 / k ) (1−2 / k ), abbiamo
QED .p ( n k⌈ x ⌉ < x + 1 n2(k-1)(k-2)-pnk(nk-1)-2≥n2(k-1)(kp ( n k2) +1≤n2( k-12)
n2( k - 1 ) ( k - 2 ) - p n k ( n k - 1 ) - 2
≥ n2( k - 1 ) ( k - 2 ) - n ( n - 1K) (k-1)(k-2)-2
= nK( k - 1 ) ( k - 2 ) - 2 ≥ ( k - 1 ) ( k - 2 ) - 2 ≥ 0.
Modifica : la riduzione nella Revisione 1 ha avuto un errore; a volte richiedeva un grafico con un numero negativo di spigoli (quando p era piccolo). Questo errore è stato corretto ora.