Class TerminationCriteria

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
com.google.ortools.pdlp.TerminationCriteria
All Implemented Interfaces:
TerminationCriteriaOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable

@Generated public final class TerminationCriteria extends com.google.protobuf.GeneratedMessage implements TerminationCriteriaOrBuilder
 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.
 
Protobuf type operations_research.pdlp.TerminationCriteria
See Also:
  • Field Details

    • OPTIMALITY_NORM_FIELD_NUMBER

      public static final int OPTIMALITY_NORM_FIELD_NUMBER
      See Also:
    • SIMPLE_OPTIMALITY_CRITERIA_FIELD_NUMBER

      public static final int SIMPLE_OPTIMALITY_CRITERIA_FIELD_NUMBER
      See Also:
    • DETAILED_OPTIMALITY_CRITERIA_FIELD_NUMBER

      public static final int DETAILED_OPTIMALITY_CRITERIA_FIELD_NUMBER
      See Also:
    • EPS_OPTIMAL_ABSOLUTE_FIELD_NUMBER

      public static final int EPS_OPTIMAL_ABSOLUTE_FIELD_NUMBER
      See Also:
    • EPS_OPTIMAL_RELATIVE_FIELD_NUMBER

      public static final int EPS_OPTIMAL_RELATIVE_FIELD_NUMBER
      See Also:
    • EPS_PRIMAL_INFEASIBLE_FIELD_NUMBER

      public static final int EPS_PRIMAL_INFEASIBLE_FIELD_NUMBER
      See Also:
    • EPS_DUAL_INFEASIBLE_FIELD_NUMBER

      public static final int EPS_DUAL_INFEASIBLE_FIELD_NUMBER
      See Also:
    • TIME_SEC_LIMIT_FIELD_NUMBER

      public static final int TIME_SEC_LIMIT_FIELD_NUMBER
      See Also:
    • ITERATION_LIMIT_FIELD_NUMBER

      public static final int ITERATION_LIMIT_FIELD_NUMBER
      See Also:
    • KKT_MATRIX_PASS_LIMIT_FIELD_NUMBER

      public static final int KKT_MATRIX_PASS_LIMIT_FIELD_NUMBER
      See Also:
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • getOptimalityCriteriaCase

      public TerminationCriteria.OptimalityCriteriaCase getOptimalityCriteriaCase()
      Specified by:
      getOptimalityCriteriaCase in interface TerminationCriteriaOrBuilder
    • hasOptimalityNorm

      public boolean hasOptimalityNorm()
       The norm that we are measuring the optimality criteria in.
       
      optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
      Specified by:
      hasOptimalityNorm in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the optimalityNorm field is set.
    • getOptimalityNorm

      public OptimalityNorm getOptimalityNorm()
       The norm that we are measuring the optimality criteria in.
       
      optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
      Specified by:
      getOptimalityNorm in interface TerminationCriteriaOrBuilder
      Returns:
      The optimalityNorm.
    • hasSimpleOptimalityCriteria

      public boolean hasSimpleOptimalityCriteria()
      .operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
      Specified by:
      hasSimpleOptimalityCriteria in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the simpleOptimalityCriteria field is set.
    • getSimpleOptimalityCriteria

      public TerminationCriteria.SimpleOptimalityCriteria getSimpleOptimalityCriteria()
      .operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
      Specified by:
      getSimpleOptimalityCriteria in interface TerminationCriteriaOrBuilder
      Returns:
      The simpleOptimalityCriteria.
    • getSimpleOptimalityCriteriaOrBuilder

      public TerminationCriteria.SimpleOptimalityCriteriaOrBuilder getSimpleOptimalityCriteriaOrBuilder()
      .operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
      Specified by:
      getSimpleOptimalityCriteriaOrBuilder in interface TerminationCriteriaOrBuilder
    • hasDetailedOptimalityCriteria

      public boolean hasDetailedOptimalityCriteria()
      .operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
      Specified by:
      hasDetailedOptimalityCriteria in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the detailedOptimalityCriteria field is set.
    • getDetailedOptimalityCriteria

      public TerminationCriteria.DetailedOptimalityCriteria getDetailedOptimalityCriteria()
      .operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
      Specified by:
      getDetailedOptimalityCriteria in interface TerminationCriteriaOrBuilder
      Returns:
      The detailedOptimalityCriteria.
    • getDetailedOptimalityCriteriaOrBuilder

      public TerminationCriteria.DetailedOptimalityCriteriaOrBuilder getDetailedOptimalityCriteriaOrBuilder()
      .operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
      Specified by:
      getDetailedOptimalityCriteriaOrBuilder in interface TerminationCriteriaOrBuilder
    • hasEpsOptimalAbsolute

      @Deprecated public boolean hasEpsOptimalAbsolute()
      Deprecated.
      operations_research.pdlp.TerminationCriteria.eps_optimal_absolute is deprecated. See ortools/pdlp/solvers.proto;l=147
       Absolute tolerance on primal residual, dual residual, and the objective
       gap.
       Deprecated, use simple_optimality_criteria instead.
       TODO(b/241462829) delete this deprecated field.
       
      optional double eps_optimal_absolute = 2 [default = 1e-06, deprecated = true];
      Specified by:
      hasEpsOptimalAbsolute in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the epsOptimalAbsolute field is set.
    • getEpsOptimalAbsolute

      @Deprecated public double getEpsOptimalAbsolute()
      Deprecated.
      operations_research.pdlp.TerminationCriteria.eps_optimal_absolute is deprecated. See ortools/pdlp/solvers.proto;l=147
       Absolute tolerance on primal residual, dual residual, and the objective
       gap.
       Deprecated, use simple_optimality_criteria instead.
       TODO(b/241462829) delete this deprecated field.
       
      optional double eps_optimal_absolute = 2 [default = 1e-06, deprecated = true];
      Specified by:
      getEpsOptimalAbsolute in interface TerminationCriteriaOrBuilder
      Returns:
      The epsOptimalAbsolute.
    • hasEpsOptimalRelative

      @Deprecated public boolean hasEpsOptimalRelative()
      Deprecated.
      operations_research.pdlp.TerminationCriteria.eps_optimal_relative is deprecated. See ortools/pdlp/solvers.proto;l=154
       Relative tolerance on primal residual, dual residual, and the objective
       gap.
       Deprecated, use simple_optimality_criteria instead.
       TODO(b/241462829) delete this deprecated field.
       
      optional double eps_optimal_relative = 3 [default = 1e-06, deprecated = true];
      Specified by:
      hasEpsOptimalRelative in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the epsOptimalRelative field is set.
    • getEpsOptimalRelative

      @Deprecated public double getEpsOptimalRelative()
      Deprecated.
      operations_research.pdlp.TerminationCriteria.eps_optimal_relative is deprecated. See ortools/pdlp/solvers.proto;l=154
       Relative tolerance on primal residual, dual residual, and the objective
       gap.
       Deprecated, use simple_optimality_criteria instead.
       TODO(b/241462829) delete this deprecated field.
       
      optional double eps_optimal_relative = 3 [default = 1e-06, deprecated = true];
      Specified by:
      getEpsOptimalRelative in interface TerminationCriteriaOrBuilder
      Returns:
      The epsOptimalRelative.
    • hasEpsPrimalInfeasible

      public boolean hasEpsPrimalInfeasible()
       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.
       
      optional double eps_primal_infeasible = 4 [default = 1e-08];
      Specified by:
      hasEpsPrimalInfeasible in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the epsPrimalInfeasible field is set.
    • getEpsPrimalInfeasible

      public double getEpsPrimalInfeasible()
       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.
       
      optional double eps_primal_infeasible = 4 [default = 1e-08];
      Specified by:
      getEpsPrimalInfeasible in interface TerminationCriteriaOrBuilder
      Returns:
      The epsPrimalInfeasible.
    • hasEpsDualInfeasible

      public boolean hasEpsDualInfeasible()
       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.
       
      optional double eps_dual_infeasible = 5 [default = 1e-08];
      Specified by:
      hasEpsDualInfeasible in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the epsDualInfeasible field is set.
    • getEpsDualInfeasible

      public double getEpsDualInfeasible()
       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.
       
      optional double eps_dual_infeasible = 5 [default = 1e-08];
      Specified by:
      getEpsDualInfeasible in interface TerminationCriteriaOrBuilder
      Returns:
      The epsDualInfeasible.
    • hasTimeSecLimit

      public boolean hasTimeSecLimit()
       If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has
       taken at least time_sec_limit time.
       
      optional double time_sec_limit = 6 [default = inf];
      Specified by:
      hasTimeSecLimit in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the timeSecLimit field is set.
    • getTimeSecLimit

      public double getTimeSecLimit()
       If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has
       taken at least time_sec_limit time.
       
      optional double time_sec_limit = 6 [default = inf];
      Specified by:
      getTimeSecLimit in interface TerminationCriteriaOrBuilder
      Returns:
      The timeSecLimit.
    • hasIterationLimit

      public boolean hasIterationLimit()
       If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver
       has taken at least iterations_limit iterations.
       
      optional int32 iteration_limit = 7 [default = 2147483647];
      Specified by:
      hasIterationLimit in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the iterationLimit field is set.
    • getIterationLimit

      public int getIterationLimit()
       If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver
       has taken at least iterations_limit iterations.
       
      optional int32 iteration_limit = 7 [default = 2147483647];
      Specified by:
      getIterationLimit in interface TerminationCriteriaOrBuilder
      Returns:
      The iterationLimit.
    • hasKktMatrixPassLimit

      public boolean hasKktMatrixPassLimit()
       If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then
       cumulative_kkt_matrix_passes is at least kkt_pass_limit.
       
      optional double kkt_matrix_pass_limit = 8 [default = inf];
      Specified by:
      hasKktMatrixPassLimit in interface TerminationCriteriaOrBuilder
      Returns:
      Whether the kktMatrixPassLimit field is set.
    • getKktMatrixPassLimit

      public double getKktMatrixPassLimit()
       If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then
       cumulative_kkt_matrix_passes is at least kkt_pass_limit.
       
      optional double kkt_matrix_pass_limit = 8 [default = inf];
      Specified by:
      getKktMatrixPassLimit in interface TerminationCriteriaOrBuilder
      Returns:
      The kktMatrixPassLimit.
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static TerminationCriteria parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TerminationCriteria parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TerminationCriteria parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TerminationCriteria parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TerminationCriteria parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TerminationCriteria parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TerminationCriteria parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public TerminationCriteria.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static TerminationCriteria.Builder newBuilder()
    • newBuilder

      public static TerminationCriteria.Builder newBuilder(TerminationCriteria prototype)
    • toBuilder

      public TerminationCriteria.Builder toBuilder()
      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected TerminationCriteria.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static TerminationCriteria getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<TerminationCriteria> parser()
    • getParserForType

      public com.google.protobuf.Parser<TerminationCriteria> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessage
    • getDefaultInstanceForType

      public TerminationCriteria getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder