Maximaler Fluss und Ford-Fulkerson
최대 유량과 Ford-Fulkerson
중요한 독일어·영어 용어는 유지하되 설명과 학습 동선은 한국어 중심으로 제공합니다.
이 챕터의 문항별 독립 학습 페이지
단원 페이지에는 개요와 학습 순서만 둡니다. 각 문항의 용어·비유·수식·단계별 풀이·실제 채점은 아래 독립 페이지에서 이어집니다.
II-12 · 2개 선택
최대 유량과 Ford-Fulkerson에 대한 설명 중 정확히 두 개를 고르시오.
독립 개념 강의와 실제 채점 열기 →
30초 핵심 요약
Fluss(flow)는 각 간선에서 \(0 \le f(u,v) \le c(u,v)\)0 ≤ f(u,v) ≤ c(u,v)를 지키고, 내부 정점 v in V - {s,t}에서는 유입량과 유출량이 같다. Ford-Fulkerson은 \(\text{residual} \text{graph} G_{f}\)residual graph G_f에서 augmenting s-t path를 찾고, 병목 residual capacity만큼 flow를 늘리거나 되돌린다. 더 이상 augmenting path가 없으면 Max-Flow Min-Cut Theorem에 의해 현재 flow가 maximum이다.
\(|f| = \sum_{v} f(s,v) - \sum_{v} f(v,s)\)|f| = sumᵥ f(s,v) - sumᵥ f(v,s). Residual capacity는 원래 방향이면 c(u,v)-f(u,v), 반대 방향이면 f(v,u)로 생긴다.
문장에 'defined by capacity sum', 'immer weniger Kanten', 'kein Pfad', 'eingehender vs. ausgehender Fluss'가 나오면 flow value, residual graph, conservation을 각각 분리해서 판정한다.
시험 연결
- II-12
II부에서는 올바른 진술을 정확히 2개 골라야 하며, II-12는 2점 문항이다.
정답 위치를 외우는 것이 아니라 capacity, 실제 flow, residual graph, augmenting path, conservation을 따로 검사하는 절차를 익힌다.
시험 복기 자료(Gedächtnisprotokoll)는 재구성 자료이지 공식 정답지가 아니다. 로컬 Markdown의 독일어 움라우트가 깨져 있어 의미가 명확한 부분만 복원했다.
먼저 알아야 할 용어와 전제
- 방향 가중 그래프(gerichteter gewichteter Graph, directed weighted graph)
- 소스 s(Quelle)와 싱크 t(Senke)
- Kapazität c(u,v)와 실제 Fluss f(u,v)의 구분
- 경로(path), Schnitt(cut), residual capacity
- DFS/BFS로 s-t path를 찾는 기본 그래프 탐색
개념 강의
최대 유량 문제는 파이프의 최대 굵기(capacity)가 아니라 실제로 흘려보낸 양(flow)을 다룬다. Ford-Fulkerson의 핵심은 이미 보낸 결정을 residual graph에서 되돌릴 수 있게 표현하는 것이다. 그래서 residual graph에는 원래 간선의 남은 여유뿐 아니라, 이전에 보낸 flow를 취소하는 역방향 여유가 생긴다.
유량 네트워크(Flussnetzwerk)는 방향 그래프 \(G=(V,E),\)G=(V,E),음이 아닌 용량 c, 소스 s, 싱크 t로 이루어진다. 유량 f는 모든 간선에서 \(0 \le f(u,v) \le c(u,v)\)0 ≤ f(u,v) ≤ c(u,v)를 지키고, s와 t를 제외한 모든 내부 정점 v에서 유량 보존을 만족해야 한다. 유량값 |f|는 s에서 순수하게 빠져나가는 양이며, 유량 보존이 성립하면 t로 순수하게 들어오는 양과 같다. 잔여 그래프\((\text{residual} \text{graph}) G_{f}\)(residual graph) G_f에는 잔여 용량 \(c_{f}(u,v) > 0\)c_f(u,v) > 0인 방향 쌍만 들어간다. 증가 경로(augmenting path)는 \(G_{f}\)G_f안의 s-t 경로이며, 그 경로의 병목 잔여 용량만큼 현재 유량을 늘릴 수 있다.
- 간선 방향이 있는 graph를 읽을 수 있어야 한다.
- capacity c와 flow f를 같은 숫자로 착각하지 않아야 한다.
- cut capacity c(S,V-S)는 S에서 V-S로 나가는 capacity의 합이라는 점을 알아야 한다.
용량 제약(capacity constraint)은 모든 간선에서 \(0 \le f(u,v) \le c(u,v)\)0 ≤ f(u,v) ≤ c(u,v)를 요구한다. 유량 보존(flow conservation)은 \(v \in V - \{s,t\}\)v ∈ V - {s,t}인 모든 내부 정점에서 유입량의 합과 유출량의 합이 같다는 뜻이다. \(f(u,v) > 0\)f(u,v) > 0이면 \(G_{f}\)G_f에 잔여 용량 f(u,v)를 가진 역방향 간선 (v,u)가 생길 수 있다. 마지막으로 \(G_{f}\)G_f에 증가 s-t 경로가 없을 때 그리고 그때에만 f가 최대 유량이며, |f|는 최소 컷 용량과 같다.
강의에서 기본 Ford-Fulkerson의 실행시간은 \(O(|E| \cdot u \cdot |f\cdot |)\)O(|E| * u * |f*|)이다. 한 반복에서 유량이 최소 1/u만큼만 증가할 수도 있기 때문이다. 증가 경로를 BFS로 고르는 Edmonds-Karp 개선의 실행시간은 \(O(|V| \cdot |E|^2)\)O(|V| * |E|²)이다. 잔여 그래프에는 역방향·역평행 간선이 생길 수 있으므로 원래 네트워크보다 방향 간선 수가 많아질 수도 있다.
t로 들어오는 간선 용량의 합은 최대 유량의 정의가 아니라 상한일 뿐이다. s 근처에 작은 병목이 있으면 최대 유량은 t로 들어오는 전체 용량보다 훨씬 작을 수 있다. 잔여 그래프의 간선 수는 현재 유량에 따라 원래 그래프와 같거나 더 적거나 더 많을 수 있다. 또한 임의의 실수 용량과 임의의 경로 선택을 허용하면 교과서의 Ford-Fulkerson 종료성에 주의해야 한다. II-12의 진술은 강의 의사코드의 반복 종료 조건과 최적성 기준으로 읽는다.
- definiert
- Summe der Kapazität
- terminiert
- kein flusserhöhender Pfad
- immer
- weniger Kanten
- eingehender Fluss
- ausgehender Fluss
Ford-Fulkerson 잔여 그래프 실험실
다음 상태를 먼저 예측한 뒤 한 단계 실행하여 확인하세요.
새 문장 판별 체크리스트
- Capacity와 flow를 먼저 분리한다. capacity의 합은 보통 upper bound이고, 실제 flow value의 정의가 아니다.
- 내부 정점 v in V - {s,t}이면 conservation 때문에 \(\text{incoming} \text{flow} = \text{outgoing} \text{flow}\)
incoming flow = outgoing flow인지 확인한다. - Residual graph 문장이 나오면 forward residual c-f와 reverse residual f를 둘 다 떠올린다.
- 'immer', 'definiert', 'weniger'처럼 강한 단어는 작은 반례 하나로 깨질 수 있는지 본다.
- Ford-Fulkerson 종료/최적성은 '\(G_{f}\)
G_f에 augmenting s-t path가 없음'과 연결한다. - 문제가 \(\text{exactly}_{\text{two}}\)
exactly(two)라도 보기마다 독립적으로 참/거짓을 계산하고, 개수를 억지로 맞추지 않는다.
능동 회상
- flow f의 두 가지 핵심 조건을 말하라. — 모든 edge/pair에 대해 \(0 \le f(u,v) \le c(u,v)\)
0 ≤ f(u,v) ≤ c(u,v)를 만족하고, 모든 내부 정점 v in V - {s,t}에서 incoming flow와 outgoing flow가 같다. - flow value |f|는 무엇으로 정의되는가? — source s의 net outflow, 즉 \(\sum_{v} f(s,v) - \sum_{v} f(v,s)\)
sumᵥ f(s,v) - sumᵥ f(v,s)로 정의된다. conservation이 있으면 sink t의 net inflow와 같다. - residual graph에 reverse edge가 생기는 이유를 한 문장으로 설명하라. — 이미 보낸 flow f(u,v)를 줄이는 선택지를 표현하기 위해 reverse direction (v,u)에 residual capacity f(u,v)가 생긴다.
- Ford-Fulkerson에서 augmenting path는 어느 graph에서 찾는가? — 원래 graph G가 아니라 \(\text{residual}-\text{capacity} \text{graph} G_{f}\)
residual-capacity graph G_f에서 s부터 t까지의 path를 찾는다. - Max-Flow Min-Cut Theorem의 시험용 동치 세 가지는? — f가 maximum flow이다, \(G_{f}\)
G_f에 augmenting path가 없다, |f|가 minimum s-t cut capacity와 같다.
구두시험 질문
- A 보기 'maximum flow is defined by capacities entering t'가 왜 틀렸는지 source-side bottleneck 예시로 설명해 보라.
- \(\text{residual} \text{graph} G_{f}\)
residual graph G_f의 edge set은 어떻게 정해지는가? - Ford-Fulkerson이 no augmenting path 상태에서 왜 maximum flow라고 결론내릴 수 있는가?
시험 직전 요약
유량(flow)은 용량 제약과 유량 보존을 모두 만족해야 한다. Ford-Fulkerson은 \(G_{f}\)G_f에서 s-t 증가 경로를 반복해서 찾고 그 경로의 병목만큼 유량을 늘린다.
강의의 기본 실행시간은 \(O(|E| \cdot u \cdot |f\cdot |)\)O(|E| * u * |f*|)이고, Edmonds-Karp 개선은 \(O(|V| \cdot |E|^2)\)O(|V| * |E|²)이다.
잔여 그래프에는 역방향·역평행 간선이 생길 수 있으므로 '항상 원래 그래프보다 간선이 적다'는 말은 거짓이다.
각 선택지가 용량 c, 유량 f, 원래 그래프 G, 잔여 그래프 \(G_{f}\)G_f중 무엇을 말하는지 먼저 표시한다. 그다음 정의, 보존 법칙, 잔여 간선 규칙, 최대 유량-최소 컷 정리를 적용한다.
출처
- 출처 파일: AuD Gedächtnisprotokoll SoSe 2025.md; 근거 페이지·구간: MC section II-12; 뒷받침하는 내용: 복원된 시험 문항 II-12의 문제 문장과 원래 선택지 네 개를 뒷받침한다.; 검증 상태: reconstructed; 자료의 역할: reconstructed_exam; 추출 품질: \(\text{garbled}_{\text{navigatio}}\,n_{\text{only}}\)
garbled(navigation)(only) - 출처 파일: Vorlesung\06GraphAlgorithms.pdf; 근거 페이지·구간: pp. 181-183; 뒷받침하는 내용: 유량 네트워크 정의, 용량 제약 \(0 \le f(u,v) \le c(u,v), v\in V - \{s,t\}\)
0 ≤ f(u,v) ≤ c(u,v), v ∈ V - {s,t}에 대한 유량 보존, 유량값 |f|를 뒷받침한다.; 검증 상태: verified; 자료의 역할: current_lecture; course term: Netzwerkflüsse, Maximale Flüsse; 추출 품질: \(\text{clean}_{\text{text}}\)clean(text) - 출처 파일: Vorlesung\06GraphAlgorithms.pdf; 근거 페이지·구간: pp. 184-188; 뒷받침하는 내용: Ford-Fulkerson이 잔여 그래프에서 증가 경로를 찾고, 잔여 용량에는 정방향과 역방향이 포함되며, 잔여 그래프에 s-t 경로가 없을 때 반복을 멈춘다는 내용을 뒷받침한다.; 검증 상태: verified; 자료의 역할: current_lecture; course term: Restkapazitätsgraph, Ford-Fulkerson-Methode; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\06GraphAlgorithms.pdf; 근거 페이지·구간: pp. 193-194; 뒷받침하는 내용: 최대 유량-최소 컷 정리에 따라 최대 유량, \(G_{f}\)
G_f에 증가 경로가 없음, 최소 컷 용량이 서로 동치라는 내용을 뒷받침한다.; 검증 상태: verified; 자료의 역할: current_lecture; course term: Max-Flow Min-Cut Theorem; 추출 품질: \(\text{clean}_{\text{text}}\)clean(text) - 출처 파일: Vorlesung\06GraphAlgorithms__moodle_2026-06-16.pdf; 근거 페이지·구간: pp. 181-194; 뒷받침하는 내용: Moodle 복제 자료가 현재 강의의 유량 정의, 잔여 그래프 구성, Ford-Fulkerson 알고리즘, 실행시간 메모, 최대 유량-최소 컷 정리를 동일하게 확인한다.; 검증 상태: verified; 자료의 역할: current_lecture; course term: Maximaler Fluss in Graphen; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet11.pdf; 근거 페이지·구간: pp. 1-3, pp. 7-9; 뒷받침하는 내용: 현재 연습문제가 그래프의 최대 유량(Maximaler Fluss in Graphen)과 Ford-Fulkerson 알고리즘을 토론 주제로 제시하고 H4에서 유량 네트워크 구현을 요구한다.; 검증 상태: verified; 자료의 역할: exercise_sheet; course term: Maximaler Fluss, Ford-Fulkerson; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet11-GrpSol.pdf; 근거 페이지·구간: pp. 4-9; 뒷받침하는 내용: 공식 그룹 해설이 증가 경로를 추가하고 잔여 용량 그래프를 그리며 최종 최대 유량을 보고하는 방식으로 Ford-Fulkerson을 풀이한다.; 검증 상태: verified; 자료의 역할: official_solution; course term: Ford-Fulkerson; 추출 품질: \(\text{visual}_{\text{check}}\)
visual(check)
AI 후속 학습 프롬프트
마지막 생성: 2026-08-03 03:24