+ All Categories
Home > Documents > 4장: 네트워크 모형 - Seoul National...

4장: 네트워크 모형 - Seoul National...

Date post: 26-May-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
73
4장: 네트워크 모형 기본 용어와 개념 최단경로문제 최대흐름문제 최소비용흐름문제 최소비용 걸침나무 문제
Transcript
Page 1: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

4장: 네트워크 모형

기본 용어와 개념

최단경로문제

최대흐름문제

최소비용흐름문제

최소비용 걸침나무 문제

Page 2: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

네트워크마디

지점, 시점 또는 설비

점이나 원으로 표현

마디들의 연결성을 방향의 유무에 따라 선분이나 화살표를 사용하여 표현. 각각 유향호, 무향호로 부른다.지하철 환승 네트워크

2

3

4 56

7 83

4

51

1

23

17 16

17

18 34

7

을지로3가동대문운동장

시청

서울역 충무로

교대

사당

신도림

기본 용어와 개념

Page 3: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념일반 네트워크의 정의 : 유한 집합 N과 A가 있을 때, A의 각 원소에 N의 원소 쌍을 대응시키는 함수관계를 네트워크라고 한다.

예 : N = {1, 2, 3, 4, 5} 과 A = {a, b, c, d, e, f, g, h, k}를 사용하여 다음과 같은 네트워크를 정의할 수 있다 : a ↦ (1,2), b ↦(1,2), c ↦ (2,3), d ↦ (3,2), e ↦ {1,4}, f ↦ {3,4}, g ↦ (5,4), h ↦ (3,5), k ↦ (5,5). 여기서 { , }는 무향호를 ( , )는 유향호를 의미한다.

복수호루프

1

2 3

4 5

a b

c

df

e g

h

Page 4: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념단순 네트워크 : 복수호나 루프가 없는 네트워크유향 네트워크 : 모든 호가 유향호인 네트워크단순 유향 네트워크의 예 :

단순 무향 네트워크의 예를 만들어 볼것

1

2 3

4 5

Page 5: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념

부분 네트워크 : 네트워크 G = (N, A)와 G’ = (N’, A) 가 N ⊆ N’, A ⊆ A’ 를 만족하며 G’의 마디 연결이 G에서의 연결과 일치할 때, G’을 G의 부분 네트워크라고 한다.

G’

1

2 3

4 5

1

2 3

4

G

Page 6: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념경로 : 무향네트워크 G=(N, A)의 어떤 마디 v0 에서 출발, 어떤 마디 vl 에 도착할 때 까지 거친 마디, 호의 순서열을 경로라고 한다 : P = v0-e1-v2-e2- ... -el-vl, vi ∈ N, ei = {vi-1, vi} ∈ A. 예 : P = 1-a-2-b-5-f-4-h-7-i-5-f-4-g-6

1

2

3

4

5

6

7

a

b

c

f i

h

gd je

Page 7: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념단순 네트워크는 마디 만으로 경로를 표현할 수 있다. 왜인가?

같은 마디가 반복되지 않으면 단순경로라 한다. 예 : P=1-2-5-4-6

일반 네트워크의 경우, 호 방향을 모두 무시했을 때 경로가 되면, 역시 경로라고 부른다. 주의 : 유향경로 (뒤에 정의)

1

2

3

4

5

6

7

a

b

c

f i

h

gd je

유향네트워크의 경로

Page 8: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

회로 : 시작과 끝 마디가 같은 경로. 예 : C1 = 1 - 2 - 5 - 4 - 7 - 4 - 1

단순회로 : 끝 마디를 제외한 나머지 마디가 반복되지 않은 회로. 예 : C2 = 1 - 2 - 5 - 4 - 1

기본 용어와 개념

1

2

3

4

5

6

7

a

b

c

f i

h

gd je

Page 9: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념 유향 경로와 회로 : 호 방향이 모두 경로의 방향과 일치하면 유향경로라고 부른다. (유향회로도 마찬가지이다.)

1

2

3

4

5

6

7

P1 = 1 - 2 - 5 - 7 - 6 : 경로, 유향경로 아님.

P2 = 1 - 2 - 5 - 4 - 7 -5 - 4 - 6 : 유향경로

C1 = 1 - 2 - 5 - 4 - 1: 회로, 유향회로 아님

C2 = 5 - 4 - 6 -7 -5 : 유향회로

Page 10: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념나무

모든 마디 쌍이, 연결하는 경로를 갖는 네트워크를 연결되었다고 한다.

연결되어 있으며, 회로가 없는 무향 네트워크를 나무 (tree) 라고 부른다.

1

2

3

4

5

6

7

Page 11: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념나무의 성질

1. 나무는 마디보다 호가 하나 적고 연결되어 있다. 역도 성립한다.

2. 나무는 어떤 마디 쌍도 단 하나의 연결경로를 가진다. 역으로, 모든 마디 쌍이 연결경로를 단 하나 가지면 나무이다.

3. 나무에 호를 하나 더하면 회로가 꼭 하나 생긴다. 그 역도 성립한다.1

2

