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