로드 중...
검색 중...
일치하는 항목 없음
Transport6.cs
1사용 중시스템;
2사용 중System.Collections.Generic;
3사용 중시스템.텍스트;
4사용 중시스템.IO;
5사용 중무료 슬롯;
6
7네임스페이스TransportSeq
8{
17 클래스운송6
18{
19 정적 무효실행 시나리오(무료 슬롯작업공간ws,무료 슬롯체크포인트cp,객체ioMutex,더블b)
20{
21 GAMSJobt6 = ws.AddJobFromString("bmult="+ b +"; lp를 사용하여 전송 최소 z 해결; ms=transport.modelstat; ss=transport.solvestat;", cp);
22t6.실행();
23 // 보고서 정보가 엉망이 되지 않도록 출력을 중요한 섹션으로 만들어야 합니다.
24잠금(ioMutex)
25{
26Console.WriteLine("시나리오 bmult="+ b +":");
27Console.WriteLine(" 모델 상태: "+ t6.아웃DB.GetParameter("ms").기록 찾기().);
28Console.WriteLine(" 해결 상태: "+ t6.아웃DB.GetParameter("ss").기록 찾기().);
29Console.WriteLine(" 개체: "+ t6.아웃DB.GetVariable("z").기록 찾기().레벨);
30}
31}
32 정적 공허메인(문자열[] 인수)
33{
35 if(Environment.GetCommandLineArgs().Length > 1)
36ws =신규 무료 슬롯작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
37 그밖에
38ws =신규 무료 슬롯작업공간();
40
41 // GAMSJob을 실행하여 GAMSCheckpoint 초기화
42ws.AddJobFromString(GetModelText()).실행(cp);
43
44 더블[] bmultilist =신규 더블[] { 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3 };
45
46 // 생성된 GAMSCheckpoint를 사용하여 여러 병렬 작업 실행
47객체 ioMutex =신규객체();
48System.Threading.Tasks.Parallel.ForEach(bmultlist, 대리자(더블b) RunScenario(ws, cp, ioMutex, b); );
49}
50
51 정적문자열 GetModelText()
52{
53문자열 모델 =@"
54세트
55i 통조림 공장 / 시애틀, 샌디에고 /
56j 마켓 / 뉴욕, 시카고, 토피카 / ;
57
58매개변수
59
60a(i) 경우에 따라 공장 i의 용량
61/시애틀 350
62샌디에고 600 /
63
64b(j) 경우에 따라 시장 j의 수요
65/뉴욕 325
66시카고 300
67토페카 275 / ;
68
69테이블 d(i,j) 거리(천 마일 단위)
70뉴욕 시카고 토피카
71시애틀 2.5 1.7 1.8
72산디에고 2.5 1.8 1.4 ;
73
74천 마일당 케이스당 달러 단위의 스칼라 f 화물 /90/ ;
75스칼라 bmult 수요 승수 /1/;
76
77매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
78
79c(i,j) = f * d(i,j) / 1000 ;
80
81변수
82x(i,j) 케이스의 배송 수량
83z 총 운송 비용(수천 달러) ;
84
85양수 변수 x ;
86
87수식
88비용 정의 목적 함수
89공급(i) 공장 i의 공급 제한을 준수합니다.
90수요(j)는 시장 j의 수요를 충족합니다. ;
91
92비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
93
94공급(i) .. 합계(j, x(i,j)) =l= a(i) ;
95
96수요(j) .. sum(i, x(i,j)) =g= bmult*b(j) ;
97
98모델 전송 /all/ ;
99스칼라 ms '모델 상태', ss '해결 상태';
100";
101
102 반환모델;
103}
104
105}
106}
GAMSVariable GetVariable(문자열 변수 식별자)
GAMSParameter GetParameter(문자열 매개변수 식별자)
무료 슬롯데이터베이스 OutDB
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
새 GAMSParameterRecord FindRecord(params 문자열[] 키)
새 GAMSVariableRecord FindRecord(params 문자열[] 키)
GAMSJob AddJobFromString(문자열 gamsSource, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSCheckpoint AddCheckpoint(string checkpointName=null)
이것은 일련의 튜토리얼 예제 중 6번째 모델입니다. 여기에서는 다음을 보여줍니다. 여러 GAMSJob을 실행하는 방법...