NMath Reference Guide

## Quadratic |

Class QuadraticProgrammingProblem encapsulates a quadratic programming (QP) problem.

Inheritance Hierarchy

SystemObject

CenterSpace.NMath.CoreBoundedVariableProblem

CenterSpace.NMath.CoreLinearConstrainedProblem

CenterSpace.NMath.CoreQuadraticProgrammingProblem

CenterSpace.NMath.CoreBoundedVariableProblem

CenterSpace.NMath.CoreLinearConstrainedProblem

CenterSpace.NMath.CoreQuadraticProgrammingProblem

Syntax

The QuadraticProgrammingProblem type exposes the following members.

Constructors

Name | Description | |
---|---|---|

QuadraticProgrammingProblem | Default constructor. Behavior of resulting object is undefined. | |

QuadraticProgrammingProblem(DoubleMatrix, DoubleVector) |
Constructs a QuadraticProgrammingProblem object for minimizing
the quadratic
C# `x'Hx + x'g` |

Properties

Name | Description | |
---|---|---|

c | Gets and sets the vector c in the objective function x'Hx + x'c | |

Constraints |
Gets and sets the linear constraints for the problem.
(Inherited from LinearConstrainedProblem) | |

H | Gets and sets the matrix H in the objective function x'Hx + x'c | |

NumVariables |
Gets the number of variables in the problem.
(Overrides BoundedVariableProblemNumVariables) | |

VariableBounds |
Gets and sets variable bounds for the problem.
(Inherited from BoundedVariableProblem) |

Methods

Name | Description | |
---|---|---|

AddBounds(Int32, Double, Double) |
Adds upper and lower bound constraints to a variable.
(Inherited from BoundedVariableProblem) | |

AddBounds(Int32, Double, Double, Double) |
Adds upper and lower bound constraints to a variable.
(Inherited from BoundedVariableProblem) | |

AddConstraint(LinearConstraint) |
Adds the given constraint to the problem.
(Inherited from LinearConstrainedProblem) | |

AddConstraint(DoubleVector, Double, Double) |
Adds a linear inequality constraint of the form
lowerBound <= coefficients'x < upperBound
(Inherited from LinearConstrainedProblem) | |

AddConstraint(ILinearConstraintCoefficients, Double, Double) |
Adds a linear inequality constraint of the form
lowerBound <= coefficients'x < upperBound
(Inherited from LinearConstrainedProblem) | |

AddConstraint(DoubleVector, Double, Double, Double) |
Adds a linear inequality constraint of the form
lowerBound <= coefficients'x < upperBound
(Inherited from LinearConstrainedProblem) | |

AddConstraint(ILinearConstraintCoefficients, Double, Double, Double) |
Adds a linear inequality constraint of the form
lowerBound <= coefficients'x < upperBound
(Inherited from LinearConstrainedProblem) | |

AddEqualityConstraint(DoubleVector, Double) |
Adds an equality constraint of the form
coefficients'x = rightHandSide
(Inherited from LinearConstrainedProblem) | |

AddEqualityConstraint(ILinearConstraintCoefficients, Double) |
Adds an equality constraint of the form
coefficients'x = rightHandSide
(Inherited from LinearConstrainedProblem) | |

AddLowerBound(Int32, Double) |
Adds an lower bound constraint on the variable at the given index.
(Inherited from BoundedVariableProblem) | |

AddLowerBound(Int32, Double, Double) |
Adds an lower bound constraint on the variable at the given index.
(Inherited from BoundedVariableProblem) | |

AddLowerBoundConstraint(DoubleVector, Double) |
Adds a linear inequality constraint of the form
coefficients'x >= lowerBound
(Inherited from LinearConstrainedProblem) | |

AddLowerBoundConstraint(ILinearConstraintCoefficients, Double) |
Adds a linear inequality constraint of the form
coefficients'x >= lowerBound
(Inherited from LinearConstrainedProblem) | |

AddLowerBoundConstraint(DoubleVector, Double, Double) |
Adds a linear inequality constraint of the form
coefficients'x >= lowerBound
(Inherited from LinearConstrainedProblem) | |

AddLowerBoundConstraint(ILinearConstraintCoefficients, Double, Double) |
Adds a linear inequality constraint of the form
coefficients'x >= lowerBound
(Inherited from LinearConstrainedProblem) | |

AddUpperBound(Int32, Double) |
Adds an upper bound constraint on the variable at the given index.
(Inherited from BoundedVariableProblem) | |

AddUpperBound(Int32, Double, Double) |
Adds an upper bound constraint on the variable at the given index.
(Inherited from BoundedVariableProblem) | |

AddUpperBoundConstraint(DoubleVector, Double) |
Adds a linear inequality constraint of the form
coefficients'x <= upperBound
(Inherited from LinearConstrainedProblem) | |

AddUpperBoundConstraint(ILinearConstraintCoefficients, Double) |
Adds a linear inequality constraint of the form
coefficients'x <= upperBound
(Inherited from LinearConstrainedProblem) | |

AddUpperBoundConstraint(DoubleVector, Double, Double) |
Adds a linear inequality constraint of the form
coefficients'x <= upperBound
(Inherited from LinearConstrainedProblem) | |

AddUpperBoundConstraint(ILinearConstraintCoefficients, Double, Double) |
Adds a linear inequality constraint of the form
coefficients'x <= upperBound
(Inherited from LinearConstrainedProblem) | |

CheckVariableIndex |
Checks that the given variable index is valid. Must be between 0
and number of variables - 1.
(Overrides BoundedVariableProblemCheckVariableIndex(Int32)) | |

Clone | Returns a deep copy of self. | |

EvaluateConstraints |
Evaluates each of the constraints at the specified point and
returns the results.
(Inherited from LinearConstrainedProblem) | |

IsLinear | Performs a check to see if in fact the problem is a linear programming problem. Or, equivalently, if all the entries in the matrix H are zero. | |

PointIsFeasible(DoubleVector) |
Function for determining the feasibility of a give point. A point
x is feasible if it satisfies all the constraints of the
problem.
(Inherited from LinearConstrainedProblem) | |

PointIsFeasible(DoubleVector, Double) |
Function for determining the feasibility of a give point.
(Inherited from LinearConstrainedProblem) | |

ToString |
Creates a string representation of the problem.
(Overrides ObjectToString) |

Fields

Name | Description | |
---|---|---|

constraints_ |
Problem constraints.
(Inherited from LinearConstrainedProblem) | |

variableBounds_ |
Map containing variable bounds. Key is the variable ID, the value is the bounds.
(Inherited from BoundedVariableProblem) |

Remarks

A QP problem has the following form:

Minimize 0.5*x'Hx + x'c

Subject to

ai'x = bi, for i in E,

ai'x >= bi, for i in I

where H is a symmetric matrix (sometimes called the Hessian) and E and I are finite sets of Indices.

See Also