로드 중...
검색 중...
일치하는 항목 없음
피망 슬롯java
1패키지com.gams.examples.transport;
2
3가져오기java.io.PrintStream;
4
7가져오기 com.게임.API.GAMS예외;
8가져오기 com.게임.API.GAMSJob;
9가져오기 com.감스.API.GAMS옵션;
10가져오기 com.감스.API.GAMS매개변수;
11가져오기 com.게임.API.GAMSSet;
12가져오기 com.게임.API.GAMS변수;
13가져오기 com.감스.API.GAMS작업공간;
14
19공개 클래스수송모델
20{
21 비공개 GAMSSetfi, fj;
22 비공개 GAMS매개변수파, 페이스북, fd, ff;
23 비공개 GAMS변수fx, fz;
24 비공개GAMSOptions fopt;
25
26 비공개 GAMS작업공간fws;
27 비공개 GAMS데이터베이스fDbIn1, fDbIn2, fDbOut1;
28
29 비공개 GAMSJob직업;
30
35{
36fws = ws;
37fopt = ws.추가옵션();
38
39fDbIn1 = ws.추가데이터베이스("dbIn1");
40fDbIn2 = ws.추가데이터베이스("dbIn2");
41
42fopt.defines("dbIn1", "dbIn1");
43fopt.defines("dbIn2", "dbIn2");
44
45fopt.setSolveLink( GAMSOptions.ESolveLink.LoadLibrary );
46fopt.setAllModelTypes("복합단지");
47fopt.defines("dbOut1", "dbOut1");
48
49fi = fDbIn1.추가세트("나", "통조림 공장");
50fj = fDbIn1.추가세트("j", "시장");
51fa = fDbIn1.addParameter("a", "케이스에 있는 식물 i의 용량", fi);
52fb = fDbIn1.addParameter("b", "경우에 따라 시장 j의 수요", fj);
53fd = fDbIn1.addParameter("d", "수천 마일 단위의 거리", 신규객체[] fi, fj );
54ff = fDbIn2.addParameter("f", "1,000마일당 케이스당 화물(달러)");
55
56직업 = ws.addJobFromString( 이.getModelSource() );
57}
58
62 공개 공허 실행(GAMS체크포인트체크포인트)
63{
64이것.실행(체크포인트,);
65}
66
70 공개 무효 실행(PrintStream 출력)
71{
72이것.실행(, 출력);
73}
74
79 공개 무효 실행(GAMS체크포인트체크포인트, PrintStream 출력)
80 if(!fDbIn1.checkDomains())
81 던지기 신규 GAMS예외("데이터베이스 1의 도메인 오류");
82 if(!fDbIn2.checkDomains())
83 던지기 신규 GAMS예외("데이터베이스 2의 도메인 오류");
84
85 GAMS데이터베이스[] 데이터베이스 =신규 GAMS데이터베이스[] fDbIn1, fDbIn2 ;
86직업.실행( fopt, 체크포인트, 출력,거짓, 데이터베이스 );
87
88fDbOut1 = fws.addDatabaseFromGDX(fopt.getDefinitionOf("dbOut1") +".gdx");
89fx = fDbOut1.get변수("x");
90fz = fDbOut1.get변수("z");
91}
92
94 공개 GAMSSet 게티() {반환fi;
95
97 공개 GAMSSet getj() {반환fj;
98
100 공개 GAMS매개변수 게타() {반환fa;
101
103 공개 GAMS매개변수 getb() {반환fb;
104
106 공개 GAMS매개변수 getd() {반환fd;
107
109 공개 GAMS매개변수 getf() {반환ff;
110
112 공개 GAMS변수 getx() {반환fx;
113
115 공개 GAMS변수 겟츠() {반환fz;
116
118 공개GAMS옵션getopt() {반환fopt;
119
121 공개문자열getModelSource() {반환모델;
122
123 비공개 정적문자열 모델 =
124 "세트 \n" +
125 "나는 식물을 통조림으로 만들고 있습니다 \n" +
126 " j 시장 \n" +
127 " \n" +
128 " 매개변수 \n" +
129 " a(i) 경우에 따라 공장 i의 용량 \n" +
130 " b(j) 경우의 시장 j 수요 \n" +
131 " d(i,j) 거리(천 마일 단위) \n" +
132 " 천 마일당 케이스당 달러 단위의 스칼라 f 운임; \n" +
133 " \n" +
134 "$if가 설정되지 않은 경우 dbIn1 $abort '제공된 데이터베이스 1 파일에 대한 파일 이름이 없음' \n" +
135 "$gdxin %dbIn1% \n" +
136 "$load i j a b d \n" +
137 "$gdxin \n" +
138 " \n" +
139 "$if dbIn2 $abort가 설정되지 않은 경우 'In-Database 2 파일에 대한 파일 이름이 제공되지 않음' \n" +
140 "$gdxin %dbIn2% \n" +
141 "$load f \n" +
142 "$gdxin \n" +
143 " \n" +
144 " 매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ; \n" +
145 " \n" +
146 " c(i,j) = f * d(i,j) / 1000 ; \n" +
147 " \n" +
148 " 변수 \n" +
149 " 케이스의 x(i,j) 배송 수량 \n" +
150 " z 총 운송 비용(수천 달러) ; \n" +
151 " \n" +
152 " 양수 변수 x ; \n" +
153 " \n" +
154 " 방정식 \n" +
155 " \n" +
156 " 비용 정의 목적 함수 \n" +
157 " 공급(i) 공장 i의 공급 제한 준수 \n" +
158 " 수요(j)는 시장 j의 수요를 충족합니다. \n" +
159 " \n" +
160 " 비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ; \n" +
161 " \n" +
162 " 공급(i) .. sum(j, x(i,j)) =l= a(i) ; \n" +
163 " \n" +
164 " 수요(j) .. sum(i, x(i,j)) =g= b(j) ; \n" +
165 " \n" +
166 " 모델 전송 /all/ ; \n" +
167 " \n" +
168 " z를 최소화하는 lp를 사용하여 전송 문제를 해결합니다. \n" +
169 " \n" +
170 " x.l, x.m 표시 ; \n" +
171 "$if가 설정되지 않은 경우 dbOut1 $abort '제공된 외부 데이터베이스 1 파일에 대한 파일 이름이 없음' \n" +
172 "execute_unload '%dbOut1%', x, z; \n" +
173 " \n";
174}
GAMSSet addSet(문자열 식별자, 정수 차원)
GAMSParameter addParameter(문자열 식별자, 정수 차원)
GAMSVariable getVariable(문자열 식별자)
GAMSDatabase addDatabaseFromGDX(String gdxFileName)
GAMSJob addJobFromString(문자열 소스)
GAMS데이터베이스 addDatabase()
이 예는 간단한 GAMS [trnsport]를 기반으로 한 운송 문제의 래퍼 모델을 보여줍니다 ...
GAMSOptions getopt()
trnsport 모델 실행을 위한 옵션.
문자열 getModelSource()
trnsport 모델의 소스를 제공하세요.
void run(GAMSCheckpoint 체크포인트, PrintStream 출력)
trnsport 모델을 실행합니다.
void run(GAMSCheckpoint 체크포인트)
trnsport 모델을 실행합니다.
void run(PrintStream 출력)
trnsport 모델을 실행합니다.
GAMS변수 getx()
x(i,j): 케이스의 배송 수량
피망 슬롯(GAMSWorkspace ws)
피망 슬롯 생성자.
GAMS매개변수 getf()
f: 천 마일당 케이스당 화물(달러)
GAMS매개변수 getb()
b(i): 경우에 따라 시장 j의 수요
GAMS변수 getz()
z: 총 운송 비용(천 달러)
GAMS매개변수 geta()
a(i): 경우에 따라 플랜트 i의 용량
GAMS매개변수 getd()
d(i,j): 거리(천 마일)