Description
Test behavior on a QVI model having a zero function. - Zero function needs to be explicitly specified using 0. Contributor: Youngdae Kim, February 2018
Small Model of Type : GAMS
Category : GAMS Test library
Main file : emp32.gms
$title 'Test JAMS/EMP on QVI model with zero function' (EMP32,SEQ=749)
$onText
Test behavior on a QVI model having a zero function.
- Zero function needs to be explicitly specified using 0.
Contributor: Youngdae Kim, February 2018
$offText
file opt / 'jams.opt' /;
file info / '%emp.info%' /;
positive variables y,x,w,v;
equations Fy, gw, gy;
Fy..
y - w - 1 =N= 0;
gw..
w + v =G= 2;
gy..
y + x =G= 4;
model m / Fy, gw, gy /;
* case 1)
putclose info 'qvi 0 w v Fy y x gw gy';
putclose opt
'Dict qvi1Dict.txt' /
'FileName qvi1.gms';
m.optfile = 1;
solve m using emp;
abort$[m.modelstat <> %modelStat.optimal%] 'QVI should solve OK';
abort$[m.solvestat <> %solveStat.normalCompletion%] 'QVI should solve OK';
abort$[abs(y.l - 2)] 'bad y.l', y.l;
abort$[abs(x.l - 2)] 'bad x.l', x.l;
abort$[abs(w.l - 1)] 'bad w.l', w.l;
abort$[abs(v.l - 1)] 'bad v.l', v.l;
$onEcho > qvi1_gms
***********************************************
* written by GAMS/JAMS at 02/12/18 14:29:16
* for more information use JAMS option "Dict"
***********************************************
Variables x1,x3,u2,u3;
Positive Variables x1,x3;
Positive Variables u2,u3;
Equations e1,e2,e3,zero_x3;
e1.. x1 - x3 - u3 =N= 1;
e2.. x3 + x3 =G= 2;
e3.. x1 + x1 =G= 4;
zero_x3.. - u2 =G= 0;
Model m / e1.x1,e2.u2,e3.u3,zero_x3.x3 /;
m.limrow=0; m.limcol=0;
Solve m using MCP;
$offEcho
execute 'grep -v " written by GAMS" qvi1_gms > qvi1.gms.want'
execute 'grep -v " written by GAMS" qvi1.gms > qvi1.gms.got'
execute '=diff -I reslim -bw qvi1.gms.want qvi1.gms.got'
abort$errorlevel 'Files qvi1.gms.want and qvi1.gms.got differ';
$onEcho > qvi1_dict
* written by GAMS/JAMS at 02/12/18 14:49:16
********************************************************************************
Contents
1 Content of EMP Information File
2 Processed EMP Information
3 Dictionary
3.1 Constraints
3.2 Variables
********************************************************************************
1 Content of EMP Information File
---------------------------------
1:qvi 0 w v Fy y x gw gy
2 Processed EMP Information
---------------------------
Number of VI functions specified = 1
* e1 is VI Func and perpendicular to x1
3 Dictionary
------------
3.1 Constraints
---------------
e1 Fy
e2 gw
e3 gy
zero_x3 {new}
3.2 Variables
--------------
x1 y
x1 x
x3 w
x3 v
u2 {new}
u3 {new}
$offEcho
execute 'grep -v " written by GAMS" qvi1_dict > qvi1dict.txt.want'
execute 'grep -v " written by GAMS" qvi1Dict.txt > qvi1dict.txt.got'
execute '=diff -bw qvi1dict.txt.want qvi1dict.txt.got'
abort$errorlevel 'Files qvi1dict.txt.want and qvi1dict.txt.got differ';
y.l = 0;
y.m = 0;
x.l = 0;
x.m = 0;
w.l = 0;
w.m = 0;
v.l = 0;
v.m = 0;
Fy.m = 0;
gw.m = 0;
gy.m = 0;
* case 2)
putclose info 'qvi Fy y x 0 w v gw gy';
putclose opt
'Dict qvi2Dict.txt' /
'FileName qvi2.gms';
m.optfile = 1;
solve m using emp;
abort$[m.modelstat <> %modelStat.optimal%] 'QVI should solve OK';
abort$[m.solvestat <> %solveStat.normalCompletion%] 'QVI should solve OK';
abort$[abs(y.l - 2)] 'bad y.l', y.l;
abort$[abs(x.l - 2)] 'bad x.l', x.l;
abort$[abs(w.l - 1)] 'bad w.l', w.l;
abort$[abs(v.l - 1)] 'bad v.l', v.l;
$onEcho > qvi2_gms
***********************************************
* written by GAMS/JAMS at 02/12/18 14:29:16
* for more information use JAMS option "Dict"
***********************************************
Variables x1,x3,u2,u3;
Positive Variables x1,x3;
Positive Variables u2,u3;
Equations e1,e2,e3,zero_x3;
e1.. x1 - x3 - u3 =N= 1;
e2.. x3 + x3 =G= 2;
e3.. x1 + x1 =G= 4;
zero_x3.. - u2 =G= 0;
Model m / e1.x1,e2.u2,e3.u3,zero_x3.x3 /;
m.limrow=0; m.limcol=0;
Solve m using MCP;
$offEcho
execute 'grep -v " written by GAMS" qvi2_gms > qvi2.gms.want'
execute 'grep -v " written by GAMS" qvi2.gms > qvi2.gms.got'
execute '=diff -I reslim -bw qvi2.gms.want qvi2.gms.got'
abort$errorlevel 'Files qvi2.gms.want and qvi2.gms.got differ';
$onEcho > qvi2_dict
* written by GAMS/JAMS at 02/12/18 14:51:27
********************************************************************************
Contents
1 Content of EMP Information File
2 Processed EMP Information
3 Dictionary
3.1 Constraints
3.2 Variables
********************************************************************************
1 Content of EMP Information File
---------------------------------
1:qvi Fy y x 0 w v gw gy
2 Processed EMP Information
---------------------------
Number of VI functions specified = 1
* e1 is VI Func and perpendicular to x1
3 Dictionary
------------
3.1 Constraints
---------------
e1 Fy
e2 gw
e3 gy
zero_x3 {new}
3.2 Variables
--------------
x1 y
x1 x
x3 w
x3 v
u2 {new}
u3 {new}
$offEcho
execute 'grep -v " written by GAMS" qvi2_dict > qvi2dict.txt.want'
execute 'grep -v " written by GAMS" qvi2Dict.txt > qvi2dict.txt.got'
execute '=diff -bw qvi2dict.txt.want qvi2dict.txt.got'
abort$errorlevel 'Files qvi2dict.txt.want and qvi2dict.txt.got differ';