Transcript 1장. 성공적인 경영
9장. 선형계획법
제2편 경영과학적 방법론
산업경영공학
하병현
[email protected]
목차
선형계획 모형
기하학적 도형에 의한 해결
꼭지점을 활용한 해결
심플렉스 방법
1
선형계획 모형
수리 계획(mathematical programming)
The branch of mathematics dealing with methods for
optimizing (i.e., either maximizing or minimizing) an
objective function of n decision variables subject to
specified constraints on these variables.
• Objective function 목적함수
• Decision variables (결정) 변수
• Constraints 제약조건
Input
Objective
System
Output
Constraints
2
선형계획 모형
선형 계획(linear programming)
Mathematical programming with
• a linear objective function,
• linear equality and inequality constraints
Solvable or tractable
max. 4 x1 5 x2
s.t.
x1 3 x2 12
4 x1 3 x2 24
x1
5
x1 , x2 0
3
선형계획 모형
시스템 관점
e.g., 생산 시스템
• 입력과 출력
• 12 Part A, 24 Part B ? Product 1, ? Product 2
• 변환
• 1 Part A + 3 Part B 1 Product 1
• 4 Part A + 3 Part B 1 Product 2
• 제약
Objective
• Product 1의 최대수요: 5
• 목적: 수익 최대화
• 1 Product 1 $4
Input
Output
System
• 1 Product 2 $5
Constraints
4
선형계획 모형
시스템 관점(계속)
e.g., 생산 시스템
• 입력(input)과 출력(output)
• 12 Part A, 24 Part B ? Product 1, ? Product 2
• 변환(internal constraints)
• 1 Part A + 3 Part B 1 Product 1
• 4 Part A + 3 Part B 1 Product 2
• 제약(external constraints)
Objective
• Product 1의 최대수요: 5
• 목적(objective): 수익 최대화
• 1 Product 1 $4
Input
Output
System
• 1 Product 2 $5
Constraints
5
선형계획 모형
시스템 관점(계속)
e.g., 생산 시스템
max. 4 x1 5 x2
s.t.
x1 3 x2 12
4 x1 3 x2 24
x1
5
x1 , x2 0
• 입력(input)과 출력(output)
• 12 Part A, 24 Part B ? Product 1, ? Product 2
• 변환(internal constraints)
• 1 Part A + 3 Part B 1 Product 1
• 4 Part A + 3 Part B 1 Product 2
• 제약(external constraints)
Objective
• Product 1의 최대수요: 5
• 목적(objective): 수익 최대화
• 1 Product 1 $4
Input
Output
System
• 1 Product 2 $5
Constraints
6
기하학적 도형에 의한 해결
제약에 따른 가능해(feasible solution) 집합
Convex polyhedron (복록 다면체)
x2
4x1 + 3x2 = 24
max. 4 x1 5 x2
s.t.
x1 3 x2 12
x1 = 5
8
4 x1 3 x2 24
x1
5
4
x1 , x2 0
x1 + 3x2 = 12
x1
6
12
7
기하학적 도형에 의한 해결
가능해에 따른 목적식의 변화
목적함수의 값을 최대화 하는 최적해
꼭지점에 해당하는 (x1, x2)들 중 하나
max. 4 x1 5 x2
s.t.
x1 3 x2 12
4 x1 3 x2 24
x1
x1 , x2 0
5
8/3
(X)
1
1
4
44 + 58/3 = 88/3
41 + 51 = 9
8
기하학적 도형에 의한 해결
문제점
e.g. 수송문제
• 목적: 비용최소화
• 결정변수: 야산 i에서 부지 j로 옮길 흙의 양
• 제약조건: 모든 수요 만족
부지
야산
1
2
3
수요량
1
2
3
4
2,000
3,000
11,000
7,000
1,000
0
6,000
1,000
5,000
8,000
15,000
9,000
7
5
3
2
공급량
6
1
10
17
단위당 수송 비용
9
기하학적 도형에 의한 해결
문제점
e.g. 수송문제(계속)
• 12 차원?
min.
s.t.
부지
1
2
3
4
1
2
3
X11
X21
X31
X12
X22
X32
X13
X23
X33
X14
X24
X34
6
1
10
수요량
7
5
3
2
17
야산
X11 + 3X12 + 11X13 + 7X14
+ X21
+ 6X23 + X24
+ 5X31 + 8X32 + 15X33 + 9X34
X11 + X12 +
X13 + X14 6
X21 + X12 +
X23 + X24 1
X31 + X32 +
X33 + X34 10
X11 + X21 +
X31 7
X12 + X22 +
X32 5
Xij 0
X13 + X23 +
X33 3
X14 + X24 +
X34 2
공급량
10
꼭지점 열거에 의한 해결
Basic idea
다면체의 꼭지점만 보면 됨
문제의 변환!
Continuous discrete problem
그렇다면,
꼭지점을 어떻게 찾을 것인가?
11
꼭지점 열거에 의한 해결
꼭지점 열거
n개의 변수 n개의 제약조건이 하나의 꼭지점 생성
e.g., 생산 시스템 -- 10개(왜?)
꼭지점
max. 4 x1 5 x2
s.t.
x1 3 x2 12
4 x1 3 x2 24
x1
x1
5
0
x2 0
a
b
c
d
e
f
g
h
i
j
8
g
c
4
a
j
e
h
b
d
f
6
12
12
꼭지점 열거에 의한 해결
최적해 도출
max. 4 x1 5 x2
s.t.
x1 3 x2 12
4 x1 3 x2 24
x1
x1
5
0
x2 0
꼭지점
x1
y1
목적함수 값
a
b
c
d
e
f
g
h
i
j
4
8/3
88/3
0
4
20
5
4/3
80/3
5
0
20
0
0
0
13
꼭지점 열거에 의한 해결
알고리즘
for each n개의 제약조건 조합 do
• 제약조건으로부터 연립방정식을 풀어 해를 생성
• if 생성한 해가 나머지 제약조건을 만족 then
• if 개선된 목적함수 값 도출 then
» 해를 기록
구현
제약조건
조합생성
연립방정식 풀이
• Gauss-Jordan 소거법
14
꼭지점 열거에 의한 해결
문제점
꼭지점 개수?
• n -- 변수의 개수, m -- 제약조건의 개수
• (m n)인 경우, 꼭지점 개수
m n (m n)! m n m n 1 m n 2 m 1 n
2
m!n!
n
n 1
n2
1
m
• e.g., 21000 개를 처리하는데 걸리는 시간
• 21000 = (210)100 (103)100 = 10300
• 1초에 100만 개를 처리한다면,
• 10300 / 106 = 10294 초 10286 년 소요
• c.f., 우주의 나이 1010 년
15
심플렉스 방법
Simplex method
By George Dantzig, 1947
One of the top 10 algorithms of the century
• By journal “Computing in Science and Engineering”
source: link
Basic idea
모든 꼭지점을 보는 대신 일부만 검토
• 한 꼭지점에서 다면체의 변을 따라 다음
꼭지점으로 이동
• 목적함수 값을 개선시키는 꼭지점 선택
16
심플렉스 방법
꼭지점 탐색
여유 변수(slack variable)의 도입
• 처음 시작하는 꼭지점을 쉽게 구함
• e.g., 생산 시스템
max. 4 x1 5 x2
s.t.
max. 4 x1 5 x2
x1 3 x2 12
4 x1 3 x2 24
x1
x1 , x2 0
5
s.t.
x1 3 x2 s1
4 x1 3 x2
12
s2
x1
24
s3 5
x1 , x2 , s1 , s2 , s3 0
17
심플렉스 방법
8
g
c
4
꼭지점 탐색(계속)
j
연립방정식 풀이
a
e
h
b
d
f
6
12
• 기저해(꼭지점)
• n개의 변수와 m개의 제약조건을 가지는 연립방정식이 주
어졌을 때 (n – m)개 이상의 변수가 0인 해
x1 +
4x1 +
x1
3x2 +
3x2
s1
+
s2
+
= 12
= 24
s3 = 5
(x1, x2, s1, s2, s3) = (0, 0, 12, 24, 5) j
18
심플렉스 방법
8
c
4
꼭지점 탐색(계속)
연립방정식 풀이(계속)
1/3x1 +
3x1
x1
g
x2 + 1/3s1
–
s1 +
a
j
s2
+
e
h
= 4
= 12
s3 = 5
b
d
f
6
12
(x1, x2, s1, s2, s3) = (0, 4, 0, 12, 5) c
3x2 +
3x2
x1
s1
+
–
s2 –
+
s3 = 12
4s3 = 4
s3 = 5
(x1, x2, s1, s2, s3) = (5, 0, 12, 4, 0) h
19
심플렉스 방법
c
4
꼭지점 탐색(계속)
a
j
변을 따라 이동
•
•
•
•
•
g
8
e
h
b
6
현재위치: j
c로 이동: 을 사용하여 와 에서 x2를 소거
g로 이동: 를 사용하여 과 에서 x2를 소거
h로 이동: 을 사용하여 과 에서 x1을 소거
...
x1 +
4x1 +
x1
3x2 +
3x2
s1
+
s2
+
= 12
= 24
s3 = 5
d
f
12
(x1, x2, s1, s2, s3) = (0, 0, 12, 24, 5) j
20
심플렉스 방법
8
g
c
4
꼭지점 탐색(계속)
j
진입 변수, 탈락 변수
a
e
h
b
d
f
6
12
(x1, x2, s1, s2, s3) = (0, 0, 12, 24, 5) j
x2 진입, s1 탈락
(x1, x2, s1, s2, s3) = (0, 4, 0, 12, 5) c
x1 진입, s3 탈락
(x1, x2, s1, s2, s3) = (5, 0, 12, 4, 0) h
21
심플렉스 방법
절차
1. 계산형식으로 변환
• 최초 기저해(시작 꼭지점) 자동 도출
2. 최적해인지 확인
• 최적이면 종료
3. 이동할 다음 꼭지점 설정
• 다음 기저해로 진입할 변수와 값 결정
4. 새로운 기저해 계산
5. 2로 돌아감
22
max. 4 x1 5 x2
심플렉스 방법
s.t.
4 x1 3 x2 24
e.g., 생산 시스템
x1
1. 계산형식으로 변환
4x1 –
5x2
x1 +
4x1 +
x1
3x2 +
3x2
5
x1 , x2 0
• 최초 기저해(시작 꼭지점) 자동 도출
z –
x1 3 x2 12
= 0
s1
+
s2
+
= 12
= 24
s3 = 5
(x1, x2, s1, s2, s3) = (0, 0, 12, 24, 5)
23
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
2. 최적해인지 확인
a
j
b
e
h
d
f
6
12
• 목적식의 계수가 모두 음이 아니면 최적해(왜?)
z –
4x1 –
5x2
x1 +
4x1 +
x1
3x2 +
3x2
= 0
s1
+
s2
+
= 12
= 24
s3 = 5
(x1, x2, s1, s2, s3) = (0, 0, 12, 24, 5)
24
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
3. 이동할 다음 꼭지점 설정
a
j
b
e
h
d
f
6
12
• 목적함수 값의 증가를 가장 크게 하는 변수를 진입
• 모든 제약조건을 만족시키는 진입 변수의 값 계산
• 4, 8,
z –
4x1 –
5x2
x1 +
4x1 +
x1
3x2 +
3x2
= 0
s1
+
s2
+
= 12
= 24
s3 = 5
25
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
4. 새로운 기저해 계산
z –
4x1 –
5x2
x1 +
4x1 +
x1
3x2 +
3x2
z – 7/3x1
1/3x1 +
3x1
x1
a
j
b
e
h
d
f
6
12
= 0
s1
+
s2
+
+ 5/3s1
x2 + 1/3s1
–
s1 +
= 12
= 24
s3 = 5
= 20
s2
+
= 4
= 12
s3 = 5
26
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
2. 최적해인지 확인
a
j
b
e
h
d
f
6
12
• No
z – 7/3x1
+ 5/3s1
1/3x1 +
3x1
x1
x2 + 1/3s1
–
s1 +
= 20
s2
+
= 4
= 12
s3 = 5
(x1, x2, s1, s2, s3) = (0, 4, 0, 12, 5)
27
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
3. 이동할 다음 꼭지점 설정
a
j
b
e
h
d
f
6
12
• 12, 4, 5
z – 7/3x1
1/3x1 +
3x1
x1
+ 5/3s1
x2 + 1/3s1
–
s1 +
= 20
s2
+
= 4
= 12
s3 = 5
28
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
4. 새로운 기저해 계산
z – 7/3x1
1/3x1 +
3x1
x1
z
e
h
d
f
6
12
= 20
s2
+
+ 8/9s1 + 7/9s2
x1
j
b
+ 5/3s1
x2 + 1/3s1
–
s1 +
a
x2 + 4/9s1 – 1/3s2
– 1/3s1 + 1/3s2
1/3s1 – 1/3s2 +
= 4
= 12
s3 = 5
= 88/3
= 8/3
= 4
s3 = 1
29
심플렉스 방법
8
g
c
4
e.g., 생산 시스템(계속)
2. 최적해인지 확인
a
j
b
e
h
d
f
6
12
• 최적!
z
+ 8/9s1 + 7/9s2
x1
x2 + 4/9s1 – 1/3s2
– 1/3s1 + 1/3s2
1/3s1 – 1/3s2 +
= 88/3
= 8/3
= 4
s3 = 1
(x1, x2, s1, s2, s3) = (4, 8/3, 0, 0, 1)
30
다른 형태의 제약조건
Big-M method
max. 12x1 15x2
s.t.
max. 12x1 15x2 Ma1
4 x1 3x2 12
4 x1 3x2
s.t.
2 x1 5 x2 10
2 x1 5 x2
x1 , x2 0
12
s1 10
x1 , x2 , a1 , s1 0
max. 12x1 15x2 Ma1
s.t.
a1
4 x1 3x2
Ma2
12
a1
2 x1 5 x2
s1
a2 10
x1 , x2 , a1 , a2 , s1 0
31