Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
Google.OrTools.PDLP Namespace Reference

Classes

class  AdaptiveLinesearchParams
 At the end of each iteration, regardless of whether the step was accepted or not, the adaptive rule updates the step_size as the minimum of two potential step sizes defined by the following two exponents. More...
 
class  ConvergenceInformation
 Information measuring how close a candidate is to establishing feasibility and optimality; see also TerminationCriteria. More...
 
class  FeasibilityPolishingDetails
 Details about one primal feasibility or dual feasibility polishing phase within a solve with use_feasibility_polishing. See SolveLog for descriptions of the fields with the same name. More...
 
class  InfeasibilityInformation
 Information measuring how close a point is to establishing primal or dual infeasibility (i.e. has no solution); see also TerminationCriteria. More...
 
class  IterationStats
 All values in IterationStats assume that the primal quadratic program is a minimization problem and the dual is a maximization problem. Problems should be transformed to this form if they are not already in this form. The dual vector is defined to be the vector of multipliers on the linear constraints, that is, excluding dual multipliers on variable bounds (reduced costs). More...
 
class  MalitskyPockParams
 
class  PointMetadata
 
class  PrimalDualHybridGradientParams
 Parameters for PrimalDualHybridGradient() in primal_dual_hybrid_gradient.h. While the defaults are generally good, it is usually worthwhile to perform a parameter sweep to find good settings for a particular family of problems. The following parameters should be considered for tuning: More...
 
class  QuadraticProgramStats
 Easy-to-compute statistics for the quadratic program. More...
 
class  SolveLog
 
class  SolveLogReflection
 Holder for reflection information generated from ortools/pdlp/solve_log.proto. More...
 
class  SolversReflection
 Holder for reflection information generated from ortools/pdlp/solvers.proto. More...
 
class  TerminationCriteria
 Relevant readings on infeasibility certificates: (1) https://docs.mosek.com/modeling-cookbook/qcqo.html provides references explaining why the primal rays imply dual infeasibility and dual rays imply primal infeasibility. (2) The termination criteria for Mosek's linear programming optimizer https://docs.mosek.com/9.0/pythonfusion/solving-linear.html. (3) The termination criteria for OSQP is in section 3.3 of https://web.stanford.edu/~boyd/papers/pdf/osqp.pdf. (4) The termination criteria for SCS is in section 3.5 of https://arxiv.org/pdf/1312.3039.pdf. More...
 

Enumerations

enum  RestartChoice { Unspecified = 0 , NoRestart = 1 , WeightedAverageReset = 2 , RestartToAverage = 3 }
 Specifies whether a restart was performed on a given iteration. More...
 
enum  PointType {
  Unspecified = 0 , CurrentIterate = 1 , IterateDifference = 2 , AverageIterate = 3 ,
  None = 4 , PresolverSolution = 5 , FeasibilityPolishingSolution = 6
}
 Identifies the type of point used to compute the fields in a given proto; see ConvergenceInformation and InfeasibilityInformation. More...
 
enum  TerminationReason {
  Unspecified = 0 , Optimal = 1 , PrimalInfeasible = 2 , DualInfeasible = 3 ,
  TimeLimit = 4 , IterationLimit = 5 , KktMatrixPassLimit = 8 , InterruptedByUser = 12 ,
  NumericalError = 6 , InvalidProblem = 9 , InvalidInitialSolution = 13 , InvalidParameter = 10 ,
  Other = 7 , PrimalOrDualInfeasible = 11
}
 
enum  PolishingPhaseType { Unspecified = 0 , PrimalFeasibility = 1 , DualFeasibility = 2 }
 
enum  OptimalityNorm { Unspecified = 0 , LInf = 1 , L2 = 2 , LInfComponentwise = 3 }
 

Enumeration Type Documentation

◆ OptimalityNorm

Enumerator
Unspecified 
LInf 

The infinity norm.

L2 

The Euclidean norm.

LInfComponentwise 

The infinity norm of component-wise relative errors offset by the ratio of the absolute and relative error tolerances, i.e., the l_∞ norm of [residual / (eps_ratio + bound)], where eps_ratio = eps_optimal_{X}_residual_absolute / eps_optimal_{X}_residual_relative where {X} is either primal or dual, and bound is the corresponding primal or dual bound (that is, the violated constraint bound for primal residuals, and the objective coefficient for dual residuals). Using eps_ratio in this norm means that if the norm is <= eps_optimal_{X}_residual_relative, then the residuals satisfy residual <= eps_optimal_{X}_residual_absolute.

  • eps_optimal_{X}_residual_relative * bound

Definition at line 118 of file Solvers.pb.cs.

◆ PointType

Identifies the type of point used to compute the fields in a given proto; see ConvergenceInformation and InfeasibilityInformation.

Enumerator
Unspecified 
CurrentIterate 

Current iterate (x_k, y_k).

IterateDifference 

Difference of iterates (x_{k+1} - x_k, y_{k+1} - y_k).

AverageIterate 

Average of iterates since the last restart.

None 

There is no corresponding point.

PresolverSolution 

Output of presolver.

FeasibilityPolishingSolution 

Combined solution from primal and dual feasibility polishing.

Definition at line 188 of file SolveLog.pb.cs.

◆ PolishingPhaseType

Enumerator
Unspecified 
PrimalFeasibility 
DualFeasibility 

Definition at line 254 of file SolveLog.pb.cs.

◆ RestartChoice

Specifies whether a restart was performed on a given iteration.

Enumerator
Unspecified 
NoRestart 

No restart on this iteration.

WeightedAverageReset 

The weighted average of iterates is cleared and reset to the current point.

Note
from a mathematical perspective this can be equivalently viewed as restarting the algorithm but picking the restart point to be the current iterate.
RestartToAverage 

The algorithm is restarted at the average of iterates since the last restart.

Definition at line 164 of file SolveLog.pb.cs.

◆ TerminationReason

Enumerator
Unspecified 
Optimal 
PrimalInfeasible 

Note in this situation the dual could be either unbounded or infeasible.

DualInfeasible 

Note in this situation the primal could be either unbounded or infeasible.

TimeLimit 
IterationLimit 
KktMatrixPassLimit 
InterruptedByUser 
NumericalError 
InvalidProblem 

Indicates that the solver detected invalid problem data, e.g., inconsistent bounds.

InvalidInitialSolution 

Indicates that the solver detected that the initial solution that was provided was invalid, e.g., wrong size or containing NAN or inf.

InvalidParameter 

Indicates that an invalid value for the parameters was detected.

Other 
PrimalOrDualInfeasible 

Primal or dual infeasibility was detected (e.g. by presolve) but no certificate is available.

Definition at line 216 of file SolveLog.pb.cs.