¿El problema de copia de seguridad NP-completo?

9

¿Es el siguiente problema de decisión NP-completo:

Sea un gráfico no dirigido y dos enteros. ¿Es posible seleccionar para cada vértice de exactamente vecinos diferentes de modo que no se elija ningún nodo más de veces?b c G b cGbcGbc

El caso se puede resolver para cualquier en tiempo polinomial utilizando la coincidencia máxima.cb=1c

Motivación: cada nodo quiere colocar copias de seguridad en vecinos diferentes, pero cada nodo solo tiene capacidad para almacenar copias de seguridad .cbc

Volker Turau
fuente

Respuestas:

11

Creo que el siguiente es un algoritmo de tiempo polinómico basado en el flujo máximo. Sea la entrada.G(V,E),b,c

  • Construir un gráfico bipartito dirigido con L y R siendo las particiones izquierda y derecha y F siendo los bordes dirigidos de L a R .H(L,R,F)LRF LR
  • Dejar . Hay n vértices en L y n vértices en R .|V|=nnLnR
  • Cada vértice tiene una "copia" en L (digamos v l ) y una copia en R (digamos v r ).vVLvlRvr
  • Si agregue un borde dirigido de u l a v r . Cada borde tiene capacidad 1.(u,v)Eulvr
  • Añadir un nodo "fuente" y añadir bordes dirigidos desde s a cada vértice en L . Cada borde tiene una capacidad b .ssLb
  • Agregue un nodo "sumidero" y agregue bordes dirigidos desde cada vértice en R a t . Cada borde tiene una capacidad c .tRtc
  • Encontrar el máximo flujo de a t .st

El gráfico dado tiene una solución si y sólo si el máximo de flujo calcula anteriormente se satura cada borde de s a L , es decir, el flujo en cada borde de s a L es igual a b .GsLsLb

Shiva Kintali
fuente
77
De hecho, esta es precisamente la solución prevista cuando asigno esto como un problema de tarea.
Jeffε