엄격한 양성 구속 조건을 가진 선형 프로그래밍 타당성 문제


15

선형 제약 시스템 있습니다. 이러한 제약 조건을 만족 하는 엄격하게 양의 벡터 을 찾고 싶습니다 . 즉, 의 모든 구성 요소 에 이 필요합니다 . LP 솔버를 사용하여 엄격하게 양의 벡터 찾거나 가 없는지 확인하려면 어떻게해야합니까? LP에서 동등성을 항상 허용해야하기 때문에 다른 제약 조건 간단히 도입 할 수는 없지만 , 목적 함수를 변경하면서 LP 솔버를 여러 번 사용할 수 있습니다. 느슨한 변수 방법을 사용해야한다고 생각하지만 방법을 모르겠습니다.x > 0 x i > 0 x i x x x x i > 0Axbx>0xi>0xixxxxi>0

답변:


15

좀 더 야심 찬 방법으로 작은 을 선택하는 문제를 피할 수 있습니다 . 와 같은 를 찾으십시오.ϵ>0xAxb 와가에서 가장 작은 엔트리 있다는 x 있다 가장 큰.

이를 위해 새로운 변수

y=[xϵ]Rn+1
( x아르 자형 )을 도입하고 LP-solver 다음 문제를 해결하십시오.
maxy[00 1]ys.t.[A 0]yband0[10010101011]y.

이것은 다음 문제의 재구성입니다.

maxϵs.tAxbandxϵ1.


잘 했어요, 이것은 공동 저자의 속임수에 해당하며 최근 논문에서 방금 사용한 것으로, 제가 제안한 접근 방식보다 확실히 우수합니다.
Aron Ahmadia 2012 년

동의했다. 잘 연주했습니다.
Geoff Oxberry

원래 문제에 대한 답이 사소한 경우에는 재조정 된 문제에 무한한 목적이있을 수 있습니다. 예를 들어 제약 시스템이 입니다. lp 솔버의 반환 상태에서 실행 가능, 최적 또는 제한이 없는지 확인하거나 ϵ을 명시 적으로 바인딩 한 한 괜찮습니다 . 엑스1ϵ
David Nehme 2013

@DavidNehme : 제약 된 을 추가하여 제한적인 목표를 얻을 수 있습니다. 와이+11
Arnold Neumaier 2016 년

5

LP 타당성 문제의 경우 표준 심플 렉스를 사용하지 않습니다. 표준 원시 (또는 이중) 심플 렉스 알고리즘은 실행 가능한 원시 (또는 이중) 문제의 정점 ​​만 방문합니다.

실제로 해결하려는 문제의 가능한 세트를 으로하고 대신 문제를 해결한다고 가정합니다 ( F ε ).F={x:Axb,x>0}Fε

minx0s.t.Axbxε1.

해결하려는 문제의 가장 가까운 근사값은 이며, 너무 많은 점이 허용됩니다. 문제는 양의 orthant의 경계 (즉, 세트 B = { x : x0 , i : x i = 0 }) 가 실행 가능한 F 0 세트의 경계의 일부를 구성 할 수 있다는 것입니다. 이를 수행하는 한 가지 방법은 Aron이 제안한 것, 즉 ε 을 설정하는 것입니다.F0B={x:x0,i:xi=0}F0ε작은 양수 값으로 설정 한 다음 표준 LP 알고리즘을 사용하십시오. 이 전략은 좋은 전략이며 다양한 상황에서 효과가있을 것입니다. 그러나 을 실행할 수 없으면 실패합니다 . 우리는 모든 ε > 0에 대해 F 0F F ε (남용 표기법 및 해당 문제로 실현 가능한 세트 참조)에 대해 작은 양수 값 ε 을 선택하더라도 LP 솔버가 표시 할 수 있음을 알고 있습니다 LP는 실현 불가능합니다.FεF0FFεε>0ε

