SCIP & Yalmip

314 views
Skip to first unread message

Vali

unread,
Oct 31, 2017, 7:07:29 AM10/31/17
to YALMIP
Hello,

I have a couple of questions regarding using SCIP (nonlinear) under YALMIP (interfaced for Matlab through the OPTI Toolbox).

(1) I get the message "Original variable <nlobj> not released when freeing SCIP. Consider releasing variable first.": I could not find out how this works under YALMIP.
As far as I understood, this is not necessary but quite useful to use the Memory-Management. Is there a way to handle this using YALMIP?

(2) Furthermore I am a litte irritated by the following message:

SCIP Status        : problem is solved [optimal solution found]
Solving Time (sec) : 0.22
Solving Nodes      : 1
Primal Bound       : +4.79653886000805e+03 (1 solutions)
Dual Bound         : +4.79653886000805e+03
Gap                : 0.00
  [linear] <lincon45>: <xvar33>[C] -<xvar37>[C] <= 1e-05;
violation: right hand side is violated by 1.50505108851939e-05
best solution is not feasible in original problem

Does it mean that the solution is not feasable (yalmip reports the problem 0)?

(3) I calculate the same type of NLP (accurate: a heat exchanger network) a couple of times with different parameters (Temperatures at the in- an outlet). In most cases yalmip reports the problem "0" but in some cases it returns 9.
Do you have any idea what could be the problem here?

Thx in advance!

 
 


Johan Löfberg

unread,
Oct 31, 2017, 7:19:42 AM10/31/17
to YALMIP
The first is something outside of YALMIPs control. It simply looks like they (scip or ipopt) have an internal memory bug of some kind

The second message sounds like you have a badly scaled problem. Solvers typically do some initial presolve and scaling, solve the problem and then go back to the otriginal problem. In your case, the solution that looked good enough in the presolved and scaled model, turns out to be less so when going back to original form. Happens in ill-conditioned and badly scaled models. 

For the last, impossible to say, but code 9 means the solver returned an diagnostic code YALMP doesn't recognize. Impossible to answer without more details and code

Vali

unread,
Oct 31, 2017, 10:00:52 AM10/31/17
to YALMIP
Thank you for your fast response. According to the answer I got at the SCIP mailing list it seems to be an OPTI problem.

To get rid of the third thing I tried to use 'savesolveroutput' to 1 to get any further information about the kind of problem, but I get the follwing output:

Undefined function or variable 'allsol'.

Error in callscipnl (line 133)
    solveroutput.allsol=allsol;

Error in solvesdp (line 350)
    eval(['output = ' solver.call '(interfacedata);']);

Error in optimize (line 31)
[varargout{1:nargout}] = solvesdp(varargin{:});


Is there any other method to "look into" SCIPs output?

Johan Löfberg

unread,
Oct 31, 2017, 10:16:23 AM10/31/17
to YALMIP
Simply remove line 133, it appears to be something from the past.
Reply all
Reply to author
Forward
0 new messages