Ist das Backup-Problem NP-vollständig?

9

Ist das folgende Entscheidungsproblem NP-vollständig:

Sei ein ungerichteter Graph und b c zwei ganze Zahlen. Ist es möglich, für jeden Scheitelpunkt von G genau b verschiedene Nachbarn auszuwählen, so dass kein Knoten mehr als c- mal ausgewählt wird.GbcGbc

Der Fall kann für jedes c in Polynomzeit unter Verwendung maximaler Übereinstimmung gelöst werden .b=1c

Motivation: Jeder Knoten möchte Backups bei verschiedenen Nachbarn platzieren, aber jeder Knoten kann nur c Backups speichern .bc

Volker Turau
quelle

Antworten:

11

Ich denke, das Folgende ist ein Polynom-Zeit-Algorithmus, der auf maximalem Fluss basiert. Sei die Eingabe.G(V,E),b,c

  • Konstruieren Sie einen gerichteten zweigliedrigen Graphen wobei L und R die linken und rechten Partitionen und F die gerichteten Kanten von L nach R sind .H(L,R,F)LRF LR
  • Lassen Sie . Es gibt n Ecken in L und n Ecken in R .|V|=nnLnR
  • Jeder Scheitelpunkt hat eine "Kopie" in L (sagen wir v l ) und eine Kopie in R (sagen wir v r ).vVLvlRvr
  • Wenn füge eine gerichtete Kante von u l zu v r hinzu . Jede solche Kante hat die Kapazität 1.(u,v)Eulvr
  • Fügen Sie einen "Quell" -Knoten und fügen Sie jedem Scheitelpunkt in L gerichtete Kanten von s hinzu . Jede solche Kante hat eine Kapazität b .ssLb
  • Fügen Sie einen "Senken" -Knoten und fügen Sie gerichtete Kanten von jedem Scheitelpunkt in R zu t hinzu . Jede solche Kante hat eine Kapazität c .tRtc
  • Finden Sie den maximalen Durchfluss von nach t .st

Der gegebene Graph hat genau dann eine Lösung, wenn der oben berechnete Maximalfluss jede Kante von s nach L sättigt , dh der Fluss an jeder Kante von s nach L ist gleich b .GsLsLb

Shiva Kintali
quelle
7
In der Tat ist dies genau die beabsichtigte Lösung, wenn ich dies als Hausaufgabenproblem bezeichne.
Jeffs