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

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...

Inheritance diagram for Google.OrTools.PDLP.TerminationCriteria:

Classes

class  Types
 Container for nested types declared in the TerminationCriteria message type. More...
 

Public Types

enum  OptimalityCriteriaOneofCase { None = 0 , SimpleOptimalityCriteria = 9 , DetailedOptimalityCriteria = 10 }
 Enum of possible cases for the "optimality_criteria" oneof. More...
 

Public Member Functions

 TerminationCriteria ()
 
 TerminationCriteria (TerminationCriteria other)
 
TerminationCriteria Clone ()
 
void ClearOptimalityNorm ()
 Clears the value of the "optimality_norm" field.
 
void ClearEpsOptimalAbsolute ()
 Clears the value of the "eps_optimal_absolute" field.
 
void ClearEpsOptimalRelative ()
 Clears the value of the "eps_optimal_relative" field.
 
void ClearEpsPrimalInfeasible ()
 Clears the value of the "eps_primal_infeasible" field.
 
void ClearEpsDualInfeasible ()
 Clears the value of the "eps_dual_infeasible" field.
 
void ClearTimeSecLimit ()
 Clears the value of the "time_sec_limit" field.
 
void ClearIterationLimit ()
 Clears the value of the "iteration_limit" field.
 
void ClearKktMatrixPassLimit ()
 Clears the value of the "kkt_matrix_pass_limit" field.
 
void ClearOptimalityCriteria ()
 
override bool Equals (object other)
 
bool Equals (TerminationCriteria other)
 
override int GetHashCode ()
 
override string ToString ()
 
void WriteTo (pb::CodedOutputStream output)
 
int CalculateSize ()
 
void MergeFrom (TerminationCriteria other)
 
void MergeFrom (pb::CodedInputStream input)
 

Static Public Attributes

const int OptimalityNormFieldNumber = 1
 Field number for the "optimality_norm" field.
 
const int SimpleOptimalityCriteriaFieldNumber = 9
 Field number for the "simple_optimality_criteria" field.
 
const int DetailedOptimalityCriteriaFieldNumber = 10
 Field number for the "detailed_optimality_criteria" field.
 
const int EpsOptimalAbsoluteFieldNumber = 2
 Field number for the "eps_optimal_absolute" field.
 
const int EpsOptimalRelativeFieldNumber = 3
 Field number for the "eps_optimal_relative" field.
 
const int EpsPrimalInfeasibleFieldNumber = 4
 Field number for the "eps_primal_infeasible" field.
 
const int EpsDualInfeasibleFieldNumber = 5
 Field number for the "eps_dual_infeasible" field.
 
const int TimeSecLimitFieldNumber = 6
 Field number for the "time_sec_limit" field.
 
const int IterationLimitFieldNumber = 7
 Field number for the "iteration_limit" field.
 
const int KktMatrixPassLimitFieldNumber = 8
 Field number for the "kkt_matrix_pass_limit" field.
 

Properties

static pb::MessageParser< TerminationCriteriaParser [get]
 
static pbr::MessageDescriptor Descriptor [get]
 
global::Google.OrTools.PDLP.OptimalityNorm OptimalityNorm [get, set]
 The norm that we are measuring the optimality criteria in.
 
bool HasOptimalityNorm [get]
 Gets whether the "optimality_norm" field is set.
 
global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria SimpleOptimalityCriteria [get, set]
 
global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria DetailedOptimalityCriteria [get, set]
 
double EpsOptimalAbsolute [get, set]
 Absolute tolerance on primal residual, dual residual, and the objective gap.
 
bool HasEpsOptimalAbsolute [get]
 Gets whether the "eps_optimal_absolute" field is set.
 
double EpsOptimalRelative [get, set]
 Relative tolerance on primal residual, dual residual, and the objective gap.
 
bool HasEpsOptimalRelative [get]
 Gets whether the "eps_optimal_relative" field is set.
 
