최소비용흐름문제의...

20
최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예 4.1의 최소비용흐름문제는 다음과 같은 선형계획문제가 된 다. 최소비용흐름문제의 선형계획모형 min z = 5x 12 +4x 13 +7x 14 +2x 25 +10x 34 +8x 35 +5x 45 sub.to x 12 +x 13 +x 14 = 10, -x 12 +x 25 = 4, -x 13 +x 34 +x 35 = -3, -x 14 -x 34 +x 45 = -4, -x 25 -x 35 -x 45 = -7, x 12 4, x 13 10, x 14 4, x 25 10, x 34 5, x 35 5, x 45 5, x ij 0. 질량보존법칙 용량제약조건

Upload: others

Post on 28-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

최소비용흐름문제는 선형계획문제로 표현할 수 있다.

예 4.1의 최소비용흐름문제는 다음과 같은 선형계획문제가 된다.

최소비용흐름문제의 선형계획모형

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 2: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

기본용어

유향네트워크의 경로 의 에서 로 갈 때, 호의 방향이 일치할 경우 정방향호, 반대인 경우 역방향호라고 하자.

경로 의 비용을 다음과 같이 정의하자 = 정방향호의 비용 합 - 역방향호의 비용 합

최소비용흐름문제 알고리듬- 용량제약이 없는 경우

P := v1 � v2 � · · ·� vl v1 vl

P c(P )

그림에서 경로 의 비용은 3 - 4 + 1 = 0이다.

P = i� j � k � l

Page 3: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

회로의 흐름을 조정하여 해를 개선한다.

음수회로를 사용하는 최소비용흐름문제 알고리듬

p

q i

j

tl k

s

흐름 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

Page 4: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

예를 들어 회로 C = i-j-k-l-p-q를 보자.

p

q i

j

tl k

s

흐름 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

음수회로를 사용하는 최소비용흐름문제 알고리듬 (계속)

Page 5: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

현재 가능 흐름 를 회로 를 따라 가며 다음과 같이 조정해보자.

이렇게 조정된 흐름은 각 마디에서 균형을 유지하게 된다. 또한 역방향 흐름이 모두 양수이면, 비음조건을 만족하게 하는 의 최대값은 2 가 된다:

-조정에 의한 목적함수의 변화는 다음과 같다 :

위의 예처럼 회로의 비용 가 음수인 경우, -조정은 목적함수를 감소시킨다. 이러한 회로를 흐름증가음수회로 혹은 음수회로라고 한다.

만약 흐름증가 음수회로에서 역방향 호가 없다면?

x C := i� j � k � l � p� q � i

xij 1 + ✓,

xjk 2� ✓,

xkl 2 + ✓,

xlp 3� ✓,

xpq 4� ✓,

xqi 2 + ✓.

1 + ✓ � 0, 2� ✓ � 0, 2 + ✓ � 0, 3� ✓ � 0, 4� ✓ � 0, 2 + ✓ � 0.✓

c(C)

음수회로를 사용하는 최소비용흐름문제 알고리듬 (계속)

✓(cij � cjk + ckl � clp � cpq + cqi) = 2⇥ (�6)

Page 6: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

개선된 흐름 : 개선된 비용 2 x 6 =12

p

q i

j

tl k

s

흐름 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

음수회로를 사용하는 최소비용흐름문제 알고리듬 (계속)

Page 7: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

음수회로와 최적 조건은 다음과 같은 관계가 있다:

현재 가능흐름에 흐름증가 음수회로가 존재한다면 해의 개선이 가능하다.

역으로, 흐름증가 음수회로가 더 이상 존재하지 않으면, 현재 가능흐름이 최적이다. (증명 생략)

따라서 현재 가능 흐름에 대한 흐름증가 음수회로를 찾아 앞서 - 조정으로 해를 개선시키는 단계를 반복하면 최소비용 흐름 문제를 푸는 알고리듬이 된다.

우리가 배울 네트워크 심플렉스 알고리듬은 특별한 형태의 흐름을 유지하여 음수회로를 신속하게 찾는다.