LP 솔버의 경우 실행 가능한 포인트로 시작하고 실행 가능한 상태로 유지되는 LP에 대해 내부 포인트 알고리즘을 사용합니다 . 이는 포인트를 제외하는 또 다른 방법 입니다. 이 알고리즘에 실현 가능한 지점을 제공 할 필요는 없습니다. 표준 솔버가 대신 해줄 것입니다. 아핀 스케일링, 포텐셜 감소 및 배리어 방법과 같은 방법은 실행 가능한 솔루션을 찾을 보조 LP를 설정하고 이러한 알고리즘에 대한 반복은 실행 가능한 영역의 내부를 통과합니다. LP 솔버가 사용하는 보조 문제가 문제의 실현 가능한 지점을 찾고 그 실현 가능한 지점이 엄격하게 긍정적 인 한, 가능한 지역에서 한 지점 만 찾으면됩니다. 작은 양의 ε 값으로 F ε을 해결 하지 못하는 경우BFεε 내에서 엄격하게 실행 가능한 지점을 찾기 위해 이러한 방법을 계속 사용할 수 있습니다 .F0

단, 의 꼭짓점 만 탐색하므로 단순을 사용하지 마십시오. 정확하게 피하고 싶은 것입니다.Fε


4

타당성 문제는 일반적인 선형 문제보다 약간 까다로운 게임입니다. 당신이 (방정식과 제약의 시스템의 부동 소수점 표현을 사용하여) 약 해결하는 경우가 요구하는 합법적 여기서 ε는 매우 작은 수치, 즉 보장하는 큰 충분하다 X 나는 사실을 +에 살고 있지만 경계의 솔루션을 고려하지 않을 정도로 작습니다.xi>=ϵϵxi+

을 조정해야 할 수도 있으며 솔루션이 "factor with 이내 "에 적합하지만 많은 상황에 충분합니다.ϵϵ


2

aeismail이 제공하는 답변은 lp를 고려하여주의 깊게 읽어야합니다.

max(x1+x2)

x1+x21

x1,x20

솔루션 ( 0 , 1 ) 뿐만 아니라 다른 솔루션 (변성)이 있습니다. 질문의 일반성은 이러한 사례도 함께 처리해야 함을 의미합니다.(1,0)(0,1)

객관적인 기능을 선택할 수 있으므로 반복적으로 수정 해 볼 수 있습니다. 예를 들어 모든 변수에 대한 모든 계수를 1로 시작하고 적절한 해를 구하는지 확인하십시오. 하나의 변수가 0이면 계수를 올리고 다시 시작합니다.

비록 이것이 작동한다는 것을 수학적으로 증명할 수는 없지만 (또는 목적 함수를 수정하는 방법이 잘 정의 된 절차). 이게 도움이 되길 바란다 :)


그러나 많은 퇴행 솔루션이 있다면이 수치를 어떻게 처리 할 것입니까? 수치 해법이이 문제를 해결하는 것에 대한 경고 (또는 악화)를 발생시키지 않습니까?
aeismail

아니요, 그렇지 않습니다. 그들은 처음 만난 최적의 솔루션을 반환합니다. 솔루션을 계속 생성하는 방법은 이전에 계산 된 최적 솔루션을 제외하는 절단 평면 (또는 기타 구속 조건)을 추가하는 것입니다. 이 경우 이러한 절단면을 추가하면 무한한 최적 솔루션 세트에 대한 이산 근사값을 반환 할 수 있습니다.
Geoff Oxberry

나는 이것을 이상한 프로그래밍 결정으로 본다. 목적 함수가보고 된 솔루션 주변에서 이상한 일을하고 있다고 사용자에게 알리고 싶지 않은 이유는 무엇입니까? 비선형 솔버의 경우 무슨 일이 일어나고 있는지 파악하는 데 문제가 있음을 알 수 있습니다. 그러나 선형 시스템으로 이해하기가 쉽지 않습니까?
aeismail

실제로 문제를 구성하여 퇴행성을 감지하는 방법에 대해 생각해야하지만 일반적으로 사용자는 최적의 솔루션을 원하므로 LP에 대한 가장 중요한 정보는 솔루션이 최적이고 실현 가능하지만 최적이 아닌 경우 반환하는 것입니다. 실행 불가능하거나 제한이 없습니다. (이러한 상태는 실제로 CPLEX와 같은 솔버가 리턴하는 것입니다.) 퇴행성은 주로 이론적 인 문제입니다. 수치 적 맥락에서 논의되는 유일한 이유는 알고리즘 설계 나 실제로는 퇴행성이 일반적으로 솔버의 속도를 늦추는 것입니다.
Geoff Oxberry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.