Проблема резервного копирования NP-завершена?


9

Является ли следующее решение задачи NP-завершенным:

Пусть неориентированный граф и двумя целыми числами. Можно ли выбрать для каждой вершины ровно разных соседей, чтобы ни один узел не был выбран больше, чем раз.Gb≤cGbc

Случай может быть решен для любого за полиномиальное время с использованием максимального соответствия.b=1c

Мотивация: каждый узел хочет разместить резервные копии у разных соседей, но у каждого узла есть только емкость для хранения резервных копий .bc

Ответы:


11

Я думаю, что следующий алгоритм полиномиального времени, основанный на максимальном потоке. Пусть будет входом.G(V,E),b,c

  • Построить направленный двудольный граф с и , являющийся левой и правой перегородки и будучи направленным ребра из до .H(L,R,F)LRF LR
  • Пусть . Есть вершин и вершин .|V|=nnLnR
  • Каждая вершина имеет «копию» в (скажем, ) и копию в (скажем, ).v∈VLvlRvr
  • Если добавить направленное ребро из в . Каждый такой край имеет емкость 1.(u,v)∈Eulvr
  • Добавить «источник» узел и добавить направленные ребра из каждой вершиной в . Каждое такое ребро имеет емкость .ssLb
  • Добавьте «тонущий» узел и добавьте направленные ребра из каждой вершины в к . Каждый такой край имеет емкость .tRtc
  • Найти максимальный поток от до .st

Данный граф имеет решение тогда и только тогда, когда рассчитанный выше максимальный поток насыщает каждое ребро от до , т.е. поток на каждом ребре от до равен .GsLsLb


7
На самом деле, это именно то решение, которое я выбрал как домашнее задание.
— Джефф
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.