개정 심플렉스법

Revised simplex method

수학적 최적화에서 수정된 심플렉스 방법은 선형 프로그래밍을 위한 조지 단치히심플렉스 방법의 변형이다.

개정된 심플렉스 방식은 수학적으로 표준 심플렉스 방식과 동일하지만 구현에 차이가 있다.기본 변수 집합에 조정된 제약조건을 명시적으로 나타내는 표고를 유지하는 대신, 제약조건을 나타내는 행렬기초의 표현을 유지한다.매트릭스 지향 접근방식은 희박한 매트릭스 연산을 가능하게 하여 연산 효율을 높일 수 있다.[1]

문제 제식

나머지 논의의 경우, 선형 프로그래밍 문제가 다음과 같은 표준 형태로 변환된 것으로 가정한다.

여기서 A ∈ Rm×n. 일반성을 상실하지 않고 제약 행렬 A가 전체 열 순위를 가지며 문제가 타당하다고 가정한다. 즉, Ax = b같은 x 0 0이 적어도 하나 있다.A가 순위결핍 상태인 경우 중복 제약이 있거나 문제가 실행 불가능할 수 있다.두 가지 상황 모두 사전 검토 단계로 처리할 수 있다.

알고리즘 설명

최적성 조건

선형 프로그래밍의 경우 Karush-Kuhn-Tucker 조건은 최적화를 위해 필요하며 충분하다.표준형식의 선형 프로그래밍 문제의 KKT 조건은 다음과 같다.

여기서 λs는 각각 제한조건 Ax = bx0과 관련된 라그랑주 승수다.[2]모든 1 < i < n에 대해 sxii = 0에 해당하는 마지막 조건을 보완적 느슨함 조건이라고 한다.

때때로 선형 프로그래밍의 기본 정리라고 알려진 것에 의해 실현 가능한 폴리토프의 꼭지점 x는 후자의 열에서 선택한 A의 기초 B로 식별할 수 있다.[a]A가 전위를 가지기 때문에 B는 비논리적이다.일반성을 상실하지 않는 한 A = [B N]이라고 가정한다.그러면 x는 다음에 의해 주어진다.

여기서 xB0. cs는 그에 따라 으로 분할한다.

보완적 느슨함 조건을 만족시키려면 s = 0으로B 한다.그 뒤를 잇는다.

라는 것을 암시한다.

이 시점에서 sN0이면 KKT 조건이 충족되므로 x가 최적이다.

피벗 작업

KKT 조건을 위반할 경우 B의 기존 칼럼을 희생하여 N 열을 기본으로 도입하는 피벗 연산을 실시한다.퇴보성이 없는 경우 피벗 연산은 항상 cxT 엄격한 감소를 초래한다.따라서 문제가 경계가 되는 경우 정점의 수가 한정되어 있기 때문에 수정된 심플렉스 방법은 피벗 연산을 반복한 후 최적의 정점에서 종료해야 한다.[4]

입력q 지수 지수 m < q ≤ n을 s < 0으로 선택한다.A, Aq 해당 컬럼을 기본으로 옮기고, xq 0에서 증가하도록 허용된다.라는 것을 알 수 있다.

즉, xq 모든 단위가 증가하면 cxT -sq 감소한다.[5]이후

xB x - Δx x−1qq 0따라B Δx = BAx만큼 감소해야 한다.let d = BA−1q.d0이면 아무리 xq 늘려도 xB - Δx는 음이 아닌 상태를 유지하게 된다.따라서 cxT 임의로 감소할 수 있으며, 따라서 문제는 무한하다.그렇지 않은 경우, 인덱스 p = argmin1≤imi {xi/di d > 0}을(를) 왼쪽 인덱스로 선택하십시오.이 선택은 타당성을 유지하면서 효과적으로 xqp 0에서 x까지 증가시킨다.피벗 작업은 기초에서 Ap Aq 교체하는 것으로 마무리된다.

숫자 예제

다음과 같은 선형 프로그램을 고려하십시오.

내버려두다

초기에는 실현 가능한 꼭지점 x = [0 0 0 10 15]T에 해당한다.지금 이 순간

입력 인덱스로 q = 3을 선택하십시오.그 다음 d = [1 3],Tx3 단위가 증가하면 x4 x5 각각 13으로 감소한다는 것을 의미한다.따라서 x3 5로 증가하는데, 이때 x5 0으로 감소하고 p = 5는 이탈지수가 된다.

피벗 작업 후

그에 상응하여

양의 sN x가 이제 최적임을 나타낸다.

실무문제

퇴보

전면 개정한 심플렉스 방식은 수학적으로 심플렉스 방식과 동일하기 때문에 피벗 연산이 cxT 감소를 초래하지 않고 피벗 연산의 체인으로 인해 기초가 순환되는 퇴화 현상도 겪는다.동요 또는 사전 편찬 전략을 사용하여 사이클링을 방지하고 종료를 보장할 수 있다.[6]

기준표현황

개정된 심플렉스 방법에는 B와 관련된 두 가지 유형의 선형 시스템이 있다.

B를 리팩터링하는 대신에, 보통 LU 인자화는 각 피벗 작동 후에 직접 업데이트되며, 이 목적을 위해 Forrest-와 같은 몇 가지 전략이 존재한다.톰린과 바텔스-골루브 방법.그러나, 수치 오류뿐만 아니라 업데이트를 나타내는 데이터의 양은 시간이 지남에 따라 쌓이고 주기적인 리팩터링이 필요하게 된다.[1][7]

참고 및 참조

메모들

  1. ^ 또한 같은 정리는 실현 가능한 폴리토프가 적어도 하나의 꼭지점을 가지고 있으며, 최적인 정점이 하나 이상 있다고 기술하고 있다.[3]

참조

  1. ^ a b 모건 1997, 제2조.
  2. ^ Nocedal & Wright 2006, 358페이지, Eq. 13.4.
  3. ^ Nocedal & Wright 2006, 페이지 363, 정리 13.2.
  4. ^ Nocedal & Wright 2006, 페이지 370, 정리 13.4.
  5. ^ Nocedal & Wright 2006, 369페이지, Eq 13.24.
  6. ^ Nocedal & Wright 2006, 페이지 381, §13.5.
  7. ^ Nocedal & Wright 2006, 페이지 372, §13.4.

참고 문헌 목록

  • Morgan, S. S. (1997). A Comparison of Simplex Method Algorithms (MSc thesis). University of Florida. Archived from the original on 7 August 2011.
  • Nocedal, J.; Wright, S. J. (2006). Mikosch, T. V.; Resnick, S. I.; Robinson, S. M. (eds.). Numerical Optimization. Springer Series in Operations Research and Financial Engineering (2nd ed.). New York, NY, USA: Springer. ISBN 978-0-387-30303-1.