로드 중...
검색 중...
일치하는 항목 없음
Transport14.cs
1사용 중시스템;
2사용 중System.Collections.Generic;
3사용 중시스템.텍스트;
4사용 중시스템.IO;
5사용 중슬롯;
6사용 중System.Threading.Tasks;
7
8네임스페이스TransportSeq
9{
18 클래스운송14
19{
20 정적 공허메인(문자열[] 인수)
21{
22 더블[] bmultilist =신규 더블[] { 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3 };
23 최적화자최적 =신규 최적화자();
24Parallel.ForEach(bmultlist, 대리자(더블b다중)
25{
26Console.WriteLine("시나리오 bmult="+ bmult +", 개체:"+ optim.solve(bmult));
27});
28}
29}
30
31 클래스최적화자
32{
33 비공개 슬롯작업공간ws;
34
35 공개 최적화자()
36{
37 if(Environment.GetCommandLineArgs().Length > 1)
38ws =신규 슬롯작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
39 그밖에
40ws =신규 슬롯작업공간();
41}
42
43 공개 더블해결(더블다중)
44{
46
47 슬롯매개변수f = gDb.매개변수 추가("f", "1,000마일당 케이스당 달러 단위의 화물");
48f.AddRecord().= 90 * 다중;
49
50 GAMSJobgModJob = ws.AddJobFromString(GetModelText());
51
52 슬롯옵션gOption = ws.추가옵션();
53g옵션.정의.추가("gdxincname", gDb.이름);
54gModJob.실행(gOption, gDb);
55
57}
58
59 비공개문자열 GetModelText()
60{
61문자열 모델 =@"
62세트
63i 통조림 공장 / 시애틀, 샌디에고 /
64j 마켓 / 뉴욕, 시카고, 토피카 / ;
65
66매개변수
67
68a(i) 경우에 따라 공장 i의 용량
69/시애틀 350
70샌디에고 600 /
71
72b(j) 경우에 따라 시장 j의 수요
73/ 뉴욕 325
74시카고 300
75토페카 275 / ;
76
77테이블 d(i,j) 거리(천 마일 단위)
78뉴욕 시카고 토피카
79시애틀 2.5 1.7 1.8
80산디에고 2.5 1.8 1.4 ;
81
82천 마일당 케이스당 달러 단위의 스칼라 f 화물;
83
84$if 설정되지 않음 gdxincname $abort '제공된 데이터 파일에 대한 포함 파일 이름 없음'
85$gdxin %gdxincname%
86$load f
87$gdxin
88
89매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
90
91c(i,j) = f * d(i,j) / 1000 ;
92
93변수
94x(i,j) 케이스의 배송 수량
95z 총 운송 비용(수천 달러) ;
96
97양수 변수 x ;
98
99방정식
100비용 정의 목적 함수
101공급(i) 공장 i의 공급 제한을 준수합니다.
102수요(j)는 시장 j의 수요를 충족합니다. ;
103
104비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
105
106공급(i) .. 합계(j, x(i,j)) =l= a(i) ;
107
108수요(j) .. 합계(i, x(i,j)) =g= b(j) ;
109
110모델 전송 /all/ ;
111
112z를 최소화하는 lp를 사용하여 전송을 해결합니다.
113
114x.l, x.m 표시 ;
115";
116
117 반환모델;
118}
119}
120}
GAMSVariable GetVariable(문자열 변수 식별자)
GAMSParameter AddParameter(문자열 식별자, 정수 차원, 문자열 설명텍스트="")
슬롯데이터베이스 OutDB
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
사전< 문자열, 문자열 > 정의
새 GAMSParameterRecord AddRecord(params 문자열[] 키)
새 GAMSVariableRecord FirstRecord()
GAMSJob AddJobFromString(문자열 gamsSource, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSDatabase AddDatabase(문자열 데이터베이스 이름=null, 문자열 inModelName=null)
GAMSOptions AddOptions(GAMSOptions optFrom=null)
이것은 일련의 튜토리얼 예제 중 14번째 모델입니다. 여기서는 여러 GAMSJob을 실행하는 방법을 보여줍니다....