3

4

5

6

7

Page 12: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념‘1 ⇒2’ 의 증명 마디 갯수 대한 수학적 귀납법을 사용 : 마디 갯수 |N| = 1일 때는 당연히 성립.

임의의 자연수 k를 생각하자. |N| ≤ k-1 일 때 성질이 참이라고 하면 |N| = k 일 때도 참이 됨을 보이면 증명이 완성된다.

1

2

3

4

5

6

7

Page 13: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념‘1 ⇒2’ 의 증명

마디 갯수에 대한 수학적 귀납법을 사용 : 마디 갯수 |N| = 1일 때 성립. 따라서 임의의 자연수 k를 생각하자. |N| = k-1일 때 참이면, |N| = k 일 때도 참임을 보이면 귀납적 증명이 완성된다. 따라서 |N| = k 인 나무 T를 생각하자.

나무는 달린 호를 하나만 갖는, 즉, 차수가 1인 마디를 최소 하나 갖는다.

왜인가? 아니라고 하자. T의 임의의 마디 u를 택하자. 연결됐기 때문에 이웃 마디 v로 이동 가능하다. 또 차수가 2 이상이기 때문에 v에서 u가 아닌 다른 마디로 다시 이동 가능하다. 이를 반복하면 마디수가 유한하기 때문에 유한 번 안에 같은 마디를 다시 거치게 된다. 즉 회로가 생긴다. 모순

Page 14: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념‘1 ⇒2‘의 증명 (계속)

나무 T에서 차수가 1인 마디, v(라고 하자)를 달린 호 e와 함께 제거하자.

호 e 는 나머지 마디 간의 연결성에 영향이 없기 때문에, 나머지 네트워크 T’도 역시 연결되어 있다. 그리고 회로가 없다 (왜인가?).

즉, T’은 나무이고 마디 갯수는 |N-{v}| = k-1이다. 귀납적 가정에 의하여 호의 갯수는 k-2이다. 따라서 T의 호의 갯수는 k-1, 즉 마디의 갯수 k 보다 하나 적다. ⧠

veT’

Page 15: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념흐름 네트워크각 호 (i,j) ∈ A가 용량 uij ≥0 를 갖는 유향 네트워크 G = (N, A)를 흐름 네트워크라고 한다.

경우에 따라 마디에 균형 b(i)를 미리 명시하기도 한다. b(i)>0 이면, 흐름이 마디 i를 통해 외부로부터 네트워크로 유입되는 것을, 음수일 때는 외부로 유출이 되는 것을 의미한다. 균형은 괄호 안에 명기한다.

각 호 (i,j) ∈ A에 실수 xij를 대응시킨 x = (xij :(i,j) ∈ A)를 흐름이라고 한다.

현실의 흐름 x는 각 마디 i에서 보존 법칙을 만족한다 : 마디 i에서 다른 마디로 흐름의 합 - 다른 마디에서 마디 i로 흐름의 합 = 균형

Page 16: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념 예

마디 2 : x23 - x12 = b(2), 6 - 2 = 4

마디 3 : x35 + x36 - (x13 + x23 + x43) =b(3), 6 +4 - (3+6+1) = 0

u12 = 4

1

2

4

3

6

53 6

41 1

0

x12 = 2 66

3 6

6 7

3

4 71

(4)

(6) (-5)

(-5)

Page 17: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본 용어와 개념

흐름 보존은 일반적으로 다음과 같이 표현할 수 있다.

∑j:(i,j) ∈ A xij - ∑j:(j,i) ∈ A xji = b(i), i∈N ⋯ (흐름보존 제약)

각 호의 흐름은 용량을 넘을 수 없다.

xij ≤ uij, (i,j) ∈ A ⋯ (용량 제약)

흐름보존과 용량 제약을 모두 만족하면 가능흐름이라 한다. 앞의 예는 가능흐름을 보여 준다.

Page 18: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제두 마디 최단경로문제 (s-t shortest path problem)입력 : 각 호 (i,j) ∈ A가 거리 cij를 갖는 단순유향 네트워크 G = (N, A). 그리고 두 마디 s, t ∈ N.

출력 : s에서 시작, t에서 끝나는 경로, 즉, s-t 경로중에서 거리 가장 작은 경로.

s

2 3

4

6

5 t

2 7

3

1 5

2 4 4 5

13

Page 19: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제모든 마디 최단경로문제 (s-to-all shortest path problem)입력 : 각 호 (i,j) ∈ A가 거리 (비용) cij를 갖는 단순유향 네트워크 G = (N, A). 그리고 시작 마디 s ∈ N.

출력 : s에서 모든 마디까지 최단 경로s

2 3

4

6

5 t

2 7

3

1 5

2 4 4 5

13

Page 20: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

s-t 최단경로가 어떤 마디 j를 지나지 않는다는 것의 의미를 살펴보자.

“s-t 최단경로가 마디 4를 지나지 않는다.”

“s-4 최단경로와 4-t 최단경로 길이의 합인 9가 현재 s-t 최단경로 최단경로의 길이 8보다 작지 않다.”

