설명
크레이지 슬롯 31에서는 변수 영역을 제한하는 기능을 도입했습니다. 모델 선언문에서. 이 테스트에서는 더미 모델을 사용하여 이 새로운 이 기능은 명시적인 달러 조건이나 명시적인 달러 조건을 사용하는 것과 동일한 결과를 가져옵니다. 하위 집합. 또한 새로운 방법의 모델 생성 시간이 다음과 같은지 확인합니다. doTimeTest가 설정된 경우 기존 방법 중 하나보다 나쁘지 않습니다. 기고자: Lutz Westermann, 2020년 3월
대형 모델 유형 :크레이지 슬롯
카테고리 : 크레이지 슬롯 테스트 라이브러리
메인 파일 : limdom02.gms
$title 모델 변수에 대한 제한된 도메인의 성능 테스트(limdom02,SEQ=813)
$onText
크레이지 슬롯 31에서는 변수 영역을 제한하는 기능을 도입했습니다.
모델 선언문에서. 이 테스트에서는 더미 모델을 사용하여 이 새로운
이 기능은 명시적인 달러 조건이나 명시적인 달러 조건을 사용하는 것과 동일한 결과를 가져옵니다.
하위 집합. 또한 새로운 방법의 모델 생성 시간이 다음과 같은지 확인합니다.
doTimeTest가 설정된 경우 기존 방법 중 하나보다 나쁘지 않습니다.
기고자: Lutz Westermann, 2020년 3월
$offText
i / i1 * i300 / 설정;
별칭(i,j,k);
하위(i,j,k)를 설정합니다.
sub(i,j,k)$(uniform(0,1)<0.1) = 예;
양수 변수 x(i,j,k);
변수 z;
방정식 objDLV 도메인 제한 변수와 함께 사용되는 더미 목적 함수
objDOL 명시적 DOLlar 조건을 사용하는 더미 목적 함수
objSUB SUBset을 사용하는 더미 목적 함수;
objDLV.. z =e= sum((i,j,k), x(i,j,k));
objDOL.. z =e= sum((i,j,k), x(i,j,k)$sub(i,j,k));
objSUB.. z =e= sum(sub, x(sub));
모델 mDLV / objDLV, x(sub) /;
모델 mDOL / objDOL /;
모델 mSUB / objSUB /;
$echo 크레이지 슬롯=크레이지 슬롯gms > 변환.opt
mDLV.optfile = 1;
mDOL.optfile = 1;
mSUB.optfile = 1;
스칼라 생성TimeDLV
genTimeDOL
genTimeSUB;
옵션 리미로우 = 0,
림콜 = 0,
솔프린트 = 꺼짐,
lp = 변환;
mDLV min z를 풀려면 lp를 사용하세요.
genTimeDLV = mDLV.resGen;
Execute.CheckErrorLevel 'grep -v "크레이지 슬롯로 작성된 LP" 크레이지 슬롯gms > mDLV.gms';
mDOL min z를 풀려면 lp를 사용하세요.
genTimeDOL = mDOL.resGen;
Execute.CheckErrorLevel 'grep -v "크레이지 슬롯로 작성된 LP" 크레이지 슬롯gms > mDOL.gms';
mSUB min z를 해결하려면 lp를 사용하세요.
genTimeSUB = mSUB.resGen;
Execute.CheckErrorLevel 'grep -v "크레이지 슬롯로 작성된 LP" 크레이지 슬롯gms > mSUB.gms';
Execute.CheckErrorLevel '=diff -b mDLV.gms mDOL.gms';
Execute.CheckErrorLevel '=diff -b mDLV.gms mSUB.gms';
genTimeDLV, genTimeDOL, genTimeSUB 표시;
$if set doTimeTest abort$(genTimeDLV > genTimeDOL*1.1) 'DLV 생성 시간이 너무 김';