Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#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 ¢er_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 ¢er_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) |
double objective_value |
The value objective_vector^T * (solution - center_point).
Definition at line 168 of file trust_region.cc.
double part_of_lagrangian_value = 0.0 |
LagrangianPart::value
from ComputePrimalGradient
and ComputeDualGradient
, respectively.
Definition at line 800 of file trust_region.cc.
double radius_coefficient_of_decided_components |
Definition at line 207 of file trust_region.cc.
double solution_step_size |
The step_size of the solution.
Definition at line 166 of file trust_region.cc.
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.
std::vector<std::vector<int64_t> > undecided_components_by_shard |
Definition at line 206 of file trust_region.cc.