두 마디 최단경로문제와 모든 마디 최단경로문제는 본질적으로 같음을 알 수 있다.

최단경로문제

Page 21: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제차량유지계획문제 : 성원이는 난생 처음 소형차 ‘씽씽이’를 600만원에 구입한다. 유지 비용이 과도해지면 다시 새차를 구입하여 비용을 줄이려고 한다. 차의 유지 비용과 중고 가격은 연령에 따라 다음 표와 같다. 앞으로 5년 동안 차량 유지 및 새차 구입 계획을 수립하라.

차령 연 유지비용 중고가격0 100 -

1 200 350

2 250 300

3 450 100

4 600 50

5 - 25

Page 22: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제모형화

마디 : 1년초, 2년초, ..., 6년초(=5년말)의 시점

호 : i 년초 차를 구입, j 년초 파는 것을 호 (i,j)로, 그 비용을 cij로 한다. 예를 들어, 호 (1,4)의 비용은 c14 = 600 + 100 + 200 + 250 - 100 = 1050.

구성한 네트워크의 1-6 경로는 하나는 5년간의 차량 유지계획이 되며 역도 성립한다. 비용도 같다. 따라서 차량 유지계획은 최단경로 문제가 된다.

Page 23: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제최적 필요조건 : 각 마디 i∈N에 대해, d(i)를 s-i 최단 거리라고 하면 다음이 성립한다 (강조: 두번째는 모든 호 (i,j) ∈ A에서 성립):

d(s) = 0, … (조건1) d(i) + cij ≥ d(j), ∀ (i,j) ∈ A … (조건2)

증명 : 조건1은 당연. 조건2를 위해, 어떤 호 (i,j)에서 d(i)+cij < d(j) 라고 가정하자. 이는 s-i 최단경로와 호 (i, j)를 연결한 경로가 최단 거리 d(j) 보다 나은 s-j 경로라는 것을 의미. 모순. ⧠

s

i

j

cij

d(j)

d(i)

더 나은 경로

기존 경로

Page 24: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

충분조건 : 역으로, 실제 경로 길이 d가 조건 1과 2를 만족하면, 각 i에 대해 d(i)는 s-i 최단경로의 길이가 된다.

증명 (참고): 임의의 s-i 경로 P의 거리, c(P)가 d(i) 보다 크거나 같음을 보이면 된다. P = s-v1-v2-…-vk-i 라고 하자. 그러면 조건 2에 따라 경로 위의 호 비용은 다음을 만족한다 :

csv1 ≥ d(v1) - d(s),cv1v2 ≥ d(v2) - d(v1),

…cvk-1vk≥ d(vk) - d(vk-1)

cvkvi≥ d(i) - d(v1k)부등식을 모두 더하면 c(P) ≥ d(i) - d(s). 조건 1에서 d(s) = 0이므로 c(P) ≥ d(i). ⧠

최단경로문제

Page 25: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제즉, 현재 경로들이 최단 ⇔ 그 거리d가 조건 1, 2를 만족

해법의 원리를 제공한다 : 조건 2를 확인하고 만족하지 않는 호 (i,j)에서 d(j)를 개선한다.

포드 알고리듬

초기화 s의 거리 d(s)=0으로, 나머지 마디 i는 d(i) = ∞ 로 놓는다.

주 반복단계 모든 호가 조건 2를 만족하면 종료한다. 그렇지 않은 호 (i,j)가 있으면, 즉, d(i) + cij < d(j) 이면, d(j)를 d(j) ← d(i) + cij로 하고 개선된 s-j 경로를 저장한다.

포드 알고리듬은 cij의 부호와 관계없이 적용 할수 있다. 필요충분조건이 호비용 부호와 무관하기 때문이다. 포드 알고리듬은 유한 반복단계 안에 종료되는 것을 보일 수 있다.

Page 26: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제다이크스트라 알고리듬 : 음수 비용이 없는 경우 적용가능. 더 신속한 해법. 우선 예를 통해 알고리듬의 과정을 보자.

초기화 : 마디 s의 거리 d(s)←0, 나머지 i의 거리 d(i)←∞.

s 0

2 3

4

6

5 t

∞ ∞

2 7

3

1 5

2 4 4 5

13∞

∞ ∞

Page 27: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제매 단계, 포드 알고리듬 같이, d 개선 작업 수행. 단, 전체 호가 아닌, 특정 마디를 출발 하는 호들만 고려. 마디는 ✓ 표시 없는 것 중, d(i)가 최소인 것을 선택.

반복단계 1 마디 s를 선택 (왜인가?), ✓ 표시하고, 이를 출발하는 각 호에서 조건 2를 확인, 가능하면 개선. 반복단계 완료.

s 0

2 3

4

6

5 t

∞ ∞

2 7

3

1 5

2 4 4 5

13∞

∞ ∞

72

Page 28: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제반복단계 2 : ✓ 표시 없는 마디 중에 d 값이 가장 작은 2를 선택, ✓ 표시하고 호 (2,3)과 (2,4)에 대해 개선 작업을 수행. 예를 들어, 현재 d(2) + c23 = 2 + 1 = 3 < d(3) = 7 이므로 d(3) ← 3 으로 개선, …. . 반복단계 완성.

