Public Member Functions | List of all members
corbo::HyperGraphOptimizationProblemIgnoreStructure Class Reference

#include <hyper_graph_optimization_problem_ignore_structure.h>

Inheritance diagram for corbo::HyperGraphOptimizationProblemIgnoreStructure:
Inheritance graph
[legend]

Public Member Functions

BaseHyperGraphOptimizationProblem::Ptr getInstance () const override
 
 HyperGraphOptimizationProblemIgnoreStructure ()
 
 HyperGraphOptimizationProblemIgnoreStructure (OptimizationEdgeSet::Ptr edges, VertexSetInterface::Ptr vertices)
 
- Public Member Functions inherited from corbo::BaseHyperGraphOptimizationProblem
 BaseHyperGraphOptimizationProblem ()=default
 
 BaseHyperGraphOptimizationProblem (OptimizationEdgeSet::Ptr edges, VertexSetInterface::Ptr vertices)
 
HyperGraphgetGraph ()
 
const HyperGraphgetGraph () 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
 
- Public Member Functions inherited from corbo::OptimizationProblemInterface
virtual ~OptimizationProblemInterface ()
 
virtual void computeGradientObjective (Eigen::Ref< Eigen::VectorXd > gradient)
 
virtual void computeGradientNonLsqObjective (Eigen::Ref< Eigen::VectorXd > gradient)
 
virtual void computeDenseJacobianLsqObjective (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr)
 Compute the objective Jacobian Jf(x) for the current parameter set. More...
 
virtual int computeSparseJacobianLsqObjectiveNNZ ()
 
virtual void computeSparseJacobianLsqObjectiveStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col)
 
virtual void computeSparseJacobianLsqObjectiveValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr)
 
virtual void computeSparseJacobianLsqObjective (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr)
 
virtual void computeDenseJacobianEqualities (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr)
 Compute the equality constraint Jacobian Jceq(x) for the current parameter set. More...
 
virtual int computeSparseJacobianEqualitiesNNZ ()
 
virtual void computeSparseJacobianEqualitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col)
 
virtual void computeSparseJacobianEqualitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr)
 
virtual void computeSparseJacobianEqualities (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr)
 
virtual void computeDenseJacobianInequalities (Eigen::Ref< Eigen::MatrixXd > jacobian, const double *multipliers=nullptr)
 Compute the inequality constraint Jacobian Jc(x) for the current parameter set. More...
 
virtual int computeSparseJacobianInequalitiesNNZ ()
 
virtual void computeSparseJacobianInequalitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col)
 
virtual void computeSparseJacobianInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr)
 
virtual void computeSparseJacobianInequalities (Eigen::SparseMatrix< double > &jacobian, const double *multipliers=nullptr)
 
virtual void computeDenseJacobianActiveInequalities (Eigen::Ref< Eigen::MatrixXd > jacobian, double weight=1.0)
 Compute the Jacobian Jc(x) with non-zeros for active constraints c(x)>= 0 and zeros for inactive ones. More...
 
virtual void computeSparseJacobianActiveInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, double weight=1.0)
 
virtual void computeSparseJacobianActiveInequalities (Eigen::SparseMatrix< double > &jacobian, double weight=1.0)
 
virtual void computeSparseJacobianFiniteCombinedBounds (Eigen::SparseMatrix< double > &jacobian, double weight=1.0)
 
virtual 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)
 Compute the objective and constraint Jacobians at once. More...
 
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 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)
 
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 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)
 
virtual int computeCombinedSparseJacobiansNNZ (bool objective_lsq=true, bool equality=true, bool inequality=true)
 
virtual void computeCombinedSparseJacobiansStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool objective_lsq=true, bool equality=true, bool inequality=true)
 
virtual 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)
 
virtual 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)
 
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 computeDenseHessianObjective (Eigen::Ref< Eigen::MatrixXd > hessian, double multiplier=1.0)
 
virtual int computeSparseHessianObjectiveNNZ (bool lower_part_only=false)
 
virtual void computeSparseHessianObjectiveStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false)
 
virtual void computeSparseHessianObjectiveValues (Eigen::Ref< Eigen::VectorXd > values, double multiplier=1.0, bool lower_part_only=false)
 
virtual void computeSparseHessianObjective (Eigen::SparseMatrix< double > &hessian, double multiplier=1.0)
 
virtual void computeSparseHessianObjectiveLL (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &H, const Eigen::VectorXi *col_nnz=nullptr, bool upper_part_only=false)
 
virtual void computeSparseHessianObjectiveNNZperCol (Eigen::Ref< Eigen::VectorXi > col_nnz, bool upper_part_only=false)
 
