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
Modifier and Type | Class and Description |
---|---|
static class |
TerminationCriteria.Builder
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
|
static class |
TerminationCriteria.DetailedOptimalityCriteria
Protobuf type
operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria |
static interface |
TerminationCriteria.DetailedOptimalityCriteriaOrBuilder |
static class |
TerminationCriteria.OptimalityCriteriaCase |
static class |
TerminationCriteria.SimpleOptimalityCriteria
Protobuf type
operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria |
static interface |
TerminationCriteria.SimpleOptimalityCriteriaOrBuilder |
com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.FieldAccessorTable, com.google.protobuf.GeneratedMessage.GeneratedExtension<ContainingT extends com.google.protobuf.Message,T>, com.google.protobuf.GeneratedMessage.UnusedPrivateParameter
Modifier and Type | Field and Description |
---|---|
static int |
DETAILED_OPTIMALITY_CRITERIA_FIELD_NUMBER |
static int |
EPS_DUAL_INFEASIBLE_FIELD_NUMBER |
static int |
EPS_OPTIMAL_ABSOLUTE_FIELD_NUMBER |
static int |
EPS_OPTIMAL_RELATIVE_FIELD_NUMBER |
static int |
EPS_PRIMAL_INFEASIBLE_FIELD_NUMBER |
static int |
ITERATION_LIMIT_FIELD_NUMBER |
static int |
KKT_MATRIX_PASS_LIMIT_FIELD_NUMBER |
static int |
OPTIMALITY_NORM_FIELD_NUMBER |
static int |
SIMPLE_OPTIMALITY_CRITERIA_FIELD_NUMBER |
static int |
TIME_SEC_LIMIT_FIELD_NUMBER |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj) |
static TerminationCriteria |
getDefaultInstance() |
TerminationCriteria |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
TerminationCriteria.DetailedOptimalityCriteria |
getDetailedOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10; |
TerminationCriteria.DetailedOptimalityCriteriaOrBuilder |
getDetailedOptimalityCriteriaOrBuilder()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10; |
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
|
double |
getEpsOptimalAbsolute()
Deprecated.
operations_research.pdlp.TerminationCriteria.eps_optimal_absolute is deprecated.
See ortools/pdlp/solvers.proto;l=147
|
double |
getEpsOptimalRelative()
Deprecated.
operations_research.pdlp.TerminationCriteria.eps_optimal_relative is deprecated.
See ortools/pdlp/solvers.proto;l=154
|
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
|
int |
getIterationLimit()
If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver
has taken at least iterations_limit iterations.
|
double |
getKktMatrixPassLimit()
If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then
cumulative_kkt_matrix_passes is at least kkt_pass_limit.
|
TerminationCriteria.OptimalityCriteriaCase |
getOptimalityCriteriaCase() |
OptimalityNorm |
getOptimalityNorm()
The norm that we are measuring the optimality criteria in.
|
com.google.protobuf.Parser<TerminationCriteria> |
getParserForType() |
int |
getSerializedSize() |
TerminationCriteria.SimpleOptimalityCriteria |
getSimpleOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9; |
TerminationCriteria.SimpleOptimalityCriteriaOrBuilder |
getSimpleOptimalityCriteriaOrBuilder()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9; |
double |
getTimeSecLimit()
If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has
taken at least time_sec_limit time.
|
boolean |
hasDetailedOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10; |
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
|
boolean |
hasEpsOptimalAbsolute()
Deprecated.
operations_research.pdlp.TerminationCriteria.eps_optimal_absolute is deprecated.
See ortools/pdlp/solvers.proto;l=147
|
boolean |
hasEpsOptimalRelative()
Deprecated.
operations_research.pdlp.TerminationCriteria.eps_optimal_relative is deprecated.
See ortools/pdlp/solvers.proto;l=154
|
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
|
int |
hashCode() |
boolean |
hasIterationLimit()
If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver
has taken at least iterations_limit iterations.
|
boolean |
hasKktMatrixPassLimit()
If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then
cumulative_kkt_matrix_passes is at least kkt_pass_limit.
|
boolean |
hasOptimalityNorm()
The norm that we are measuring the optimality criteria in.
|
boolean |
hasSimpleOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9; |
boolean |
hasTimeSecLimit()
If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has
taken at least time_sec_limit time.
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
static TerminationCriteria.Builder |
newBuilder() |
static TerminationCriteria.Builder |
newBuilder(TerminationCriteria prototype) |
TerminationCriteria.Builder |
newBuilderForType() |
protected TerminationCriteria.Builder |
newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent) |
static TerminationCriteria |
parseDelimitedFrom(java.io.InputStream input) |
static TerminationCriteria |
parseDelimitedFrom(java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static TerminationCriteria |
parseFrom(byte[] data) |
static TerminationCriteria |
parseFrom(byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static TerminationCriteria |
parseFrom(java.nio.ByteBuffer data) |
static TerminationCriteria |
parseFrom(java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static TerminationCriteria |
parseFrom(com.google.protobuf.ByteString data) |
static TerminationCriteria |
parseFrom(com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static TerminationCriteria |
parseFrom(com.google.protobuf.CodedInputStream input) |
static TerminationCriteria |
parseFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static TerminationCriteria |
parseFrom(java.io.InputStream input) |
static TerminationCriteria |
parseFrom(java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
static com.google.protobuf.Parser<TerminationCriteria> |
parser() |
TerminationCriteria.Builder |
toBuilder() |
void |
writeTo(com.google.protobuf.CodedOutputStream output) |
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, newFileScopedGeneratedExtension, newInstance, newMessageScopedGeneratedExtension, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
findInitializationErrors, getInitializationErrorString, hashFields, toString
addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
public static final int OPTIMALITY_NORM_FIELD_NUMBER
public static final int SIMPLE_OPTIMALITY_CRITERIA_FIELD_NUMBER
public static final int DETAILED_OPTIMALITY_CRITERIA_FIELD_NUMBER
public static final int EPS_OPTIMAL_ABSOLUTE_FIELD_NUMBER
public static final int EPS_OPTIMAL_RELATIVE_FIELD_NUMBER
public static final int EPS_PRIMAL_INFEASIBLE_FIELD_NUMBER
public static final int EPS_DUAL_INFEASIBLE_FIELD_NUMBER
public static final int TIME_SEC_LIMIT_FIELD_NUMBER
public static final int ITERATION_LIMIT_FIELD_NUMBER
public static final int KKT_MATRIX_PASS_LIMIT_FIELD_NUMBER
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
internalGetFieldAccessorTable
in class com.google.protobuf.GeneratedMessage
public TerminationCriteria.OptimalityCriteriaCase getOptimalityCriteriaCase()
getOptimalityCriteriaCase
in interface TerminationCriteriaOrBuilder
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];
hasOptimalityNorm
in interface TerminationCriteriaOrBuilder
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];
getOptimalityNorm
in interface TerminationCriteriaOrBuilder
public boolean hasSimpleOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
hasSimpleOptimalityCriteria
in interface TerminationCriteriaOrBuilder
public TerminationCriteria.SimpleOptimalityCriteria getSimpleOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
getSimpleOptimalityCriteria
in interface TerminationCriteriaOrBuilder
public TerminationCriteria.SimpleOptimalityCriteriaOrBuilder getSimpleOptimalityCriteriaOrBuilder()
.operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
getSimpleOptimalityCriteriaOrBuilder
in interface TerminationCriteriaOrBuilder
public boolean hasDetailedOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
hasDetailedOptimalityCriteria
in interface TerminationCriteriaOrBuilder
public TerminationCriteria.DetailedOptimalityCriteria getDetailedOptimalityCriteria()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
getDetailedOptimalityCriteria
in interface TerminationCriteriaOrBuilder
public TerminationCriteria.DetailedOptimalityCriteriaOrBuilder getDetailedOptimalityCriteriaOrBuilder()
.operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
getDetailedOptimalityCriteriaOrBuilder
in interface TerminationCriteriaOrBuilder
@Deprecated public boolean hasEpsOptimalAbsolute()
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];
hasEpsOptimalAbsolute
in interface TerminationCriteriaOrBuilder
@Deprecated public double getEpsOptimalAbsolute()
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];
getEpsOptimalAbsolute
in interface TerminationCriteriaOrBuilder
@Deprecated public boolean hasEpsOptimalRelative()
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];
hasEpsOptimalRelative
in interface TerminationCriteriaOrBuilder
@Deprecated public double getEpsOptimalRelative()
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];
getEpsOptimalRelative
in interface TerminationCriteriaOrBuilder
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];
hasEpsPrimalInfeasible
in interface TerminationCriteriaOrBuilder
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];
getEpsPrimalInfeasible
in interface TerminationCriteriaOrBuilder
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];
hasEpsDualInfeasible
in interface TerminationCriteriaOrBuilder
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];
getEpsDualInfeasible
in interface TerminationCriteriaOrBuilder
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];
hasTimeSecLimit
in interface TerminationCriteriaOrBuilder
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];
getTimeSecLimit
in interface TerminationCriteriaOrBuilder
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];
hasIterationLimit
in interface TerminationCriteriaOrBuilder
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];
getIterationLimit
in interface TerminationCriteriaOrBuilder
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];
hasKktMatrixPassLimit
in interface TerminationCriteriaOrBuilder
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];
getKktMatrixPassLimit
in interface TerminationCriteriaOrBuilder
public final boolean isInitialized()
isInitialized
in interface com.google.protobuf.MessageLiteOrBuilder
isInitialized
in class com.google.protobuf.GeneratedMessage
public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException
writeTo
in interface com.google.protobuf.MessageLite
writeTo
in class com.google.protobuf.GeneratedMessage
java.io.IOException
public int getSerializedSize()
getSerializedSize
in interface com.google.protobuf.MessageLite
getSerializedSize
in class com.google.protobuf.GeneratedMessage
public boolean equals(java.lang.Object obj)
equals
in interface com.google.protobuf.Message
equals
in class com.google.protobuf.AbstractMessage
public int hashCode()
hashCode
in interface com.google.protobuf.Message
hashCode
in class com.google.protobuf.AbstractMessage
public static TerminationCriteria parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
com.google.protobuf.InvalidProtocolBufferException
public static TerminationCriteria parseFrom(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static TerminationCriteria parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
java.io.IOException
public static TerminationCriteria parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException
java.io.IOException
public static TerminationCriteria parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
java.io.IOException
public static TerminationCriteria parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException
java.io.IOException
public static TerminationCriteria parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
java.io.IOException
public TerminationCriteria.Builder newBuilderForType()
newBuilderForType
in interface com.google.protobuf.Message
newBuilderForType
in interface com.google.protobuf.MessageLite
public static TerminationCriteria.Builder newBuilder()
public static TerminationCriteria.Builder newBuilder(TerminationCriteria prototype)
public TerminationCriteria.Builder toBuilder()
toBuilder
in interface com.google.protobuf.Message
toBuilder
in interface com.google.protobuf.MessageLite
protected TerminationCriteria.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
newBuilderForType
in class com.google.protobuf.AbstractMessage
public static TerminationCriteria getDefaultInstance()
public static com.google.protobuf.Parser<TerminationCriteria> parser()
public com.google.protobuf.Parser<TerminationCriteria> getParserForType()
getParserForType
in interface com.google.protobuf.Message
getParserForType
in interface com.google.protobuf.MessageLite
getParserForType
in class com.google.protobuf.GeneratedMessage
public TerminationCriteria getDefaultInstanceForType()
getDefaultInstanceForType
in interface com.google.protobuf.MessageLiteOrBuilder
getDefaultInstanceForType
in interface com.google.protobuf.MessageOrBuilder
Copyright © 2025. All rights reserved.