s 0

2 3

4

6

5 t

∞ ∞

2 7

3

1 5

2 4 4 5

13∞

∞ ∞

72

3

5

Page 29: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제주 반복단계 모든 마디에 ✓표시가 되는 순간까지 다음을 반복 : ✓ 표시 없는 마디들 중에서 d가 가장 작은 것을 하나를 선택. ✓ 표시하고 이웃 마디들의 거리를 가능한 경우 개선한다.

알고리듬을 끝내 보자.

s 0

2 3

4

6

5 t

∞ ∞

2 7

3

1 5

2 4 4 5

13∞

∞ ∞

72

3

5

Page 30: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

다이크스트라 알고리듬의 타당성 - 참고

음수 비용 호가 없으면, 다이크스트라 알고리듬은 최단경로를 구한다.

증명 : 마디 i가 선택되어 ✓표시 되는 순간 d(i)의 값을 d’(i)라 하자. 편의 상 1, 2, ... , n 순으로 마디가 선택되었다고 하자. 그러면 다음이 성립함을 보이자 : d’(1) ≤ d’(2) ≤ … ≤ d’(n).

아니라고 하면, 최초로 d값이 줄어드는 마디가 존재한다. 이 마디를 k라고 하면 d’(k-1) > d’(k) … (✽).

마디 k-1이 선택될 때 d’(k-1) ≤ d(k) 가 성립한다 (왜인가?). 그런데 바로 다음 k가 선택될 때 ✽이 성립한다. 이것은 k-1이 선택된 단계에서 호 (k-1, k)에서 d(k)가 개선(감소)됐다는 것이다.

이것은 d’(k) = d’(k-1) + ck-1k을 의미. 그러면 ✽에 의해 ck-1k < 0가 될 수 밖에 없으며 모순.

Page 31: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

다이크스트라 알고리듬의 타당성 - 참고

증명(계속) : 이제 알고리듬이 종료했을 때, 모든 호 (i,j) ∈ A 에 대해 d(i)+cij ≥ d(j) 가 됨을 보이자. 모순법을 위해, 어떤 호 (i,j) 가 있어 d(i)+cij < d(j) 라고 하자.

마디 i가 선택되는 단계 직후 d’(i) + cij ≥ d(j)가 성립한다. 그리고 알고리듬에서 d(j)는 증가하지 않는다 (왜인가?). 그런데 d(i)+cij < d(j)가 되었다는 것은 d(i)가 d’(i) 보다 작아졌다는 것이다.

이는 i가 선택된 단계 이후, k > i 인 마디 k가 존재하여, d’(k)+cki < d’(i) 가 발생했다는 것을 말한다. 그런데, 앞의 증명에서, d’(k) ≥ d’(i)이므로 cki<0일 수 밖에 없어 모순. ⧠

Page 32: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제입력 각 호 (i,j) ∈ A가 용량 uij를 갖는 단순유향 네트워크 G = (N, A). 그리고 두 마디 s, t ∈ N. 출력 s로 유입, t로 유출되는 흐름 중 유입량 b(s)가 최대인 것

u12=4 6

5 7

4

2 7

5 3b(s) b(t) = -b(s)

2

4 5

t s우물 마을

3

Page 33: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제간단한 예 :

서울공과대학 부설 ‘경영과학분석사’ 과정은 초-중-고급 3단계, 3학기 과정으로 이루어져 있다.

초급에서는 ‘기초수학’이나 ‘컴퓨터’ 중 한 과목을, 중급에서는 ‘경영과학이론’이나 ‘응용경영과학’ 중 한 과목을, 고급은 ‘경영과학 사례연구’나 ‘생산관리 현장실습 25’ 중 한 과목, 모두 세 과목을 이수하도록 되어 있다.

과목 정원은 다음과 같다. 기초수학 50명, 컴퓨터 30명, 경영과학이론 60명, 응용경영과학 50명, 경영과학 사례연구 50명, 생산관리 현장실습 25명이다.

한기에 배출할 수 있는 경영과학분석사의 최대 인원은?

Page 34: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제간단한 예 2 : 각 국에서 3명씩, 모두 7개국 대표들을 위한 만찬이 있다. 식탁은 각각 6인용, 5인용, 4인용, 4인용, 그리고 3인용, 모두 5개가 준비되어 있다. 친선을 위해 같은 나라에서 온 대표는 다른 식탁에 앉힌다. 이러한 자리배정이 가능한가?

모형화

결정변수 : 각 ‘국가 i’에서 각 ‘식탁 j’로 얼마의 흐름을 보낼 것인가.

제약조건 : 한 국가 에서 각 식탁으로 2 이상의 흐름을 보낼 수 없다. 각 국가에서 나가는 흐름은 3을, 각 식탁이 받을 수 있는 흐름는 정원을 넘을 수 없다.

목적함수 : 모든 제약조건을 만족시키는 최대흐름. 그 흐름이 21보다 작으면 자리 배정은 불가능 하다.