double EpsPrimalInfeasible [get, set]
 If the following two conditions hold we say that we have obtained an approximate dual ray, which is an approximate certificate of primal infeasibility. (1) dual_ray_objective > 0, (2) max_dual_ray_infeasibility / dual_ray_objective <= eps_primal_infeasible.
 
bool HasEpsPrimalInfeasible [get]
 Gets whether the "eps_primal_infeasible" field is set.
 
double EpsDualInfeasible [get, set]
 If the following three conditions hold we say we have obtained an approximate primal ray, which is an approximate certificate of dual infeasibility. (1) primal_ray_linear_objective < 0, (2) max_primal_ray_infeasibility / (-primal_ray_linear_objective) <= eps_dual_infeasible (3) primal_ray_quadratic_norm / (-primal_ray_linear_objective) <= eps_dual_infeasible.
 
bool HasEpsDualInfeasible [get]
 Gets whether the "eps_dual_infeasible" field is set.
 
double TimeSecLimit [get, set]
 If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has taken at least time_sec_limit time.
 
bool HasTimeSecLimit [get]
 Gets whether the "time_sec_limit" field is set.
 
int IterationLimit [get, set]
 If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver has taken at least iterations_limit iterations.
 
bool HasIterationLimit [get]
 Gets whether the "iteration_limit" field is set.
 
double KktMatrixPassLimit [get, set]
 If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then cumulative_kkt_matrix_passes is at least kkt_pass_limit.
 
bool HasKktMatrixPassLimit [get]
 Gets whether the "kkt_matrix_pass_limit" field is set.
 
OptimalityCriteriaOneofCase OptimalityCriteriaCase [get]
 

Detailed Description

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.

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

Member Enumeration Documentation

◆ OptimalityCriteriaOneofCase

Enum of possible cases for the "optimality_criteria" oneof.

Enumerator
None 
SimpleOptimalityCriteria 
DetailedOptimalityCriteria 

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

Constructor & Destructor Documentation

◆ TerminationCriteria() [1/2]

Google.OrTools.PDLP.TerminationCriteria.TerminationCriteria ( )
inline

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

◆ TerminationCriteria() [2/2]

Google.OrTools.PDLP.TerminationCriteria.TerminationCriteria ( TerminationCriteria other)
inline

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

Member Function Documentation

◆ CalculateSize()

int Google.OrTools.PDLP.TerminationCriteria.CalculateSize ( )
inline

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

◆ ClearEpsDualInfeasible()

void Google.OrTools.PDLP.TerminationCriteria.ClearEpsDualInfeasible ( )
inline

Clears the value of the "eps_dual_infeasible" field.

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

◆ ClearEpsOptimalAbsolute()

void Google.OrTools.PDLP.TerminationCriteria.ClearEpsOptimalAbsolute ( )
inline

Clears the value of the "eps_optimal_absolute" field.

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

◆ ClearEpsOptimalRelative()

void Google.OrTools.PDLP.TerminationCriteria.ClearEpsOptimalRelative ( )
inline

Clears the value of the "eps_optimal_relative" field.

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

◆ ClearEpsPrimalInfeasible()

void Google.OrTools.PDLP.TerminationCriteria.ClearEpsPrimalInfeasible ( )
inline

Clears the value of the "eps_primal_infeasible" field.

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

◆ ClearIterationLimit()

void Google.OrTools.PDLP.TerminationCriteria.ClearIterationLimit ( )
inline

Clears the value of the "iteration_limit" field.

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

◆ ClearKktMatrixPassLimit()

void Google.OrTools.PDLP.TerminationCriteria.ClearKktMatrixPassLimit ( )
inline

Clears the value of the "kkt_matrix_pass_limit" field.

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

◆ ClearOptimalityCriteria()

void Google.OrTools.PDLP.TerminationCriteria.ClearOptimalityCriteria ( )
inline

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

