설명
이 테스트는 다음과 같은 경우 '데이터가 정렬되지 않음' 오류가 발생하지 않는지 확인합니다. 시나리오 세트에 '정렬되지 않음' uel이 포함되어 있습니다. 기여자: Lutz Westermann
소형 모델 유형 :피망 슬롯
카테고리 : 피망 슬롯 테스트 라이브러리
메인 파일 : scensol2.gms
$title GUSS에서 정렬되지 않은 시나리오 UEL의 테스트 처리(SCENSOL2,SEQ=533)
$onText
이 테스트는 다음과 같은 경우 '데이터가 정렬되지 않음' 오류가 발생하지 않는지 확인합니다.
시나리오 세트에 '정렬되지 않음' uel이 포함되어 있습니다.
기여자: Lutz Westermann
$offText
세트
시나리오 / 시애틀, 로스앤젤레스, 샌디에고 /
i 통조림 공장 / 시애틀, 샌디에고 /
j 마켓 / 뉴욕, 시카고, 토피카 / ;
매개변수
a(i) 경우에 따라 공장 i의 생산 능력
/시애틀 350
샌디에이고 600 /
b(j) 다음과 같은 경우 시장 j의 수요
/ 뉴욕 325
시카고 300
토피카 275 / ;
테이블 d(i,j) 거리(천 마일)
뉴욕 시카고 토피카
시애틀 2.5 1.7 1.8
샌디에고 2.5 1.4 ;
스칼라 f 운임(1,000마일당 케이스당 달러) /90/ ;
매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
c(i,j) = f * d(i,j) / 1000 ;
변수
x(i,j) 케이스의 배송 수량
z 총 운송 비용(단위: 수천 달러);
양수 변수 x ;
방정식
비용 정의 목적 함수
공급(i) 공장 i의 공급 제한을 준수합니다.
수요(j)는 시장 j의 수요를 충족시킵니다.
비용 .. z =e= sum((i,j), f * d(i,j) / 1000 *x(i,j)) ;
공급(i) .. sum(j, x(i,j)) =l= a(i) ;
수요(j) .. sum(i, x(i,j)) =g= b(j) ;
방정식 e 더미 n 행; 즉.. sum((i,j), x(i,j)) =n= 3;
모델 전송 /all/ ;
dict / s.scenario 를 설정하세요. ''
디. 매개변수 .ds
x. 레벨 .xx /
매개변수
d용 ds(s,i,j) 업데이트 프로그램
xx(s,i,j) x 레벨에 대한 수집기;
ds(s,i,j) = max(0,uniform(-5,2)) + eps;
z 시나리오 dict를 최소화하는 lp를 사용하여 전송을 해결합니다.
* 라이센스 오류(글로벌 솔버)가 발생하면 그냥 종료하세요.
if(transport.modelstat=%modelStat.licensingProblem%,
abort.noerror '전역 솔버에 비해 너무 큼');
디스플레이 xx;
set Error(s) 해결책을 찾을 수 없습니다.
오류(들) = sum((i,j),xx(s,i,j)) = 0;
abort$(card(error)) '일부 시나리오에 대한 솔루션이 누락되었습니다', error;