virtual void computeDenseHessianEqualities (Eigen::Ref< Eigen::MatrixXd > hessian, const double *multipliers=nullptr)
 
virtual int computeSparseHessianEqualitiesNNZ (bool lower_part_only=false)
 
virtual void computeSparseHessianEqualitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false)
 
virtual void computeSparseHessianEqualitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr, bool lower_part_only=false)
 
virtual void computeSparseHessianEqualities (Eigen::SparseMatrix< double > &hessian, const double *multipliers=nullptr)
 
virtual void computeDenseHessianInequalities (Eigen::Ref< Eigen::MatrixXd > hessian, const double *multipliers=nullptr)
 
virtual int computeSparseHessianInequalitiesNNZ (bool lower_part_only=false)
 
virtual void computeSparseHessianInequalitiesStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool lower_part_only=false)
 
virtual void computeSparseHessianInequalitiesValues (Eigen::Ref< Eigen::VectorXd > values, const double *multipliers=nullptr, bool lower_part_only=false)
 
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 computeSparseHessiansNNZ (int &nnz_obj, int &nnz_eq, int &nnz_ineq, bool lower_part_only=false)
 
virtual 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)
 
virtual 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)
 
virtual 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)
 Compute the hessian of the lagrangian L(x) = f(x) + lambda1 * c(x) + lambda2 * ceq(x) More...
 
virtual void computeSparseHessianLagrangianNNZperCol (Eigen::Ref< Eigen::VectorXi > col_nnz, bool upper_part_only)
 
virtual void computeSparseJacobianTwoSideBoundedLinearForm (Eigen::SparseMatrix< double, Eigen::ColMajor, long long > &A, bool include_finite_bounds, const Eigen::VectorXi *col_nnz=nullptr)
 Compute the jacobian A for the linear form lbA <= A x <= lbB. More...
 
virtual void computeSparseJacobianTwoSideBoundedLinearFormNNZPerColumn (Eigen::Ref< Eigen::VectorXi > col_nnz, bool include_finite_bounds)
 
virtual int computeSparseJacobianTwoSideBoundedLinearFormNNZ (bool include_finite_bounds)
 
virtual void computeSparseJacobianTwoSideBoundedLinearFormStructure (Eigen::Ref< Eigen::VectorXi > i_row, Eigen::Ref< Eigen::VectorXi > j_col, bool include_finite_bounds)
 
virtual void computeSparseJacobianTwoSideBoundedLinearFormValues (Eigen::Ref< Eigen::VectorXd > values, bool include_finite_bounds)
 
virtual 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=nullptr, const Eigen::VectorXi *col_nnz_A=nullptr, bool upper_part_only_H=false)
 Compute the Jacobian and Hessian of the lagrangian. More...
 
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...
 
virtual 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)
 

Additional Inherited Members

- Public Types inherited from corbo::BaseHyperGraphOptimizationProblem
using Ptr = std::shared_ptr< BaseHyperGraphOptimizationProblem >
 
- Public Types inherited from corbo::OptimizationProblemInterface
using Ptr = std::shared_ptr< OptimizationProblemInterface >
 
using UPtr = std::unique_ptr< OptimizationProblemInterface >
 
- Static Public Member Functions inherited from corbo::BaseHyperGraphOptimizationProblem
static Factory< BaseHyperGraphOptimizationProblem > & getFactory ()
 Get access to the accociated factory. More...
 
- Protected Attributes inherited from corbo::BaseHyperGraphOptimizationProblem
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
 
- Protected Attributes inherited from corbo::OptimizationProblemInterface
bool _warn_if_not_specialized = true
 

Detailed Description

Definition at line 56 of file hyper_graph_optimization_problem_ignore_structure.h.

Constructor & Destructor Documentation

◆ HyperGraphOptimizationProblemIgnoreStructure() [1/2]

corbo::HyperGraphOptimizationProblemIgnoreStructure::HyperGraphOptimizationProblemIgnoreStructure ( )
inline

◆ HyperGraphOptimizationProblemIgnoreStructure() [2/2]

corbo::HyperGraphOptimizationProblemIgnoreStructure::HyperGraphOptimizationProblemIgnoreStructure ( OptimizationEdgeSet::Ptr  edges,
VertexSetInterface::Ptr  vertices 
)
inline

Member Function Documentation

◆ getInstance()

BaseHyperGraphOptimizationProblem::Ptr corbo::HyperGraphOptimizationProblemIgnoreStructure::getInstance ( ) const
inlineoverridevirtual

The documentation for this class was generated from the following file:


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:07:20