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

Go to the source code of this file.

Classes

class  operations_research::pdlp::DiagonalTrustRegionProblem
 

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.
 

Functions

TrustRegionResult operations_research::pdlp::SolveTrustRegion (const VectorXd &objective_vector, const VectorXd &variable_lower_bounds, const VectorXd &variable_upper_bounds, const VectorXd &center_point, const VectorXd &norm_weights, const double target_radius, const Sharder &sharder)
 
dual_gradient operations_research::pdlp::T (y - `dual_solution`) class DiagonalTrustRegionProblemFromQp
 
template<typename DiagonalTrustRegionProblem >
double operations_research::pdlp::ProjectedValueOfScaledDifference (const DiagonalTrustRegionProblem &problem, const int64_t index, const double scaling_factor)
 
template<typename DiagonalTrustRegionProblem >
double operations_research::pdlp::NormOfDeltaProjection (const DiagonalTrustRegionProblem &problem, const Sharder &sharder, const double scaling_factor)
 
template<typename DiagonalTrustRegionProblem >
double operations_research::pdlp::FindScalingFactor (const DiagonalTrustRegionProblem &problem, const Sharder &sharder, const double target_radius, const double solve_tol)
 
template<typename DiagonalTrustRegionProblem >
TrustRegionResult operations_research::pdlp::SolveDiagonalTrustRegionProblem (const DiagonalTrustRegionProblem &problem, const Sharder &sharder, const double target_radius, const double solve_tol)
 
TrustRegionResult operations_research::pdlp::SolveDiagonalTrustRegion (const VectorXd &objective_vector, const VectorXd &objective_matrix_diagonal, const VectorXd &variable_lower_bounds, const VectorXd &variable_upper_bounds, const VectorXd &center_point, const VectorXd &norm_weights, const double target_radius, const Sharder &sharder, const double solve_tolerance)
 
TrustRegionResult operations_research::pdlp::SolveDiagonalQpTrustRegion (const ShardedQuadraticProgram &sharded_qp, const VectorXd &primal_solution, const VectorXd &dual_solution, const VectorXd &primal_gradient, const VectorXd &dual_gradient, const double primal_weight, double target_radius, const double solve_tolerance)
 
LocalizedLagrangianBounds operations_research::pdlp::ComputeLocalizedLagrangianBounds (const ShardedQuadraticProgram &sharded_qp, const VectorXd &primal_solution, const VectorXd &dual_solution, const PrimalDualNorm primal_dual_norm, const double primal_weight, const double radius, const VectorXd *primal_product, const VectorXd *dual_product, const bool use_diagonal_qp_trust_region_solver, const double diagonal_qp_trust_region_solver_tolerance)
 

Variable Documentation

◆ objective_value

double objective_value

The value objective_vector^T * (solution - center_point).

Definition at line 168 of file trust_region.cc.

◆ part_of_lagrangian_value

double part_of_lagrangian_value = 0.0

LagrangianPart::value from ComputePrimalGradient and ComputeDualGradient, respectively.

Definition at line 800 of file trust_region.cc.

◆ radius_coefficient_of_decided_components

double radius_coefficient_of_decided_components

Definition at line 207 of file trust_region.cc.

◆ solution_step_size

double solution_step_size

The step_size of the solution.

Definition at line 166 of file trust_region.cc.

◆ trust_region_objective_delta

double trust_region_objective_delta = 0.0

For the primal, the value ∇_x L(primal_solution, dual_solution)^T (x^* - primal_solution) where x^* is the solution of the primal trust region subproblem. For the dual, the value ∇_y L(primal_solution, dual_solution)^T (y^* - dual_solution) where y^* is the solution of the dual trust region subproblem. This will be a non-positive value for the primal and a non-negative value for the dual.

Definition at line 809 of file trust_region.cc.

◆ undecided_components_by_shard

std::vector<std::vector<int64_t> > undecided_components_by_shard

Definition at line 206 of file trust_region.cc.