로드 중...
검색 중...
일치하는 항목 없음
슬롯 커뮤니티java
1패키지com.gams.examples.cutstock;
2
3가져오기java.io.PrintStream;
4
6가져오기 com.게임.API.GAMS예외;
7가져오기 com.게임.API.GAMSJob;
8가져오기 com.게임.API.GAMS옵션;
9가져오기 com.게임.API.GAMS매개변수;
10가져오기 com.감스.API.GAMSSet;
11가져오기 com.게임.API.GAMS작업공간;
12
17공개 클래스컷스톡모델{
18 비공개 GAMSSetf폭;
19 비공개 GAMS매개변수fRawWidth;
20 비공개 GAMS매개변수f수요;
21 비공개 GAMS매개변수f폭;
22 비공개 GAMS매개변수fPatRep;
23
24 비공개 GAMS작업공간fws;
25 비공개 GAMS데이터베이스fCutstockData, fDbOut;
26 비공개GAMSOptions fopt;
27 비공개 GAMSJob직업;
28
33fws = ws;
34fopt = ws.추가옵션();
35
36fCutstockData = ws.추가데이터베이스("gdxincname");
37
38fopt.defines("gdxincname", "gdxincname");
39fopt.setSolveLink( GAMSOptions.ESolveLink.LoadLibrary );
40fopt.defines("dbOut1", "dbOut1");
41
42fWidths = fCutstockData.추가세트("나", "너비");
43fRawWidth = fCutstockData.addParameter("r", "원시 너비");
44fDemand = fCutstockData.addParameter("d", "수요", fWidths);
45fWidth = fCutstockData.addParameter("w", "너비", fWidths);
46
47직업 = ws.addJobFromString( 이.getModelSource() );
48}
49
51 공개 공허 실행() {
52이것.실행();
53}
54
58 공개 무효 실행(PrintStream 출력)
59 if(!fCutstockData.checkDomains())
60 던지다 신규 GAMS예외("컷스톡 데이터베이스의 도메인 오류");
61
62직업.실행(fopt,, 출력,거짓, fCutstockData);
63fDbOut = fws.addDatabaseFromGDX(fopt.getDefinitionOf("dbOut1") +".gdx");
64fPatRep = fDbOut.getParameter("패트렙");
65}
66
68 공개 GAMSSet getWidths() {반환f폭;
69
71 공개 GAMS매개변수 getRawWidth() {반환f원시 너비;
72
74 공개 GAMS매개변수 getDemand() {반환f수요;
75
77 공개 GAMS매개변수 getWidth() {반환f폭;
78
80 공개 GAMS매개변수 getPatRep() {반환fPatRep;
81
83 공개GAMS옵션getOpt() {반환fopt;
84
86 공개문자열getModelSource() {반환모델;
87
88 정적문자열 모델 =
89 "$Title 절단 스톡 - 열 생성 접근 방식(CUTSTOCK,SEQ=294) 슬롯 커뮤니티" +
90 " 슬롯 커뮤니티" +
91 "$ontext 슬롯 커뮤니티" +
92 "과제는 슬롯 커뮤니티에서 다양한 크기의 종이 제품을 잘라내는 것입니다." +
93 "고객의 주문을 충족시키기 위한 대형 원시 종이 롤. 목표 슬롯 커뮤니티" +
94 "필요한 종이 롤 수를 최소화하는 것입니다. 슬롯 커뮤니티" +
95 " 슬롯 커뮤니티" +
96 "P. C. Gilmore 및 R. E. Gomory, 슬롯 커뮤니티에 대한 선형 프로그래밍 접근 방식" +
97 "재고 문제, 파트 I, Operations Research 9(1961), 849-859. 슬롯 커뮤니티" +
98 " 슬롯 커뮤니티" +
99 "P. C. Gilmore 및 R. E. Gomory, 슬롯 커뮤니티에 대한 선형 프로그래밍 접근 방식" +
100 "재고 문제, 파트 II, Operations Research 11(1963), 863-888. 슬롯 커뮤니티" +
101 "$오프텍스트 슬롯 커뮤니티" +
102 " 슬롯 커뮤니티" +
103 "i 너비 설정 슬롯 커뮤니티" +
104 "매개변수 슬롯 커뮤니티" +
105 " r 원시 너비 슬롯 커뮤니티" +
106 " w(i) 너비 슬롯 커뮤니티" +
107 " d(i) 수요 ; 슬롯 커뮤니티" +
108 " 슬롯 커뮤니티" +
109 "$if가 설정되지 않은 경우 gdxincname $abort '제공된 데이터 파일에 대한 포함 파일 이름 없음'슬롯 커뮤니티" +
110 "$gdxin %gdxincname% 슬롯 커뮤니티" +
111 "$load r i w d 슬롯 커뮤니티" +
112 "$gdxin 슬롯 커뮤니티" +
113 " 슬롯 커뮤니티" +
114 "* 길모어-고모리 열 생성 알고리즘 슬롯 커뮤니티" +
115 " 슬롯 커뮤니티" +
116 "p 가능한 패턴 설정 /p1*p1000/ 슬롯 커뮤니티" +
117 " p의 pp(p) 동적 하위 집합 슬롯 커뮤니티" +
118 "매개변수 슬롯 커뮤니티" +
119 " aip(i,p) p에서 성장하는 패턴의 너비 i 수; 슬롯 커뮤니티" +
120 " 슬롯 커뮤니티" +
121 "* 마스터 모델 슬롯 커뮤니티" +
122 "가변 xp(p) 패턴이 사용되었습니다 슬롯 커뮤니티" +
123 " z 목적 변수 슬롯 커뮤니티" +
124 "정수 변수 xp; xp.up(p) = sum(i, d(i)); 슬롯 커뮤니티" +
125 " 슬롯 커뮤니티" +
126 "사용된 패턴의 방정식 숫자 슬롯 커뮤니티" +
127 " 수요(i) 수요를 충족; 슬롯 커뮤니티" +
128 " 슬롯 커뮤니티" +
129 "numpat.. z =e= sum(pp, xp(pp)); 슬롯 커뮤니티" +
130 "수요(i).. sum(pp, aip(i,pp)*xp(pp)) =g= d(i); 슬롯 커뮤니티" +
131 " 슬롯 커뮤니티" +
132 "모델 마스터 /numpat, 수요/; 슬롯 커뮤니티" +
133 " 슬롯 커뮤니티" +
134 "* 가격 문제 - 배낭 모델 슬롯 커뮤니티" +
135 "변수 y(i) 새로운 패턴; 슬롯 커뮤니티" +
136 "정수 변수 y; y.up(i) = ceil(r/w(i)); 슬롯 커뮤니티" +
137 " 슬롯 커뮤니티" +
138 "방정식 defobj 슬롯 커뮤니티" +
139 " 배낭 배낭 제약 조건; 슬롯 커뮤니티" +
140 " 슬롯 커뮤니티" +
141 "defobj.. z =e= 1 - 합계(i, 수요.m(i)*y(i)); 슬롯 커뮤니티" +
142 "배낭.. sum(i, w(i)*y(i)) =l= r; 슬롯 커뮤니티" +
143 " 슬롯 커뮤니티" +
144 "모델 가격 /defobj, 배낭/; 슬롯 커뮤니티" +
145 " 슬롯 커뮤니티" +
146 "* 초기화 - 초기 패턴은 단일 너비를 갖습니다 슬롯 커뮤니티" +
147 "pp(p) = ord(p)<=카드(i); 슬롯 커뮤니티" +
148 "aip(i,pp(p))$(ord(i)=ord(p)) = 바닥(r/w(i)); 슬롯 커뮤니티" +
149 "*아이피 표시; 슬롯 커뮤니티" +
150 " 슬롯 커뮤니티" +
151 "스칼라 완료 루프 표시기 /0/ 슬롯 커뮤니티" +
152 "마지막 패턴의 pi(p) 세트를 설정하십시오; pi(p) = ord(p)=card(pp)+1; 슬롯 커뮤니티" +
153 " 슬롯 커뮤니티" +
154 "옵션 optcr=0,limrow=0,limcol=0,solprint=off; 슬롯 커뮤니티" +
155 " 슬롯 커뮤니티" +
156 "그동안(완료되지 않았고 카드(pp)<카드(p), 슬롯 커뮤니티" +
157 " z를 최소화하는 rmip를 사용하여 마스터를 해결합니다. 슬롯 커뮤니티" +
158 " z를 최소화하는 mip를 사용하여 가격 책정 해결; 슬롯 커뮤니티" +
159 " 슬롯 커뮤니티" +
160 "* 마스터 모델을 개선할 수 있는 패턴을 찾았습니까? 슬롯 커뮤니티" +
161 " if(z.l < -0.001, 슬롯 커뮤니티" +
162 " aip(i,pi) = round(y.l(i)); 슬롯 커뮤니티" +
163 " pp(pi) = 예; pi(p) = pi(p-1); 슬롯 커뮤니티" +
164 " 그렇지 않으면 슬롯 커뮤니티" +
165 " 완료 = 1; 슬롯 커뮤니티" +
166 " ); 슬롯 커뮤니티" +
167 "); 슬롯 커뮤니티" +
168 "'롤 수의 하한값' 표시, master.objval; 슬롯 커뮤니티" +
169 " 슬롯 커뮤니티" +
170 "옵션 solprint=on; 슬롯 커뮤니티" +
171 "z를 최소화하는 mip를 사용하여 마스터를 해결합니다; 슬롯 커뮤니티" +
172 " 슬롯 커뮤니티" +
173 "매개변수 patrep 솔루션 패턴 보고서 슬롯 커뮤니티" +
174 " demrep 솔루션 수요 공급 보고서; 슬롯 커뮤니티" +
175 " 슬롯 커뮤니티" +
176 "patrep('# 생산됨',p) = round(xp.l(p)); 슬롯 커뮤니티" +
177 "patrep(i,p)$patrep('# 생산됨',p) = aip(i,p); 슬롯 커뮤니티" +
178 "patrep(i,'전체') = 합계(p, patrep(i,p)); 슬롯 커뮤니티" +
179 "patrep('생산 횟수','총계') = sum(p, patrep('생산 횟수',p)); 슬롯 커뮤니티" +
180 " 슬롯 커뮤니티" +
181 "demrep(i,'생산됨') = sum(p,patrep(i,p)*patrep('# 생산됨',p)); 슬롯 커뮤니티" +
182 "demrep(i,'수요') = d(i); 슬롯 커뮤니티" +
183 "demrep(i,'over') = demrep(i,'생산됨') - demrep(i,'수요'); 슬롯 커뮤니티" +
184 " 슬롯 커뮤니티" +
185 "표시 patrep, demrep; 슬롯 커뮤니티" +
186 "$if가 설정되지 않은 경우 dbOut1 $abort '제공된 외부 데이터베이스 1 파일에 대한 파일 이름 없음' 슬롯 커뮤니티" +
187 "execute_unload '%dbOut1%', patrep; 슬롯 커뮤니티" +
188 " ";
189}
GAMSParameter getParameter(문자열 식별자)
GAMSSet addSet(문자열 식별자, 정수 차원)
GAMSParameter addParameter(문자열 식별자, 정수 차원)
GAMSDatabase addDatabaseFromGDX(String gdxFileName)
GAMSJob addJobFromString(문자열 소스)
GAMS데이터베이스 addDatabase()
이 예는 간단한 GAMS [컷스톡] 모델을 기반으로 한 컷스톡 문제의 래퍼 모델을 보여줍니다 ...
GAMSSet getWidths()
입력 기호 얻기, i: 너비
GAMSParameter getDemand()
입력 기호 얻기, d : 수요
무효 실행()
컷스톡 모델을 실행합니다.
GAMSParameter getPatRep()
출력 기호 가져오기, patrep : 솔루션 패턴 보고서
GAMSParameter getRawWidth()
입력 기호 가져오기, r : 원시 너비
GAMSOptions getOpt()
컷스톡 모델 실행을 위한 옵션 가져오기
문자열 getModelSource()
컷스톡 모델의 소스 가져오기
슬롯 커뮤니티(GAMSWorkspace ws)
슬롯 커뮤니티 생성자.
void run(PrintStream 출력)
컷스톡 모델을 실행합니다.
GAMSParameter getWidth()
입력 기호 얻기, w : 너비