1패키지com.gams.examples.cutstock;
3가져오기java.io.PrintStream;
36fCutstockData = ws.
추가데이터베이스(
"gdxincname");
38fopt.defines(
"gdxincname",
"gdxincname");
39fopt.setSolveLink( GAMSOptions.ESolveLink.LoadLibrary );
40fopt.defines(
"dbOut1",
"dbOut1");
42fWidths = fCutstockData.
추가세트(
"나",
"너비");
58 공개 무효 실행(PrintStream 출력)
60 던지다 신규 GAMS예외(
"컷스톡 데이터베이스의 도메인 오류");
62직업.
실행(fopt,
널, 출력,
거짓, fCutstockData);
89 "$Title 절단 스톡 - 열 생성 접근 방식(CUTSTOCK,SEQ=294) 슬롯 커뮤니티" +
92 "과제는 슬롯 커뮤니티에서 다양한 크기의 종이 제품을 잘라내는 것입니다." +
93 "고객의 주문을 충족시키기 위한 대형 원시 종이 롤. 목표 슬롯 커뮤니티" +
94 "필요한 종이 롤 수를 최소화하는 것입니다. 슬롯 커뮤니티" +
96 "P. C. Gilmore 및 R. E. Gomory, 슬롯 커뮤니티에 대한 선형 프로그래밍 접근 방식" +
97 "재고 문제, 파트 I, Operations Research 9(1961), 849-859. 슬롯 커뮤니티" +
99 "P. C. Gilmore 및 R. E. Gomory, 슬롯 커뮤니티에 대한 선형 프로그래밍 접근 방식" +
100 "재고 문제, 파트 II, Operations Research 11(1963), 863-888. 슬롯 커뮤니티" +
107 " d(i) 수요 ; 슬롯 커뮤니티" +
109 "$if가 설정되지 않은 경우 gdxincname $abort '제공된 데이터 파일에 대한 포함 파일 이름 없음'슬롯 커뮤니티" +
110 "$gdxin %gdxincname% 슬롯 커뮤니티" +
111 "$load r i w d 슬롯 커뮤니티" +
114 "* 길모어-고모리 열 생성 알고리즘 슬롯 커뮤니티" +
116 "p 가능한 패턴 설정 /p1*p1000/ 슬롯 커뮤니티" +
117 " p의 pp(p) 동적 하위 집합 슬롯 커뮤니티" +
119 " aip(i,p) p에서 성장하는 패턴의 너비 i 수; 슬롯 커뮤니티" +
122 "가변 xp(p) 패턴이 사용되었습니다 슬롯 커뮤니티" +
124 "정수 변수 xp; xp.up(p) = sum(i, d(i)); 슬롯 커뮤니티" +
126 "사용된 패턴의 방정식 숫자 슬롯 커뮤니티" +
127 " 수요(i) 수요를 충족; 슬롯 커뮤니티" +
129 "numpat.. z =e= sum(pp, xp(pp)); 슬롯 커뮤니티" +
130 "수요(i).. sum(pp, aip(i,pp)*xp(pp)) =g= d(i); 슬롯 커뮤니티" +
132 "모델 마스터 /numpat, 수요/; 슬롯 커뮤니티" +
134 "* 가격 문제 - 배낭 모델 슬롯 커뮤니티" +
135 "변수 y(i) 새로운 패턴; 슬롯 커뮤니티" +
136 "정수 변수 y; y.up(i) = ceil(r/w(i)); 슬롯 커뮤니티" +
138 "방정식 defobj 슬롯 커뮤니티" +
139 " 배낭 배낭 제약 조건; 슬롯 커뮤니티" +
141 "defobj.. z =e= 1 - 합계(i, 수요.m(i)*y(i)); 슬롯 커뮤니티" +
142 "배낭.. sum(i, w(i)*y(i)) =l= r; 슬롯 커뮤니티" +
144 "모델 가격 /defobj, 배낭/; 슬롯 커뮤니티" +
146 "* 초기화 - 초기 패턴은 단일 너비를 갖습니다 슬롯 커뮤니티" +
147 "pp(p) = ord(p)<=카드(i); 슬롯 커뮤니티" +
148 "aip(i,pp(p))$(ord(i)=ord(p)) = 바닥(r/w(i)); 슬롯 커뮤니티" +
151 "스칼라 완료 루프 표시기 /0/ 슬롯 커뮤니티" +
152 "마지막 패턴의 pi(p) 세트를 설정하십시오; pi(p) = ord(p)=card(pp)+1; 슬롯 커뮤니티" +
154 "옵션 optcr=0,limrow=0,limcol=0,solprint=off; 슬롯 커뮤니티" +
156 "그동안(완료되지 않았고 카드(pp)<카드(p), 슬롯 커뮤니티" +
157 " z를 최소화하는 rmip를 사용하여 마스터를 해결합니다. 슬롯 커뮤니티" +
158 " z를 최소화하는 mip를 사용하여 가격 책정 해결; 슬롯 커뮤니티" +
160 "* 마스터 모델을 개선할 수 있는 패턴을 찾았습니까? 슬롯 커뮤니티" +
161 " if(z.l < -0.001, 슬롯 커뮤니티" +
162 " aip(i,pi) = round(y.l(i)); 슬롯 커뮤니티" +
163 " pp(pi) = 예; pi(p) = pi(p-1); 슬롯 커뮤니티" +
168 "'롤 수의 하한값' 표시, master.objval; 슬롯 커뮤니티" +
170 "옵션 solprint=on; 슬롯 커뮤니티" +
171 "z를 최소화하는 mip를 사용하여 마스터를 해결합니다; 슬롯 커뮤니티" +
173 "매개변수 patrep 솔루션 패턴 보고서 슬롯 커뮤니티" +
174 " demrep 솔루션 수요 공급 보고서; 슬롯 커뮤니티" +
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)); 슬롯 커뮤니티" +
181 "demrep(i,'생산됨') = sum(p,patrep(i,p)*patrep('# 생산됨',p)); 슬롯 커뮤니티" +
182 "demrep(i,'수요') = d(i); 슬롯 커뮤니티" +
183 "demrep(i,'over') = demrep(i,'생산됨') - demrep(i,'수요'); 슬롯 커뮤니티" +
185 "표시 patrep, demrep; 슬롯 커뮤니티" +
186 "$if가 설정되지 않은 경우 dbOut1 $abort '제공된 외부 데이터베이스 1 파일에 대한 파일 이름 없음' 슬롯 커뮤니티" +
187 "execute_unload '%dbOut1%', patrep; 슬롯 커뮤니티" +
GAMSParameter getParameter(문자열 식별자)
GAMSSet addSet(문자열 식별자, 정수 차원)
GAMSParameter addParameter(문자열 식별자, 정수 차원)
GAMSDatabase addDatabaseFromGDX(String gdxFileName)
GAMSJob addJobFromString(문자열 소스)
이 예는 간단한 GAMS [컷스톡] 모델을 기반으로 한 컷스톡 문제의 래퍼 모델을 보여줍니다 ...
GAMSSet getWidths()
입력 기호 얻기, i: 너비
GAMSParameter getDemand()
입력 기호 얻기, d : 수요
GAMSParameter getPatRep()
출력 기호 가져오기, patrep : 솔루션 패턴 보고서
GAMSParameter getRawWidth()
입력 기호 가져오기, r : 원시 너비
GAMSOptions getOpt()
컷스톡 모델 실행을 위한 옵션 가져오기
문자열 getModelSource()
컷스톡 모델의 소스 가져오기
슬롯 커뮤니티(GAMSWorkspace ws)
슬롯 커뮤니티 생성자.
void run(PrintStream 출력)
컷스톡 모델을 실행합니다.
GAMSParameter getWidth()
입력 기호 얻기, w : 너비