설명
이 예는 다음을 설명합니다: . 컴파일 단계 . 스프레드시트에서 데이터를 읽고 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';을 실행합니다.