흐름이 지시 된 비밀 그래프에서 노드 요구를 만족시킬 수 있는지 여부를 결정합니다.
-
29-09-2020 - |
문제
나는 실패하게 해결할 수없는 다음과 같은 문제가있다.
노드 요구가있는 지시 된 그래프가 있습니다. 수요가있는 순환과는 달리 이러한 노드 요구는 유량으로부터 "빼기"를하지 않습니다. 노드는 단순히 강도의 흐름이 흐르는 강도의 흐름이있을 것입니다. 그래프는 acyclic이지만 트리가 아닙니다. 다중 노드가 낮은 노드에서 더 높은 노드에서 여러 경로가 있습니다.
강도의 흐름이 모든 노드의 요구를 충족시킬 수 있는지 여부입니다. 물론, k 보다 큰 강도의 유동은 수요 k 을 갖는 노드를 통해 흐를 수있다. 또한 입력 그래프에는 용량 한계가 없습니다.
이 문제를 최대 유량 문제로 줄여야합니다. 나는 낮은 경계와 순환으로 순환하기 위해 그것을 줄이려면서 수요를 만족시키고 그것을 측정하는 동안 노드의 흐름을 최소한으로 제한하는 방법에 대한 좋은 방법을 찾을 수 없기 때문에 실패했습니다. 동시에.
해결책
새 소스 $ s '$ 및 $ (s's) $ 최대 및 최소 용량 $ R $ .
$ V $ 수요 $ d $ 다음을 수행하십시오.
- $ v $ $ v_1 $ 및 $ V_2 $ .
- 모든 이전 에지 $ (u, v) $ 을 $ (u, v_1) $
- 모든 이전 에지 $ (v, u) $ 을 $ (v_2, u) $ .
- 최소 용량 $ d $ 을 사용하여 $ (v_1, v_2) $ 을 추가합니다.
문제는 최소 및 최대 가장자리 용량이있는 네트워크에 실현 가능한 흐름이 있는지 여부를 확인하는 것과 같습니다.
이 문제는 잘 알려져 있으며 최대 알고리즘 jeff erickson에 의해)
기본적으로 $ d $ 은 모든 가장자리의 최소 용량의 합계입니다.
- 새 소스 버텍스 $ s ^ * $ 및 새로운 대상 정점 $ t ^ * $ .
- 최대 용량 $ + \ infty $ $ (span class="math-container"> $ (s ^ *, s ') $ 을 추가하십시오. 스팬>.
-
각 에지 $ (U, v) $ 최소 용량 $ C \ NEQ 0 $ < / span> 및 최대 용량 $ c $ , 가장자리 $ (u, t ^ *) $ 용량 $ C $ , $ (sap *, v) $ 용량 $ C $ , $ (u, v) $ 에서 최소 용량을 제거하고 $ (u, v) $ $ cc $ ( $ C $ 은 $ + \ infty $ 이 $ + \ infty $ ).
-
$ S ^ * $ 에서 $ T ^ * $ $ d $ 과 같습니다.