◆ ClearOptimalityNorm()

void Google.OrTools.PDLP.TerminationCriteria.ClearOptimalityNorm ( )
inline

Clears the value of the "optimality_norm" field.

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

◆ ClearTimeSecLimit()

void Google.OrTools.PDLP.TerminationCriteria.ClearTimeSecLimit ( )
inline

Clears the value of the "time_sec_limit" field.

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

◆ Clone()

TerminationCriteria Google.OrTools.PDLP.TerminationCriteria.Clone ( )
inline

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

◆ Equals() [1/2]

override bool Google.OrTools.PDLP.TerminationCriteria.Equals ( object other)
inline

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

◆ Equals() [2/2]

bool Google.OrTools.PDLP.TerminationCriteria.Equals ( TerminationCriteria other)
inline

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

◆ GetHashCode()

override int Google.OrTools.PDLP.TerminationCriteria.GetHashCode ( )
inline

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

◆ MergeFrom() [1/2]

void Google.OrTools.PDLP.TerminationCriteria.MergeFrom ( pb.CodedInputStream input)
inline

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

◆ MergeFrom() [2/2]

void Google.OrTools.PDLP.TerminationCriteria.MergeFrom ( TerminationCriteria other)
inline

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

◆ ToString()

override string Google.OrTools.PDLP.TerminationCriteria.ToString ( )
inline

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

◆ WriteTo()

void Google.OrTools.PDLP.TerminationCriteria.WriteTo ( pb.CodedOutputStream output)
inline

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

Member Data Documentation

◆ DetailedOptimalityCriteriaFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.DetailedOptimalityCriteriaFieldNumber = 10
static

Field number for the "detailed_optimality_criteria" field.

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

◆ EpsDualInfeasibleFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.EpsDualInfeasibleFieldNumber = 5
static

Field number for the "eps_dual_infeasible" field.

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

◆ EpsOptimalAbsoluteFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.EpsOptimalAbsoluteFieldNumber = 2
static

Field number for the "eps_optimal_absolute" field.

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

◆ EpsOptimalRelativeFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.EpsOptimalRelativeFieldNumber = 3
static

Field number for the "eps_optimal_relative" field.

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

◆ EpsPrimalInfeasibleFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.EpsPrimalInfeasibleFieldNumber = 4
static

Field number for the "eps_primal_infeasible" field.

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

◆ IterationLimitFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.IterationLimitFieldNumber = 7
static

Field number for the "iteration_limit" field.

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

◆ KktMatrixPassLimitFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.KktMatrixPassLimitFieldNumber = 8
static

Field number for the "kkt_matrix_pass_limit" field.

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

◆ OptimalityNormFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.OptimalityNormFieldNumber = 1
static

Field number for the "optimality_norm" field.

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

◆ SimpleOptimalityCriteriaFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.SimpleOptimalityCriteriaFieldNumber = 9
static

Field number for the "simple_optimality_criteria" field.

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

◆ TimeSecLimitFieldNumber

const int Google.OrTools.PDLP.TerminationCriteria.TimeSecLimitFieldNumber = 6
static

Field number for the "time_sec_limit" field.

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

Property Documentation

◆ Descriptor

pbr.MessageDescriptor Google.OrTools.PDLP.TerminationCriteria.Descriptor
staticget

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

◆ DetailedOptimalityCriteria

global.Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria Google.OrTools.PDLP.TerminationCriteria.DetailedOptimalityCriteria
getset

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

◆ EpsDualInfeasible

double Google.OrTools.PDLP.TerminationCriteria.EpsDualInfeasible
getset

If the following three conditions hold we say we have obtained an approximate primal ray, which is an approximate certificate of dual infeasibility. (1) primal_ray_linear_objective < 0, (2) max_primal_ray_infeasibility / (-primal_ray_linear_objective) <= eps_dual_infeasible (3) primal_ray_quadratic_norm / (-primal_ray_linear_objective) <= eps_dual_infeasible.

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

