put12.gms : put_utility 솔버 테스트

설명

put_utility 솔버를 사용하면 이름으로 솔버를 선택할 수 있습니다.
실행 유형 중. 모델 유형을 지정하거나
모든 적합한 모델 유형에 대한 솔버를 설정하려면 '*'를 사용하십시오.

기고자: Michael Bussieck, 2018년 8월

소형 모델 유형 :슬롯 사이트


카테고리 : 슬롯 사이트 테스트 라이브러리


메인 파일 : put12.gms

$title put_utility 솔버 테스트(PUT12,SEQ=776)

$onText
put_utility 솔버를 사용하면 이름으로 솔버를 선택할 수 있습니다.
실행 유형 중. 모델 유형을 지정하거나
모든 적합한 모델 유형에 대한 솔버를 설정하려면 '*'를 사용하십시오.

기고자: Michael Bussieck, 2018년 8월
$offText

세트
   i '통조림 식물' / 시애틀, 샌디에고 /
   j 'markets' / 뉴욕, 시카고, 토피카 /;

매개변수
   a(i) '경우에 따라 식물 i의 용량'
        /시애틀 350
          샌디에이고 600 /

   b(j) '경우에 따라 시장 j의 수요'
        / 뉴욕 325
          시카고 300
          토피카 275 /;

테이블 d(i,j) '거리(천 마일)'
              뉴욕 시카고 토피카
   시애틀 2.5 1.7 1.8
   샌디에고 2.5 1.8 1.4;

스칼라 f '1,000마일당 케이스당 운임(달러)' / 90 /;

매개변수 c(i,j) '케이스당 운송 비용(단위: 수천 달러)';
c(i,j) = f*d(i,j)/1000;

변수
   x(i,j) '케이스의 선적 수량'
   z '총 운송 비용(천 달러)';

양수 변수 x;

방정식
   비용 '목적 함수 정의'
   Supply(i) '공장 i의 공급 제한을 준수합니다.'
   수요(j) '시장 j의 수요를 충족';

비용.. z =e= sum((i,j), c(i,j)*x(i,j));

공급(i).. sum(j, x(i,j)) =l= a(i);

수요(j)..sum(i, x(i,j)) =g= b(j);

모델 운송 / 모두 /;

스칼라 cplexID, soplexID;

put_utility 'solver' / 'lp' / 'cplex';
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
cplexID = Transport.sysIdent;

put_utility 'solver' / 'lp' / 'soplex';
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
soplexID = Transport.sysIdent;

abort$(cplexID=soplexID) '동일한 솔버를 사용했습니다.', cplexID, soplexID;

put_utility 'solver' / '*' / 'cplex';
z를 최소화하는 rmip를 사용하여 전송을 해결합니다.
cplexID = Transport.sysIdent;

put_utility 'solver' / '*' / 'soplex';
z를 최소화하는 rmip를 사용하여 전송을 해결합니다.
soplexID = Transport.sysIdent;

abort$(cplexID=soplexID) '모델 유형=*과 동일한 솔버를 사용했습니다', cplexID, soplexID;;