protocol
qp_solver_protocol
Protocol for solvers of convex quadratic programs in standard form: minimize 0.5*x^T*H*x + c^T*x subject to Aeq*x = beq and Aineq*x =< bineq. This is a numerical subroutine protocol, not a local_optimization_problem_protocol/constrained_optimization_problem_protocol solver: it operates on plain matrices and vectors, not on problem objects, since it is meant to be called once per outer/SQP iteration on a freshly linearized subproblem.
logtalk_load(constrained_optimization(loader))staticPublic predicates
solve/8
Solves min 0.5*x^T*H*x + c^T*x s.t. Aeq*x = beq, Aineq*x =< bineq, also returning the Lagrange multipliers Lambda at the solution: the first length(Beq) elements are the equality-constraint multipliers, followed by one element per row of Aineq/Bineq (in that order), each 0.0 if that inequality is inactive at X. H must be symmetric positive semi-definite over the feasible set for X to be a global minimizer. Fails (rather than raising an error) when no feasible point is found or the problem is unbounded below on the feasible set, since this predicate is meant to be used as a subroutine inside a larger iterative solver (such as sqp_active_set(_), which needs the multipliers to update its Hessian-of-the-Lagrangian approximation and merit-function penalty) that must react to that failure, not crash on it.
staticsolve(H,C,Aeq,Beq,Aineq,Bineq,X,Lambda)solve(+list(list(number)),+list(number),+list(list(number)),+list(number),+list(list(number)),+list(number),-list(number),-list(number)) - zero_or_oneProtected predicates
(none)
Private predicates
(none)
Operators
(none)
See also