ccmg153.gms : 엔지니어링 예제 1.5.3의 이중 레벨 프로그램

설명

챕터 1.5.3 페이지 45-48 및 276-277의 예(벽 디자인)

Conejo A J, Castillo E, Minguez R 및 Garcia-Bertrand R, 분해
수학적 계획법의 기술, Springer, 베를린, 2006년.

기여자: Jan-H. Jagla, 2009년 1월

소형 모델 유형 :BP


카테고리 : 피망 슬롯 EMP 라이브러리


메인 파일 : ccmg153.gms

$title 엔지니어링 예제 1.5.3의 이중 레벨 프로그램(CCMG153,9)

$onText
1.5.3장, 45-48페이지 및 276-277페이지의 예(벽 디자인)

Conejo A J, Castillo E, Minguez R 및 Garcia-Bertrand R, 분해
수학적 계획법의 기술, Springer, 베를린, 2006년.

기여자: Jan-H. 자글라, 2009년 1월

$offText

변수 비용
          폭
          b 높이
          F0 안전
          강제로 하지 마라
          h 토양 오프셋
          베타 관련 신뢰성 지수
          z1 t에 대한 확률 변수
          h에 대한 z2 직렬 변수
          relindex 신뢰도 지수;

방정식 defobj,안전,최소 안전,기하학,
          신뢰성, defrelindex, 전복,
          defbeta2,defbeta3,defz1,defz2;

스칼라
   감마 '단위중량[kN/m3]' / 23 /
   muh 'h의 평균 [m]' / 3 /
   mut 't [kN]의 평균' / 50 /
   시그마 'h의 표준시 [m]' / 0.2 /
   sigmat 'std of t [kN]' / 15 /
   f00 전복사고 안전성 / 1.5 /
   beta0 신뢰성 한계 / 3 /
   b0 최소 높이 / 4 /;

* 클래식한 디자인
defobj.. 비용 =e= a*b;
안전.. f0 =e= (sqr(a)*b*gamma)/(2*muh*mut);
최소한의 안전.. f0 =g= f00;
기하학.. b =e= 2*a;
b.lo = b0;

* 현대적인 디자인을 위한 추가 방정식
신뢰성.. 베타 =g= 베타0;
defbeta2..베타 =e= relindex;
defrelindex.. relindex =e= (sqr(a)*b*gamma)/(2*h*t);
전복.. relindex =e= 1;

* 혼합 설계를 위한 추가 방정식
defbeta3.. 베타 =e= sqrt(sqr(z1) + sqr(z2));
defz1.. z1 =e= (t-mut)/sigmat;
defz2.. z2 =e= (h-muh)/sigmah;

모델 클래식 클래식 디자인 / defobj,safety,minsafety,geometry /
      모던 모던 디자인 / defobj, minsafety, 기하학, 신뢰성, defbeta2, defrelindex, 전복 /
      혼합 혼합 디자인 / defobj,안전,최소 안전,기하학,신뢰성, defrelindex,전복,defbeta3,defz1,defz2 /;

* 0*0을 피해야 함
a.l = 0.1;
b.l = 0.1;
* 0으로 나누는 것을 피해야 함
h.l = 음;
t.l = mut;
z1.l = 1;
z2.l = 1;

* 이제 제안된 완화 방법을 사용하여 혼합 문제를 해결합니다.
* 원하는 값에 도달할 때까지 안전계수(f00)를 증가시키겠습니다.
* 고장 모드 확률(베타0).
스칼라 엡실론 / 1e-6 /;

모델 하위 문제 / defbeta3,defrelindex,overturning,defz1,defz2 /;
옵션 nlp=conopt,solvelink=%solveLink.callModule%,solprint=off,limrow=0,limcol=0;

v 반복 카운터 설정 / v1*v10 /;
매개변수 보고서(v,*) 반복 보고서;
베타.1=0;
루프(v$((beta0-beta.l) > 엡실론),
   고전적인 us nlp 최소 비용을 해결합니다.
   보고서(v,'비용') = 비용.l;
   보고서(v,'a') = a.l;
   보고서(v,'b') = b.l;
   보고서(v,'f00') = f00;
   a.fx = a.l;
   b.fx = b.l;
   하위 문제 min beta us nlp를 해결합니다.
   보고서(v,'베타') = 베타.l;
* 휴식
   a.lo = 0;
   a.up = inf;
   b.lo = 0;
   b.up = inf;
* 업데이트 실패 안전
   f00 = f00 + 0.3*max(beta0-beta.l,0);
);

보고서 표시;

* 제안된 완화 방법의 솔루션을 저장합니다.
스칼라 a_l
        b_l
        비용_l
        f0_l
        베타_l;
a_l = a.l;
b_l = b.l;
비용_l = 비용.l;
f0_l = f0.l;
beta_l = 베타.l;

*이제 우리는 EMP를 사용하여 현대적인 디자인과 혼합 디자인 문제를 해결합니다.
옵션solvelink=%solveLink.callScript%,solprint=on;

파일 emp 확장 MP 정보 파일 핸들 / '%emp.info%' / ;
putclose emp '* 현대적인 디자인' / 'bilevel a b min beta f0 th h relindex defbeta2 defrelindex 뒤집기';
현대 미국의 emp min 비용을 해결하세요.

putclose emp '* 혼합 설계' / 'bilevel a b min beta f0 t h z1 z2 relindex defrelindex defbeta3 defz1 defz2를 뒤집음';
혼합된 우리의 emp min 비용을 해결하십시오.

중단$( (cost.l - cost_l > 엡실론)
       또는 (f0.l - f0_l > 엡실론)
       또는 (beta.l - beta_l > epsilon)) '혼합 설계 문제에 대해 얻은 해는 완화 방법으로 얻은 해보다 나쁩니다.'