public class QPSimpleMinimizer extends Object
The objective is 0.5 * x' * H * x + x' * p; do not omit the
one-half factor when translating a model. Use a symmetric positive
(semi-)definite Hessian. These convenience methods handle unconstrained
or equality-constrained problems, not arbitrary inequality constraints.
Catch QPInfeasible and inspect isUnique() before treating
a returned minimizer as unique.
import dev.nm.algebra.linear.matrix.doubles.matrixtype.dense.DenseMatrix;
import dev.nm.algebra.linear.vector.doubles.dense.DenseVector;
import dev.nm.analysis.function.rn2r1.QuadraticFunction;
import dev.nm.solver.multivariate.constrained.convex.sdp.socp.qp.QPSimpleMinimizer;
import dev.nm.solver.multivariate.constrained.convex.sdp.socp.qp.QPSolution;
QuadraticFunction objective = new QuadraticFunction(
new DenseMatrix(new double[][]{{2, 0}, {0, 2}}),
new DenseVector(-2.0, 4.0));
QPSolution solution = QPSimpleMinimizer.solve(objective);
assert solution.isUnique();
assert Math.abs(solution.minimizer().get(1) - 1.0) < 1e-12;
assert Math.abs(solution.minimizer().get(2) + 2.0) < 1e-12;
| Constructor and Description |
|---|
QPSimpleMinimizer() |
| Modifier and Type | Method and Description |
|---|---|
static QPSolution |
solve(QuadraticFunction f)
Solves an unconstrained quadratic programming problem of this form.
\[
\min_x \left \{ \frac{1}{2} \times x'Hx + x'p \right \}
\]
|
static QPSolution |
solve(QuadraticFunction f,
double epsilon)
Solves an unconstrained quadratic programming problem of this form.
\[
\min_x \left \{ \frac{1}{2} \times x'Hx + x'p \right \}
\]
|
static QPSolution |
solve(QuadraticFunction f,
LinearEqualityConstraints equal)
Solves a quadratic programming problem subject to equality constraints.
\[
\min_x \left \{ \frac{1}{2} \times x'Hx + x'p \right \}, Ax = b
\]
|
static QPSolution |
solve(QuadraticFunction f,
LinearEqualityConstraints equal,
double epsilon)
Solves a quadratic programming problem subject to equality constraints.
\[
\min_x \left \{ \frac{1}{2} \times x'Hx + x'p \right \}, Ax = b
\]
|
public static QPSolution solve(QuadraticFunction f, double epsilon) throws QPInfeasible
f - the objective functionepsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0QPInfeasible - when the quadratic programming problem is infeasiblepublic static QPSolution solve(QuadraticFunction f) throws QPInfeasible
f - the objective functionQPInfeasible - when the quadratic programming problem is infeasiblepublic static QPSolution solve(QuadraticFunction f, LinearEqualityConstraints equal, double epsilon) throws QPInfeasible
f - the objective functionequal - the equality constraintsepsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0QPInfeasible - when the quadratic programming problem is infeasiblepublic static QPSolution solve(QuadraticFunction f, LinearEqualityConstraints equal) throws QPInfeasible
f - the objective functionequal - the equality constraintsQPInfeasible - when the quadratic programming problem is infeasibleCopyright © 2010-2026 NM Group. All Rights Reserved.