1.13k likes | 3.74k Views
Chap03 선형계획법. 심플렉스법 ( 개요 ). 심플렉스법 (simplex method) 은 1947 년 George B. Dantzig 가 개발한 선형계획법의 해법으로 역행렬 (inverse matrix) 을 찾는 과정에 기초를 두고 있음 . Dantzig 가 심플렉스법을 개발한 이후 여러 학자들에 의해 수정되고 보완되어 왔음
E N D
심플렉스법 (개요) • 심플렉스법(simplex method)은 1947년 George B. Dantzig가 개발한 선형계획법의 해법으로 역행렬(inverse matrix)을 찾는 과정에 기초를 두고 있음. • Dantzig가 심플렉스법을 개발한 이후 여러 학자들에 의해 수정되고 보완되어 왔음 • 1960년대 W. J. Baumol과 1970년대 N. K. Kwak(곽노균)은 Dantzig가 개발한 연산과정에서 계산에 필요한 인자들을 줄여서 계산의 복잡성을 대폭 줄인 수정심플렉스법(modified simplex method)을 개발하였음.
Baumol과 Kwak의 수정심플렉스법은 Dantzig의 심플렉스표에 나타나는 항등행렬(identity matrix)이 의미있는 정보를 제공하지 않는 점에 착안하여 항등행렬을 생략하므로써 계산의 복잡성을 감소하였음. • Olson등의 연구결과에 의하면 여러 해법 중에서 Baumol과Kwak이 개발한 수정심플렉스법의 계산시간이 가장 짧다고 지적하고 있음.
정규식과 표준식 • 제약조건이 부등식으로 이루어진 모형을 정규식(canonical form)
잔여변수나 잉여변수를 도입하여 제약조건이 등식으로 표현된 모형을 표준식(standard form)
꼭지점과 임의의 점 비교 • 가해영역
기본가능해 • 가해영역의 꼭지점에서는 항상 0의 값을 가지는 변수의 수는 결정변수의 수와 같고, 양수 값을 가지는 변수의 수는 제약조건의 수와 같음. • 이러한 특성을 가진 가능해를 기본가능해(基本可能解; basic feasible solution) • 가해영역의 꼭지점만이 이러한 특성을 가지고 있고, 최적해는 꼭지점에서 나타나기 때문에 최적해는 기본가능해에서 나타남.
기저변수/비기저변수 • 기본가능해에서 • 양수의 값을 가지는 변수를 기저변수(基底變數; basic or nonzero variable)라 하고, • 0의 값을 가지는 변수를 비기저변수(非基底變數; nonbasic or zero variable)라고 한다.
퇴화현상 • 가해영역을 보면 • 꼭지점 O는 2개의 직선만으로 만들어진 꼭지점이 아니라 3개의 직선이 만나 형성된 꼭지점이기 때문에 • 0의 값을 가지는 변수가 3개로 결정변수의 수보다 많고, • 양수의 값을 가지는 변수의 수는 4개로 제약조건의 수보다 적다. • 이러한 현상은 선형계획법의 비정상적 현상의 하나로 퇴화현상(退化現象; degeneracy)이라고 하며, 어느 꼭지점에서나 발생할 수 있다.
심플렉스법 • 심플렉스법은 꼭지점을 이동해 가면서 최적해 여부를 판정하는 연산과정이다. • 꼭지점은 기본가능해의 속성을 가지고 있기 때문에 기저변수나 비기저변수가 되는 변수만 바뀔 뿐이지 각 꼭지점에서 기저변수나 비기저변수의 수는 항상 같다. • 따라서 한 꼭지점에서 다른 꼭지점으로 이동한다는 것은 그 꼭지점의 기저변수 중 하나와 비기저변수 중 하나를 맞바꾸어 가면서 새로운 해를 찾는 과정이라 하겠다.
심플렉스법(최대화문제) 시작 최초 심플렉스표 작성 <최적성 검토> 비기저변수 아래에 음수의 기여계수가 있는가? <다음 심플렉스표의 나머지 원소> 본래의 원소값 – (두 대각 모서리 값의 곲) / 추축원소 현재해가 최적해 없다 종료 있다 <다음 심플렉스표의 추축열> 추축원소를 제외한 나머지 원소는 모두 0 ※ 동률이면 임의선택 어떤 것을 선택하여도 최적해를 구할 수 있으며, 어떤 것이 최적해를 빨리 구하는지는 미리 알 수 없음 <추축열 선정> 음수의 기여계수 중 절대값으로 가장 큰 것 <다음 심플렉스표의 추축행> 현재 표의 추축행의 원소를 추축원소로 나눔 추축열 기술계수 중 양수가 있는가? 없다 비유계 가해영역 <다음 심플렉스표의 구조> 기저변수 변경 있다 ※ 동률이면 임의선택 (퇴화현상 발생!) <추축행 선정> (우변상수/기술계수)의 값 중 가장 작은 것
<최초의 심플렉스표의 작성> • 최초심플렉스표(initial simplex table)란 가해영역의 꼭지점들에 대한 검토를 시작할 꼭지점을 나타낸 심플렉스표를 말한다. • 심플렉스법은 원점에서 시작한다. • 심플렉스표는 표준식에서 등호의 오른쪽에 상수를 두고 나머지는 등호의 왼쪽에 오도록 재배열 한 후 Z변수, 기저변수와비기저변수, 상수 등을 구분하여 계수들만으로 만든 행렬이다. • 재배열시 목적함수는 ① 최대화 문제의 경우 등호좌변에 z가 되도록 하고, ② 최소화 문제의 경우 등호좌변에 -z가 되도록 함 • 심플렉스표에서는 기저변수열의 계수들이 표준단위행렬이어야 한다.
표준식 재배열
재배열한 표준식 재배열한 표준식으로 만든 표 (최초심플렉스표) 기저변수열의 계수들이 표준단위행렬이므로 심플렉스표임
<추축열의 선정> • 추축열을 선정한다는 것은 현재의 심플렉스표의 비기저변수 중에서 다음단계의 심플렉스표에서 기저변수가 될 변수를 찾는 것이다. • 심플렉스표의 비기저변수 바로 밑에 있는 음수의 기여계수 중에서 가장 가장 작은 값(절대값으로 가장 큰 값)을 가진 열이 추축열(pivot column)이 된다. • 비기저변수 바로 밑에 음수의 기여계수가 없으면 현재의 해가 최적해가 된다. • 음수의 값을 가진 기여계수를 선정한다는 것은 목적함수 값을 증가 시켜야 함을 뜻하며, 가장 큰 값을 선정한다는 것은 목적함수 값을 가장 많이 증가시켜야 한다는 것을 의미한다.
<추축행의 선정> • 추축행(pivot row)의 선정은 현재의 심플렉스표의 기저변수 중에서 다음 단계의 심플렉스표에서 비기저변수가 될 변수를 선정하는 것이다. • 추축열에서 양수의 기술계수만이 추축행이 될 수 있다. • 추축열에 있는 양수의 기술계수들을 각각 같은 행에 있는 상수에서 나눈 몫의 절대값 중에서 가장 작은 값을 가진 행이 추축행이 된다. • 양수의 기술계수만을 추축행의 대상으로 하는 이유는 기술계수는 단위당 자원의 소요량을 의미하고, 목적함수의 증가에 따라 가용자원은 감소하기 때문이다. • 양수의 기술계수가 없으면 비유계가해영역임.
몫의 절대값은 주어진 자원량으로 변수가 취할 수 있는 최대값을 의미한다. • 이 중에서 최소값을 택하는 이유는 모든 제약조건을 동시에 충족해야하는 선형계획법의 요구조건 때문이다. • 가장 작은 값을 택하지 않으면 기저변수 값이 음수로 나타나 비음조건에 저촉되게 된다. • 추축열과 추축행이 만나는 기술계수를 추축원소(pivot element)라고 한다.
<다음 심플렉스표의 구조결정> • 다음 단계의 심플렉스표의 구조는 목적함수와 제약조건, Z와 결정변수 및 잔여변수의 좌변계수와 우변상수를 구분하기 위해 표를 6부분으로 나누고 추축행에 있는 기저변수를 추축열의 비기저변수로 바꾸어 적는다.
<다음 심플렉스표의 원소계산> • 현 단계의 추축행과 같은 위치에 들어갈 다음 단계 심플렉스표의 원소값은 추축행의 원소를 추축원소로 나눈 값이다. • 현 단계의 추축열과 같은 위치에 들어갈 다음 단계 심플렉스표의 원소값은 추축원소를 제외하고 모두 0이다. • 현 단계의 추축열이나 추축행의 위치에 있지 않는 원소들의 다음 단계 심플렉스표에서의 값은 다음의 Gauss-Jordan공식에 따른다. • 새 원소의 값 = 현재의 원소의 값 - {(대각 모서리의 두 원소 값의 곱) / 추축원소}
심플렉스표 개선(#0 => #1) #0 다음 표 구조결정 추축행 추축열
#0 #1
심플렉스표 개선(#1 => #2) #1 다음 표 구조결정 추축행 추축열
#1 #2
엑셀에서 LP모형 풀기 결정변수셀 설정 결정변수 이름을 입력하고 결정변수로 사용할 영역을 굵은 실선으로 나타내어 쉽게 구별할 수 있도록 한다 [예] L화학 생산계획 문제 ☞
엑셀에서 LP모형 풀기 (계속) 기여계수 및 목적함수 입력 (1) 목적함수를 엑셀수식으로 입력하기 편리한 영역에 기여계수를 입력하고 쉽게 구분할 수 있도록 레이블을 붙인다. (2) 목적함수를 입력한 후 쉽게 구분할 수 있도록 레이블을 붙인다. [예] L화학 생산계획 문제 ☞
엑셀에서 LP모형 풀기 (계속) 기술계수, 우변상수 및 제약조건 입력 (1) 제약조건을 엑셀수식으로 입력하기 편리한 영역에 기술계수를 입력하고 쉽게 구분할 수 있도록 각 제약조건별로 레이블을 붙인다. (2) 제약조건의 좌변을 엑셀수식으로 입력한다. [예] L화학 생산계획 문제 ☞
엑셀에서 LP모형 풀기 (계속) 기술계수, 우변상수 및 제약조건 입력 ☞
엑셀에서 LP모형 풀기 (계속) 해찾기 실행 ‘도구’메뉴의 부메뉴 ‘해찾기’를 실행하여 해찾기 대화상자를 화면에 나타낸다 ☞
엑셀에서 LP모형 풀기 (계속) 해찾기 설정 목표 셀, 해의 조건, 값을 바꿀 셀, 제한 조건 등을 설정한다 ☞
엑셀에서 LP모형 풀기 (계속) 해찾기 옵션 설정 ☞
엑셀에서 LP모형 풀기 (계속) 해찾기 결과 대화상자 설정 ☞
제약조건이 등식(=)인 경우 제약조건의 개수만큼의 기저변수가 존재해야 하는 심플렉스표의 조건을 만족시키기 위해 좌변에 기저변수로 인위변수(artificial variable)를 도입하고 목적함수에 인위변수의 계수를 ① 최대화 문제의 경우 –M, ② 최소화 문제의 경우 M으로 한 항을 추가함 M : big M, 어떤 실수보다도 큰 수 따라서 -M은 큰 penalty이고 최대화 과정에서 인위변수의 값이 0이 되도록 작용함 [예] => 목적함수에 을 도입
제약조건의 부등호가 “≥” 경우 우변에 잔여변수(slack variable)를 도입하여 등식으로 변경하고 등식제약조건을 처리하는 방법과 같은 방법으로 처리함
우변상수가 음수인 경우 양변에 -1을 곱하고 부등호의 방향을 바꾸어 준다.
최소화 문제 Z를 최대화 하는 것은 –Z를 최소화 하는 것과 같다. 최소화 문제는 최대화 문제로 바꾸어 심플렉스법을 적용한다. [예]
“≥”, “=”제약식의 예 정규식 표준식 [예]
재배열 Big M이 포함되어 있는 문제의 해를 구하는 방법 2단계법(two-phase method) Big M법(big M method)
2단계법 (1단계) 인위변수의 합을 최소화하는 문제의 최적해를 구함 (※ 심플렉스표의 조건이 만족되지 않는 기저변수에 대하여 [(-1)*기저변수행]을 목적함수행에 더하여 심플렉스표의 조건이 만족되도록 조정함) ※ 1단계 문제의 최적해에서 인위변수가 기저변수이면 원본문제는 실행가능해가 존재하지 않는 문제임. (2단계) (1단계)의 최적해 심플렉스표에서 인위변수를 제거하고 원본문제의 인위변수를 제거한 재배열 목적함수로 목적함수행을 대체한 표 작성 (※ 심플렉스표의 조건이 만족되지 않는 기저변수에 대하여 [(-1)*(기저변수의 목적함수행 계수)*기저변수행] + 목적함수행 목적함수행 으로 계산하여 심플렉스표의 조건이 만족되도록 조정함)
1단계 문제 (인위변수합 최소화) (1단계) 인위변수의 합을 최소화하는 문제
1단계 문제의 재배열표준식 표 재배열한 표준식 재배열한 표준식을 심플렉스표 형식으로 나타낸 표 a1과 a2열이 기저변수열의 조건을 만족하지 못함
1단계 문제의 최초심플렉스표 재배열표준식 표 a1과 a2열이 기저변수열의 조건을 만족하지 못함 [(-1)*a1행] + a0행 a0행 [(-1)*a2행] + a0행 a0행 으로 조정함 최초심플렉스표
1단계 문제의 심플렉스표 개선 #0 #1 #2
2단계 문제의 재배열표준식 표 원본문제 인위변수를 제거한 재배열 목적함수 2단계 문제의 재배열표준식 표