◆ EpsOptimalAbsolute

double Google.OrTools.PDLP.TerminationCriteria.EpsOptimalAbsolute
getset

Absolute tolerance on primal residual, dual residual, and the objective gap.

Deprecated
use simple_optimality_criteria instead.
Todo
(b/241462829) delete this deprecated field.

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

◆ EpsOptimalRelative

double Google.OrTools.PDLP.TerminationCriteria.EpsOptimalRelative
getset

Relative tolerance on primal residual, dual residual, and the objective gap.

Deprecated
use simple_optimality_criteria instead.
Todo
(b/241462829) delete this deprecated field.

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

◆ EpsPrimalInfeasible

double Google.OrTools.PDLP.TerminationCriteria.EpsPrimalInfeasible
getset

If the following two conditions hold we say that we have obtained an approximate dual ray, which is an approximate certificate of primal infeasibility. (1) dual_ray_objective > 0, (2) max_dual_ray_infeasibility / dual_ray_objective <= eps_primal_infeasible.

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

◆ HasEpsDualInfeasible

bool Google.OrTools.PDLP.TerminationCriteria.HasEpsDualInfeasible
get

Gets whether the "eps_dual_infeasible" field is set.

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

◆ HasEpsOptimalAbsolute

bool Google.OrTools.PDLP.TerminationCriteria.HasEpsOptimalAbsolute
get

Gets whether the "eps_optimal_absolute" field is set.

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

◆ HasEpsOptimalRelative

bool Google.OrTools.PDLP.TerminationCriteria.HasEpsOptimalRelative
get

Gets whether the "eps_optimal_relative" field is set.

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

◆ HasEpsPrimalInfeasible

bool Google.OrTools.PDLP.TerminationCriteria.HasEpsPrimalInfeasible
get

Gets whether the "eps_primal_infeasible" field is set.

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

◆ HasIterationLimit

bool Google.OrTools.PDLP.TerminationCriteria.HasIterationLimit
get

Gets whether the "iteration_limit" field is set.

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

◆ HasKktMatrixPassLimit

bool Google.OrTools.PDLP.TerminationCriteria.HasKktMatrixPassLimit
get

Gets whether the "kkt_matrix_pass_limit" field is set.

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

◆ HasOptimalityNorm

bool Google.OrTools.PDLP.TerminationCriteria.HasOptimalityNorm
get

Gets whether the "optimality_norm" field is set.

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

◆ HasTimeSecLimit

bool Google.OrTools.PDLP.TerminationCriteria.HasTimeSecLimit
get

Gets whether the "time_sec_limit" field is set.

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

◆ IterationLimit

int Google.OrTools.PDLP.TerminationCriteria.IterationLimit
getset

If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver has taken at least iterations_limit iterations.

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

◆ KktMatrixPassLimit

double Google.OrTools.PDLP.TerminationCriteria.KktMatrixPassLimit
getset

If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then cumulative_kkt_matrix_passes is at least kkt_pass_limit.

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

◆ OptimalityCriteriaCase

OptimalityCriteriaOneofCase Google.OrTools.PDLP.TerminationCriteria.OptimalityCriteriaCase
get

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

◆ OptimalityNorm

global.Google.OrTools.PDLP.OptimalityNorm Google.OrTools.PDLP.TerminationCriteria.OptimalityNorm
getset

The norm that we are measuring the optimality criteria in.

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

◆ Parser

pb.MessageParser<TerminationCriteria> Google.OrTools.PDLP.TerminationCriteria.Parser
staticget

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

◆ SimpleOptimalityCriteria

global.Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria Google.OrTools.PDLP.TerminationCriteria.SimpleOptimalityCriteria
getset

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

◆ TimeSecLimit

double Google.OrTools.PDLP.TerminationCriteria.TimeSecLimit
getset

If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has taken at least time_sec_limit time.

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


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