1패키지com.슬롯 게임examples.transport;
19 공개 정적 무효main(String[] args)
20initializeWorkspace(args);
21 더블[] bmultilist =
신규 더블[] { 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3 };
22최적화기[] 최적화 =
신규최적화기[bmultlist.length];
23 용 (
inti=0; i<bmultilist.length; 나++)
24최적[i] =
신규최적화기(bmultlist[i]);
29 정적 공허initializeWorkspace(String[] args)
31파일 WorkingDirectory =
신규파일(System.getProperty(
"user.dir"),
"운송14");
32workingDirectory.mkdir();
36Optimizer.setWorkspace(
신규 슬롯 게임작업공간(wsInfo) );
53 던지다 신규GAMSException(
"작업공간 정보가 없습니다. 최적화 도구를 생성하기 전에 작업공간을 초기화하십시오.");
60슬롯 게임매개변수 f = gDb.
addParameter(
"f",
"1,000마일당 케이스당 화물(달러)");
61f.addRecord().setValue( 90 * bmult );
65GAMSOptions gOption = 작업공간.
추가옵션();
66g옵션.
정의(
"gdxincname", gDb.getName());
67gModJob.run(gOption, gDb);
69 doubleobj = gModJob.OutDB().getVariable(
"z").getFirstRecord().getLevel();
70System.out.println(
"시나리오 bmult="+ bmult +
", Obj="+ obj);
75gModJob.OutDB().dispose();
80 " 나는 식물 통조림 / 시애틀, 샌디에고 / \n"+
81 " j 마켓 / 뉴욕, 시카고, 토피카 / ; \n"+
85 " a(i) 경우에 따라 공장 i의 용량 \n"+
89 " b(j) 경우의 시장 j 수요 \n"+
94 "테이블 d(i,j) 거리(천 마일 단위) \n"+
96 " 시애틀 2.5 1.7 1.8 \n"+
97 " 샌디에고 2.5 1.8 1.4 ; \n"+
99 "천 마일당 케이스당 달러 단위의 스칼라 f 운임; \n"+
101 "$if가 설정되지 않음 gdxincname $abort '제공된 데이터 파일에 대한 포함 파일 이름 없음' \n"+
102 "$gdxin %gdxincname% \n"+
106 "매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ; \n"+
108 " c(i,j) = f * d(i,j) / 1000 ; \n"+
111 " 케이스의 x(i,j) 배송 수량 \n"+
112 " z 총 운송 비용(수천 달러) ; \n"+
118 " 공급(i) 공장 i의 공급 제한 준수 \n"+
119 " 수요(j)는 시장 j의 수요를 충족시킵니다. \n"+
121 "비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ; \n"+
123 "공급(i) .. 합계(j, x(i,j)) =l= a(i) ; \n"+
125 "수요(j) .. 합계(i, x(i,j)) =g= b(j) ; \n"+
129 "z를 최소화하는 lp를 사용하여 전송을 해결합니다. \n"+
GAMSParameter addParameter(문자열 식별자, 정수 차원)
void 정의(String defStr, String asStr)
void setSystemDirectory(문자열 디렉토리)
void setWorkingDirectory(문자열 디렉토리)
GAMSJob addJobFromString(문자열 소스)
슬롯 게임데이터베이스 addDatabase()
이 예는 서로 다른 시나리오를 사용하여 여러 GAMSJob을 병렬로 실행하는 방법을 보여줍니다.