설명
전체 헤세 행렬과
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이 아닌 반환을 반환했습니다.';