Doesn't function correctly with Mosek simplex methods; Only works with Mosek interior point method

36 views
Skip to first unread message

Roujia

unread,
Jun 27, 2018, 3:41:08 PM6/27/18
to YALMIP
For the same problem and same code, YALMIP works fine with mosek's default interior point method (when the option 'mosek.MSK_IPAR_OPTIMIZER' is set to be 'MSK_OPTIMIZER_INTPNT' in spdsettings)

However, YALMIP runs into errors when I use the simplex optimizers - that is, when I set the spdsetting 'mosek.MSK_IPAR_OPTIMIZER' to be 'MSK_OPTIMIZER_PRIMAL_SIMPLEX' or 'MSK_OPTIMIZER_DUAL_SIMPLEX', even though Mosek's command window output says that the problem is successfully solved.

Original code:

method = 'MSK_OPTIMIZER_PRIMAL_SIMPLEX';

% Set YALMIP solver options

options = sdpsettings('solver','mosek','verbose',1,'debug',1,'mosek.MSK_IPAR_OPTIMIZER', method);

% Variable

x = sdpvar(2, 1);

% Objective

Objective = [];

% Constraints

A = [25 3; 0 10];

b = [3; 10];

Constraints = [A * x == b];

% Run optimizer

sol = optimize(Constraints,Objective,options);


Output from Mosek:


Basic solution summary

  Problem status  : PRIMAL_AND_DUAL_FEASIBLE

  Solution status : OPTIMAL

  Primal.  obj: 0.0000000000e+00    nrm: 0e+00    Viol.  con: 0e+00    var: 0e+00  

  Dual.    obj: 0.0000000000e+00    nrm: 1e+00    Viol.  con: 0e+00    var: 0e+00  


Error message from YALMIP:

Reference to non-existent field 'itr'.


Error in callmosek>MosekYALMIPError (line 241)

switch res.sol.itr.prosta


Error in callmosek>call_mosek_lpqpsocpsdpdual (line 213)

problem = MosekYALMIPError(res);


Error in callmosek>call_mosek_lpqpsocpsdp (line 81)

    [x,D_struc,problem,r,res,solvertime,prob] = call_mosek_lpqpsocpsdpdual(model);


Error in callmosek (line 51)

    [x,D_struc,problem,r,res,solvertime,prob] = call_mosek_lpqpsocpsdp(model);


Error in solvesdp (line 350)

    eval(['output = ' solver.call '(interfacedata);']);


Error in optimize (line 31)

[varargout{1:nargout}] = solvesdp(varargin{:});


Error in yalmip_bug (line 13)

sol = optimize(Constraints,Objective,options);

Johan Löfberg

unread,
Jun 27, 2018, 4:11:19 PM6/27/18
to YALMIP
Good catch. I've checked in a fix in the develop branch
Reply all
Reply to author
Forward
0 new messages