설명
피망 슬롯 23.1에서는 피망 슬롯 매개변수 PF4가 도입되어 기본값을 수정했습니다.
정수 변수의 상한:
Pf4=0: +INF의 새로운 기본 상한이 솔버에 전달됩니다.
Pf4=1: +INF 대신 100 값이 솔버에 전달됩니다. 는
솔버는 이전 피망 슬롯 버전과 마찬가지로 작동합니다. 추가 메시지
로그 및 목록에 기록되어 개수를 보고합니다.
새로운 기본 경계를 갖는 정수 또는 반정수 변수
+INF는 100으로 재설정됩니다.
PF4=2: +INF의 새로운 기본값이 PF4=0과 마찬가지로 사용됩니다. 언제
해는 피망 슬롯로 반환되고 정수 변수의 수준 값이 반환됩니다.
이전 제한 값인 100을 초과하면 메시지가 로그에 기록됩니다.
그리고 목록.
PF4=3: PF4=2와 동일하며 다음과 같은 경우 추가 실행 오류가 발생합니다.
솔루션은 모든 정수 변수에 대해 100보다 큰 수준 값을 보고합니다.
기본 경계는 +INF입니다.
또한 PF4=0,2,3을 사용하면 정수 변수의 하한을 -INF로 설정할 수 있습니다.
이 간단한 테스트는 솔버가 PF4=0에서 올바르게 작동하는지 확인합니다.
기고자: Lutz Westermann, 2013년 1월
소형 모델 유형 :MIP
카테고리 : 피망 슬롯 테스트 라이브러리
메인 파일 : pf4mip.gms
$title '제한되지 않은 정수 변수(MIP) 테스트' (PF4MIP,SEQ=596)
$onText
피망 슬롯 23.1에서는 기본값을 수정하기 위해 피망 슬롯 매개변수 PF4가 도입되었습니다.
정수 변수의 상한:
Pf4=0: +INF의 새로운 기본 상한이 솔버에 전달됩니다.
Pf4=1: +INF 대신 100 값이 솔버에 전달됩니다. 는
솔버는 이전 피망 슬롯 버전과 마찬가지로 작동합니다. 추가 메시지
로그 및 목록에 기록되어 개수를 보고합니다.
새로운 기본 경계를 갖는 정수 또는 반정수 변수
+INF는 100으로 재설정됩니다.
PF4=2: +INF의 새로운 기본값이 PF4=0과 마찬가지로 사용됩니다. 언제
해는 피망 슬롯로 반환되고 정수 변수의 수준 값이 반환됩니다.
이전 제한 값인 100을 초과하면 메시지가 로그에 기록됩니다.
그리고 목록.
PF4=3: PF4=2와 동일하며 다음과 같은 경우 추가 실행 오류가 발생합니다.
솔루션은 모든 정수 변수에 대해 100보다 큰 수준 값을 보고합니다.
기본 경계는 +INF입니다.
또한 PF4=0,2,3을 사용하면 정수 변수의 하한을 -INF로 설정할 수 있습니다.
이 간단한 테스트는 솔버가 PF4=0에서 올바르게 작동하는지 확인합니다.
기고자: Lutz Westermann, 2013년 1월
$offText
$설정되지 않은 경우 TOL $set TOL 1e-6
$onEcho > test.gms
스칼라 rhs;
변수 z;
정수 변수 y;
방정식 a,b;
a.. z =e= y;
b..y =l= rhs;
모델 m /all/;
$offEcho
$if not '%피망 슬롯mip%' == '' $echo 옵션 MIP = %피망 슬롯mip%; >> 테스트.gms
$onEcho >> test.gms
rhs = 150;
m max z를 풀려면 mip를 사용하세요.
abort$(abs(z.l-150) > %TOL%) '목표 값은 150이어야 합니다.', z.l;
rhs = 200.5;
m max z를 풀려면 mip를 사용하세요.
abort$(abs(z.l-200) > %TOL%) '목표 값은 200이어야 합니다.', z.l;
y.lo = -inf;
rhs = -41.1;
m max z를 풀려면 mip를 사용하세요.
if( m.solvestat = %solveStat.capabilityProblems%가 아님,
abort$(abs(z.l+42) > %TOL%) '목표 값은 -42여야 합니다.', z.l;
);
$offEcho
* pf4가 0으로 설정된 경우 모든 것이 작동하는지 확인하십시오.
$call 피망 슬롯 test.gms lo=%피망 슬롯lo% pf4=0 iterlim=%피망 슬롯iterlim% reslim=%피망 슬롯reslim%
$if errorlevel 1 $abort test.gms에 오류가 있습니다! test.lst를 확인하세요!