svigerske/gamsworhp

local infeasible on min x s.t. x = 1

svigerske opened this issue · 2 comments

Worhp has problems to solve the GAMS model

variable obj;
obj.lo = -1000; obj.up = 1000;
obj.l = 1000;

equations defobje;
defobje.. obj =e= 1;

model lp01e /all/;

solve lp01e min obj using lp;

I am getting:

 -------------------------------------------------------
     This is WORHP 1.9-1, the European NLP-solver.
    Use of WORHP is subject to terms and conditions.
     Visit http://www.worhp.de for more information.
 -------------------------------------------------------
 
 Total number of variables ........................        1
                    variables with lower bound only        0
               variables with lower and upper bound        1
                    variables with upper bound only        0
 Total number of box constraints ..................        2
 Total number of other constraints ................        1
                               equality constraints        1
       inequality constraints with lower bound only        0
  inequality constraints with lower and upper bound        0
       inequality constraints with upper bound only        0
 
 
 Gradient (user)  1/1 = 100.000%
 Jacobian (user)  1/1 = 100.000%
 Block BFGS with intersections (1-1)
 
 Algorithm    Sequential Quadratic Programming
 NLP Method   Merit Function        QP Method     Interior-Point
 NLP MaxIter  *********             QP MaxIter    80
 LA solver    MA97 (tol 1.0E-12, ref 10, ord METIS/AMD, scl none)
 
 Tolerances:
 Optimality  (KKT)    1.00E-06 (1.0E-03)   IP ComTol    2.00E-07
 Feasibility          1.00E-06 (1.0E-03)   IP ResTol    5.00E-08
 Complementarity      1.00E-03
 
 Timeout              1000.000  seconds
 
          ITER           OBJ               CON              KKT         FLAGS   ALPHA       PEN       |DX|       TIME
 [        0|  19]  1.0000000000E+03  9.9900000000E+02  1.1000756384E-02  Bin  0.000E+00  1.000E+00  1.874E-02  0.000E+00
 [        1|  61]  7.8115819167E+02  7.8015819167E+02  2.8015043644E+02  Bin  1.000E+00  9.129E+00  2.188E+02  0.000E+00
 [        2|   6]  3.0896798632E+02  3.0796798632E+02  3.5814899594E+02  Bin  1.000E+00  5.043E+00  4.722E+02  0.000E+00
 [        3|   2]  1.0102237347E+01  9.1022373470E+00  8.2264899273E+02  Bin  1.000E+00  1.100E+01  2.989E+02  0.000E+00
 [        4|   5]  1.0000000003E+00  2.6851232349E-10  2.4827299758E-01  Bfn  1.000E+00  1.100E+01  9.102E+00  0.000E+00
 [        5|   1]  9.9998847512E-01  1.1524883766E-05  2.6068988734E-02  Ban  8.950E-01  1.100E+01  1.288E-05  0.000E+00
 [        6|   1]  9.9998712299E-01  1.2877012467E-05  3.3399062205E-07  Bao  1.000E+00n 1.100E+01  1.352E-06  0.000E+00
 [        7|   1]  9.9998712299E-01  1.2877014332E-05  3.5260870834E-07  Bao  1.000E+00  1.100E+01  1.865E-12  0.000E+00
 [        8|   1]  9.9998712299E-01  1.2877014280E-05  3.5917983676E-07  Bao  1.000E+00  1.100E+01  5.151E-14  0.000E+00
 Worhp: Local point of infeasibility.
 
 Final values after iteration 6:
 Final objective value .............  9.9998712299E-01
 Final constraint violation ........  1.2877012467E-05
 Final KKT conditions ..............  3.3399062205E-07
 Terminating: Converged to local point of infeasibility.
 Successful termination: Acceptable Solution Found in previous iteration.

The starting point seems to be crucial. When removing obj.l = 1000 (so 0 will be used), then it works fine.

I am afraid this is an issue of WORHP and not the GAMS WORHP interface. The problem is, that WORHP currently does not assume problems to be linear and performs regularizations and relaxations that are suitable for nonlinear problems by default. We plan to fix this in the next release.

Ah, found a way to disable the relaxation within the interface.