내가 이해하는 것처럼 선형 프로그램에 대한 솔루션은 항상 다면체 실행 가능한 세트의 정점에서 발생하기 때문에 (솔루션이 존재하고 최소화 문제를 가정하여 최적의 목적 함수 값이 아래에서 제한되는 경우) 어떻게 검색 할 수 있습니까? 실현 가능한 지역의 내부가 더 좋습니까? 더 빨리 수렴됩니까? 어떤 상황에서 내부 포인트 방법보다 단순한 방법을 사용하는 것이 유리합니까? 하나는 다른 것보다 코드로 쉽게 구현할 수 있습니까?
내가 이해하는 것처럼 선형 프로그램에 대한 솔루션은 항상 다면체 실행 가능한 세트의 정점에서 발생하기 때문에 (솔루션이 존재하고 최소화 문제를 가정하여 최적의 목적 함수 값이 아래에서 제한되는 경우) 어떻게 검색 할 수 있습니까? 실현 가능한 지역의 내부가 더 좋습니까? 더 빨리 수렴됩니까? 어떤 상황에서 내부 포인트 방법보다 단순한 방법을 사용하는 것이 유리합니까? 하나는 다른 것보다 코드로 쉽게 구현할 수 있습니까?
답변:
개인적인 경험을 바탕으로 선형 프로그래밍 클래스를 복용하는 과정에서 MATLAB에서 기본 심플 렉스와 기본 내부 포인트 메소드를 모두 구현 한 개인적인 경험을 바탕으로 심플 포인트 메소드가 내부 포인트 메소드보다 구현 방법을 이해하는 것이 조금 더 쉽다고 말하고 싶습니다. . 기본 심플 렉스의 주요 장애물은 Phase I 및 Phase II를 올바르게 구현하고 사이클 방지 규칙을 올바르게 구현하는 것입니다. 선형 프로그래밍을위한 내부 포인트 방법을 구현하는 데있어 주요 장애물은 반복 방법을 올바르게 구현하고 그에 따라 장벽 매개 변수를 스케일링하는 것입니다.
Bertsimas의 선형 최적화 소개 및 Tsitsiklis 와 같은 선형 프로그래밍 교과서에서 각 알고리즘의 장단점에 대한 자세한 내용을 볼 수 있습니다 . ( 면책 조항 : 나는이 교과서에서 선형 프로그래밍을 배웠고 Bertsimas의 아내로부터 MIT에서 선형 프로그래밍을했습니다.) 기본 사항은 다음과 같습니다.
심플 렉스의 장점 :
심플 렉스의 단점 :
내부 포인트 방법의 장점 :
내부 포인트 방법의 단점 :
대답은 쉽습니다. 둘 다 (단순 및 내부 포인트 방법)는 알고리즘 관점에서 성숙한 분야입니다. 둘 다 실제로 잘 작동합니다. IPM (Interior Point Methods)의 좋은 평판은 최악의 경우 다항식 복잡성 때문입니다. 조합 복잡성을 갖는 심플 렉스의 경우에는 그렇지 않다. 그럼에도 불구하고, 조합 선형 프로그램은 실제로 거의 발생하지 않습니다. 대규모 문제의 경우 IP가 조금 더 빠르지 만 규칙이 필요하지는 않습니다. 내 의견으로는 IP는 이해하고 구현하기 쉽지만 다른 사람은 동의하지 않을 수 있습니다. 이제 LP에서 솔루션이 고유 한 경우 확실히 정점에 있습니다 (IP 및 Simplex 모두 여기에서도 잘 수행됨). 이 솔루션은 다면체의면이나 가장자리에있을 수도 있습니다. 인접한 정점은 (또는 정점도) 솔루션입니다 (IP와 심플 렉스 모두 잘 수행됩니다). 그래서 그들은 거의 동일합니다.