Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
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...
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< TerminationCriteria > | Parser [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] |
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.
Enum of possible cases for the "optimality_criteria" oneof.
Enumerator | |
---|---|
None | |
SimpleOptimalityCriteria | |
DetailedOptimalityCriteria |
Definition at line 515 of file Solvers.pb.cs.
|
inline |
Definition at line 186 of file Solvers.pb.cs.
|
inline |
Definition at line 194 of file Solvers.pb.cs.
|
inline |
Definition at line 694 of file Solvers.pb.cs.
|
inline |
Clears the value of the "eps_dual_infeasible" field.
Definition at line 416 of file Solvers.pb.cs.
|
inline |
Clears the value of the "eps_optimal_absolute" field.
Definition at line 308 of file Solvers.pb.cs.
|
inline |
Clears the value of the "eps_optimal_relative" field.
Definition at line 344 of file Solvers.pb.cs.
|
inline |
Clears the value of the "eps_primal_infeasible" field.
Definition at line 379 of file Solvers.pb.cs.
|
inline |
Clears the value of the "iteration_limit" field.
Definition at line 478 of file Solvers.pb.cs.
|
inline |
Clears the value of the "kkt_matrix_pass_limit" field.
Definition at line 509 of file Solvers.pb.cs.
|
inline |
Definition at line 529 of file Solvers.pb.cs.
|
inline |
Clears the value of the "optimality_norm" field.
Definition at line 248 of file Solvers.pb.cs.
|
inline |
Clears the value of the "time_sec_limit" field.
Definition at line 447 of file Solvers.pb.cs.
|
inline |
Definition at line 218 of file Solvers.pb.cs.
|
inline |
Definition at line 536 of file Solvers.pb.cs.
|
inline |
Definition at line 542 of file Solvers.pb.cs.
|
inline |
Definition at line 565 of file Solvers.pb.cs.
|
inline |
Definition at line 782 of file Solvers.pb.cs.
|
inline |
Definition at line 734 of file Solvers.pb.cs.
|
inline |
Definition at line 586 of file Solvers.pb.cs.
|
inline |
Definition at line 592 of file Solvers.pb.cs.
|
static |
Field number for the "detailed_optimality_criteria" field.
Definition at line 265 of file Solvers.pb.cs.
|
static |
Field number for the "eps_dual_infeasible" field.
Definition at line 384 of file Solvers.pb.cs.
|
static |
Field number for the "eps_optimal_absolute" field.
Definition at line 277 of file Solvers.pb.cs.
|
static |
Field number for the "eps_optimal_relative" field.
Definition at line 313 of file Solvers.pb.cs.
|
static |
Field number for the "eps_primal_infeasible" field.
Definition at line 349 of file Solvers.pb.cs.
|
static |
Field number for the "iteration_limit" field.
Definition at line 452 of file Solvers.pb.cs.
|
static |
Field number for the "kkt_matrix_pass_limit" field.
Definition at line 483 of file Solvers.pb.cs.
|
static |
Field number for the "optimality_norm" field.
Definition at line 223 of file Solvers.pb.cs.
|
static |
Field number for the "simple_optimality_criteria" field.
Definition at line 253 of file Solvers.pb.cs.
|
static |
Field number for the "time_sec_limit" field.
Definition at line 421 of file Solvers.pb.cs.
|
staticget |
Definition at line 174 of file Solvers.pb.cs.
|
getset |
Definition at line 268 of file Solvers.pb.cs.
|
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.
|
getset |
Absolute tolerance on primal residual, dual residual, and the objective gap.
Definition at line 290 of file Solvers.pb.cs.
|
getset |
Relative tolerance on primal residual, dual residual, and the objective gap.
Definition at line 326 of file Solvers.pb.cs.
|
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.
|
get |
Gets whether the "eps_dual_infeasible" field is set.
Definition at line 410 of file Solvers.pb.cs.
|
get |
Gets whether the "eps_optimal_absolute" field is set.
Definition at line 301 of file Solvers.pb.cs.
|
get |
Gets whether the "eps_optimal_relative" field is set.
Definition at line 337 of file Solvers.pb.cs.
|
get |
Gets whether the "eps_primal_infeasible" field is set.
Definition at line 373 of file Solvers.pb.cs.
|
get |
Gets whether the "iteration_limit" field is set.
Definition at line 472 of file Solvers.pb.cs.
|
get |
Gets whether the "kkt_matrix_pass_limit" field is set.
Definition at line 503 of file Solvers.pb.cs.
|
get |
Gets whether the "optimality_norm" field is set.
Definition at line 242 of file Solvers.pb.cs.
|
get |
Gets whether the "time_sec_limit" field is set.
Definition at line 441 of file Solvers.pb.cs.
|
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.
|
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.
|
get |
Definition at line 523 of file Solvers.pb.cs.
|
getset |
The norm that we are measuring the optimality criteria in.
Definition at line 232 of file Solvers.pb.cs.
|
staticget |
Definition at line 170 of file Solvers.pb.cs.
|
getset |
Definition at line 256 of file Solvers.pb.cs.
|
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.