Dynamic-Calibration/utils/YALMIP-master/extras/problemclass.m

40 lines
989 B
Mathematica
Raw Normal View History

2019-12-18 11:25:45 +00:00
function p = problemclass(self)
% LP = 1;
% QP = 2;
% SOCP = 3;
% SDP = 4;
% MILP = 5;
% MIQP = 6;
%
% possible = ones(1,6);
%
% if nnz(model.variabletype)>0
% possible([LP QP SOCP SDP MILP MIQP
%
model = self.problemclass;
combinatorial = (model.constraint.integer | model.constraint.binary | model.constraint.semicont | model.constraint.sos1 | model.constraint.sos2);
p = 'Unclassified';
if nnz(self.variabletype)==0
% can be LP,QP,SDP,SOCP,MILP,MIQP
if model.constraint.inequalities.semidefinite.linear
p = 'SDP';
elseif model.constraint.inequalities.secondordercone.linear | model.constraint.inequalities.rotatedsecondordercone.linear
p = 'SOCP';
else
if model.objective.quadratic.convex == 1
p = 'Convex QP';
elseif model.objective.quadratic.nonconvex == 1
p = 'Nonconvex QP';
else
p = 'LP';
end
end
if combinatorial
p = ['Mixed Integer ' p];
end
end