로드 중...
검색 중...
일치하는 항목 없음
Transport14.java
1패키지com.슬롯 게임examples.transport;
2
3가져오기java.io.파일;
4
7가져오기 com.게임.API.GAMSJob;
11가져오기 com.게임.API.GAMSWorkspaceInfo;
12
18공개 클래스운송14{
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]);
25최적[i].start();
26}
27}
28
29 정적 공허initializeWorkspace(String[] args)
31파일 WorkingDirectory =신규파일(System.getProperty("user.dir"), "운송14");
32workingDirectory.mkdir();
33wsInfo.setWorkingDirectory(workingDirectory.getAbsolutePath());
34 if(args.length > 0)
35wsInfo.setSystemDirectory(args[0]);
36Optimizer.setWorkspace(신규 슬롯 게임작업공간(wsInfo) );
37}
38}
39
43클래스최적화자확장스레드
44 정적 슬롯 게임작업공간작업공간 =;
45 더블bmult = 0.0;
46
47 정적 공허setWorkspace(슬롯 게임작업공간ws)
48작업 공간 = ws;
49}
50
51 공개최적화 도구(더블다중)
52 if(작업 공간 ==)
53 던지다 신규GAMSException("작업공간 정보가 없습니다. 최적화 도구를 생성하기 전에 작업공간을 초기화하십시오.");
54bmult = 다중;
55}
56
57 공개 공허실행()
58GAMSDatabase gDb = 작업공간.추가데이터베이스();
59
60슬롯 게임매개변수 f = gDb.addParameter("f", "1,000마일당 케이스당 화물(달러)");
61f.addRecord().setValue( 90 * bmult );
62
63GAMSJob gModJob = 작업공간.addJobFromString( 모델 );
64
65GAMSOptions gOption = 작업공간.추가옵션();
66g옵션.정의("gdxincname", gDb.getName());
67gModJob.run(gOption, gDb);
68
69 doubleobj = gModJob.OutDB().getVariable("z").getFirstRecord().getLevel();
70System.out.println("시나리오 bmult="+ bmult +", Obj="+ obj);
71
72 // 옵션 및 데이터베이스 삭제
73gOption.dispose();
74gDb.dispose();
75gModJob.OutDB().dispose();
76}
77
78 정적문자열 모델 =
79 "세트 \n"+
80 " 나는 식물 통조림 / 시애틀, 샌디에고 / \n"+
81 " j 마켓 / 뉴욕, 시카고, 토피카 / ; \n"+
82 " \n"+
83 "매개변수\n"+
84 " \n"+
85 " a(i) 경우에 따라 공장 i의 용량 \n"+
86 " / 시애틀 350 \n"+
87 " 샌디에고 600 / \n"+
88 " \n"+
89 " b(j) 경우의 시장 j 수요 \n"+
90 " / 뉴욕 325 \n"+
91 " 시카고 300 \n"+
92 " 토피카 275 / ; \n"+
93 " \n"+
94 "테이블 d(i,j) 거리(천 마일 단위) \n"+
95 " 뉴욕 시카고 토피카 \n"+
96 " 시애틀 2.5 1.7 1.8 \n"+
97 " 샌디에고 2.5 1.8 1.4 ; \n"+
98 " \n"+
99 "천 마일당 케이스당 달러 단위의 스칼라 f 운임; \n"+
100 " \n"+
101 "$if가 설정되지 않음 gdxincname $abort '제공된 데이터 파일에 대한 포함 파일 이름 없음' \n"+
102 "$gdxin %gdxincname% \n"+
103 "$load f \n"+
104 "$gdxin \n"+
105 " \n"+
106 "매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ; \n"+
107 " \n"+
108 " c(i,j) = f * d(i,j) / 1000 ; \n"+
109 " \n"+
110 "변수 \n"+
111 " 케이스의 x(i,j) 배송 수량 \n"+
112 " z 총 운송 비용(수천 달러) ; \n"+
113 " \n"+
114 "양수 변수 x ; \n"+
115 " \n"+
116 "방정식 \n"+
117 " 비용 정의 목적 함수 \n"+
118 " 공급(i) 공장 i의 공급 제한 준수 \n"+
119 " 수요(j)는 시장 j의 수요를 충족시킵니다. \n"+
120 " \n"+
121 "비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ; \n"+
122 " \n"+
123 "공급(i) .. 합계(j, x(i,j)) =l= a(i) ; \n"+
124 " \n"+
125 "수요(j) .. 합계(i, x(i,j)) =g= b(j) ; \n"+
126 " \n"+
127 "모델 전송 /all/ ; \n"+
128 " \n"+
129 "z를 최소화하는 lp를 사용하여 전송을 해결합니다. \n"+
130 " \n"+
131 "x.l, x.m 표시; \n"+
132 " \n";
133}
GAMSParameter addParameter(문자열 식별자, 정수 차원)
void 정의(String defStr, String asStr)
void setSystemDirectory(문자열 디렉토리)
void setWorkingDirectory(문자열 디렉토리)
GAMSJob addJobFromString(문자열 소스)
슬롯 게임데이터베이스 addDatabase()
이 예는 서로 다른 시나리오를 사용하여 여러 GAMSJob을 병렬로 실행하는 방법을 보여줍니다.