로드 중...
검색 중...
일치하는 항목 없음
transport_engine.m
1함수transportEngine(varargin)
2
3% 인수에서 작업공간 정보 확인
4 if나긴 > 0
5wsInfo = 슬롯 무료체험control.WorkspaceInfo();
6wsInfo.systemDirectory = varargin1;
7ws = 슬롯 무료체험control.Workspace(wsInfo);
8 그밖에
9ws = 슬롯 무료체험control.Workspace();
10
11
12%가 환경 변수에서 엔진 구성을 읽었습니다.
13engine_url = getenv('ENGINE_URL');
14 ifisempty(engine_url)
15오류('환경 변수 ENGINE_URL이 설정되지 않았습니다');
16
17engine_user = getenv('ENGINE_USER');
18 ifisempty(engine_user)
19오류('환경 변수 ENGINE_USER가 설정되지 않았습니다');
20
21engine_password = getenv('엔진_비밀번호');
22 ifisempty(engine_password)
23오류('환경 변수 ENGINE_PASSWORD가 설정되지 않음');
24
25engine_namespace = getenv('ENGINE_NAMESPACE');
26 ifisempty(engine_namespace)
27오류('환경 변수 ENGINE_NAMESPACE가 설정되지 않았습니다');
28
29
30 % 세트업 구성 필요for슬롯 무료체험 엔진의 모든 작업
31engine_configuration = gams.control.슬롯 무료체험Configuration(엔진_url, 엔진_사용자, ...
32엔진_비밀번호,"", 엔진_네임스페이스);
33
34출력 = 슬롯 무료체험control.PrintStream();
35
36runEngineJob1(ws, 엔진_구성, 출력);
37runEngineJob2(ws, 엔진_구성, 출력);
38runEngineJob3(ws, 엔진_구성, 출력);
39
40
41함수runEngineJob1(ws, 엔진_구성, 출력)
42% a의 데이터로 실행문자열슬롯 무료체험 구문 포함명시적GDX 파일로 내보내기
43
44job = ws.addJobFromString(data());
45
46engine_run_parameters = gams.control.슬롯 무료체험RunParameters();
47engine_run_parameters.configuration = 엔진_구성;
48engine_run_parameters.output = 출력;
49
50output.println('문자열에서 데이터 실행중...');
51job.runEngine(engine_run_parameters);
52job.outDB.export('tdata.gdx');
53
54
55함수runEngineJob2(ws, 엔진_구성, 출력)
56% 작업 실행사용 중데이터 포함 파일을 정의하는 옵션의 인스턴스
57
58job = ws.addJobFromString(model());
59opt = ws.addOptions();
60opt.defines('gdxincname', 'tdata');
61opt.setAllModelTypes('익스프레스');
62
63engine_run_parameters = gams.control.슬롯 무료체험RunParameters();
64engine_run_parameters.configuration = 엔진_구성;
65engine_run_parameters.output = 출력;
66engine_run_parameters.options = 선택;
67engine_run_parameters.extraModelFiles ="tdata.gdx"};
68engine_run_parameters.engineOptions = 컨테이너.맵(...
69{'inex_string'}, {'"유형": "포함", "파일": ["*.gdx"]'});
70
71output.println('데이터 포함 파일을 정의하는 옵션 인스턴스를 사용하여 실행 중...');
72job.runEngine(engine_run_parameters);
73
74% 변수 검색'x'욥으로부터의 출력 데이터베이스
75for x = job.outDB.getVariable('x').기록
76fprintf('x(%s,%s): 레벨=%g 한계=%g\n', x1.keys:, x1.level, x1.marginal);
77
78
79
80함수 runEngineJob3(ws, 엔진_구성, 출력)
81% 2와 동일하지만 암시적 데이터베이스 통신이 있음
82
83job1 = ws.addJobFromString(data());
84
85engine_run_parameters = gams.control.슬롯 무료체험RunParameters();
86engine_run_parameters.configuration = 엔진_구성;
87engine_run_parameters.output = 출력;
88
89output.println('문자열에서 데이터를 실행하는 중...');
90job1.runEngine(engine_run_parameters);
91
92job2 = ws.addJobFromString(model());
93cp = ws.addCheckpoint();
94opt = ws.addOptions();
95opt.defines('gdxincname', job1.outDB.name);
96opt.setAllModelTypes('익스프레스');
97
98engine_run_parameters = gams.control.슬롯 무료체험RunParameters();
99engine_run_parameters.configuration = 엔진_구성;
100engine_run_parameters.output = 출력;
101engine_run_parameters.options = 선택;
102engine_run_parameters.checkpoint = cp;
103engine_run_parameters.databases = job1.outDB;
104
105output.println('체크포인트 암시적 데이터베이스 통신을 사용하여 문자열에서 모델을 실행 중...');
106job2.runEngine(engine_run_parameters);
107
108% 검색 변수 'x' 욥에게서's 출력 데이터베이스
109for x = job2.outDB.getVariable('x').기록
110fprintf('x(%s,%s): 레벨=%g 한계=%g\n', x1.keys:, x1.level, x1.marginal);
111
112
113
114함수데이터 = 데이터()
115데이터 =
116 '세트'
117 ' 나는 통조림 공장 / 시애틀, 샌디에고 / '
118 ' j 마켓 / 뉴욕, 시카고, 토피카 / ; '
119 '매개변수'
120 ' '
121 ' a(i) '의 경우 공장 i의 용량
122 ' /시애틀 350'
123 ' 샌디에고 600 / '
124 ' '
125 ' b(j) '의 경우 시장 j의 수요
126 ' /뉴욕 325'
127 ' 시카고 300'
128 ' 토피카 275 / ; '
129 ' '
130 '테이블 d(i,j) 거리(천 마일 단위) '
131 ' 뉴욕 시카고 토피카 '
132 ' 시애틀 2.5 1.7 1.8'
133 ' 샌디에고 2.5 1.8 1.4 ; '
134 ' '
135 '천 마일당 케이스당 달러 단위의 스칼라 f 화물 /90/ '
136 ' bmult 수요 승수 /1/; '};
137데이터 = 스프린트f('%s\n', 데이터:);
138
139
140함수모델 = 모델()
141모델 =
142 '세트'
143 ' 나는 통조림 식물 '
144 ' j 시장 '
145 ' '
146 ' 매개변수 '
147 ' a(i) '의 경우 공장 i의 용량
148 ' b(j) '의 경우 시장 j의 수요
149 ' d(i,j) 거리(천 마일) '
150 ' '
151 ' 스칼라 f 운임(1,000마일당 케이스당 달러); '
152 ' 스칼라 bmult 수요 승수; '
153 ' '
154 '$gdxincname $abort가 설정되지 않은 경우 ''제공된 데이터 파일에 대한 포함 파일 이름이 없습니다'''
155 '$gdxin %gdxincname% '
156 '$load i j a b d f bmult '
157 '$gdxin '
158 ' '
159 ' 매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ; '
160 ' c(i,j) = f * d(i,j) / 1000 ; '
161 ' '
162 ' 변수 '
163 ' x(i,j) '의 경우 배송 수량
164 ' z 총 운송 비용(단위: 수천 달러); '
165 ' '
166 ' 양수 변수 x ; '
167 ' '
168 ' 방정식 '
169 ' 비용 정의 목적 함수 '
170 ' 공급(i) 공장 i의 공급 제한을 준수합니다. '
171 ' 수요(j)는 시장 j의 수요를 충족시킵니다. '
172 ' '
173 ' 비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ; '
174 ' '
175 ' 공급(i) .. sum(j, x(i,j)) =l= a(i) ; '
176 ' '
177 ' 수요(j) .. sum(i, x(i,j)) =g= bmult*b(j) ; '
178 ' '
179 ' 모델 전송 /all/ ; '
180 ' '
181 ' z 를 최소화하는 lp를 사용하여 전송을 해결합니다. '
182 ' '
183 '스칼라'
184 ' ms 모델 상태 '
185 ' ss 해결 상태; '
186 ' '
187 ' x.l, x.m 표시 ; '};
188모델 = 스프린트f('%s\n', 모델:);
189