GDXXRWExample14.gms : 스프레드시트에서 데이터를 읽고 해결 후 스프레드시트에 데이터 쓰기

설명

이 예는 다음을 설명합니다:
. 컴파일 단계
. 스프레드시트에서 데이터를 읽고 GDX 파일 만들기
. GDX 파일에서 세트 읽기
. 추가 선언을 위한 도메인으로 세트 사용
. 추가 데이터 요소 읽기
. 실행 단계
. 모델 trnsport 해결
. GDX 파일에 솔루션 쓰기
. GDX 파일을 사용하여 스프레드시트 업데이트

이 모델은 "스프레드시트에서 데이터 읽기 및 데이터 쓰기"에서 참조됩니다.
GDXXRW 문서에서 '해결 후 스프레드시트'를 참조하세요.

카테고리 : 슬롯 커뮤니티 데이터 유틸리티 라이브러리


메인 파일 : GDXXRWExample14.gms 포함: GDXXRWExample14.gms TrnsportData.xlsx

$title 스프레드시트에서 데이터 읽기 및 해결 후 스프레드시트에 데이터 쓰기 (GDXXRWExample14,SEQ=026)

$onText
이 예에서는 다음을 보여줍니다.
. 컴파일 단계
. 스프레드시트에서 데이터를 읽고 GDX 파일 만들기
. GDX 파일에서 세트 읽기
. 추가 선언을 위한 도메인으로 세트 사용
. 추가 데이터 요소 읽기
. 실행 단계
. 모델 trnsport 해결
. GDX 파일에 솔루션 쓰기
. GDX 파일을 사용하여 스프레드시트 업데이트

이 모델은 "스프레드시트에서 데이터 읽기 및 데이터 쓰기"에서 참조됩니다.
GDXXRW 문서의 해결 후 스프레드시트'를 참조하세요.
$offText

$callTool win32.msappavail Excel
$if errorlevel 1 $abort.noError "사용 가능한 Excel이 없습니다."

$onEcho > Taskin.txt
dSet=i rng=A3:A4 rDim=1
dSet=j rng=B2:D2 cDim=1
par =d rng=A2 rDim=1 cDim=1
par =a rng=A8 rDim=1
par =b rng=A13 rDim=1
par =f rng=A19 희미함=0
$offEcho

$call gdxxrw TrnsportData.xlsx @Taskin.txt 추적=0
$gdxIn TrnsportData.gdx

세트
   i(*) '통조림 공장'
   j(*) '시장';

$load 나는 j

i, j를 표시;

매개변수
   a(i) '경우에 따라 식물 i의 용량'
   b(j) '경우에 따라 시장 j의 수요'
   d(i,j) '거리(천 마일)';

스칼라 f '1,000마일당 케이스당 운임(달러)';
$load d a b f
$gdxIn

매개변수 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);

모델 운송 / 모두 /;

z를 최소화하는 lp를 사용하여 전송을 해결합니다.

x.l, x.m을 표시합니다.

Execute_unload 'TrnsportData.gdx', x;
'gdxxrw TrnsportData.gdx 출력=TrnsportData.xlsx squeeze=n var=x.l rng=sheet2!A1 추적=0';을 실행합니다.