Description
Normally, EXAMINER just examines and reports on solutions without reporting any solutions back to GAMS. This behavior can be changed with the returnXxxxPoint options. The model verifies that the returnGamsPoint option returns the correct values. A wrinkle added here is that we test while solving as a QCP. The test EXAMIN03 does a similar test, but for LP. Contributors: Tom Rutherford & Steve Dirkse
Small Model of Type : GAMS
Category : GAMS Test library
Main file : examin04.gms
$title EXAMINER test suite - test returnGamsPoint option and QCP(EXAMIN04,SEQ=464)
$onText
Normally, EXAMINER just examines and reports on solutions without
reporting any solutions back to GAMS. This behavior can be changed
with the returnXxxxPoint options. The model verifies that the
returnGamsPoint option returns the correct values.
A wrinkle added here is that we test while solving as a QCP.
The test EXAMIN03 does a similar test, but for LP.
Contributors: Tom Rutherford & Steve Dirkse
$offText
Sets
i canning plants / seattle, san-diego /
j markets / new-york, chicago, topeka / ;
Parameters
a(i) capacity of plant i in cases
/ seattle 350
san-diego 600 /
b(j) demand at market j in cases
/ new-york 325
chicago 300
topeka 275 / ;
Table d(i,j) distance in thousands of miles
new-york chicago topeka
seattle 2.5 1.7 1.8
san-diego 2.5 1.8 1.4 ;
Scalar f freight in dollars per case per thousand miles /90/ ;
Parameter c(i,j) transport cost in thousands of dollars per case ;
c(i,j) = f * d(i,j) / 1000 ;
Variables
x(i,j) shipment quantities in cases
z total transportation costs in thousands of dollars ;
Positive Variable x ;
Equations
cost define objective function
supply(i) observe supply limit at plant i
demand(j) satisfy demand at market j ;
cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
supply(i) .. sum(j, x(i,j)) =l= a(i) ;
demand(j) .. sum(i, x(i,j)) =g= b(j) ;
Model transport /all/ ;
transport.optfile = 1;
$onEcho >examiner.opt
examineinitpoint=1
returngamspoint=1
$offEcho
option qcp=examiner;
Solve transport using qcp minimizing z ;
abort$[transport.modelstat <> 6] 'bad modelstat';
abort$[transport.solvestat <> 4] 'bad solvestat';
abort$[transport.numinfes <> 3] 'bad numinfes';