설명
QVI에서 파생된 GNEP(일반화 내쉬 균형 문제) 인스턴스 논문의 예: Jiri V. Outrata 및 Jochem Zowe: 클래스를 위한 뉴턴 방법 준변동 불평등, 계산 최적화 및 응용, 4, 5-21 (1995) QVI 모델은 SIMPLEQVI2.102로 이 라이브러리에 있습니다. 해 (x1*,x2*) = (10,5)를 계산합니다. 기고자: 김영대 및 Steve Dirkse, 2018년 4월
소형 모델 유형 :EQUIL
카테고리 : 슬롯 사이트 추천 EMP 라이브러리
메인 파일 : simpequil3.gms
$title 단순 일반화 내쉬 균형 문제 (SIMPEQUIL3,SEQ=103)
$onText
QVI에서 파생된 GNEP(일반화된 내쉬 균형 문제) 인스턴스
논문의 예:
Jiri V. Outrata 및 Jochem Zowe: 클래스를 위한 뉴턴 방법
준변동 불평등,
계산 최적화 및 응용, 4, 5-21 (1995)
QVI 모델은 SIMPLEQVI2.102로 이 라이브러리에 있습니다.
해 (x1*,x2*) = (10,5)를 계산합니다.
기고자: 김영대 & Steve Dirkse, 2018년 4월
$offText
$설정되지 않은 경우 CLEANUP $set CLEANUP YES
$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-6
스칼라 tol / %TESTTOL% /;
i / 1*2 / 설정;
별칭(i,j);
테이블 A(i,j)
1 2
1 1 [8/3]
2 [5/4] 1 ;
매개변수
b(i) / 1 [100/3], 2 22.5 /
rhs(i) / 1 15, 2 20 /
;
변수 obj(i) '에이전트 i의 목표';
양의 변수 y(i);
방정식
defobj(i)
단점(i)
;
defobj(i).. y(i) * sumj, A(i,j)*y(j) - b(i)*y(i) =E= obj(i);
단점(i) .. sumj, y(j) =L= rhs(i);
y.up(i) = 11;
모델 gnep / defobj, 단점 /;
파일 opt / 'jams.opt' /;
파일 empinfo / '%emp.info%' /; empinfo.pc = 8;
empinfo '평형' 입력 /;
루프나,
' min', obj(i), y(i), defobj(i), cons(i) 넣기 /;
;
putclose empinfo;
putclose 선택
'딕트 gnepDict.txt' /
'파일 이름 gnepScalar.gms' /
;
* 시작점을 논문에 기재된 값으로 설정
y.l(i) = 0;
gnep.optfile = 1;
emp를 사용하여 gnep을 해결합니다.
중단$[gnep.solvestat <> %solveStat.normalCompletion%]
'잘못된 gnep.solvestat', gnep.solvestat;
중단$[gnep.modelstat > %modelStat.locallyOptimal%]
'잘못된 gnep.modelstat', gnep.modelstat;
abort$[abs(y.l('1') - 10) > tol] '해법에서 y(1)==10이 예상됩니다.', y.l;
abort$[abs(y.l('2') - 5) > tol] '해법에서 y(2)==5가 예상됩니다.', y.l;
$set KILL_LIST "jams.opt gnepDict.txt gnepScalar.gms gnepScalar.lst gnepScalarpf.pf"
$ifThen %CLEANUP% == 예
'rm -f %KILL_LIST%'를 실행합니다.
$else
파일 로그 /''/;
putclose 로그
' ' /
'이 실행으로 생성된 여러 중간 파일은 사용자가 찾아볼 수 있도록 남아 있습니다.' /
' %KILL_LIST%' /
'삭제하려면 --CLEANUP=NO를 사용하여 모델을 실행하지 마세요.' /
' ' /
;
$endIf