emp04.gms : Compare results of EMP runs using different options for nlp problem

Description

```This test compares the results EMP delivers after being started with different
options.

This test makes use of the model mhw4d from the GAMS model library which is
borrowed from:

Wright, M H, Numerical Methods for Nonlinearly Constraint Optimization.
PhD thesis, Stanford University, 1976.

Contributor: Jan-H. Jagla, February 2009
```

Small Model of Type : GAMS

Category : GAMS Test library

Main file : emp04.gms

``````\$title Compare results of EMP runs using different options for nlp problem (EMP04,SEQ=431)

\$ontext
This test compares the results EMP delivers after being started with different
options.

This test makes use of the model mhw4d from the GAMS model library which is
borrowed from:

Wright, M H, Numerical Methods for Nonlinearly Constraint Optimization.
PhD thesis, Stanford University, 1976.

Contributor: Jan-H. Jagla, February 2009
\$offtext

option limcol=0, limrow=0;

scalar solverstatus, iterusednlp, iterusedmcp;

*-------------------------------------------------------------------------------
* Original model copied from the GAMS Model Library
Variables m, x1, x2, x3, x4, x5;
Equations funct, eq1, eq2, eq3;

funct.. m =e= sqr(x1-1)      + sqr(x1-x2)     + power(x2-x3,3)
+ power(x3-x4,4) + power(x4-x5,4) ;

eq1.. x1 + sqr(x2) + power(x3,3) =e= 3*sqrt(2) + 2 ;

eq2.. x2 - sqr(x3) + x4          =e= 2*sqrt(2) - 2 ;

eq3.. x1*x5 =e= 2 ;

Model wright / all / ;

\$macro setVarLevels    m.l = 0; x1.l = -1.27; x2.l = 2.4; x3.l = 1.2; x4.l = -.15; x5.l = -1.5
\$macro setVarMarginals m.m = 0; x1.m = 0;  x2.m = 0; x3.m = 0; x4.m = 0;  x5.m = 0
\$macro setEquMarginals funct.m = 0; eq1.m = 0; eq2.m = 0; eq3.m = 0;

setVarLevels;
solve wright using nlp minimizing m;
*-------------------------------------------------------------------------------
solverstatus = wright.solvestat;
iterusednlp  = wright.iterusd;
iterusedmcp  = 3;

file empopt /"jams.opt"/;
file empinfo /"%emp.info%"/;

option nlp=pathnlp;
setVarLevels;
setVarMarginals;
setEquMarginals;
solve wright using nlp minimizing m;
solverstatus = wright.solvestat;
iterusedmcp  = wright.iterusd;

setVarLevels;
setVarMarginals;
setEquMarginals;
solve wright using emp minimizing m;
solverstatus = wright.solvestat;
abort\$(wright.iterusd <> iterusednlp) 'Iteration of EMP run differ';

putclose empinfo 'ModelType MCP';
setVarLevels;
setVarMarginals;
setEquMarginals;
solve wright using emp minimizing m;
solverstatus = wright.solvestat;
abort\$(wright.iterusd <> iterusedmcp) 'Iteration of EMCP run differ';

putclose empopt 'keepobj';
putclose empinfo 'ModelType MCP';
setVarLevels;
setVarMarginals;
setEquMarginals;
solve wright using emp minimizing m;
solverstatus = wright.solvestat;
abort\$(wright.iterusd <> iterusedmcp) 'Iteration of EMCPobj run differ';

execute 'gdxdiff default.gdx PATHNLP.gdx diffile0.gdx Eps=1e-8 > %system.nullfile%';
abort\$errorlevel 'solution of default run and PATHNLP differ';
execute 'gdxdiff default.gdx EMP.gdx     diffile1.gdx Eps=1e-9 > %system.nullfile%';
abort\$errorlevel 'solution of default run and EMP differ';
execute 'gdxdiff default.gdx EMCP.gdx    diffile2.gdx Eps=1e-8 > %system.nullfile%';
abort\$errorlevel 'solution of default run and EMCP differ';
execute 'gdxdiff default.gdx EMCPobj.gdx diffile3.gdx Eps=1e-8 > %system.nullfile%';
abort\$errorlevel 'solution of default run and EMCPobj differ';

``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170