Transcript 제 7 장 정수계획법 (IP : Integer Programming)
제 7 장
정수계획법 (IP : Integer Programming)
선형계획법과 그 변형
정수계획법 기본 개념
이산형 결정변수 일반정수변수(general integer variables): 0,1,2,3,4, ...
이진정수변수(binary variables): 0/1(yes/no, true/false) 정수계획법(IP: Integer Programming)의 종류 순수정수계획법(Pure Integer Programming) 혼합정수계획법(Mixed Integer Programming) 二進정수계획법(0-1 Integer Programming)
정수계획법 기본 개념
정수계획법 해법 ① Rounding-Off ② Cutting-Plane Method ③ Branch&Bound (분단탐색법) : 가장 효율적인 방법 엑셀을 이용한 정수계획법 해법 제한조건 : 정수 변수에 대해 정수 조건을 추가
LP 문제와 IP 문제의 비교
선형계획법(LP) 문제
(P1) Max z = 5
x
1 + 4
x
2 s.t.
x
1 ≤ 4
x
2 ≤ 6 3
x
1 + 2
x
2
x
1 ≥ 0,
x
2 ≤ 18 ≥ 0
정수계획법(IP) 문제 #1
(P2) Max z = 5
x
1 + 4
x
2 s.t.
x
1 ≤ 4
x
2 ≤ 6 3
x
1 + 2
x
2
x
1 ≥ 0,
x
2 ≤ 18 ≥ 0,
x
1 ,
x
2 : 정수
LP 완화문제 (LP Relaxation Problem)
(P1)을 (P2)의 LP 완화문제 라고 함 .
LP와 IP의 실행가능영역 비교
10 x 2 9 8 7 2 1 0 0 4 3 6 5 1 (2, 6) 2 3 4 5 6 x 1 7 (P1) : LP 문제 (P2) : IP 문제
F
( P1 ) ⊇
F
( P2 )
Z
( P1 ) ≥
Z
( P2 )
정수계획법(IP) 문제 #2
(P2)의 두 번째 제약조건식 로 수정한 경우
x
2 ≤ 6 을
x
2 ≤ 5 (P3) Max z = 5
x
1 + 4
x
2 s.t.
x
1 ≤ 4
x
2 ≤ 5 3
x
1 + 2
x
2
x
1 ≥ 0,
x
2 ≤ 18 ≥ 0,
x
1 ,
x
2 : 정수
LP와 IP의 실행가능영역 비교
x 2 10 9 8 7 6 5 4 3 2 1 0 0 1 (2, 5) 2 (2.67, 5) (3,4) 3 4 (4, 3) 5 6 x 1 7 (P3)의 LP 완화문제 의 최적해
x 1
=2.67,
x 2
=5 최적 목적함수값 = 33.33
IP 문제 (P3)의 최적 해는 ?
LIP : IP 문제의 LP 완화문제
Z LIP Z IP
: LIP 문제의 최적 목적함수값 : IP 문제의 최적 목적함수값 최대화 문제의 경우 :
Z IP
≤
Z LIP
최소화 문제의 경우 :
Z IP
≥ Z
LIP
IP 문제 (P3)의 최적해 :
x 1 =4, x 2 =3
,
Z IP
=
32 Z IP
(= 32) ≤
Z LIP
(= 33.33
)
IP 문제의 해법
LP 완화 문제가 정수 최적해를 갖지 않는 경 우 IP 문제의 최적해를 구하는 방법 Rounding-Off 방법 Cutting Plane 방법 Branch&Bound 방법 : 엑셀에서 이용
Rounding-Off 방법
(P3)의 LP 완화문제
최적해 :
x 1
=2.67,
x 2
=5, z = 33.33
Lower Rounding LP 완화문제의 최적해에서 소수점 이하 잘라 버림 .
x 1
=2,
x 2
=5, z = 30 : 최적해가 아님 . (near optimal) Upper Rounding LP 완화문제의 최적해에서 소수점 이하 올림 .
x 1
=3,
x 2
=5, z = 35 : 실행불가능해
엑셀을 이용한 IP 해법
(P4) Max z = 35
x
1 + 30
x
2 s.t.
x
1 +
x
2 ≤ 200 9
x
1 + 6
x
2 ≤ 1,520 12
x x
1 1 , + 16
x
2
x
2 ≤ 2,650 ≥ 0,
x
1 ,
x
2 : 정수
(P4)의 LP완화문제를 위한 해찾기 모델
(P4) 문제를 위한 정수화 조건 추가
정수화 조건이 추가된 해찾기모델 설정
실행 결과
→
x 1
=117,
x 2
=77 : IP문제의 최적해 아님
IP 문제의 최적해를 구하기 위한 고려 사항 해 찾기 설정 모델의 해찾기 옵션 창의 옵션(O) 허용한도(E) 항목 선택 를 5% → 0% 수정입력
해 찾기 옵션의 허용 한도(E) 변경후의 최적해 최적해
x 1
=118,
x 2
=76 목적함수값 = 6,410
순수 0-1 정수계획법 문제
문제 정의 모든 의사결정변수가 0 또는 1의 값을 가져야 하는 문제 순수 이진 정수계획법 문제 (pure binary integer programming problem) 라고도 함.
특정 의사결정 대안을 선택하느냐 선택하지 않 느냐를 다루는 문제에 주로 적용
(예제 7-1) 자본투자문제(capital budgeting problem) 사업 수익 (NPV)
1 2 3 4 5 가용자금 190 270 200 170 180 첫째 해 90 110 100 80 80 300
소요자금
둘째 해 셋째 해 50 70 25 35 50 40 60 200 30 20 15 80 넷째 해 15 25 15 10 15 50
(단위: 억원)
수학적 모형
결정변수
i =
1,2,3,4,5 에 대해
x i =
1, 만약 사업
i
가 선택되면, 0, 만약 사업
i
가 선택되지 않으면 목적함수 Max
z = 190x 1 + 270x 2 + 200x 3 + 170x 4 + 180x 5
제약조건 연도별 가용자금에 대한 제약조건 ( 첫째 해 )
90x 1
( 둘째 해 )
50x 1
( 셋째 해 )
2
5
x 1
( 넷째 해 )
1
5
x 1 + 110x 2 + 70x 2 + 35x 2 + 25x 2 + 100x 3 + 50x 3 + 30x 3 + 15x 3 + 80x 4 + 40x 4 + 20x 4 + 10x 4 + 80x 5 + 60x 5 + 15x 5 + 15x 5
≤ ≤ ≤ ≤
300 200 80 50
결정변수에 대한 제약조건
x i =
0 또는 1,
i=
1,2,3,4,5 → 다른 표현 방법
x x i i
∈ {0, 1}, ≥ 0,
x i
≤
i=
1, 1,2,3,4,5
x i
: 정수 ,
i=
1,2,3,4,5
엑셀입력 모형
해 찾기 모델 설정
최적해
특별한 경우의 제약조건
(1) (2) (3) 사업 1, 2, 3 중에서 최소한 하나의 사업은 반드시 선 택되어야 한다면 ,
x 1
+
x 2
+
x 3
≥ 1 사업 1, 2, 3 해야 한다면 , 중에서 기껏해야 하나의 사업만을 선택
x 1
+
x 2
+
x 3
≤ 1 사업 1, 2, 3 야 한다면 , 중에서 반드시 하나의 사업만을 선택해
x 1
+
x 2
+
x 3
= 1 (4) 사업 려면 , 1 과 사업 3 의 연관성으로 인해 사업 반드시 사업 1 이 선택되어야 한다면 , 3 이 수행될
x 3
≤
x 1
(예제 7-2) 0-1 배낭문제 (0-1 knapsack problem) 물건
1 2 3 4 5 6 7 8
무게(kg)
10 3 11 5 12 9 8 6
판매이익
22 8 25 14 26 20 16 15
수학적 모형
결정변수
i =
1,2,3,4,5,6,7,8 에 대해 ,
x i =
1, 만약 물건
i
가 선택되면 , 0, 만약 물건
i
가 선택되지 않으면 수학적 모형
Max z = 22x 1 + 8x 2 + 25x 3 + 14x 4 + 26x 5 + 20x 6 + 16x 7 + 15x 8 s.t. 10x 1 + 3x 2 + 11x 3 + 5x 4 + 12x 5 + 9x 6 + 8x 7 + 6x 8
≤
35 x i
≥ 0
, x i
≤ 1
, x i
: 정수
,
i=
1,2,…,8
해 찾기 모델 설정 및 최적해
(예제7-3) Set Covering 문제 행정구역
1 2 3 4 5 6 7 8 9 10
20km 안에 있는 행정구역
1, 3, 5, 8 2, 8, 10 1, 3, 7, 8 4, 9 1, 5, 7 6, 9 3, 5, 7 1, 2, 3, 8 4, 6, 9, 10 2, 9, 10
수학적 모형
결정변수
i =
1, … ,10 에 대해 ,
x i =
1, 만약 구역
i
에 소방서가 설치되면 , 0, 만약 구역
i
에 소방서가 설치되지 않으면 목적함수식 Min
z = x 1 +x 2 +x 3 +x 4 +x 5 +x 6 +x 7 +x 8 +x 9 +x 10
수학적 모형
제약조건식
x 1 +x 3 +x 5 +x 8 x 2 +x 8 +x 10 ≥ 1 ≥ 1 x 1 +x 3 +x 7 +x 8 ≥ 1 x 4 +x 9 ≥ 1 x 1 +x 5 +x 7 ≥ 1 x 6 +x 9 ≥ 1 x 3 +x 5 +x 7 ≥ 1 x 1 +x 2 +x 3 +x 8 ≥ 1 x 4 +x 6 +x 9 +x 10 ≥ 1 x 2 +x 9 +x 10 ≥ 1 x i
≥
0, x i
≤
1, x i
: 정수
,
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
i=
1,2,…,10
엑셀 입력 모형
해 찾기 모델 설정
‘$B$18:$K$18=2진수’는 다음의 세 가지 제약조건을 사용하는 것과 같다.
$B$18:$K$18 ≥ 0 $B$18:$K$18 ≤ 1 $B$18:$K$18 = 정수
최적해
구역 7, 8, 9에 소방서를 설치하면, 최소의 수로써 전체 10개의 구역을 모두 처리
순수일반 정수계획법 문제
일반 배낭문제 (general knapsack problem) (예제 7-4)
보물종류
4 5 1 2 3 6
개당 무게(kg)
3.5
5.7
6.3
7.5
8.1
9.4
개당 가치(만원)
50 70 115 120 130 145
수학적 모형
결정변수
x i
: 배낭에 넣는 보물
i
의 개수 (
i
=1,2,…,6) 목적함수식 Min
z = 50x 1 +70x 2 +115x 3 +120x 4 +130x 5 +145x 6
제약조건
3.5x
1 +5.7x
2 +6.3x
3 +7.5x
4 +8.1x
5 +9.4x
6
≤ 100
x i
≥ 0
, x i
: 정수 , i= 1,2,…,6
엑셀 입력 모형
최적해
(예제 7-5) 다이어트 문제 (diet problem) 음식 에너지 (kcal)
빵(1) 치킨(2) 계란(3) 110 205 160 우유(4) 파이(5) 160 420 콩(6) 260 최소섭취량 2,200
단백질 (g)
4 32 13 8 4 14 60
칼슘 (mg)
2 12 54 285 22 80 1,000
단위당 가격
3 24 13 9 20 19
최대 섭취량
4 3 2 8 2 2
수학적 모형
결정변수
x i
: 음식
i
의 섭취량 (
i
=1,2,…,6) 목적함수식 Min
z = 3x 1 +24x 2 +13x 3 +9x 4 +20x 5 +19x 6
수학적 모형
제약조건 ( 영양소별 1 일 요구량 )
110x 1 +205x 2 +160x 3 +160x 4 +420x 5 +260x 6
≥ 2,200
4x 1 + 32x 2 + 13x 3 + 8x 4 + 4x 5 + 14x 6
≥ 60
2x 1 + 12x 2 + 54x 3 +285x 4 + 22x 5 + 80x 6
≥ 1,000 ( 음식별 하루 최대 섭취량 )
x 1
≤ 4,
x 2
≤ 3,
x 3
≤ 2,
x 4
≤ 8,
x 5
≤ 2,
x 6
≤ 2
x i
≥ 0
, x i
: 정수 , i= 1,2,…,6
엑셀 입력 모형
최적해
혼합 정수계획법 문제
(정의) 혼합 정수계획법 문제(mixed IP problem) 의사결정 변수들 중 일부는 정수화 조건이 주어지고, 나머지에는 정수화 조건이 주어지 지 않는 문제
(예제 7-6)
고정비(fixed charge) 문제
기계
1 2 3 4 5
고정비 (단위: 만원) 변동비 (단위: 만원)
4,000 3,000 2,000 8,000 9,000 7 7.5
8 6 5
최대 생산능력
700 600 800 1,500 1,200
수학적 모형
결정변수
x i
: 기계
i
에서의 범퍼 생산량 (
i
=1,2,…,5) ( 기계 1 의 생산량이
x
1 일 때 , 기계 1 에서 발생하는 비용 )
C
1 (
x
1 )
=
7
x
1 + 4,000, 0,
x
1
>
0 일 때
x
1
=
0 일 때
y i
변수를 추가하여 다음 관계식을 설정
y i =
1, 만약
x i >
0 0, 만약
x i =
0
수학적 모형
목적함수식 : 총비용(고정비+변동비) 최소화 Min
z = 7x 1 +7.5x
2 +8x 3 +6x 4 +5x 5 +4,000y 1 +3,000y 2 +2,000y 3 +8,000y 4 +9,000y 5
수학적 모형
제약조건 ( 총생산량이 주문량보다 커야 하는 조건 )
x 1 + x 2 + x 3 + x 4 + x 5
≥ 2,500
( 각 기계에서 최대로 생산가능한 양에 대한 조건 )
x 1
≤ 700
y 1 , x 2
≤ 600
y 2 , x 3
≤ 800
y 3 , x 4
≤ 1,500
y 4 , x 5
≤ 1,200
y 5
( 결정변수에 대한 조건 )
x i
≥ 0
, y i
= 0 또는 1
,
i=
1,2,…,5
( 해설 ) 제약조건
x 1
≤ 700
y 1
은 다음 관계를 만족시킨다 .
1, 만약
y 1 =
0, 만약
x 1 >
0
x 1 =
0 즉 ,
x 1
이 양수이면 ,
y 1
은 반드시 그러나 ,
x 1
이 0 이면 ,
y 1
은 0 1 의 값을 가져야 한다 또는 1 이 될 수 있지만 .
Min
z = 7x 1 +4,000y 1 +7.5x
2 +3,000y 2
에 의해 최적해 상태에서는 반드시
+8x 3 +2,000y 3 +…. y 1
= 0 이 된다 .
역으로 ,
y 1
이 1 인 경우 ,
x 1
≤ 700 이 된다 .
따라서 (
x 1 , y 1
) , 제약조건 이
x 1
≤ 700
y 1
은 (0, 0) 또는 (0 <
x 1
≤ 700, 1) 임을 나타낸다 .