#include <hyper_graph_optimization_problem_edge_based.h>
Public Member Functions | |
void | computeCombinedSparseJacobian (Eigen::SparseMatrix< double > &jacobian, bool objective_lsq, bool equality, bool inequality, bool finite_combined_bounds, bool active_ineq=false, double weight_eq=1.0, double weight_ineq=1.0, double weight_bounds=1.0, const Eigen::VectorXd *values=nullptr, const Eigen::VectorXi *col_nnz=nullptr) override |
int | computeCombinedSparseJacobiansNNZ (bool objective_lsq=true, bool equality=true, bool inequality=true) override |
void | computeCombinedSparseJacobiansStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool objective_lsq=true, bool equality=true, bool inequality=true) override |
void | computeCombinedSparseJacobiansValues (Eigen::Ref< Eigen::VectorXd > values, bool objective_lsq=true, bool equality=true, bool inequality=true, const double *multipliers_obj=nullptr, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr) override |
void | computeDenseHessianObjective (Eigen::Ref< Eigen::MatrixXd > hessian, double multiplier=1.0) override |
void | computeDenseJacobianActiveInequalities (Eigen::Ref< Eigen::MatrixXd > jacobian, double weight=1.0) override |
Compute the Jacobian Jc(x) with non-zeros for active constraints c(x)>= 0 and zeros for inactive ones. More... | |
void | computeDenseJacobianEqualities (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr) override |
Compute the equality constraint Jacobian Jceq(x) for the current parameter set. More... | |
void | computeDenseJacobianInequalities (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr) override |
Compute the inequality constraint Jacobian Jc(x) for the current parameter set. More... | |
void | computeDenseJacobianLsqObjective (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr) override |
Compute the objective Jacobian Jf(x) for the current parameter set. More... | |
void | computeDenseJacobians (Eigen::Ref< Eigen::VectorXd > gradient_non_lsq_obj, Eigen::Ref< Eigen::MatrixXd > jacobian_lsq_obj, Eigen::Ref< Eigen::MatrixXd > jacobian_eq, Eigen::Ref< Eigen::MatrixXd > jacobian_ineq, const double *multipliers_lsq_obj=nullptr, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, bool active_ineq=false, double active_ineq_weight=1.0) override |
Compute the objective and constraint Jacobians at once. More... | |
void | computeGradientNonLsqObjective (Eigen::Ref< Eigen::VectorXd > gradient) override |
void | computeGradientObjective (Eigen::Ref< Eigen::VectorXd > gradient) override |
void | computeGradientObjectiveAndCombinedSparseJacobiansValues (Eigen::Ref< Eigen::VectorXd > gradient, Eigen::Ref< Eigen::VectorXd > jac_values, bool equality=true, bool inequality=true, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr) override |
int | computeSparseHessianEqualitiesNNZ (bool lower_part_only=false) override |
void | computeSparseHessianEqualitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false) override |
void | computeSparseHessianEqualitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr, bool lower_part_only=false) override |
int | computeSparseHessianInequalitiesNNZ (bool lower_part_only=false) override |
void | computeSparseHessianInequalitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false) override |
void | computeSparseHessianInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr, bool lower_part_only=false) override |
void | computeSparseHessianLagrangian (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &H, const double *multipliers_eq, const double *multipliers_ineq, const Eigen::VectorXi *col_nnz=nullptr, bool upper_part_only=false) override |
Compute the hessian of the lagrangian L(x) = f(x) + lambda1 * c(x) + lambda2 * ceq(x) More... | |
void | computeSparseHessianLagrangianNNZperCol (Eigen::Ref< Eigen::VectorXi > col_nnz, bool upper_part_only=false) override |
void | computeSparseHessianObjectiveLL (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &H, const Eigen::VectorXi *col_nnz=nullptr, bool upper_part_only=false) override |
int | computeSparseHessianObjectiveNNZ (bool lower_part_only=false) override |
void | computeSparseHessianObjectiveNNZperCol (Eigen::Ref< Eigen::VectorXi > col_nnz, bool upper_part_only=false) override |
void | computeSparseHessianObjectiveStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false) override |
void | computeSparseHessianObjectiveValues (Eigen::Ref< Eigen::VectorXd > values, double multiplier=1.0, bool lower_part_only=false) override |
void | computeSparseHessiansNNZ (int &nnz_obj, int &nnz_eq, int &nnz_ineq, bool lower_part_only=false) override |
void | computeSparseHessiansStructure (Eigen::Ref< Eigen::VectorXi > i_row_obj, Eigen::Ref< Eigen::VectorXi > j_col_obj, Eigen::Ref< Eigen::VectorXi > i_row_eq, Eigen::Ref< Eigen::VectorXi > j_col_eq, Eigen::Ref< Eigen::VectorXi > i_row_ineq, Eigen::Ref< Eigen::VectorXi > j_col_ineq, bool lower_part_only=false) override |
void | computeSparseHessiansValues (Eigen::Ref< Eigen::VectorXd > values_obj, Eigen::Ref< Eigen::VectorXd > values_eq, Eigen::Ref< Eigen::VectorXd > values_ineq, double multiplier_obj=1.0, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, bool lower_part_only=false) override |
void | computeSparseJacobianActiveInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, double weight=1.0) override |
int | computeSparseJacobianEqualitiesNNZ () override |
void | computeSparseJacobianEqualitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col) override |
void | computeSparseJacobianEqualitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr) override |
int | computeSparseJacobianInequalitiesNNZ () override |
void | computeSparseJacobianInequalitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col) override |
void | computeSparseJacobianInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr) override |
int | computeSparseJacobianLsqObjectiveNNZ () override |
void | computeSparseJacobianLsqObjectiveStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col) override |
void | computeSparseJacobianLsqObjectiveValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr) override |
void | computeSparseJacobiansValues (Eigen::Ref< Eigen::VectorXd > values_obj, Eigen::Ref< Eigen::VectorXd > values_eq, Eigen::Ref< Eigen::VectorXd > values_ineq, const double *multipliers_obj=nullptr, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, bool active_ineq=false, double active_ineq_weight=1.0) override |
void | computeSparseJacobianTwoSideBoundedLinearForm (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &A, bool include_finite_bounds, const Eigen::VectorXi *col_nnz=nullptr) override |
Compute the jacobian A for the linear form lbA <= A x <= lbB. More... | |
void | computeSparseJacobianTwoSideBoundedLinearFormAndHessianLagrangian (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &H, const double *multipliers_eq, const double *multipliers_ineq, Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &A, bool include_finite_bounds, const Eigen::VectorXi *col_nnz_H, const Eigen::VectorXi *col_nnz_A, bool upper_part_only_H) override |
Compute the Jacobian and Hessian of the lagrangian. More... | |
void | computeSparseJacobianTwoSideBoundedLinearFormAndHessianObjective (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &H, Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &A, bool include_finite_bounds, const Eigen::VectorXi *col_nnz_H, const Eigen::VectorXi *col_nnz_A, bool upper_part_only_H) override |
int | computeSparseJacobianTwoSideBoundedLinearFormNNZ (bool include_finite_bounds) override |
void | computeSparseJacobianTwoSideBoundedLinearFormNNZPerColumn (Eigen::Ref< Eigen::VectorXi > col_nnz, bool include_finite_bounds) override |
void | computeSparseJacobianTwoSideBoundedLinearFormStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool include_finite_bounds) override |
void | computeSparseJacobianTwoSideBoundedLinearFormValues (Eigen::Ref< Eigen::VectorXd > values, bool include_finite_bounds) override |
BaseHyperGraphOptimizationProblem::Ptr | getInstance () const override |
HyperGraphOptimizationProblemEdgeBased ()=default | |
HyperGraphOptimizationProblemEdgeBased (OptimizationEdgeSet::Ptr edges, VertexSetInterface::Ptr vertices) | |
![]() | |
BaseHyperGraphOptimizationProblem ()=default | |
BaseHyperGraphOptimizationProblem (OptimizationEdgeSet::Ptr edges, VertexSetInterface::Ptr vertices) | |
HyperGraph & | getGraph () |
const HyperGraph & | getGraph () const |
virtual void | precomputeEdgeQuantities () |
virtual void | precomputeGraphQuantities () |
virtual void | precomputeVertexQuantities () |
void | setGraph (OptimizationEdgeSet::Ptr edges, VertexSetInterface::Ptr vertices) |
int | getNonLsqObjectiveDimension () override |
Total dimension of objective function terms. More... | |
int | getLsqObjectiveDimension () override |
Total dimension of least-squares objective function terms. More... | |
int | getObjectiveDimension () override |
Get dimension of the objective (should be zero or one, includes Lsq objectives if present) More... | |
int | getEqualityDimension () override |
Total dimension of equality constraints. More... | |
int | getInequalityDimension () override |
Total dimension of general inequality constraints. More... | |
double | computeValueNonLsqObjective () override |
void | computeValuesLsqObjective (Eigen::Ref< Eigen::VectorXd > values) override |
Compute the objective function values f(x) for the current parameter set. More... | |
double | computeValueObjective () override |
void | computeValuesEquality (Eigen::Ref< Eigen::VectorXd > values) override |
Compute the equality constraint values ceq(x) for the current parameter set. More... | |
void | computeValuesInequality (Eigen::Ref< Eigen::VectorXd > values) override |
Compute the inequality constraint values c(x) for the current parameter set. More... | |
void | computeValues (double &non_lsq_obj_value, Eigen::Ref< Eigen::VectorXd > lsq_obj_values, Eigen::Ref< Eigen::VectorXd > eq_values, Eigen::Ref< Eigen::VectorXd > ineq_values) override |
double | getParameterValue (int idx) override |
Return specific value of the parameter vector. More... | |
void | setParameterValue (int idx, double x) override |
Set specific value of the parameter vector. More... | |
void | getParameterVector (Eigen::Ref< Eigen::VectorXd > x) override |
Return deep copy of the complete parameter vector. More... | |
void | setParameterVector (const Eigen::Ref< const Eigen::VectorXd > &x) override |
Set complete parameter vector. More... | |
void | getBounds (Eigen::Ref< Eigen::VectorXd > lb, Eigen::Ref< Eigen::VectorXd > ub) override |
Get lower and upper bound vector. More... | |
void | setBounds (const Eigen::Ref< const Eigen::VectorXd > &lb, const Eigen::Ref< const Eigen::VectorXd > &ub) override |
Set lower and upper bound vector. More... | |
double | getLowerBound (int idx) override |
Return specific lower bound value of a parameter. More... | |
double | getUpperBound (int idx) override |
Return specific upper bound of a parameter. More... | |
void | setLowerBound (int idx, double lb) override |
Set specific lower bound of a parameter. More... | |
void | setUpperBound (int idx, double ub) override |
Set specific upper bound of a parameter. More... | |
int | getParameterDimension () override |
Effictive dimension of the optimization parameter set (changeable, non-fixed part) More... | |
void | applyIncrement (const Eigen::Ref< const Eigen::VectorXd > &increment) override |
Apply increment to the current parameter set. More... | |
void | applyIncrement (int idx, double increment) override |
Apply increment to the current parameter set (single element overload) More... | |
void | backupParameters () override |
Restore parameter set from the last backup and keep backup if desired. More... | |
void | restoreBackupParameters (bool keep_backup) override |
Discard last backup (or all) More... | |
void | discardBackupParameters (bool all=false) override |
bool | isLeastSquaresProblem () const override |
Check if the underlying problem is defined in the least squares form. More... | |
int | finiteCombinedBoundsDimension () override |
Dimension of the set of finite bounds (combined such that each ub and lb component define a single dimension) More... | |
int | finiteBoundsDimension () override |
Dimension of the set of finite bounds (individual bounds ub and lb) More... | |
void | computeValuesActiveInequality (Eigen::Ref< Eigen::VectorXd > values, double weight=1.0) override |
Compute the values of the active inequality constraints (elementwise max(0, c(x))) More... | |
void | computeDistanceFiniteCombinedBounds (Eigen::Ref< Eigen::VectorXd > values) override |
Compute the distance to finite bound values (combined lower and upper) More... | |
void | computeLowerAndUpperBoundDiff (Eigen::Ref< Eigen::VectorXd > lb_minus_x, Eigen::Ref< Eigen::VectorXd > ub_minus_x) override |
Compute the distance between parameters and bounds. More... | |
void | getParametersAndBoundsFinite (Eigen::Ref< Eigen::VectorXd > lb_finite_bounds, Eigen::Ref< Eigen::VectorXd > ub_finite_bounds, Eigen::Ref< Eigen::VectorXd > x_finite_bounds) override |
Return bound and parameter vectors only for finite boudns. More... | |
void | computeDenseJacobianFiniteCombinedBounds (Eigen::Ref< Eigen::MatrixXd > jacobian, double weight=1.0) override |
Compute the Jacobian for finite combined bounds. More... | |
int | computeSparseJacobianFiniteCombinedBoundsNNZ () override |
void | computeSparseJacobianFiniteCombinedBoundsStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col) override |
void | computeSparseJacobianFiniteCombinedBoundsValues (Eigen::Ref< Eigen::VectorXd > values, double weight=1.0) override |
void | computeDenseJacobianFiniteCombinedBoundsIdentity (Eigen::Ref< Eigen::MatrixXd > jacobian) override |
Compute the Jacobian for finite combined bounds. More... | |
bool | checkIfAllUnfixedParam (std::function< bool(double, int)> fun) |
Check if a function taking the parameter value and unfixed-idx is true for all unfixed parameter values. More... | |
void | clear () override |
![]() | |
virtual | ~OptimizationProblemInterface () |
virtual void | computeSparseJacobianLsqObjective (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr) |
virtual void | computeSparseJacobianEqualities (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr) |
virtual void | computeSparseJacobianInequalities (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr) |
virtual void | computeSparseJacobianActiveInequalities (Eigen::SparseMatrix< double > &jacobian, double weight=1.0) |
virtual void | computeSparseJacobianFiniteCombinedBounds (Eigen::SparseMatrix< double > &jacobian, double weight=1.0) |
virtual void | computeSparseJacobiansNNZ (int &nnz_lsq_obj, int &nnz_eq, int &nnz_ineq) |
virtual void | computeSparseJacobiansStructure (Eigen::Ref< Eigen::VectorXi > i_row_obj, Eigen::Ref< Eigen::VectorXi > j_col_obj, Eigen::Ref< Eigen::VectorXi > i_row_eq, Eigen::Ref< Eigen::VectorXi > j_col_eq, Eigen::Ref< Eigen::VectorXi > i_row_ineq, Eigen::Ref< Eigen::VectorXi > j_col_ineq) |
virtual void | computeSparseJacobians (Eigen::SparseMatrix< double > &jacobian_lsq_obj, Eigen::SparseMatrix< double > &jacobian_eq, Eigen::SparseMatrix< double > &jacobian_ineq, const double *multipliers_lsq_obj=nullptr, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, bool active_ineq=false, double active_ineq_weight=1.0) |
virtual void | computeDenseHessianObjective (const Eigen::Ref< const Eigen::MatrixXd > &jacobian, Eigen::Ref< Eigen::MatrixXd > hessian, const double *multipliers=nullptr, bool jacob_scaled=true) |
Compute the objective Hessian Hf(x) for the current parameter set. More... | |
virtual void | computeSparseHessianObjective (Eigen::SparseMatrix< double > &hessian, double multiplier=1.0) |
virtual void | computeDenseHessianEqualities (Eigen::Ref< Eigen::MatrixXd > hessian, const double *multipliers=nullptr) |
virtual void | computeSparseHessianEqualities (Eigen::SparseMatrix< double > &hessian, const double *multipliers=nullptr) |
virtual void | computeDenseHessianInequalities (Eigen::Ref< Eigen::MatrixXd > hessian, const double *multipliers=nullptr) |
virtual void | computeSparseHessianInequalities (Eigen::SparseMatrix< double > &hessian, const double *multipliers=nullptr) |
virtual void | computeDenseHessians (Eigen::Ref< Eigen::MatrixXd > hessian_obj, Eigen::Ref< Eigen::MatrixXd > hessian_eq, Eigen::Ref< Eigen::MatrixXd > hessian_ineq, double multiplier_obj=1.0, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr) |
virtual void | computeSparseHessians (Eigen::SparseMatrix< double > &hessian_obj, Eigen::SparseMatrix< double > &hessian_eq, Eigen::SparseMatrix< double > &hessian_ineq, double multiplier_obj=1.0, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr) |
virtual void | computeBoundsForTwoSideBoundedLinearForm (Eigen::Ref< Eigen::VectorXd > lbA, Eigen::Ref< Eigen::VectorXd > ubA, bool include_finite_bounds) |
Compute lower and upper bounds lbA and ubA for the linear form lbA <= A x <= ubA. More... | |
Additional Inherited Members | |
![]() | |
using | Ptr = std::shared_ptr< BaseHyperGraphOptimizationProblem > |
![]() | |
using | Ptr = std::shared_ptr< OptimizationProblemInterface > |
using | UPtr = std::unique_ptr< OptimizationProblemInterface > |
![]() | |
static Factory< BaseHyperGraphOptimizationProblem > & | getFactory () |
Get access to the accociated factory. More... | |
![]() | |
HyperGraph | _graph |
bool | _graph_precomputed = false |
int | _dim_param = 0 |
int | _dim_non_lsq_obj = 0 |
int | _dim_lsq_obj = 0 |
int | _dim_eq = 0 |
int | _dim_ineq = 0 |
![]() | |
bool | _warn_if_not_specialized = true |
Definition at line 56 of file hyper_graph_optimization_problem_edge_based.h.
|
default |
|
inline |
Definition at line 82 of file hyper_graph_optimization_problem_edge_based.h.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1502 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1203 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1211 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1374 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1960 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the Jacobian Jc(x) with non-zeros for active constraints c(x)>= 0 and zeros for inactive ones.
[out] | jacobian | The resulting Jacobian matrix [inequalityDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[in] | weight | Optionally provide a weight factor |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 697 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the equality constraint Jacobian Jceq(x) for the current parameter set.
[out] | jacobian | The resulting Jacobian matrix [equalityDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[in] | multipliers | Optionally provide a vector of multipliers to scale each cost function term [equalityDimension() x 1] |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 346 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the inequality constraint Jacobian Jc(x) for the current parameter set.
[out] | jacobian | The resulting Jacobian matrix [inequalityDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[in] | multipliers | Optionally provide a vector of multipliers to scale each cost function term [inequalityDimension() x 1] |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 521 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the objective Jacobian Jf(x) for the current parameter set.
[out] | jacobian | The resulting Jacobian matrix [objectiveDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[in] | multipliers | Optionally provide a vector of multipliers to scale each cost function term [objectiveDimension() x 1] |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 172 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the objective and constraint Jacobians at once.
Use this method to speed up Jacobian computation if possible. The default implementation just calls the individual Jacobian computations.
[out] | jacobian_obj | The resulting objective Jacobian matrix [objectiveDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[out] | jacobian_eq | The resulting equality constraint Jacobian matrix [equalityDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[out] | jacobian_ineq | The resulting inequality constraint Jacobian matrix [inequalityDimension() x parameterDimension()]. Warning: the matrix must be pre-allocated with ZEROS! |
[in] | multipliers | Optionally provide a vector of multipliers to scale each cost function term [objectiveDimension() + equalityDimension() + inequalityDimension() x 1] |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 863 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 126 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 53 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1778 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2891 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2965 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3074 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3194 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3268 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3377 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the hessian of the lagrangian L(x) = f(x) + lambda1 * c(x) + lambda2 * ceq(x)
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4044 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4400 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2573 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2109 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2770 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2214 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 2372 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3497 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3505 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 3513 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 776 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 390 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 420 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 482 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 566 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 596 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 658 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 215 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 245 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 307 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 1039 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the jacobian A for the linear form lbA <= A x <= lbB.
Especially some QP solvers require either
lbA <= A x<= ubA
or
lbA <= A x <= ubA lb <= x <= ub
The first formulatin includes bounds and hence the bottom rows of A are the identity. However, in case lb and ub are infinity, A might have obsolete rows.
If parameter include_bounds
is true:
only finite bounds are considered and matrix A is of size [getEqualityDimension() + getInequalityDimension() + finiteCombinedBounds() x parameterDimension()].
If parameter include_bounds
is false:
the size of matrix A is [getEqualityDimension() + getInequalityDimension() x parameterDimension()].
[out] | A | Combined jacobian (see description above) |
[in] | include_finite_bounds | Specify whether bounds should be included in A (check dimension of A as descirbed above) |
[in] | col_nnz | Estimate for number of nnz per column to speed up insertion |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4593 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Compute the Jacobian and Hessian of the lagrangian.
This method combines computeSparseJacobianTwoSideBoundedLinearForm() and computeSparseHessianLagrangian() in order to speed up computation. Often, Hessian computations rely on first order derivatives and so we do not need to compute the Jacobian twice.
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4991 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 5415 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4784 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4713 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4793 of file hyper_graph_optimization_problem_edge_based.cpp.
|
overridevirtual |
Reimplemented from corbo::OptimizationProblemInterface.
Definition at line 4926 of file hyper_graph_optimization_problem_edge_based.cpp.
|
inlineoverridevirtual |
Reimplemented from corbo::BaseHyperGraphOptimizationProblem.
Definition at line 87 of file hyper_graph_optimization_problem_edge_based.h.