최대 흐름의 잔차 그래프


14

최대 흐름 문제에 대해 읽고 있습니다 . 잔차 그래프의 직관을 이해할 수 없었습니다. 흐름을 계산할 때 뒤쪽 모서리를 고려하는 이유는 무엇입니까?

누구든지 잔류 그래프의 개념을 이해하도록 도울 수 있습니까?

무 방향 그래프에서 알고리즘은 어떻게 변경됩니까?

답변:


28

최대 흐름 문제 의 잔차 그래프에 대한 직관 이이 강의 에서 매우 잘 설명되어 있습니다. 설명은 다음과 같습니다.

다음 네트워크 대한 최대 흐름 문제를 해결하려고한다고 가정합니다 (각 레이블 는 가장자리 e를 통해 밀린 에프이자형/이자형흐름 와이 가장자리 의 용량 c e 를 모두 나타냄 ).에프이자형이자형이자형

실행 예

욕심 많은 접근 방식은 다음과 같습니다.

  1. 임의 선택 를 증대 경로 소스 정점으로부터가는 S 싱크 정점 t 되도록 전자에스 ); 즉, P의 모든 모서리에사용 가능한 용량이 있습니다.이자형(이자형에프이자형<이자형
  2. 이 경로를 통해 가능한 최대 유량 을 누릅니다 . Δ 값은 P병목 현상 에 의해 결정됩니다 . 즉, 사용 가능한 최소 용량의 가장자리입니다. 공식적으로, Δ = min e P ( c e - f e ) .ΔΔΔ=이자형(이자형에프이자형)
  3. 기능 보강 경로가 없을 때까지 1 단계로 이동하십시오.

즉, 사용 가능한 용량이있는 경로를 찾고 해당 경로를 따라 흐름을 보내고 반복하십시오.

에서는 , 경험적 발견 위의 하나 개의 가능한 실행을 증대시키는 세 경로 P 1 , P 2P (3) 이 순서대로. 이 경로는 각각 2, 2 및 1 개의 흐름 단위를 푸시하여 총 5 개의 흐름을 만듭니다.12

최대 흐름을위한 탐욕스러운 접근 방식의 가능한 실행

이 순서대로 경로를 선택하면 최적의 솔루션이됩니다. 그러나 먼저 선택하면 (즉, P 1P 2 전에 ) 어떻게됩니까?12

차단 경로

우리는 블로킹 흐름 이라는 것을 얻습니다 . 더 이상 증강 경로가 없습니다. 이 경우 총 유량은 3이며 최적이 아닙니다. 이 문제는 가능하면 해결할 수 있습니다 실행 취소 작업을 (흐름을 허용함으로써, 즉는 이전의 반복 작업을 취소, 역으로 확인할 수) : 단순히 정점에서 흐름 뒤쪽의 2 개 단위를 밀어 정점에 V 같은 :V

역류

허용 된 실행 취소 작업을 인코딩하는 것이 잔차 그래프 의 주요 목표입니다 .

네트워크 G 의 잔차 그래프 G 와 동일한 정점 세트 를 가지며 각 모서리 e = ( u , v ) G를 포함합니다 .아르 자형이자형=(,V)

  • c e - f e > 0 인 경우 용량 c e - f e를 갖는 포워드 에지 .이자형'=(,V)cefecefe>0

  • f e > 0 인 경우 용량 f e를 갖는 후방 가장자리 .e=(v,u)fefe>0

예를 들어, 휴리스틱이 P 3을 먼저 선택할 때 (즉, 블로킹 흐름을 얻을 때) 욕심 휴리스틱의 첫 번째 반복 후에 얻은 잔차 그래프 을 고려하십시오 .RP3

잔차 그래프

w 에서 v 로 2 단위의 흐름을 푸시 하는 실행 취소 조작 은 R 에서 s 에서 t 까지 전진 (증강) 경로로 인코딩됩니다 .wvstR

잔차 그래프에서 보강 경로

일반적으로 :

잔차 그래프 R 에서 증강 경로 가 선택된 경우 :PR

  • G 에서의 전방 에지에 대응하는 모든 에지는 이용 가능한 용량을 갖는 에지를 사용함으로써 흐름을 증가시킨다.PG
  • G 에서 후진하는 에지에 대응하는 모든 에지 는 과거에 전방 방향으로 밀린 흐름을 취소한다.PG

이것이 Ford-Fulkerson 방법 의 기본 아이디어 입니다.

Ford–Fulkerson 방법은 위에서 설명한 욕심 많은 접근 방식과 정확히 같은 방식으로 진행되지만 잔차 그래프에 원래 경로가 아닌 확장 경로가 더 이상 없을 때만 중지됩니다. 잔차 그래프가 다음과 같은 최적 조건을 설정 하므로이 방법은 정확합니다 (즉, 항상 최대 유량을 계산 함) .

GfGst


Edmonds-Karp 알고리즘에 설명 된대로 가장 짧은 길이의 순서로 경로가 추가되는 예가 있습니까? 귀하의 카운터 예제에서 첫 번째 경로는 길이 3이며 더 짧은 (즉 2) 경로를 찾을 수 있으며 Edmonds-Karp를 수행하는 경우 먼저 추가됩니다.
Roy

st3vv1v2ww1w2(v1,v2)(w1,w2)2vwv1w2(v1,w2)

당신의 예는 말이됩니다. 절단의 다른 모서리에서 그래프를 늘려 해당 모서리를 최단 경로 중 하나에 둘 수 있습니다.
Roy

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.