로드 중...
검색 중...
일치하는 항목 없음
Clad.cs
1사용 중시스템;
2사용 중System.Collections.Generic;
3사용 중System.Linq;
4사용 중시스템.텍스트;
5사용 중슬롯 사이트;
6사용 중System.Threading;
7사용 중시스템.IO;
8사용 중시스템.진단;
9사용 중System.Text.RegularExpressions;
10
11네임스페이스클래드
12{
27 클래스클래드
28{
29 정적 int메인(문자열[] 인수)
30{
32 if(Environment.GetCommandLineArgs().Length > 1)
33ws =신규 슬롯 사이트작업공간(systemDirectory: Environment.GetCommandLineArgs()[1]);
34 그밖에
36
37 // 슬롯 사이트 모델 라이브러리 모델 "clad"를 예로 사용
38 GAMSJobj1 = ws.AddJobFromGamsLib("입은");
39
40 // 사용할 솔버에 대한 옵션 파일을 정의
41 사용 중(StreamWriter 아웃파일 =신규StreamWriter(Path.Combine(ws.작업 디렉터리, "cplex.opt")))
42{
43 // 처음에는 상대 중지 허용 오차를 0으로 설정
44outfile.WriteLine("epgap 0");
45 // 인터럽트 시 대화형 옵션 설정 활성화
46outfile.WriteLine("대화형 1");
47 // 인터럽트 시 읽을 새 옵션 파일 정의
48outfile.WriteLine("iafile cplex.op2");
49}
50
52opt.MIP ="복합체";
53opt.OptFile = 1;
54opt.SolveLink =슬롯 사이트옵션.ESolveLink.LoadLibrary;
55opt.Threads = 1;
56
57StringWriter sw =신규StringWriter();
58
59 // 별도의 스레드에서 GAMSJob j1 실행
60스레드 optThread =신규스레드(신규ThreadStart(delegate() j1.실행(출력: sw, gamsOptions: 선택); ));
61optThread.Start();
62
63 // 증가하는 중지 허용 오차 목록 정의
64목록<Tuple<int, String>> 단계 =신규목록<Tuple<int, 문자열>>();
65단계.추가(신규튜플<int, 문자열>(5,"epgap 0.1"));
66단계.추가(신규튜플<int, 문자열>(10,"epgap 0.2"));
67단계.추가(신규튜플<int, 문자열>(20,"epagap 1e9"));
68
69 intprevStep = 0;
70 foreach(var s걸음)
71{
72 // 잠시 기다렸다가 j1이 아직 실행 중인지 확인하세요.
73 if(optThread.Join(TimeSpan.FromSeconds(s.Item1 - prevStep)))
74 휴식;
75prevStep = s.Item1;
76 // 새 Cplex 옵션 파일 작성
77 사용 중(StreamWriter 아웃파일 =신규StreamWriter(Path.Combine(ws.WorkingDirectory,"cplex.op2")))
78outfile.WriteLine(s.Item2);
79 // 새 Cplex 옵션 파일을 읽기 위해 j1을 중단합니다.
80j1.Interrupt();
81Console.WriteLine("새 옵션을 계속하기 위해 Cplex가 중단되었습니다: "+ s.Item2);
82}
83
84 // j1이 아직 실행 중이면 완료될 때까지 기다리세요.
85 if(optThread.IsAlive)
86optThread.Join();
87
88 // 모든 것이 예상대로 작동했는지 확인
89문자열 로그 = sw.ToString();
90 if(!log.Contains("중단되었습니다..."))
91{
92Console.WriteLine("솔버가 적어도 한 번은 중단될 것으로 예상됩니다.");
93 반환1;
94}
95 반환0;
96}
97}
98}
void Run(GAMSOptions gamsOptions=null, GAMSCheckpoint 체크포인트=null, TextWriter 출력=null, Boolean createOutDB=true)
GAMSJob AddJobFromGamsLib(문자열 모델, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
GAMSOptions AddOptions(GAMSOptions optFrom=null)