음수회로를 사용하는 최소비용흐름문제 알고리듬 (계속)

Page 8: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

가능 흐름 에 대해 다음의 조건을 만족하는 걸침나무 가 존재하면 를 걸침나무해 또는 나무해라고 부른다.

에 속하지 않는 호 의 흐름은 모두 0이다.

걸침나무해

T

T (i, j)

x

나무해 나무해가 아닌 가능 흐름

x

Page 9: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

최소비용흐름문제가 최적해를 가지면, 반드시 나무해가 되는 최적해가 존재한다.

증명 : 나무해가 아닌 최적 흐름이 있다고 하자. 즉, 호의 흐름 크기가 모두 >0인 회로 가 존재한다 하자. 회로의 어느 방향으로 -조정을 해도 >0이므로 회로의 비용은 0이어야 한다.

이때, 회로 의 흐름을 역방향호 흐름의 최소값만큼 -조정하자. (역방향호가 없으면 회로의 방향을 반대로 바꾼다.) 회로의 비용이 0이기 때문에, 조정된 흐름도 최적 흐름이 되고, 회로 에서 흐름이 0인 호가 최소 한개 이상 발생하기 때문에 회로 는 제거된다.

회로 밖의 흐름의 변화는 없다. 따라서, 전체 네트워크에서 볼 때, 이러한 과정을 최대 호의 갯수만큼 반복하기 전에 모든 호의 흐름이 0보다 큰 회로를 모두 제거할 수 있다.

걸침나무해 (계속)

C

C

C

C

Page 10: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

매 반복단계마다 나무해를 유지한다. 현재 나무해에서 음수회로를 찾아 -조정을 하여 개선된 나무해를 얻는 단계를 반복한다.

현재 나무해에 대응하는 걸침나무를 라 하자. 네트워크 심플렉스 알고리듬은 에 속하지 않는 호를 추가했을 때 발생하는 회로만 고려한다. 회로의 방향은 추가한 호의 방향으로 정한다. (이러한 음수회로가 존재하지 않으면 현재해가 최적해임을 증명할 수 있다.)

네트워크 심플렉스 알고리듬

TT

이 예에서, 세개의 호 (1,5), (5,2), 그리고 (3,6)에 대해 세개의 회로가 발생

- , 비용 -7

- , 비용 1

- , 비용 -14

C1 := 1� 5� 4� 2� 1

C2 := 5� 2� 4� 5

C3 := 3� 6� 5� 2� 3

Page 11: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

회로의 비용을 구하는 체계적인 방법

1) 마디를 임의로 하나 선택하여 뿌리 마디로 지정한다.

2) 걸침나무 에서, 뿌리마디에서 각 마디 까지의 경로의 비용을 라고 하자.

3) 그러면 호 가 에 추가되어 만들어진 회로의 비용은 다음과 같다:

네트워크 심플렉스 알고리듬 (계속)

c̄ij ⌘ cij + ⇡(i)� ⇡(j).

T

T(i, j)

i⇡(i)

뿌리마디 1 :

- , 비용 -7

- , 비용 1

- , 비용 -14

C1 := 1� 5� 4� 2� 1

C2 := 5� 2� 4� 5

C3 := 3� 6� 5� 2� 3

Page 12: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

회로 를 따라 -조정을 하자.

즉, 정방향호의 흐름은 만큼 증가시키고 역방향호의 흐름은 만큼 감소시킨다. 이때 회로의 비용이 -14이므로 목적함수는 -14 만큼 증가한다.

는 역방향호의 흐름 크기 중 최소값까지 증가시킬 수 있다. 이 경우 3이다.

만약 역방향호가 없다면? .

네트워크 심플렉스 알고리듬 (계속)C3 := 3� 6� 5� 2� 3 ✓

✓ ✓✓

Page 13: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

회로 를 따라 -조정을 하자.

즉, 정방향호의 흐름은 만큼 증가시키고 역방향호의 흐름은 만큼 감소시킨다. 이때 회로의 비용이 -14이므로 목적함수는 -14 만큼 증가한다.

