Class NullSpaceProjection
java.lang.Object
org.ojalgo.optimisation.convex.NullSpaceProjection
Null-Space Projection for Convex Optimisation Problems with Equality Constraints.
This class provides methods to reduce a convex optimisation problem with equality constraints to an equivalent problem without equality constraints, and fewer variables, by projecting onto the null-space of the equality constraint matrix. It uses QR decomposition to find a basis for the null-space and constructs the reduced problem accordingly.
There is of course some overhead in performing the reduction and in mapping solutions back and forth between the full and reduced problems, so this approach is most beneficial when the number of equality constraints is significant compared to the number of variables. In addition, the reduced problem may be denser than the original, which can impact solver performance.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConvexData<Double> private ConvexData<Double> private final MatrixStore<Double> private final MatrixStore<Double> -
Constructor Summary
ConstructorsConstructorDescriptionNullSpaceProjection(ConvexData<Double> original, QR<Double> decomposition, MatrixStore<Double> Z, MatrixStore<Double> x0) -
Method Summary
Modifier and TypeMethodDescription(package private) ConvexData<Double> Constructs and returns the reduced convex optimisation problem without equality constraints.(package private) static NullSpaceProjectionreduce(ConvexData<Double> fullModel) Reduces the given convex optimisation problem by eliminating equality constraints using null-space projection.(package private) Optimisation.ResulttoFullModelState(Optimisation.Result reducedlState) Maps a solution of the reduced problem back to a solution of the original full problem.(package private) Optimisation.ResulttoReducedState(Optimisation.Result fullModelState) Maps a solution of the full problem to a solution of the reduced problem.
-
Field Details
-
myOriginal
-
myDecomposition
-
myZ
-
myX0
-
myReduced
-
-
Constructor Details
-
NullSpaceProjection
NullSpaceProjection(ConvexData<Double> original, QR<Double> decomposition, MatrixStore<Double> Z, MatrixStore<Double> x0)
-
-
Method Details
-
reduce
Reduces the given convex optimisation problem by eliminating equality constraints using null-space projection. -
getReduced
ConvexData<Double> getReduced()Constructs and returns the reduced convex optimisation problem without equality constraints. -
toFullModelState
Maps a solution of the reduced problem back to a solution of the original full problem. -
toReducedState
Maps a solution of the full problem to a solution of the reduced problem. If the full problem solution is null or infeasible, null is returned.
-