로드 중...
검색 중...
일치하는 항목 없음
피망 슬롯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 : 너비