Page 35: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제

⋮ ⋮

1

2

7

1

2

5

s t

us1=3

3

⋮3

u11=11

1111

1 11

6

5

3

자리 배정이 가능하면 최대흐름이 21이 된다. 역도 성립한다.

질문?!

Page 36: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법

알고리듬은 초기해 등을 구하는 초기화와 현재해를 개선하는 주반복단계로 이루어 진다.

초기화 단계 : 초기해는 손쉬운 가능해를 찾는다. 최대흐름문제의 경우, 호 흐름이 모두 0인 해를 사용할 수 있다.

주 반복단계 : 현재 해가 최적아닌 경우 개선하는 단계. 알고리듬의 성능을 좌우

다음과 같은 해 개선 아이디어를 먼저 시도하여 보자.

남은 용량이 모두 0보다 큰 호로 이루어진 s-t 경로가 있으면, 그 경로를 통해 흐름을 증가시키자.

Page 37: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)

초기화 : 모든 호의 흐름이 0인 흐름을 초기해로 한다.

단계 1 : 남은 호의 용량이 모두 0보다 큰 경로 중에서 임의로 s-4-3-t 을 선택하여 크기 5의 흐름을 보낸다.

4 6

5 7

4

2 7

5 3

2

4 5

t s3

5 5 5

5

5

Page 38: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

단계 2 : 경로 s-3-5-t 남은 호의 용량이 모두 0보다 큰 경로이다. 그 용량과 같은 크기 2의 흐름을 보낸다.

최대흐름문제 해법 (계속)

4 6

5 7

4

2 7

5 3

2

4 5

t s3

5 5 55+2

2

2

2

-(5+2)

Page 39: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)

지금까지 단계로 얻은 현재해는 우리가 시도한 해 개선 아이디어를 사용하면 더 이상 개선이 불가능하다. 남은 용량이 양수인 호로 이루어진 s-t 경로가 없기 때문이다.

최적해인가?

4 6

5 7

4

2 7

5 3

2

4 5

t s3

5 5 55+2

2

2

2

-(5+2)

Page 40: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)

간단한 예를 통해 해 개선 원리를 확장해 보자.

초기 흐름이 왼편 그림과 같은 경우, 지금까지 방법으로 더이상 개선이 불가능하다.

그러나 붉은 경로 s-3-t로 1의 흐름을 보내면 오른편과 같은 최적해가 된다. 호의 흐름을 감소시키는 것을 역방향으로 흐름을 보내는 것으로 해석

1

1

1

11

3

2

s t1

11

11

x12=1u12=1

0

3

2

s t1 1

11

11

1 1

1

Page 41: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

따라서 호 (i,j)에 현재 xij가 흐르고 있다면, 두 방향으로 남은 용량을 고려한다.

원래 호 (i,j) 방향으로 xij - uij, 역 방향 (j,i) 으로 xij

잔여용량 (residual capacity) 이라 하며, 잔여용량을 표시한 네트워크를, 흐름 x의 잔여용량 네트워크라 하고 G(x)로 표기한다.

G(x) 에서 용량이 0보다 큰 호로 이루어진 s-t 경로를 s-t 흐름증가경로라고 하자.

최대흐름문제 해법 (계속)

i juij=10xij=7

i jrji=7

rij=3⇒

Page 42: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

G(x)G

11

3

2

s tu12=1 1

11

11

x12=1

예 : 잔여용량네트워크를 사용하면 확장된 해 개선 원리인 흐름 증가 경로를 체계적으로 나타낼 수 있다.

최대흐름문제 해법 (계속)

3

2

s tr21=1

r12=0

01

10

10

1 0⇒

Page 43: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)

예(계속): 앞에서 초기해 x의 잔여용량 네트워크 G(x)에서 흐름증가경로 s-2-3-t를 따라 1의 흐름을 증가시킨 해를 x’이라 하자

3

2

s tr21=1

r12=0

01

10

10

1 0

G(x)

3

2

s tr21=1

r12=0

01

01

01

0 1

G(x’)

G(x’)에서 s-t흐름증가경로가 더이상 없으므로 알고리듬은 종료한다.

Page 44: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)

흐름증가경로 알고리듬

초기화 : 호의 흐름을 모두 0으로 놓고 초기해를 구한다.

주 반복단계 :

현재 흐름 x의 잔여용량 네트워크 G(x)를 구한다. 존재하지 않으면 x를 해로 출력하고 종료한다.

흐름증가경로를 따라 경로 용량만큼 흐름을 증가시킨다. 그리고 주 반복단계를 반복한다.

Page 45: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

4 6

5 5 4

2

0 3

2

4 5

t s12

0 0

50 2 0 5 2

0

최대흐름문제 해법 (계속)단계 3 : 단계 2까지 구한 원래 문제의 가능해를 초기해로 사용하여 흐름증가경로를 적용해 보자. 잔여용량네트워크는 다음과 같다. s-2-3-4-5-t가 흐름증가 경로가 되는 것을 알 수 있다. 4의 흐름을 보낼 수 있다.

