Ви ще уточнили свою проблему ще в коментарях. Щоб бути більш конкретним, у вас є DAG з усіма краями, що відтікають від джерела та до раковини (тобто всі ребра знаходяться на шляху від до ). Ви хочете знайти мінімальний розріз між двома частинами DAG, де перша деталь з'єднана з , а друга підключена до . Для цієї проблеми працює зміна стандартного алгоритму лінійного програмування для MIN-CUT, навіть із негативними вагами.стстст
Ми використовуємо ті самі позначення, що і у Вікіпедії . Вартість краю є . потенційну функцію на кожен вузол, і нехай . LP є
( i , j )ci jpiгi j=pi-pj
m i n i m i z e s u b j e c t t o ∑( i , j ) ∈ Eci jгi j гi j=pi-pj ∀ ( i , j ) ∈ E гi j≥ 0 ∀ ( i , j ) ∈ E pс= 1 pт= 0
Ці рівняння гарантують, що , оскільки кожна вершина знаходиться на деякому - шляху. Аналогічно, оскільки невід’ємний, потенціали на будь-якому шляху від до зменшуються. Нам ще потрібно показати, що існує оптимальне рішення для LP з усіма або або . Це випливає з того факту, що значення для розчину LP вище є очікуваним значенням розрізу , де вибирається випадковим чином у , а розріз отримується, ставлячи всі вершини0 ≤pi≤ 1стгi j=pi-pjстpi01Сшш[ 0 , 1 ]Сшiз у першому наборі вершин, а всі вершини з у другому множині.pi≥ шpi< ш