Esta es una reducción de Clique a su problema.
Comenzamos con una instancia de Clique: una gráfica y un número entero k , permiten V = { v 1 , v 2 , . . . , v n } .GkV={v1,v2,...,vn}
Clique sigue siendo NPC incluso bajo la restricción de que (bosquejo de prueba: si m a x ( d e g ( v i ) > 2 ( k - 1 ) luego agregue un K t donde t = 2 ( k - 1 ) - m a xmax(deg(vi))≤2(k−1)max(deg(vi)>2(k−1)Kt y conéctelo a todos los nodos de G y solicite una camarilla de tamaño k ′ = k + t en el nuevo gráfico).t=2(k−1)−max(deg(vi))Gk′=k+t
Entonces suponemos que en , m a x ( d e g ( v i ) ) ≤ 2 ( k - 1 ) . Para cada nodo v i para el que d e g ( v i ) <Gmax(deg(vi))≤2(k−1)vi creamos una camarilla "externa" C i de tamaño 2 ( k + 1 ) + 1 (cada nodo de Cdeg(vi)<2(k−1)Ci2(k+1)+1 camarilla tiene al menos 2 ( k + 1 ) vecinos).Ci2(k+1)
Si es el grado de v i , conectamos v i a 2 ( k - 1 ) - d e g ( v i ) nodos de C i .deg(vi)vivi2(k−1)−deg(vi)Ci
En el resultante , cada v i tiene grado 2 ( k - 1 ) ; entonces | A | ≥ k porque se debe seleccionar al menos un vértice.G′vi2(k−1)|A|≥k
Está claro que si uno de los vértices de está incluido en A, entonces al menos 2 ( k + 1 ) / 2 = k + 1 nodos también deben insertarse en él. Tenga en cuenta que si un nodo original tiene d e g ( v i ) < k - 1, entonces debe incluirse al menos un nodo del C i vinculado , lo que lleva a | A | > k .CiA2(k+1)/2=k+1deg(vi)<k−1Ci|A|>k
Entonces podemos construir un conjunto de tamaño mínimo | A | = k si y solo si G contiene una camarilla de tamaño k .A|A|=kGk
Un ejemplo de la reducción en la que preguntamos si el gráfico representado por los nodos amarillos y los bordes en negrita contiene una camarilla de tamaño k = 3 (un triángulo).Gk=3
Los nodos azules (agrupados para una mejor legibilidad) son , los bordes rojos son los enlaces entre los nodos de G con d e g ( v i ) < 2 ( k - 1 ) .K9Gdeg(vi)<2(k−1)