40

42

6 1 0

4

16

Page 46: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름문제 해법 (계속)단계 4 : 새로운 해의 잔여용량네트워크는 다음과 같다. 더 이상 s-t가 흐름증가 경로가 없는 것을 알 수 있다. 알고리듬 종료

2

5 10

2

0 3

2

4 5

t s12

4 4

50 6 0 1 6

4

0

Page 47: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

절단면G = (N, A)의 N을, S(⊊N)와 여집합 T≔N⧵S 로 분할할 때, i∈S, j∈T인 호 (i,j)∈A의 집합을 절단면 (cut)이라고 부르고 δ(S)로 표기한다. 그리고 δ(S) 호들의 용량의 합을 그 용량으로 정의하고 u(δ(S))로 표기한다. 또한 s∈S, t∈T 이면 δ(S)를 s-t 절단면이라고 부른다

4 6

5 7

4

2 7

5 3

2

4 5

t s3

S Tu(δ(S))=12

Page 48: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름 최소절단면 정리

약쌍대  정리

어떤  s-­‐t  흐름  x의  크기도  어떤  s-­‐t  절단면δ(S)의  용량보다  같거나  작다.

어떤  s-­‐t  흐름  경로도  s-­‐t  절단면의  호를  최소  한  번  통과해야  하기  때문이다.

강쌍대  정리  -­‐최대흐름  최소절단면  정리    

최대  s-­‐t  흐름의  크기와    최소  s-­‐t  절단면의  용량은  같다.

이  정리를  증명해보자.

Page 49: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름 최소절단면 정리예 : 아래에서 S={s,2,3,4}, δ(S) = {(3,5), (3,t), (4,5)}. 호의 잔여용량은 모두 0.

증명 (참고) : 출력흐름 x의 크기와 같은 용량의 절단면이 있음을 보이면 된다. 이는 알고리듬이 항상 최대흐름을 찾는다는 증명도 된다. 왜인가?

G(x)에서 s-i 흐름증가경로가 있는 마디 i의 집합을 S, 그렇지 않은 마디의 집합을 T라고 하자. 둘 다 공집합이 아니다 (왜인가?).

집합 S에서 T로 모든 호의 잔여용량은 0이어야 한다.

2

5 10

2

0 3

2

4 5

t s12

4 4

50 6 0 1 6

4

0

Page 50: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최대흐름 최소절단면 정리증명 (계속) : S에서 T로 모든 호의 잔여용량은 0이기 때문에 δ(S)의 모든 호는 용량과 같은 흐름을, 반대 방향 δ(T)의 모든 호는 0의 흐름을 갖는다.

따라서, s에서 유입되어 t로 유출되는 모든 단위 흐름은 δ(S) 의 호를 단 한번 흐르게 된다 (왜인가?). 그런데 δ(S) 의 각 호의 흐름이 용량과 같으므로 전체 흐름의 크기는 u(δ(S))와 같다.

즉, δ(S)는 흐름증가경로 알고리듬이 출력한 s-t 흐름 x의 크기와 같은 용량을 갖는 s-t 절단면이다. ☐

Page 51: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제입력 각 호 (i,j)∈A가 하한 lij (명시 않으면 =0), 용량 uij, 단위 흐름 비용 cij를 갖는 흐름 네트워크 G. 각 마디 i∈N의 균형 b(i) . 출력 비용이 최소인 가능흐름

1

2

3

4

5(10, 4) (5, 8)

(5, 10)

(u12=4, c12=5)

(5, 5)(4, 7)

(10, 2)

(4)

(-4)

(-7)(10) (-3)

Page 52: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최단경로문제는 최소비용흐름문제로 모형화된다.

최단경로문제 네트워크 골격과 호의 비용은 그대로, 용량은 무한대로 놓는다. 그리고 마디 s의 균형을 +1, 마디 t의 균형을 -1, 나머지 마디들의 균형을 0으로 한다.

이 최소비용흐름문제의 최적해가 사용하는 호가 만드는 s-t 경로는 s-t 최단경로가 된다. 유사하게 최대흐름문제도 최소비용흐름문제이다.

최소비용흐름문제

s

2 3

4

6

5 t

(+1)

(-1)

(∞, 2) (∞, 7)

(∞, 5)(∞, 4)(∞, 2)(∞, 3)

(∞, 1) (∞, 5)

(∞, 4)

(∞, 1)(∞, 3)

