optimize
optimize is the common function for solving optimization problems.
Syntax
diagnostics = optimize(Constraints,Objective,options)
Examples
A linear program can be solved with the following piece of code
x = sdpvar(length(c),1);
F = [A*x<=b];
h = c'*x;
optimize(F,h);
solution = value(x);
If we only look for a feasible solution, we can omit the objective function
optimize(F);
A diagnostic structure is returned which can be used, e.g, to check feasibility as reported by the solver (see yalmiperror for the possible return values)
diagnostics = optimize(F);
if diagnostics.problem == 0
disp('Solver thinks it is feasible')
elseif diagnostics.problem == 1
disp('Solver thinks it is infeasible')
else
disp('Something else happened')
end
Solving the feasibility problem with a particular solver, e.g. QUADPROG, can be done by creating an options structure with sdpsettings
options = sdpsettings('solver','quadprog')
optimize(F,[],options);
Minimization is assumed, hence if we want to maximize, we simply flip the sign of the objective.
optimize(F,-h);