convert7.gms : CONVERT 테스트 스위트 - 헤센 정보 정확성 테스트

설명

전체 헤세 행렬과
CONVERT에 의해 버려진 헤센 벡터 제품.

현재 gamslib에는 NLP 모델에 대해 이 작업을 수행하는 플래그가 있습니다.
다음과 같이 실행하세요:
게임 변환7.gms
    --gmsName=체너리
    --modelName=첸라드
    --모델 유형=NLP
    --obj이름=td

기여자: Steve Dirkse

소형 모델 유형 :슬롯 커뮤니티


카테고리 : 슬롯 커뮤니티 테스트 라이브러리


메인 파일 : convert7.gms

$title CONVERT 테스트 스위트 - 헤센 정보 정확성 테스트 (CONVERT7,SEQ=419)

$onText
전체 헤세 행렬에 대해 일관성 검사를 수행하고
CONVERT에 의해 버려진 헤센 벡터 제품.

현재 gamslib에는 NLP 모델에 대해 이 작업을 수행하는 플래그가 있습니다.
다음과 같이 실행하세요:
게임 변환7.gms
    --gmsName=체너리
    --modelName=첸라드
    --모델 유형=NLP
    --obj이름=td

기여자: Steve Dirkse
$offText

$설정되지 않은 경우 gmsName $set gmsName chenery
$설정되지 않은 경우 modelName $set modelName chenrad
$modelType이 설정되지 않은 경우 $set modelType NLP
$설정되지 않은 경우 objName $set objName td

$call gamslib -q %gmsName%
$if errorlevel 1 $abort 'gamslib %gmsName% 실패'
$onEcho > 변환.opt
dumpgdx %gmsName%.gdx
gdxhessian 1
gdx2차 1
$offEcho

$onEcho > %gmsName%TestHess.gms
$include %gmsName%HessDump.gms
별칭(j,jj);
스칼라
  톨 / 1e-9 /;
매개변수
  testW(j,j) '라그랑지안의 헤션 - 위쪽 삼각형 - 계산됨'
  testFullW(j,j) 'testW의 정식 버전'
  testWe(j) '제품 testW * e'
  diffW(j,j), 오류W(j,j)
  diffWe(j), errWe(j)
  ;

testW(j,jj) = sum(i, h(i,j,jj)* (-e.m(i)));

testFullW(j,jj) = testW(j,jj) + testW(jj,j);  testFullW(j,j) = testW(j,j);
testWe(j) = sum(jj, testFullW(j,jj) * 1);

diffW(j,jj) = 테스트W(j,jj) - W(j,jj);
errW(j,jj) = diffW(j,jj);
errW(j,jj)$[abs(errW(j,jj)) < tol] = 0;

diffWe(j) = testWe(j) - We(j);
errWe(j) = diffWe(j);
errWe(j)$[abs(errWe(j)) < tol] = 0;

Execute_unload '%gmsName%HessFinal'

abort$[card(errW ) > 0] 'testW와 W를 비교하는 동안 오류 발생';
abort$[card(errWe) > 0] 'testWe와 We를 비교하는 동안 오류 발생';
$offEcho

$include %gmsName%
옵션 %modelType%=변환;
%모델이름%.optfile=1;
%objName%을 최대화하는 %modelType%를 사용하여 %modelName%을 해결합니다.
abort$(%modelName%.solvestat <> %solveStat.normalCompletion% 또는 %modelName%.modelstat <> %modelStat.noSolutionReturned%) '잘못된 상태 코드';
스칼라 rc;
'gdxdump %gmsName%.gdx > %gmsName%HessDump.gms'를 실행합니다.
'슬롯 커뮤니티 %gmsName%TestHess.gms lo=%슬롯 커뮤니티lo%'를 실행합니다.
rc=오류수준;
디스플레이 RC;
abort$(rc <> 0) '"슬롯 커뮤니티 %gmsName%TestHess.gms"가 0이 아닌 반환을 반환했습니다.';