Minimize a convex quadratic subject to box bounds and/or linear
equality/inequality constraints – TDA's mqp, mqpb,
and mqpc (undocumented in tda.hlp; identified from
qld's header, the Powell/Schittkowski active-set solver
ZQPCVX shared with tda_mlsei1). The problem
solved is
$$\min\; d'x + \tfrac12 x'Cx \quad \mathrm{s.t.}\;
A_e x = b_e,\; A_i x \ge b_i,\; l \le x \le u$$
tda_mqp is unconstrained (box bounds fixed at +-huge
internally by TDA); tda_mqpb adds box bounds; tda_mqpc
adds general equality/inequality constraints instead of bounds –
no single TDA command accepts both bounds and general constraints.
The suite checks all three commands against hand-solved instances: an
unconstrained case, a box-clipped case, and a mixed
equality+inequality case – see examples/coverage/mqpops2.cf.
Arguments
- C
the symmetric objective matrix (n x n).
- d
the linear objective term, length n.
- dir
working directory.
- ...
passed to
tda_run.- lower, upper
box bounds, each length n.
tda_mqpbonly.- equalities
an equality constraint matrix
Ae x = equalities_bounds.tda_mqpconly.- equalities_bounds
the right-hand sides for
equalities.- inequalities
an inequality constraint matrix
Ai x >= inequalities_bounds.tda_mqpconly.- inequalities_bounds
the right-hand sides for
inequalities.
Value
A list: x, the solution; value, the objective
d'x + 0.5 x'Cx at x, computed directly in R since
this command family prints no value of its own.
See also
Other optimization:
tda_boolean_min(),
tda_mlp(),
tda_mlpi(),
tda_mls(),
tda_mqap()