Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
trust_region.h File Reference
#include <algorithm>
#include <cmath>
#include <cstdint>
#include <limits>
#include <vector>
#include "Eigen/Core"
#include "absl/algorithm/container.h"
#include "absl/log/check.h"
#include "ortools/base/mathutil.h"
#include "ortools/pdlp/sharded_quadratic_program.h"
#include "ortools/pdlp/sharder.h"

Go to the source code of this file.

Classes

struct  operations_research::pdlp::TrustRegionResult
 
struct  operations_research::pdlp::LocalizedLagrangianBounds
 
class  operations_research::pdlp::internal::PrimalTrustRegionProblem
 
class  operations_research::pdlp::internal::DualTrustRegionProblem
 

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::pdlp
 Validation utilities for solvers.proto.
 
namespace  operations_research::pdlp::internal
 Utility functions for internal use only.
 

Enumerations

enum class  operations_research::pdlp::PrimalDualNorm { operations_research::pdlp::kMaxNorm , operations_research::pdlp::kEuclideanNorm }
 

Functions

TrustRegionResult operations_research::pdlp::SolveTrustRegion (const Eigen::VectorXd &objective_vector, const Eigen::VectorXd &variable_lower_bounds, const Eigen::VectorXd &variable_upper_bounds, const Eigen::VectorXd &center_point, const Eigen::VectorXd &norm_weights, double target_radius, const Sharder &sharder)
 
TrustRegionResult operations_research::pdlp::SolveDiagonalTrustRegion (const Eigen::VectorXd &objective_vector, const Eigen::VectorXd &objective_matrix_diagonal, const Eigen::VectorXd &variable_lower_bounds, const Eigen::VectorXd &variable_upper_bounds, const Eigen::VectorXd &center_point, const Eigen::VectorXd &norm_weights, double target_radius, const Sharder &sharder, double solve_tolerance)
 
TrustRegionResult operations_research::pdlp::SolveDiagonalQpTrustRegion (const ShardedQuadraticProgram &sharded_qp, const Eigen::VectorXd &primal_solution, const Eigen::VectorXd &dual_solution, const Eigen::VectorXd &primal_gradient, const Eigen::VectorXd &dual_gradient, const double primal_weight, double target_radius, double solve_tolerance)
 
double operations_research::pdlp::BoundGap (const LocalizedLagrangianBounds &bounds)
 
*x LocalizedLagrangianBounds operations_research::pdlp::ComputeLocalizedLagrangianBounds (const ShardedQuadraticProgram &sharded_qp, const Eigen::VectorXd &primal_solution, const Eigen::VectorXd &dual_solution, PrimalDualNorm primal_dual_norm, double primal_weight, double radius, const Eigen::VectorXd *primal_product, const Eigen::VectorXd *dual_product, bool use_diagonal_qp_trust_region_solver, double diagonal_qp_trust_region_solver_tolerance)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::DistanceAtCriticalStepSize (const TrustRegionProblem &problem, const int64_t index)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::CriticalStepSize (const TrustRegionProblem &problem, const int64_t index)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::ProjectedValue (const TrustRegionProblem &problem, const int64_t index, const double step_size)
 
template<typename ArrayType , typename ValueFunction >
double operations_research::pdlp::internal::EasyMedian (ArrayType array, ValueFunction value_function)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::ComputeInitialUndecidedComponents (const TrustRegionProblem &problem, int64_t start_index, int64_t end_index, std::vector< int64_t > &undecided_components)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::RadiusSquaredOfUndecidedComponents (const TrustRegionProblem &problem, const double step_size, const std::vector< int64_t > &undecided_components)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::RemoveCriticalStepsAboveThreshold (const TrustRegionProblem &problem, const double step_size_threshold, std::vector< int64_t > &undecided_components)
 
template<typename TrustRegionProblem >
double operations_research::pdlp::internal::RemoveCriticalStepsBelowThreshold (const TrustRegionProblem &problem, const double step_size_threshold, std::vector< int64_t > &undecided_components)
 

Variables

*x operations_research::pdlp::primal_solution