는 역방향호의 흐름 크기 중 최소값까지 증가시킬 수 있다. 이 경우 3이다.

만약 역방향호가 없다면? 목적함수를 무한히 감소 시킬 수 있다.

네트워크 심플렉스 알고리듬 (계속)C3 := 3� 6� 5� 2� 3 ✓

✓ ✓✓

Page 14: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

-조정을 하면, 역방향호 중 하나의 흐름이 0으로 감소하고, 새로 추가한 호의 흐름의 크기는 가 된다.

예에서, 호 (2,4)의 흐름이 0으로, 호 (3,6)의 흐름이 3으로 바뀌었다.

걸침나무에서 (2, 4)를 제거하고, (3, 6)을 추가하여 새로운 나무해를 얻을 수 있다 :

이때, 나무가 바뀌었기 때문에 도 재계산 한다.

새로운 나무해는 최적일까?

네트워크 심플렉스 알고리듬 (계속)✓

Page 15: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

초기화 : 초기 나무해를 구하고, 뿌리마디를 임의로 선택한다.

주 반복단계 : 알고리듬이 종료할 때까지 다음을 반복한다:

1) 현재 나무해의 를 구한다.

2) 현재 걸침나무 에 속하지 않는 호 중에서 를 만족하는 것을 선택한다. 그런 호가 없으면 현재 해는 최적해이다.

3) 위에서 선택한 호 를 에 첨가했을 때 생기는 음수회로를 따라 역방향호가 없으면 최적해는 존재하지 않는다. 알고리듬을 종료한다.

4) 역방향호 흐름의 최소값을 구하여 -조정을 하여 새로운 나무해를 구한다. 에 를 첨가하고 흐름이 0으로 감소한 역방향호 중 임의로 하나를 에서 삭제하여 새로운 를 구한다.

네트워크 심플렉스 알고리듬 (계속)

T

T(i, j)

(i, j) c̄ij < 0

✓(i, j)

TT

T

Page 16: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

입력 : 무향 네트워크 , 각 호 의 비용 .

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

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

G = (N,A) e 2 A ce

T

Page 17: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

초기화 : 임의 마디 을 선택하여 .

주 반복단계 : 가 모든 마디를 포함할 때까지 다음을 반복 :

양 끝 마디 중에서 하나만 의 마디집합에 포함된 호 중에서 가장 비용이 작은 호를 하나 선택하여 에 첨가한다.

프림(Prim)의 알고리듬

r T ({r}, ;)

TT

T

Page 18: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

다음 예를 보자. 뿌리마디는 로 설정하였다

프림의 알고리듬 (계속)

마디 1에 연결된 호 중 최소 비용 호를 택한다.

마디 1, 3에 연결된 호 중 최소 비용 호를 택한다.

r = 1

각 단계마다 추가 가능한 호중에서 비용이 가장 작은 호를 선택한다. 이러한 성질을 가진 알고리듬을 ‘greedy’ 알고리듬이라 한다.

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

Page 19: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

초기화 : .

주 반복단계 : 가 모든 마디를 포함할 때까지 다음을 반복:

에 추가했을 때 회로를 발생시키지 않는 호 중에서, 비용이 가장 작은 호를 에 추가한다.

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

크라스칼(Kruskal)의 알고리듬

T

T (;, ;)

T

T

Page 20: 최소비용흐름문제의 선형계획모형polytope.snu.ac.kr/courses/ms2013/Network-NegativeCirci...최소비용흐름문제는 선형계획문제로 표현할 수 있다. 예

입력 : 단순 네트워크 , 각 호 의 비용 , 마디의 부분집합 .

출력 : 을 연결하는 나무 중에서 호 비용의 합이 최소가 되는 것.

최소비용 걸침나무문제와 다른 점은 마디의 부분집합 을 연결한다는 것이다. 최소비용 걸침나무문제와 유사하지만 최적해를 신속히 구하는 것이 불가능한 문제

최소비용 스타이너나무문제-Minimum Steiner tree problem

G = (N,A) e 2 A ceM ✓ N

MM = {1, 2, 4, 6, 7}인 예

M