To redukcja z Clique do twojego problemu.
Rozpoczynamy z instancją Clique: wykres i całkowita K , niech V = { v 1 , V, 2 , . . . , v n } .GkV={v1,v2,...,vn}
Klika pozostaje NPC nawet pod warunkiem, że (szkic próbny: jeśli m a x ( d e g ( v i ) > 2 ( k - 1 ) następnie dodaj K t, gdzie t = 2 ( k - 1 ) - m a xmax(deg(vi))≤2(k−1)max(deg(vi)>2(k−1)Kt i podłącz go do wszystkich węzłów G i poproś o klikę o rozmiarze k ′ = k + t na nowym wykresie).t=2(k−1)−max(deg(vi))Gk′=k+t
Zakładamy więc, że w , m a x ( d e g ( v i ) ) ≤ 2 ( k - 1 ) . Dla każdego węzła v i dla którego d e g ( v i ) < 2 ( k - 1 ) tworzymy „zewnętrzną” klikę C i o rozmiarze 2 ( k + 1 ) + 1 (każdy węzeł CGmax(deg(vi))≤2(k−1)videg(vi)<2(k−1)Ci2(k+1)+1sąsiadów).Ciklika ma co najmniej 2(k+1)
Jeśli jest stopniem v i , łączymy v i z 2 ( k - 1 ) - d e g ( v i ) węzłami C ideg(vi)vivi2(k−1)−deg(vi)Ci .
W otrzymanym , każde v i ma stopień 2 ( k - 1 ) ; więc | A | ≥ k, ponieważ należy wybrać co najmniej jeden wierzchołek.G′vi2(k−1)|A|≥k
Oczywiste jest, że jeśli jeden z wierzchołków jest zawarty w A, to należy w nim również wstawić co najmniej 2 ( k + 1 ) / 2 = k + 1 węzłów. Należy zauważyć, że jeśli oryginalny węzeł ma d e g ( v i ) < k - 1, to należy uwzględnić co najmniej jeden węzeł połączonego C i , co prowadzi do | A | > k .CiA2(k+1)/2=k+1deg(vi)<k−1Ci|A|>k
Więc możemy zbudować zestaw o minimalnym rozmiarze | A | = k wtedy i tylko wtedy, gdy G zawiera klikę o rozmiarze k .A|A|=kGk
Przykład zmniejszenia, w którym pytamy, czy wykres reprezentowany przez żółte węzły i pogrubione krawędzie zawiera klikę o rozmiarze k = 3 (trójkąt).Gk=3
Niebieskie węzły (pogrupowane dla lepszej czytelności) to , czerwone krawędzie to połączenia między węzłami G o d e g ( v i ) < 2 ( k - 1 ) .K9Gdeg(vi)<2(k−1)