GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]

emp01.gms : Compares EMP results for a simple LP with known results


This model compares the results from different EMP runs with the results known.
The model has a bounded variable only appearing in the objective which is
reformulated in case EMP writes and MCP model

Contributor: Jan-H. Jagla, April 2007

Small Model of Type: GAMS
$title Compares EMP results for a simple LP with known results (EMP01,SEQ=386) $ontext This model compares the results from different EMP runs with the results known. The model has a bounded variable only appearing in the objective which is reformulated in case EMP writes and MCP model Contributor: Jan-H. Jagla, April 2007 $offtext variables obj,x,y; equation defobj,e; defobj.. obj =e= x + y + 3; e.. y =l= 3; y.lo=1; x.lo = 1;x.up =5; model m /all /; sets enames / defobj,e / vnames / obj,x,y / evnames / set.enames,set.vnames / suf / l,m /; parameter rep comparison / (defobj.(l 3, m 1) e. (l 1 ) obj. (l 5 ) x. (l 1, m 1) y. (l 1, m 1)).known /; $gdxout %gams.scrdir%repgdx.%gams.scrext% $unload evnames suf $gdxout $onechoV > %gams.scrdir%repgms.%gams.scrext% set evnames, suf; $gdxin %oldscrdir%repgdx.%gams.scrext% $load evnames suf file fx /'%oldscrdir%rep.%gams.scrext%'/; fx.lw = 0; fx.silent=1; put fx; $escape = loop((evnames,suf), put "rep('" evnames.tl "','" suf.tl "','%=lp%=') = " evnames.tl "." suf.tl ";" /; ); $offecho $call gams %gams.scrdir%repgms.%gams.scrext% lo=%gams.lo% --oldscrdir="%gams.scrdir%" * standard LP solve solve m us lp min obj; $set lp LP $include %gams.scrdir%rep.%gams.scrext% option lp=emp,limcol=0,limrow=0; * rewrite scalar LP - without info file solve m us lp min obj; $set lp NOemp $include %gams.scrdir%rep.%gams.scrext% * rewrite scalar LP - use empty info file execute 'echo *empty emp info file > "%emp.info%"'; solve m us lp min obj; $set lp empLP $include %gams.scrdir%rep.%gams.scrext% * rewrite scalar MCP - indicate target model type as MCP execute 'echo strategy mcp > "%emp.info%"'; solve m us lp min obj; $set lp empMCP $include %gams.scrdir%rep.%gams.scrext% * rewrite scalar MCP - indicate target model type as MCP and keep original objective execute 'echo KeepObj > emp.opt'; m.optfile=1; solve m us lp min obj; $set lp empMCPkeep $include %gams.scrdir%rep.%gams.scrext% set type / lp, noemp, emplp, empmcp, empmcpkeep /; rep('sum','diff',type) = sum((evnames,suf), abs(rep(evnames,suf,type) - rep(evnames,suf,'known'))); display rep; abort$(sum(type, rep('sum','diff',type)) > 1e-4) 'we did not get the right solution'; $call rm -f repgms.lst