Page 53: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제예 : 코엑스는 국제회의 만찬을 호텔 `오우버더래인보우'에 외주하였다. 만찬은 10월 1일부터 열흘 동안 진행된다. 오우버더래인보우의 요식 팀장 고라니 양은 팀원들과 필요 품목의 수급계획을 수립 한다. 그중 하나는 대형원탁 식탁보이다.

구입은 장당 15만원, 세탁은 15,000원이다. 세탁을 맡기면 다음 다음 날에 사용 가능하다. 하지만 장당 10,000원을 추가하면 다음 날 가능하다. 필요 식탁보의 수는 다음과 같다.

최소비용으로 식탁보를 수급하는 계획을 수립해보자.

일자 1 2 3 4 5 6 7 8 9 10

수요 80 80 90 100 120 100 120 100 140 150

Page 54: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제모형화 결정변수 : 각 일자에 구입, 보통, 급행세탁 하는 식탁보의 수.

목적함수 : 열흘 동안 비용의 최소화제약조건 : 식탁보 수요를 모두 충족.

네트워크 스케치

구입 폐기

1일 초

2일 초

3일 초

1일 말

2일 말

3일 말

(일일수요, ∞, 0)

(하한, 상한, 단위 비용) = (0, ∞, 장당구입비용)

∶∶

(0, ∞, 세탁비용)

(0, ∞, 급행비용)

(0, ∞, 0)

Page 55: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제식탁보 구입 호 식탁보 세탁 호식탁보 사용 호

5일간 모형 1일

2일

3일

4일

5일

Page 56: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제선형계획문제로 모형화 할 수 있다. 최초의 예를 보자.

결정변수는 7개 호의 흐름이 된다. x12, x13, x14, x25, x34, x35, x45, - 첨자를 기준으로 사전식순서로 나열하면 편리하다. 목적함수는 min 5x12+4x13+7x14+2x25+10x34+8x35+5x45

제약조건은 앞에서 논의한 흐름보존과 용량 제약이다. 하한은 모두 0이라고 가정하자.

1

2

3

4

5(10, 4) (5, 8)

(5, 10)

(u12=4, c12=5)

(5, 5)(4, 7)

(10, 2)

(4)

(-4)

(-7)(10) (-3)

Page 57: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제정리하면 다음과 같다.

min z = 5x12 +4x13 +7x14 +2x25 +10x34 +8x35 +5x45

sub.to x12 +x13 +x14 = 10,�x12 +x25 = 4,

�x13 +x34 +x35 = -3,�x14 �x34 +x45 = -4,

�x25 �x35 �x45 = -7,x12 4,

x13 10,x14 4,

x25 10,x34 5,

x35 5,x45 5,

xij � 0.

질량보존법칙

용량제약조건

Page 58: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제특히 흐름보존제약의 계수행렬만을 보면 다음과 같다. 이는 네트워크 골격 (topology), 즉, 마디와 호가 어떻게 연결 되어 있는지를 보여준다. 마디-호 관계 행렬이라고 하며 네트워크를 논리적으로 입력하는 방법의 하나이다.

1

2

3

4

5

(1,2) (1,3) (1,4) (2,5) (3,4) (3,5) (4,5)

1 1 1 1 0 0 0 0

2 -1 0 0 1 0 0 0

3 0 -1 0 0 1 1 0

4 0 0 -1 0 -1 0 1

5 0 0 0 -1 0 -1 -1

Page 59: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

기본용어

유향네트워크의 경로 P:=v1-v2- … - vl의 방향과 호의 방향이 일치할 경우 정방향호, 그렇지 않은 경우 역방향호라고 하자.

경로 P의 비용을 다음과 같이 정의하자 c(P) = 정방향호의 비용 합 - 역방향호의 비용 합. 아래 경로 P:=i - j - k -l의 비용은 3-4+1=0.

최소비용흐름문제 알고리듬

i

cij = 3

4

1

j

kl

Page 60: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제 알고리듬음수 회로의 흐름을 조정하여 해를 개선한다. 편의상 용량이 무한한 호들을 가정하자. 회로 C = i-j-k-l-p-q-i 의 비용 = -6

i흐름 2

4

3

2

1

2

(6)

1

3(2)

4

0

0

3

(-5)

(-3)

비용 2

3

4

1

3

5

2

1

0 2

3 2

4

3

q

p s j

tkl

Page 61: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

i2 + θ

4 - θ

3 - θ

2 + θ

1 + θ

2 - θ

q

p j

kl

최소비용흐름문제 알고리듬C를 따라 θ-조정을 해보자 : 정방향호 흐름 + θ, 역방향 호 흐름 - θ. 조정 후 마디의 균형이 유지되는 것을 확인할 수 있다. 그리고 목적함수의 증가는 θ × 회로의 비용, 즉 개선된다.

허용가능한 최대 θ = 회로의 역방향 흐름 중 최소값. 만약 역방향호가 없다면?

Page 62: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용흐름문제 알고리듬

i흐름 4

2

1

4

3

0

(6)

1

3(2)

4

0

0

3

(-5)

(-3)

비용 2

3

4

1

3

5

2

1

0 2

3 2

4

3

q

p s j

tkl

개선된 흐름은 아래와 같다.

최적인가? 용량이 0보다 큰 음수회로 예를 들어, s-p-l-k-s 가 존재하기 때문에 아직 개선 가능하다.

Page 63: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

입력 : 무향 네트워크 G=(N,A) 각 호 e∈A의 비용 ce,

출력 : 호 비용의 합이 최소가 되는 걸침나무 T.

최소비용 걸침나무문제(Minimum Spanning Tree Problem)

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 64: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제프림의 알고리듬

초기화 : 뿌리 마디 r 을 임의로 선택, 나무 T = ({r}, ∅) 로 놓는다 .

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복 : 양 끝 마디 중에서 하나만 T에 속한 호 중에서 최소 비용 호를 하나 선택하여 T 에 첨가한다.

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 65: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제프림의 알고리듬

초기화 : 뿌리 마디 r 을 임의로 선택, 나무 T = ({r}, ∅) 로 놓는다 .

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복 : 양 끝 마디 중에서 하나만 T에 속한 호 중에서 최소 비용 호를 하나 선택하여 T 에 첨가한다.

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 66: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제프림의 알고리듬

초기화 : 뿌리 마디 r 을 임의로 선택, 나무 T = ({r}, ∅) 로 놓는다 .

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복 : 양 끝 마디 중에서 하나만 T에 속한 호 중에서 최소 비용 호를 하나 선택하여 T 에 첨가한다.

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 67: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제프림의 알고리듬

초기화 : 뿌리 마디 r 을 임의로 선택, 나무 T = ({r}, ∅) 로 놓는다 .

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복 : 양 끝 마디 중에서 하나만 T에 속한 호 중에서 최소 비용 호를 하나 선택하여 T 에 첨가한다.

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 68: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제프림의 알고리듬

초기화 : 뿌리 마디 r 을 임의로 선택, 나무 T = ({r}, ∅) 로 놓는다 .

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복 : 양 끝 마디 중에서 하나만 T에 속한 호 중에서 최소 비용 호를 하나 선택하여 T 에 첨가한다.

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 69: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

최소비용 걸침나무문제‘프림’은 나무를 키우는 해법으로, 각 단계마다 최소비용 호를 추가한다. 이런 알고리듬을 ‘greedy 타입’ 이라 한다.

최소비용 걸침나무문제는 greedy 타입 알고리듬이 항상 최적해를 구하는 특성을 지니고 있다.

실제로 다양한 greedy 알고리듬이 가능하다.

크러스컬의 알고리듬 - ‘숲’을 키우는 해법

초기화 : T = (N, ∅)

주 반복단계 : T 가 모든 마디를 포함할 때까지 다음을 반복: T 에 추가 할 때 회로를 발생시키지 않는 호 중에서, 비용이 가장 작은 호를 연결.

또 다른 greedy 타입 알고리듬이 가능할까?

Page 70: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

입력 : 무향 G=(N,A), ce, e∈A, 마디 부분집합 M ⊆ N. 출력 : M의 모든 마디를 연결하는 호 비용의 합이 최소가 되는 나무 T.

걸침나무와 달리 최적해를 신속하게 구하는 알고리듬은 불가능하다(고 믿고 있다). 그러나, 프림 알고리듬을 ‘경로로 확장한’ 알고리듬이 최소비용의 두 배를 넘지 않는 해를 보장.

예 : M = {1,2,4,6,7} 최적해 = 10

스타이너 나무문제

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

Page 71: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

스타이너 나무문제

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

입력 : 무향 G=(N,A), ce, e∈A, 마디 부분집합 M ⊆ N. 출력 : M의 모든 마디를 연결하는 호 비용의 합이 최소가 되는 나무 T.

걸침나무와 달리 최적해를 신속하게 구하는 알고리듬은 불가능하다(고 믿고 있다). 그러나, 프림 알고리듬을 ‘경로로 확장한’ 알고리듬이 최소비용의 두 배를 넘지 않는 해를 보장.

예 : M = {1,2,4,6,7} 최적해 = 10

Page 72: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

스타이너 나무문제

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

입력 : 무향 G=(N,A), ce, e∈A, 마디 부분집합 M ⊆ N. 출력 : M의 모든 마디를 연결하는 호 비용의 합이 최소가 되는 나무 T.

걸침나무와 달리 최적해를 신속하게 구하는 알고리듬은 불가능하다(고 믿고 있다). 그러나, 프림 알고리듬을 ‘경로로 확장한’ 알고리듬이 최소비용의 두 배를 넘지 않는 해를 보장.

예 : M = {1,2,4,6,7} 최적해 = 10

Page 73: 4장: 네트워크 모형 - Seoul National Universitypolytope.snu.ac.kr/courses/ms2015/Chap4-Network.pdf · 2015-09-23 · 기본 용어와 개념 흐름 네트워크 각 호 (i,j)

스타이너 나무문제

1

2 3

4

6

5 7

4

4

3

2

2

3

4 4 52 1

입력 : 무향 G=(N,A), ce, e∈A, 마디 부분집합 M ⊆ N. 출력 : M의 모든 마디를 연결하는 호 비용의 합이 최소가 되는 나무 T.

걸침나무와 달리 최적해를 신속하게 구하는 알고리듬은 불가능하다(고 믿고 있다). 그러나, 프림 알고리듬을 ‘경로로 확장한’ 알고리듬이 최소비용의 두 배를 넘지 않는 해를 보장.

예 : M = {1,2,4,6,7} 최적해 = 10, 알고리듬 해 = 15


Recommended