Dado un gráfico no dirigido simple , encuentre un subconjunto de vértices, de modo que
para cualquier vértice al menos la mitad de los vecinos de x también están en A , y
El tamaño de es mínimo.
Es decir, estamos buscando un grupo, en el que al menos la mitad del vecindario de cada vértice interno permanezca interno. La mera existencia de tal grupo es obvia, ya que todo el conjunto de vértices siempre tiene la propiedad 1. Pero, ¿qué tan difícil es encontrar el grupo más pequeño (no vacío)?
¿Existe un nombre estándar para este problema? ¿Qué se sabe sobre su complejidad?
graph-theory
graph-algorithms
np-hardness
Andras Farago
fuente
fuente
Respuestas:
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 } .G k V={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)) G k′=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 ) <G max(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) Ci 2(k+1)+1 camarilla tiene al menos 2 ( k + 1 ) vecinos).Ci 2(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) vi vi 2(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′ vi 2(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 .Ci A 2(k+1)/2=k+1 deg(vi)<k−1 Ci |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|=k G k
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).G k=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 ) .K9 G deg(vi)<2(k−1)
fuente