2사용 중System.Collections.Generic;
26 if(Environment.GetCommandLineArgs().Length > 1)
27ws =
신규 슬롯 머신작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
43목록<string> n =
신규목록<문자열>();
56cMax = curCut + cutsPerRound;
63선택.
정의.추가(
"nrcities",
"20");
64선택.
정의.추가(
"cmax", (cMax - 1).ToString());
65선택.
정의.추가(
"컷데이터", 컷데이터.
이름);
66선택.
정의.추가(
"tspdata",
"\""+ Path.Combine(ws.
시스템 디렉터리,
@"apifiles/Data/tsp.gdx") +
"\"");
87사전<문자열, 문자열> 그래프 =
신규사전<문자열, 문자열>();
88목록<문자열> 방문하지 않음 =
신규목록<문자열>(n);
95 그동안(notVisited.Count != 0)
100 그동안(그래프[ii] != 방문하지 않음[0])
105notVisited = notVisited.Where(x => !subTour.Contains(x)).ToList<
문자열>();
109 foreach (
문자열j
in하위 투어)
115rhscut.
AddRecord(
"c"+ curCut).
값= subTour.Count() - 0.5;
116miRhscut.
AddRecord(
"c"+ curCut).
값= subTour.Count() - 0.5;
121 그동안(subTour.Count < n.Count);
124Console.WriteLine(
"sub_tour: ");
127Console.WriteLine(subTour[0]);
134$Title Python을 사용한 여행 외판원 문제 인스턴스
138sub_tour 제거 제약 조건은 Python에 의해 생성됩니다.
139스크립트. MIP는 계속해서 해결되지만 슬롯 머신는 해결해야 합니다.
140n개의 컷이 추가된 후에만 모델을 생성합니다.
144$tspdata가 설정되지 않은 경우 $abort 'tspdata가 설정되지 않음'
155$nrCities가 설정되지 않은 경우 $set nrCities 20
156i(ii)$(ord(ii) < %nrCities%) = 예;
158변수 x(ii,jj) 결정 변수 - 여행 구간
160바이너리 변수 x; x.fx(ii,ii) = 0;
163rowsum(ii) 각 도시를 한 번만 출발
164colsum(jj)는 각 도시에 한 번만 도착합니다.
167목적.. z =e= sum((i,j), c(i,j)*x(i,j));
168rowsum(i).. sum(j, x(i,j)) =e= 1;
169colsum(j).. sum(i, x(i,j)) =e= 1;
171$cmax가 설정되지 않은 경우 $set cmax 2
174acut(cut,ii,jj) 절단 제약 행렬
175rhscut(cut) 제약조건 rhs 자르기;
177equation sscut(cut) sub_tour 제거 컷;
178sscut(cut).. sum((i,j), Acut(cut,i,j)*x(i,j)) =l= RHScut(cut);
180cc(컷) 이전 컷 설정; cc(컷) = 아니요;
181$if set cutdataexecute_load '%cutdata%', cc, Acut, RHScut;
183Acut(cut,i,j)$(cc(cut) 아님) = eps;
184RHScut(컷)$(cc(컷) 아님) = 카드(ii);
GAMSModelInstance AddModelInstance(string modelInstanceName=null)
GAMSVariable GetVariable(문자열 변수 식별자)
GAMSSet AddSet(문자열 식별자, int 차원, 문자열 설명텍스트="", SetType setType=SetType.multi)
GAMSParameter GetParameter(문자열 매개변수 식별자)
GAMSParameter AddParameter(문자열 식별자, 정수 차원, 문자열 설명텍스트="")
void 내보내기(string filePath=null)
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
void Solve(SymbolUpdateType 업데이트 유형=SymbolUpdateType.BaseCase, TextWriter 출력=null, GAMSModelInstanceOpt miOpt=null)
void 인스턴스화(문자열 모델 정의, params GAMSModifier[] 수정자)
새 GAMSParameterRecord AddRecord(params 문자열[] 키)
새 GAMSSetRecord AddRecord(params 문자열[] 키)
새 GAMSVariableRecord FindRecord(params 문자열[] 키)
새 GAMSVariableRecord FirstRecord()
GAMSJob AddJobFromString(문자열 gamsSource, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSDatabase AddDatabase(문자열 데이터베이스 이름=null, 문자열 inModelName=null)
GAMSCheckpoint AddCheckpoint(string checkpointName=null)
GAMSOptions AddOptions(GAMSOptions optFrom=null)