Я столкнулся со следующей проблемой:
Для заданного ориентированного ациклического графа с вещественными весами ребер и двумя вершинами s и t вычислим минимальный срез st.
Для общих графиков это NP-сложный, поскольку можно просто уменьшить максимальный срез до него, просто изменив вес ребер (поправьте меня, если я ошибаюсь).
Какова ситуация с группами доступности баз данных? Может ли минимальное сокращение (или максимальное сокращение) быть решено за полиномиальное время? Это NP-сложный и, если да, есть ли известные алгоритмы аппроксимации?
Я пытался найти работу по этому вопросу, но не смог (возможно, я просто использовал неправильные ключевые слова в своих поисках), поэтому я надеялся, что кто-то может знать (или найти) что-то об этом.
Ответы:
Вы уточнили свою проблему еще в комментариях. Чтобы быть более точным, у вас есть DAG со всеми ребрами, вытекающими из источника направлении приемника (то есть все ребра находятся на пути от до ). Вы хотите найти минимальный разрез между двумя частями DAG, где первая часть связана с , а вторая - с . Для этой задачи работает вариант стандартного алгоритма линейного программирования для MIN-CUT, даже с отрицательным весом ребра.т с т с тs t s t s t
Мы используем те же обозначения, что и в Википедии . Стоимость ребра составляет . Мы размещаем потенциальную функцию на каждом узле, и пусть . LP является c i j(i,j) cij d i j = p i - p j m i n i m i z epi dij=pi−pj
Эти уравнения гарантируют, что , так как каждая вершина находится на некотором - пути. Точно так же, поскольку неотрицательна, потенциалы на любом пути от до уменьшаются. Нам все еще нужно показать, что существует оптимальное решение для LP со всеми либо либо . Это следует из того факта, что значение для решения LP выше является ожидаемым значением разреза , где выбирается случайным образом в , и где разрез получается путем помещения всех вершинs t d0≤pi≤1 s t st p i 01 C w w[0,1] C w i p i ≥w p i <wdij=pi−pj s t pi 0 1 Cw w [0,1] Cw i с в первом наборе вершин и всеми вершинами с во втором наборе.pi≥w pi<w
источник