슬롯 나라.gms : LGO 테스트 슬롯 나라_10

설명

이 테스트 문제는 J Pinter로 인해 발생했습니다. Drud는 다음과 같이 지적했습니다.
도함수를 사용하는 솔버는 이 모델을 사용하는 데 어려움을 겪습니다.
원초적인 해결책은 있지만 이중적인 해결책은 존재하지 않으며 글로벌 솔루션은 존재하지 않습니다.
솔루션은 Kuhn-Tucker 조건을 만족하지 않습니다. 제곱(x) = 0
x = 0을 의미하지만 이 제약 조건의 한계는 일반적으로 무한하며
솔루션은 유한 허용오차에 따라 크게 달라집니다. 이 모델은 다음과 같습니다.
Drud가 보여준 것처럼 재구성되었습니다. 그의 재구성은 아래와 같습니다.

전역 해는 x(i) = 0입니다.

대형 모델 유형 :NLP


카테고리 : 슬롯 나라 모델 라이브러리


메인 파일 : 슬롯 나라.gms   포함: 슬롯 나라d.inc

$title LGO 테스트 슬롯 나라_10 (슬롯 나라,SEQ=266)

$onText
이 테스트 문제는 J Pinter로 인해 발생했습니다. Drud는 다음과 같이 지적했습니다.
도함수를 사용하는 솔버는 이 모델을 사용하는 데 어려움을 겪습니다.
원초적인 해결책은 있지만 이중적인 해결책은 존재하지 않으며 글로벌 솔루션은 존재하지 않습니다.
솔루션은 Kuhn-Tucker 조건을 만족하지 않습니다. 제곱(x) = 0
x = 0을 의미하지만 이 제약 조건의 한계는 일반적으로 무한하며
솔루션은 유한 허용오차에 따라 크게 달라집니다. 이 모델은 다음과 같습니다.
Drud가 보여준 것처럼 재구성되었습니다. 그의 재구성은 아래와 같습니다.

전역 해는 x(i) = 0입니다.

Janos Pinter, LGO - 사용자 가이드, Pinter 컨설팅 서비스, Halifax,
캐나다, 2003.

슬롯 나라d.inc 파일을 포함해야 합니다.

키워드: 비선형 프로그래밍, 수학
$offText

세트
   나는 / 1*1000 /
   i10(i) / 2*10 /;

변수 objf, sum_sq, sum_noise, x(i);

방정식 objdef, defsq, defnoise, con0, con1, con2, con3, con4, con5, con6, con7, con8, con9;

매개변수 스케일, tol;

스케일 = 100;
톨 = 0.001;

objdef.. objf =e= sum_sq + scal*sum_noise;

defsq..sum_sq =e= sum(i, sqr(x(i)));

defnoise.. sum_noise =e= sum(i, sqr(sin(sqr(x(i)))));

con0.. sqr(sum(i10(i), (x(i)-x(i-1)))*(x(i+1)-x(i-1)))) =l= tol;

con1.. sqr(x('111')+x('122')-x('133')-x('144')-x('155')+x('166')-x('177')+x('188')) =l= tol;

con2.. sqr(x('199')-x('203')*x('215')-x('227')*x('239')-x('242')*x('254')+x('266')) =l= tol;

con3.. sqr(x('279')-x('283')*x('295')-x('7')*x('23')-x('42')*x('54')+x('66')) =l= tol;

con4.. sqr(x('311')+x('322')-x('333')-x('344')-x('355')+x('366')-x('377')+x('388')) =e= 0;

con5.. sqr(x('599')-x('603')*x('615')-x('627')*x('539')-x('542')*x('654')+x('666')) =l= tol;

con6.. sqr(x('679')-x('783')*x('795')-x('7')*x('23')-x('742')*x('754')+x('666')) =l= tol;

con7.. sqr(x('811')+x('322')-x('833')-x('344')-x('855')+x('366')-x('387')+x('888')) =e= 0;

