설명
챕터 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)) '혼합 설계 문제에 대해 얻은 해는 완화 방법으로 얻은 해보다 나쁩니다.'