설명
다음 형식의 선형 최적화 문제를 고려하십시오. min_x c^Tx s.t. a_i^Tx <= b_i, i=1,..,m. 실제로 계수 벡터 a_i는 완벽하게 알 수 없을 수도 있지만, 소음에 취약하기 때문입니다. 우리가 E_i에 있는 a_i만 알고 있다고 가정합니다. 여기서 E_i에는 타원체가 주어집니다. 강력한 최적화에서는 다음을 최소화하려고 합니다. 원래 목표이지만 각 제약 조건이 충족되어야 한다고 주장합니다. E_i에서 해당 벡터 a_i의 선택과 관계없이. 2차 원뿔 최적화 문제를 얻습니다. min_x c^Tx s.t. a'_i^Tx + ||R_i^Tx|| <= b_i, i=1,..,m, 여기서 E_i = a'_i + R_iu | ||유|| <= 1. 위에서 우리는 다음을 관찰합니다. 다음과 관련된 항으로 인해 실행 가능한 세트가 원래 세트보다 작습니다. l_2-규범. 위의 그림은 특정 상황에서 얻을 수 있는 실현 가능한 집합의 종류를 보여줍니다. 구형 불확실성이 있는 위 문제의 예(즉, 모든 타원체는 구입니다. 일부 rho >0의 경우 R_i = rho I입니다. 우리는 견고하다는 것을 관찰합니다 실행 가능한 집합은 실제로 원래 다면체에 포함되어 있습니다. 이 특정 예에서는 계수 A(i,*)가 타원체에서 변하는 것을 허용합니다. 견고한 LP는 SOCP로 재구성됩니다. 제공: Michael Ferris, 위스콘신 대학교 매디슨
소형 모델 유형 :QCP
카테고리 : 슬롯 머신 모델 라이브러리
메인 파일 : robustlp.gms
$title SOCP로서의 강력한 선형 프로그래밍(ROBUSTLP,SEQ=416)
$onText
다음 형식의 선형 최적화 문제를 고려하십시오.
min_x c^Tx s.t. a_i^Tx <= b_i, i=1,..,m.
실제로 계수 벡터 a_i는 완벽하게 알 수 없을 수도 있지만,
소음에 취약하기 때문입니다. 우리가 E_i에 있는 a_i만 알고 있다고 가정합니다.
여기서 E_i에는 타원체가 주어집니다. 강력한 최적화에서는 다음을 최소화하려고 합니다.
원래 목표이지만 각 제약 조건이 충족되어야 한다고 주장합니다.
E_i에서 해당 벡터 a_i의 선택과 관계없이.
2차 원뿔 최적화 문제를 얻습니다.
min_x c^Tx s.t. a'_i^Tx + ||R_i^Tx|| <= b_i, i=1,..,m,
여기서 E_i = a'_i + R_iu | ||유|| <= 1. 위에서 우리는 다음을 관찰합니다.
다음과 관련된 항으로 인해 실행 가능한 세트가 원래 세트보다 작습니다.
l_2-규범.
위의 그림은 특정 상황에서 얻을 수 있는 실현 가능한 집합의 종류를 보여줍니다.
구형 불확실성이 있는 위 문제의 예(즉, 모든
타원체는 구입니다. 일부 rho >0의 경우 R_i = rho I입니다. 우리는 견고하다는 것을 관찰합니다
실행 가능한 집합은 실제로 원래 다면체에 포함되어 있습니다.
이 특정 예에서는 계수 A(i,*)가 타원체에서 변하는 것을 허용합니다.
견고한 LP는 SOCP로 재구성됩니다.
제공: Michael Ferris, 위스콘신 대학교 매디슨
Lobo, MS, Vandenberghe, L, Boyd, S 및 Lebret, H, 응용 분야
2차 콘 프로그래밍. 선형대수학과 그 응용,
제어, 신호 및 이미지의 선형대수학 특별호
처리. 284(1998년 11월).
키워드: 선형 프로그래밍, 2차 제약 조건 프로그래밍, 강력한 최적화,
2차 콘 프로그래밍
$offText
$mu를 설정하지 않은 경우 $set mu 1.0e-2
세트
나는 / 1*7 /
j / 1*4 /;
매개변수 b(i), c(j), A(i,j);
b(i) = 1;
c(j) = -1;
옵션 시드 = 0;
A(i,j) = 균일(0,1);
변수 obj, x(j);
방정식 defobj, cons(i);
defobj..obj =e= sum(j, c(j)*x(j));
cons(i).. sum(j, A(i,j)*x(j)) =l= b(i);
모델 lpmod / defobj, 단점 /;
lp min obj를 사용하여 lpmod를 해결합니다.
매개변수 결과(*,*);
결과('lp',j) = x.l(j);
results('lp','obj') = obj.l;
스칼라 mu / %mu% /;
양수 변수 람다(j), 감마(j);
방정식 lpcons(i), defdual(j);
* A(i,*) \in A(i,*) + [-mu(i) 1, mu(i) 1] (infty 표준 공)
* 제약 조건은 mu(i) * norm(x)_1 + Ax <= b (여기서는 1 mu만 사용하세요)
* 람다와 감마를 사용하여 하나의 표준(inf 표준의 이중)을 구현하기만 하면 됩니다.
lpcons(i)..mu*sum(j, 람다(j) + 감마(j)) + sum(j, A(i,j)*x(j)) =l= b(i);
defdual(j)..lambda(j) - 감마(j) =e= x(j);
모델 lproblp / defobj, lpcons, defdual /;
lp min obj를 사용하여 lproblp를 해결합니다.
results('roblp',j) = x.l(j);
results('roblp','obj') = obj.l;
별칭(j,k);
매개변수 P(i,j,k);
P(i,j,j) = %mu%;
변수 y(i), v(i,k);
방정식 defrhs(i), defv(i,k), socpcons(i);
defrhs(i).. y(i) =e= b(i) - sum(j, A(i,j)*x(j));
defv(i,k)..v(i,k) =e= sum(j, P(i,j,k)*x(j));
방정식 socpqcpcons(i);
socpqcpcons(i)..sqr(y(i)) =g= sum(k, sqr(v(i,k)));
모델 roblpqcp / defobj, socpqcpcons, defrhs, defv /;
y.lo(i) = 0;
옵션 qcp = cplex;
qcp min obj를 사용하여 roblpqcp를 해결합니다.
결과('qcp',j) = x.l(j);
results('qcp','obj') = obj.l;
결과 표시;