선형 최적화를위한 심플 렉스 방법보다 내부 포인트 방법의 장점 / 단점은 무엇입니까?


14

내가 이해하는 것처럼 선형 프로그램에 대한 솔루션은 항상 다면체 실행 가능한 세트의 정점에서 발생하기 때문에 (솔루션이 존재하고 최소화 문제를 가정하여 최적의 목적 함수 값이 아래에서 제한되는 경우) 어떻게 검색 할 수 있습니까? 실현 가능한 지역의 내부가 더 좋습니까? 더 빨리 수렴됩니까? 어떤 상황에서 내부 포인트 방법보다 단순한 방법을 사용하는 것이 유리합니까? 하나는 다른 것보다 코드로 쉽게 구현할 수 있습니까?


귀하의 진술 중 하나가 잘못되었습니다. 볼록 최적화 문제에 대한 해결책이 항상 경계에서 발생하는 것은 아닙니다. 예를 들어, 가라 , 최적 솔루션을 발생 X = 0 실현 가능한 영역의 내부에있는이. 또한 선형 프로그래밍과 관련하여 단순 법은 일반적으로 Nelder-Mead 심플 렉스 법을 참조하며, 이는 1보다 큰 치수의 최적 솔루션으로 수렴되지 않을 수도 있습니다.이 방법은 볼록한 프로그래밍에는 권장되지 않습니다. 명확성과 정확성을 위해 질문을 수정하십시오. minx[1,1]x2x=0
제프 옥스 베리

"볼록 최적화"대신 "선형 최적화"라고 말하는 것이 더 적절할까요?
Paul

네, 그러면 당신의 진술은 정확합니다. 질문을 편집 해 주셔서 감사합니다.
제프 옥스 베리

심플 렉스 방법의 문제점은 비선형 문제, 즉 대부분의 실제 문제로 일반화 될 수 없다는 것입니다.

답변:


17

개인적인 경험을 바탕으로 선형 프로그래밍 클래스를 복용하는 과정에서 MATLAB에서 기본 심플 렉스와 기본 내부 포인트 메소드를 모두 구현 한 개인적인 경험을 바탕으로 심플 포인트 메소드가 내부 포인트 메소드보다 구현 방법을 이해하는 것이 조금 더 쉽다고 말하고 싶습니다. . 기본 심플 렉스의 주요 장애물은 Phase I 및 Phase II를 올바르게 구현하고 사이클 방지 규칙을 올바르게 구현하는 것입니다. 선형 프로그래밍을위한 내부 포인트 방법을 구현하는 데있어 주요 장애물은 반복 방법을 올바르게 구현하고 그에 따라 장벽 매개 변수를 스케일링하는 것입니다.

Bertsimas의 선형 최적화 소개 및 Tsitsiklis 와 같은 선형 프로그래밍 교과서에서 각 알고리즘의 장단점에 대한 자세한 내용을 볼 수 있습니다 . ( 면책 조항 : 나는이 교과서에서 선형 프로그래밍을 배웠고 Bertsimas의 아내로부터 MIT에서 선형 프로그래밍을했습니다.) 기본 사항은 다음과 같습니다.

심플 렉스의 장점 :

  • 감안 결정 변수, 보통 수렴 O ( N ) 로 조작 O ( N ) 으로 피봇.nO(n)O(n)
  • 문제의 지오메트리 활용 : 실행 가능한 세트의 꼭짓점을 방문하고 방문한 각 꼭짓점이 최적인지 확인합니다. (원초 심플 렉스에서는이 검사에 절감 된 비용을 사용할 수 있습니다.)
  • 작은 문제에 좋습니다.

심플 렉스의 단점 :

  • 결정 변수가 주어지면 알고리즘에 O ( 2 n ) 연산이 필요하고 피벗이 솔루션에 도달 하는 문제 인스턴스를 항상 찾을 수 있습니다 .nO(2n)
  • 피벗 작업이 비싸기 때문에 큰 문제에는 그다지 좋지 않습니다. Dantzig-Wolfe와 같은 절단면 알고리즘 또는 지연된 열 생성 알고리즘은 때때로 이러한 단점을 보완 할 수 있습니다.

내부 포인트 방법의 장점 :

  • 다항식 시간 점근 복잡도 를 갖습니다. 여기서 L 은 알고리즘에 입력되는 비트 수입니다.O(n3.5L2logLloglogL)L
  • 알고리즘에 필요한 선형 대수가 빠르기 때문에 크고 드문 문제에 더 좋습니다.

내부 포인트 방법의 단점 :

  • 당신이 옳기 때문에 직관적으로 만족스럽지 않습니다. 이러한 방법은 꼭짓점을 방문하지 않습니다. 내부 영역을 돌아 다니며 성공하면 솔루션을 수렴합니다.
  • 작은 문제의 경우 심플 렉스가 더 빠를 것입니다. (Klee-Minty 큐브와 같은 병리학 적 사례를 구성 할 수 있습니다.)

2
좋은 요약입니다. Klee-Minty는 실제로 단순한 LP 방법을 혼란스럽게하기 위해 고안된 것 같습니다 ...
JM

@JM 그렇습니다. 바로 그것이 요점입니다. 단순 방법이 다항식이 아님을 보여주는 명백한 구조입니다 (내부 점 방법을 울리는 변형이 있지만).
Christian Clason

이 유익한 게시물에 감사드립니다. 얼마나 많은 변수가 문제를 크게 만드는지 궁금합니다. 수십? 수백? 수천?
KjMag

5DAx

3

대답은 쉽습니다. 둘 다 (단순 및 내부 포인트 방법)는 알고리즘 관점에서 성숙한 분야입니다. 둘 다 실제로 잘 작동합니다. IPM (Interior Point Methods)의 좋은 평판은 최악의 경우 다항식 복잡성 때문입니다. 조합 복잡성을 갖는 심플 렉스의 경우에는 그렇지 않다. 그럼에도 불구하고, 조합 선형 프로그램은 실제로 거의 발생하지 않습니다. 대규모 문제의 경우 IP가 조금 더 빠르지 만 규칙이 필요하지는 않습니다. 내 의견으로는 IP는 이해하고 구현하기 쉽지만 다른 사람은 동의하지 않을 수 있습니다. 이제 LP에서 솔루션이 고유 한 경우 확실히 정점에 있습니다 (IP 및 Simplex 모두 여기에서도 잘 수행됨). 이 솔루션은 다면체의면이나 가장자리에있을 수도 있습니다. 인접한 정점은 (또는 정점도) 솔루션입니다 (IP와 심플 렉스 모두 잘 수행됩니다). 그래서 그들은 거의 동일합니다.


내가 준 예제는 선형 프로그램이 아니라는 것을 알고 있습니다. 개정 기록을 살펴보면이 질문의 이전 버전에서는 볼록 최적화 문제에 대한 단순 방법과 내부 점 방법을 비교하도록 요청했습니다. 나는 내가 편집 한 내용을 정당화하고 원래의 포스터가 자신의 질문을 바로 잡도록 격려하기위한 반례를 제시했다.
Geoff Oxberry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.