1장. 성공적인 경영

Download Report

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
44 + 58/3 = 88/3
41 + 51 = 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
n2
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