con8.. sqr(x('899')-x('903')*x('915')-x('627')*x('939')-x('942')*x('654')+x('966')) =e= 0;

con9.. sqr(x('679')-x('783')*x('795')-x('7')*x('23')-x('742')*x('754')+x('666')) =e= 0;

모델 슬롯 나라 / 모두 /;

$include 슬롯 나라d.inc

x.lo(i) = xinit(i,'lower');
x.up(i) = xinit(i,'상부');
x.l (i) = xinit(i,'레벨');

옵션 limCol = 0, limRow = 0, solPrint = off;

nlp를 사용하여 슬롯 나라 min objf를 해결합니다.

Parameter report(i,*) '비최적 변수를 보여주는 요약 보고서';
보고서(i,'슬롯 나라')$(abs(x.l(i)) > 1e-5) = x.l(i);

* 다음은 다음을 생성하는 대체 공식입니다.
* 최적의 지점에서 적절한 듀얼(A Drud가 제안함)

방정식 con0a, con1a, con2a, con3a, con4a, con5a, con6a, ​​con7a, con8a, con9a, con0b, con1b, con2b, con3b, con5b, con6b;

con0a.. (sum(i10(i), (x(i)-x(i-1)))*(x(i+1)-x(i-1)))) =l= sqrt(tol);

con0b.. (sum(i10(i), (x(i)-x(i-1)))*(x(i+1)-x(i-1)))) =g= -sqrt(tol);

con1a.. (x('111')+x('122')-x('133')-x('144')-x('155')+x('166')-x('177')+x('188')) =l= sqrt(tol);

con1b.. (x('111')+x('122')-x('133')-x('144')-x('155')+x('166')-x('177')+x('188')) =g= -sqrt(tol);

con2a.. (x('199')-x('203')*x('215')-x('227')*x('239')-x('242')*x('254')+x('266')) =l= sqrt(tol);

con2b.. (x('199')-x('203')*x('215')-x('227')*x('239')-x('242')*x('254')+x('266')) =g= -sqrt(tol);

con3a.. (x('279')-x('283')*x('295')-x('7')*x('23')-x('42')*x('54')+x('66')) =l= sqrt(tol);

con3b.. (x('279')-x('283')*x('295')-x('7')*x('23')-x('42')*x('54')+x('66')) =g= -sqrt(tol);

con4a.. (x('311')+x('322')-x('333')-x('344')-x('355')+x('366')-x('377')+x('388')) =e= 0;

con5a.. (x('599')-x('603')*x('615')-x('627')*x('539')-x('542')*x('654')+x('666')) =l= sqrt(tol);

con5b.. (x('599')-x('603')*x('615')-x('627')*x('539')-x('542')*x('654')+x('666')) =g= -sqrt(tol);

con6a.. (x('679')-x('783')*x('795')-x('7')*x('23')-x('742')*x('754')+x('666')) =l= sqrt(tol);

con6b.. (x('679')-x('783')*x('795')-x('7')*x('23')-x('742')*x('754')+x('666')) =g= -sqrt(tol);

con7a.. (x('811')+x('322')-x('833')-x('344')-x('855')+x('366')-x('387')+x('888')) =e= 0;

con8a.. (x('899')-x('903')*x('915')-x('627')*x('939')-x('942')*x('654')+x('966')) =e= 0;

con9a.. (x('679')-x('783')*x('795')-x('7')*x('23')-x('742')*x('754')+x('666')) =e= 0;

모델 슬롯 나라a / objdef, defsq, defnoise
               con0a, con1a, con2a, con3a, con4a, con5a, con6a, con7a, con8a, con9a
               con0b, con1b, con2b, con3b, con5b, con6b /;

x.l(i) = xinit(i,'레벨');

nlp를 사용하여 슬롯 나라a min objf를 해결합니다.

보고서(i,'슬롯 나라a')$(abs(x.l(i)) > 1e-5) = x.l(i);

보고서 표시;