Здесь была моя первая попытка спора. Это было неправильно, но я исправил это после "РЕДАКТИРОВАТЬ:"
Если бы вы могли приблизительно решить проблему максимального среза с отрицательными весами, не могли бы вы использовать это для решения проблемы максимального среза с положительными весами? Начните с задачи максимального разреза, которую вы хотите решить, чье оптимальное решение - . Теперь поместите большую отрицательную границу веса (с весом ) между и . Оптимальным решением новой задачи является , поэтому наш алгоритм гипотетической аппроксимации даст вам решение с максимальным разрезом, значение которого не более хуже оптимального. На исходном графике максимальный срез по-прежнему не более хуже оптимального. Если вы выбираете близком кб - у V б - ( б - ) / 2 ( б - ) / 2 б ≠ 16 / 17b−auvb−a(b−a)/2(b−a)/2ab, это нарушает результат неприемлемости того, что если P NP, вы не можете приблизить максимальное сокращение к значению, превышающему . ≠16/17
РЕДАКТИРОВАТЬ:
Вышеупомянутый алгоритм не работает, потому что вы не можете гарантировать, что и находятся на противоположных сторонах разреза в новом графе, даже если они были изначально. Я могу исправить это следующим образом.у vuv
Давайте предположим, что у нас есть алгоритм аппроксимации, который даст нам сокращение в 2 раза от OPT, если сумма всех весов ребер положительна.
Как и выше, начните с графа со всеми неотрицательными весами на ребрах. Мы найдем модифицированный граф с некоторыми отрицательными весами, так что, если мы сможем приблизить максимальный разрез с коэффициентом 2, мы сможем очень хорошо аппроксимировать максимальный разрезG G ∗ G ∗ GGG∗G∗G
Выберите две вершины и и надейтесь, что они находятся на противоположных сторонах максимального среза. (Вы можете повторить это для всех возможных чтобы убедиться, что одна попытка работает.) Теперь поместите большой отрицательный вес на все ребра и для и a большой положительный вес на ребре . Предположим, что оптимальный срез имеет вес .u v v - d ( u , x ) ( v , x ) x ≠ u , v a ( u , v ) O P Tuvv−d(u,x)(v,x)x≠u,va(u,v)O PT
Вырез со значением в , где вершины и находятся на одной и той же стороне разреза, теперь имеет значение в где - количество вершин на другой стороне разреза. Разрез с на противоположных сторонах с исходным значением теперь имеет значение . Таким образом, если мы выберем достаточно большим, мы можем заставить все срезы с и на одной стороне иметь отрицательное значение, поэтому, если есть какой-либо срез с положительным значением, то оптимальный срез в будет иметь иc G u v c - 2 d m m ( u , v ) c c + a - ( n - 2 ) d d u v G ∗ u v ( a - ( n - 2 ) d ) u vсгUvс - 2 дмм( U , V )сc + a - ( n - 2 ) ddUvг*Uvна противоположных сторонах. Обратите внимание, что мы добавляем фиксированный вес к любому разрезу с и на противоположных сторонах.(a−(n−2)d)uv
Пусть . Выберите так что (мы оправдать это позже). Разрез с весом в имеющий и на противоположных сторонах, теперь становится разрезом с весом . Это означает, что оптимальный срез в имеет вес . Наш новый алгоритм находит разрез в с весом не менее . Это переводит в разрез в исходном графе с весом не менее (поскольку все разрезы в с положительным весом отделяютсяе = ( - ( п - 2 ) д ) е ≈ - 0,98 О Р Т с G U V с - 0,98 О Р Т О * 0,02 О Р Т О * 0,01 О Р Т О 0,99 О Р Т С * U vf=(a−(n−2)d)af≈−0.98OPTcGuvc−0.98OPTG∗0.02OPTG∗0.01OPTG0.99OPTG∗u и ), что лучше, чем результат неприемлемости.v
Нет проблем с выбором достаточно большого, чтобы сделать любой разрез с и на одной стороне отрицательным, поскольку мы можем выбрать настолько большим, насколько мы хотим. Но как же мы выбираем так , что , когда мы не знали ? Мы можем аппроксимировать очень хорошо ... если мы позволим быть сумма весов ребер в , мы знаем . Таким образом, у нас есть довольно узкий диапазон значений для , и мы можем перебирать принимая все значения от доd u v d a f ≈ - .99 O P T O P T O P T T G 1duvdaf≈−.99OPTOPTOPTTG2 T≤OPT≤Tff-.49T-.99T0.005Tf≈-0,98OPT12T≤OPT≤Tff−.49T−.99Tс интервалами . Для одного из этих интервалов мы гарантируем, что , и поэтому одна из этих итераций гарантированно вернет хороший результат.0.005Tf≈−0.98OPT
Наконец, нам нужно проверить, что новый граф имеет веса ребер, сумма которых положительна. Мы начали с графика, у которого веса ребер имели сумму , и добавили к сумме весов ребер. Так как , мы в порядке T f - .99 T ≤ f ≤ - .49 TTf−.99T≤f≤−.49T