설명
소형 모델 유형 :MIP
카테고리 : 슬롯 테스트 라이브러리
메인 파일 : n3707.gms
$title 'CTRLC 테스트에 사용된 MIP 모델' (N3707,SEQ=587)
모든 행을 MPS 순서로 설정합니다.
ig(i) 크거나 같은 행
il(i) 작거나 같은 행
즉(i) 동등 행
ir(i) 범위 행;
방정식 eobj 목적 함수
예(i) 크거나 같음
el(i) 작거나 같음
ee(i) 평등은 동등하다
er(i) 범위 equs;
j개의 모든 열을 MPS 순서로 설정합니다.
jc (j) 연속 열
jb (j) 이진 열
ji (j) 정수 열
jsc(j) 반연속 열
jsi(j) 반정수 열
S SOS 세트
js1(s,j) sos 1개 열
js2(s,j) sos 2개 열;
변수 obj 목적 변수
양의 변수 xc (j) 연속 변수
r (i) 범위 행 변수
이진 변수 xb (j) 이진 변수
정수 변수 xi (j) 정수 변수
반연속 변수 xsc(j) 반연속 변수
반정수 변수 xsi(j) 반정수 변수
sos1 변수 xs1(s,j) sos 1 변수
sos2 변수 xs2(s,j) sos 2 변수;
매개변수 c(j) 목적 계수
cobj 목적 상수
b(i) 오른쪽
ac (i,jc) 행렬 계수: 연속형 변수
ab (i,jb) 행렬 계수: 이진 변수
ai (i,ji) 행렬 계수: 정수 변수
asc(i,jsc) 행렬 계수: 반연속 변수
asi(i,jsi) 행렬 계수: 반정수 변수
as1(i,s,j) 행렬 계수: sos 1 변수
as2(i,s,j) 행렬 계수: sos 2개 변수;
eobj..obj =e= sum(jc, c(jc )*xc (jc ))
+ 합계(jb, c(jb)*xb(jb))
+ 합계(ji, c(ji )*xi(ji ))
+ 합계(jsc, c(jsc)*xsc(jsc))
+ 합계(jsi, c(jsi)*xsi(jsi))
+ 합계(js1(s,j), c(j)*xs1(js1))
+ sum(js2(s,j), c(j)*xs2(js2)) + cobj;
예(ig).. sum(jc, ac (ig,jc )*xc (jc ))
+ 합계(jb, ab (ig,jb)*xb (jb))
+ sum(ji, ai (ig,ji )*xi (ji ))
+ 합계(jsc, asc(ig,jsc)*xsc(jsc))
+ 합계(jsi, asi(ig,jsi)*xsi(jsi))
+ 합계(js1, as1(ig,js1)*xs1(js1))
+ sum(js2, as2(ig,js2)*xs2(js2)) =g= b(ig);
el(il).. sum(jc, ac (il,jc )*xc (jc ))
+ 합계(jb, ab(il,jb)*xb(jb))
+ 합계(지, 아이(일,지)*xi(지))
+ 합계(jsc, asc(il,jsc)*xsc(jsc))
+ 합계(jsi, asi(il,jsi)*xsi(jsi))
+ 합계(js1, as1(il,js1)*xs1(js1))
+ sum(js2, as2(il,js2)*xs2(js2)) =l= b(il);
ee(즉).. sum(jc, ac (즉,jc )*xc (jc ))
+ 합계(jb, ab (즉,jb)*xb (jb))
+ sum(ji, ai (ie,ji )*xi (ji ))
+ 합계(jsc, asc(즉,jsc)*xsc(jsc))
+ 합계(jsi, asi(즉,jsi)*xsi(jsi))
+ 합계(js1, as1(즉,js1)*xs1(js1))
+ sum(js2, as2(ie,js2)*xs2(js2)) =e= b(ie);
er(ir).. sum(jc, ac (ir,jc )*xc (jc ))
+ 합계(jb, ab(ir,jb)*xb(jb))
+ sum(ji, ai (ir,ji )*xi (ji ))
+ 합계(jsc, asc(ir,jsc)*xsc(jsc))
+ 합계(jsi, asi(ir,jsi)*xsi(jsi))
+ 합계(js1, as1(ir,js1)*xs1(js1))
+ sum(js2, as2(ir,js2)*xs2(js2)) =e= r(ir);
모델 m / 모두 /;
mps2gdx를 설정; 매개변수 mps2gdxstats(mps2gdx);
*=== --gdxfile이 지정된 경우
*======= 모델 데이터 로드
$gdxfile을 설정하지 않은 경우 $goTo nogdxfile
$gdxIn %gdxfile%.gdx
$load i j mps2gdx s mps2gdxstats
$load ig il 즉 ir
$load jc jb ji jsc jsi js1 js2
$load cobj cb
$load ac ab ai asc asi as1 as2
$load xc xb xi xsc xsi xs1 xs2 r
$gdxIn
*====== 지정된 경우 포인트 데이터 로드
$if 설정 포인트 $gdxIn %gdxfile%_%point%.gdx
$if 설정 포인트 $load ee 예: el eobj
$if 설정점 $load xc xb xi xsc xsi xs1 xs2 r
$goTo 완료egdxfile
*=== --gdxfile이 지정되지 않았습니다.
*======= 모델 데이터 로드
$label nogdx파일
$gdxIn n3707.gdx
$load i j mps2gdx s mps2gdxstats
$load ig il 즉 ir
$load jc jb ji jsc jsi js1 js2
$load cobj cb
$load ac ab ai asc asi as1 as2
$load xc xb xi xsc xsi xs1 xs2 r
$gdxIn
*======= 지정된 경우 포인트 데이터 로드
$if 세트 포인트 $gdxIn n3707_%point%.gdx
$if 설정 포인트 $load ee 예: el eobj
$if 설정점 $load xc xb xi xsc xsi xs1 xs2 r
$label donegdxfile
옵션 limcol=0,limrow=0,solprint=off;
obj를 최소화하는 mip를 사용하여 m을 해결합니다.