Class PrimalDualHybridGradientParams.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<PrimalDualHybridGradientParams.Builder>
com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
com.google.ortools.pdlp.PrimalDualHybridGradientParams.Builder
All Implemented Interfaces:
PrimalDualHybridGradientParamsOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
Enclosing class:
PrimalDualHybridGradientParams

public static final class PrimalDualHybridGradientParams.Builder extends com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder> implements PrimalDualHybridGradientParamsOrBuilder
 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:
 - restart_strategy (jointly with major_iteration_frequency)
 - primal_weight_update_smoothing (jointly with initial_primal_weight)
 - presolve_options.use_glop
 - l_inf_ruiz_iterations
 - l2_norm_rescaling
 In addition, tune num_threads to speed up the solve.
 
Protobuf type operations_research.pdlp.PrimalDualHybridGradientParams
  • 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.Builder<PrimalDualHybridGradientParams.Builder>
    • clear

      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
    • getDefaultInstanceForType

      public PrimalDualHybridGradientParams getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public PrimalDualHybridGradientParams buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • mergeFrom

      public PrimalDualHybridGradientParams.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PrimalDualHybridGradientParams.Builder>
    • mergeFrom

    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
    • mergeFrom

      public PrimalDualHybridGradientParams.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<PrimalDualHybridGradientParams.Builder>
      Throws:
      IOException
    • hasTerminationCriteria

      public boolean hasTerminationCriteria()
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
      Specified by:
      hasTerminationCriteria in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the terminationCriteria field is set.
    • getTerminationCriteria

      public TerminationCriteria getTerminationCriteria()
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
      Specified by:
      getTerminationCriteria in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The terminationCriteria.
    • setTerminationCriteria

      public PrimalDualHybridGradientParams.Builder setTerminationCriteria(TerminationCriteria value)
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
    • setTerminationCriteria

      public PrimalDualHybridGradientParams.Builder setTerminationCriteria(TerminationCriteria.Builder builderForValue)
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
    • mergeTerminationCriteria

      public PrimalDualHybridGradientParams.Builder mergeTerminationCriteria(TerminationCriteria value)
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
    • clearTerminationCriteria

      public PrimalDualHybridGradientParams.Builder clearTerminationCriteria()
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
    • getTerminationCriteriaBuilder

      public TerminationCriteria.Builder getTerminationCriteriaBuilder()
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
    • getTerminationCriteriaOrBuilder

      public TerminationCriteriaOrBuilder getTerminationCriteriaOrBuilder()
      optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
      Specified by:
      getTerminationCriteriaOrBuilder in interface PrimalDualHybridGradientParamsOrBuilder
    • hasNumThreads

      public boolean hasNumThreads()
       The number of threads to use. Must be positive.
       Try various values of num_threads, up to the number of physical cores.
       Performance may not be monotonically increasing with the number of threads
       because of memory bandwidth limitations.
       
      optional int32 num_threads = 2 [default = 1];
      Specified by:
      hasNumThreads in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the numThreads field is set.
    • getNumThreads

      public int getNumThreads()
       The number of threads to use. Must be positive.
       Try various values of num_threads, up to the number of physical cores.
       Performance may not be monotonically increasing with the number of threads
       because of memory bandwidth limitations.
       
      optional int32 num_threads = 2 [default = 1];
      Specified by:
      getNumThreads in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The numThreads.
    • setNumThreads

      public PrimalDualHybridGradientParams.Builder setNumThreads(int value)
       The number of threads to use. Must be positive.
       Try various values of num_threads, up to the number of physical cores.
       Performance may not be monotonically increasing with the number of threads
       because of memory bandwidth limitations.
       
      optional int32 num_threads = 2 [default = 1];
      Parameters:
      value - The numThreads to set.
      Returns:
      This builder for chaining.
    • clearNumThreads

      public PrimalDualHybridGradientParams.Builder clearNumThreads()
       The number of threads to use. Must be positive.
       Try various values of num_threads, up to the number of physical cores.
       Performance may not be monotonically increasing with the number of threads
       because of memory bandwidth limitations.
       
      optional int32 num_threads = 2 [default = 1];
      Returns:
      This builder for chaining.
    • hasNumShards

      public boolean hasNumShards()
       For more efficient parallel computation, the matrices and vectors are
       divided (virtually) into num_shards shards. Results are computed
       independently for each shard and then combined. As a consequence, the order
       of computation, and hence floating point roundoff, depends on the number of
       shards so reproducible results require using the same value for num_shards.
       However, for efficiency num_shards should a be at least num_threads, and
       preferably at least 4*num_threads to allow better load balancing. If
       num_shards is positive, the computation will use that many shards.
       Otherwise a default that depends on num_threads will be used.
       
      optional int32 num_shards = 27 [default = 0];
      Specified by:
      hasNumShards in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the numShards field is set.
    • getNumShards

      public int getNumShards()
       For more efficient parallel computation, the matrices and vectors are
       divided (virtually) into num_shards shards. Results are computed
       independently for each shard and then combined. As a consequence, the order
       of computation, and hence floating point roundoff, depends on the number of
       shards so reproducible results require using the same value for num_shards.
       However, for efficiency num_shards should a be at least num_threads, and
       preferably at least 4*num_threads to allow better load balancing. If
       num_shards is positive, the computation will use that many shards.
       Otherwise a default that depends on num_threads will be used.
       
      optional int32 num_shards = 27 [default = 0];
      Specified by:
      getNumShards in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The numShards.
    • setNumShards

      public PrimalDualHybridGradientParams.Builder setNumShards(int value)
       For more efficient parallel computation, the matrices and vectors are
       divided (virtually) into num_shards shards. Results are computed
       independently for each shard and then combined. As a consequence, the order
       of computation, and hence floating point roundoff, depends on the number of
       shards so reproducible results require using the same value for num_shards.
       However, for efficiency num_shards should a be at least num_threads, and
       preferably at least 4*num_threads to allow better load balancing. If
       num_shards is positive, the computation will use that many shards.
       Otherwise a default that depends on num_threads will be used.
       
      optional int32 num_shards = 27 [default = 0];
      Parameters:
      value - The numShards to set.
      Returns:
      This builder for chaining.
    • clearNumShards

      public PrimalDualHybridGradientParams.Builder clearNumShards()
       For more efficient parallel computation, the matrices and vectors are
       divided (virtually) into num_shards shards. Results are computed
       independently for each shard and then combined. As a consequence, the order
       of computation, and hence floating point roundoff, depends on the number of
       shards so reproducible results require using the same value for num_shards.
       However, for efficiency num_shards should a be at least num_threads, and
       preferably at least 4*num_threads to allow better load balancing. If
       num_shards is positive, the computation will use that many shards.
       Otherwise a default that depends on num_threads will be used.
       
      optional int32 num_shards = 27 [default = 0];
      Returns:
      This builder for chaining.
    • hasSchedulerType

      public boolean hasSchedulerType()
       The type of scheduler used for CPU multi-threading. See the documentation
       of the corresponding enum for more details.
       
      optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
      Specified by:
      hasSchedulerType in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the schedulerType field is set.
    • getSchedulerType

      public SchedulerType getSchedulerType()
       The type of scheduler used for CPU multi-threading. See the documentation
       of the corresponding enum for more details.
       
      optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
      Specified by:
      getSchedulerType in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The schedulerType.
    • setSchedulerType

      public PrimalDualHybridGradientParams.Builder setSchedulerType(SchedulerType value)
       The type of scheduler used for CPU multi-threading. See the documentation
       of the corresponding enum for more details.
       
      optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
      Parameters:
      value - The schedulerType to set.
      Returns:
      This builder for chaining.
    • clearSchedulerType

      public PrimalDualHybridGradientParams.Builder clearSchedulerType()
       The type of scheduler used for CPU multi-threading. See the documentation
       of the corresponding enum for more details.
       
      optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
      Returns:
      This builder for chaining.
    • hasRecordIterationStats

      public boolean hasRecordIterationStats()
       If true, the iteration_stats field of the SolveLog output will be populated
       at every iteration. Note that we only compute solution statistics at
       termination checks. Setting this parameter to true may substantially
       increase the size of the output.
       
      optional bool record_iteration_stats = 3;
      Specified by:
      hasRecordIterationStats in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the recordIterationStats field is set.
    • getRecordIterationStats

      public boolean getRecordIterationStats()
       If true, the iteration_stats field of the SolveLog output will be populated
       at every iteration. Note that we only compute solution statistics at
       termination checks. Setting this parameter to true may substantially
       increase the size of the output.
       
      optional bool record_iteration_stats = 3;
      Specified by:
      getRecordIterationStats in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The recordIterationStats.
    • setRecordIterationStats

      public PrimalDualHybridGradientParams.Builder setRecordIterationStats(boolean value)
       If true, the iteration_stats field of the SolveLog output will be populated
       at every iteration. Note that we only compute solution statistics at
       termination checks. Setting this parameter to true may substantially
       increase the size of the output.
       
      optional bool record_iteration_stats = 3;
      Parameters:
      value - The recordIterationStats to set.
      Returns:
      This builder for chaining.
    • clearRecordIterationStats

      public PrimalDualHybridGradientParams.Builder clearRecordIterationStats()
       If true, the iteration_stats field of the SolveLog output will be populated
       at every iteration. Note that we only compute solution statistics at
       termination checks. Setting this parameter to true may substantially
       increase the size of the output.
       
      optional bool record_iteration_stats = 3;
      Returns:
      This builder for chaining.
    • hasVerbosityLevel

      public boolean hasVerbosityLevel()
       The verbosity of logging.
       0: No informational logging. (Errors are logged.)
       1: Summary statistics only. No iteration-level details.
       2: A table of iteration-level statistics is logged.
       (See ToShortString() in primal_dual_hybrid_gradient.cc).
       3: A more detailed table of iteration-level statistics is logged.
       (See ToString() in primal_dual_hybrid_gradient.cc).
       4: For iteration-level details, prints the statistics of both the average
       (prefixed with A) and the current iterate (prefixed with C). Also prints
       internal algorithmic state and details.
       Logging at levels 2-4 also includes messages from level 1.
       
      optional int32 verbosity_level = 26 [default = 0];
      Specified by:
      hasVerbosityLevel in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the verbosityLevel field is set.
    • getVerbosityLevel

      public int getVerbosityLevel()
       The verbosity of logging.
       0: No informational logging. (Errors are logged.)
       1: Summary statistics only. No iteration-level details.
       2: A table of iteration-level statistics is logged.
       (See ToShortString() in primal_dual_hybrid_gradient.cc).
       3: A more detailed table of iteration-level statistics is logged.
       (See ToString() in primal_dual_hybrid_gradient.cc).
       4: For iteration-level details, prints the statistics of both the average
       (prefixed with A) and the current iterate (prefixed with C). Also prints
       internal algorithmic state and details.
       Logging at levels 2-4 also includes messages from level 1.
       
      optional int32 verbosity_level = 26 [default = 0];
      Specified by:
      getVerbosityLevel in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The verbosityLevel.
    • setVerbosityLevel

      public PrimalDualHybridGradientParams.Builder setVerbosityLevel(int value)
       The verbosity of logging.
       0: No informational logging. (Errors are logged.)
       1: Summary statistics only. No iteration-level details.
       2: A table of iteration-level statistics is logged.
       (See ToShortString() in primal_dual_hybrid_gradient.cc).
       3: A more detailed table of iteration-level statistics is logged.
       (See ToString() in primal_dual_hybrid_gradient.cc).
       4: For iteration-level details, prints the statistics of both the average
       (prefixed with A) and the current iterate (prefixed with C). Also prints
       internal algorithmic state and details.
       Logging at levels 2-4 also includes messages from level 1.
       
      optional int32 verbosity_level = 26 [default = 0];
      Parameters:
      value - The verbosityLevel to set.
      Returns:
      This builder for chaining.
    • clearVerbosityLevel

      public PrimalDualHybridGradientParams.Builder clearVerbosityLevel()
       The verbosity of logging.
       0: No informational logging. (Errors are logged.)
       1: Summary statistics only. No iteration-level details.
       2: A table of iteration-level statistics is logged.
       (See ToShortString() in primal_dual_hybrid_gradient.cc).
       3: A more detailed table of iteration-level statistics is logged.
       (See ToString() in primal_dual_hybrid_gradient.cc).
       4: For iteration-level details, prints the statistics of both the average
       (prefixed with A) and the current iterate (prefixed with C). Also prints
       internal algorithmic state and details.
       Logging at levels 2-4 also includes messages from level 1.
       
      optional int32 verbosity_level = 26 [default = 0];
      Returns:
      This builder for chaining.
    • hasLogIntervalSeconds

      public boolean hasLogIntervalSeconds()
       Time between iteration-level statistics logging (if `verbosity_level > 1`).
       Since iteration-level statistics are only generated when performing
       termination checks, logs will be generated from next termination check
       after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the
       default) means log statistics at every termination check.
       
      optional double log_interval_seconds = 31 [default = 0];
      Specified by:
      hasLogIntervalSeconds in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the logIntervalSeconds field is set.
    • getLogIntervalSeconds

      public double getLogIntervalSeconds()
       Time between iteration-level statistics logging (if `verbosity_level > 1`).
       Since iteration-level statistics are only generated when performing
       termination checks, logs will be generated from next termination check
       after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the
       default) means log statistics at every termination check.
       
      optional double log_interval_seconds = 31 [default = 0];
      Specified by:
      getLogIntervalSeconds in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The logIntervalSeconds.
    • setLogIntervalSeconds

      public PrimalDualHybridGradientParams.Builder setLogIntervalSeconds(double value)
       Time between iteration-level statistics logging (if `verbosity_level > 1`).
       Since iteration-level statistics are only generated when performing
       termination checks, logs will be generated from next termination check
       after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the
       default) means log statistics at every termination check.
       
      optional double log_interval_seconds = 31 [default = 0];
      Parameters:
      value - The logIntervalSeconds to set.
      Returns:
      This builder for chaining.
    • clearLogIntervalSeconds

      public PrimalDualHybridGradientParams.Builder clearLogIntervalSeconds()
       Time between iteration-level statistics logging (if `verbosity_level > 1`).
       Since iteration-level statistics are only generated when performing
       termination checks, logs will be generated from next termination check
       after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the
       default) means log statistics at every termination check.
       
      optional double log_interval_seconds = 31 [default = 0];
      Returns:
      This builder for chaining.
    • hasMajorIterationFrequency

      public boolean hasMajorIterationFrequency()
       The frequency at which extra work is performed to make major algorithmic
       decisions, e.g., performing restarts and updating the primal weight. Major
       iterations also trigger a termination check. For best performance using the
       NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale
       grid search over this parameter, for example, over powers of two.
       ADAPTIVE_HEURISTIC is mostly insensitive to this value.
       
      optional int32 major_iteration_frequency = 4 [default = 64];
      Specified by:
      hasMajorIterationFrequency in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the majorIterationFrequency field is set.
    • getMajorIterationFrequency

      public int getMajorIterationFrequency()
       The frequency at which extra work is performed to make major algorithmic
       decisions, e.g., performing restarts and updating the primal weight. Major
       iterations also trigger a termination check. For best performance using the
       NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale
       grid search over this parameter, for example, over powers of two.
       ADAPTIVE_HEURISTIC is mostly insensitive to this value.
       
      optional int32 major_iteration_frequency = 4 [default = 64];
      Specified by:
      getMajorIterationFrequency in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The majorIterationFrequency.
    • setMajorIterationFrequency

      public PrimalDualHybridGradientParams.Builder setMajorIterationFrequency(int value)
       The frequency at which extra work is performed to make major algorithmic
       decisions, e.g., performing restarts and updating the primal weight. Major
       iterations also trigger a termination check. For best performance using the
       NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale
       grid search over this parameter, for example, over powers of two.
       ADAPTIVE_HEURISTIC is mostly insensitive to this value.
       
      optional int32 major_iteration_frequency = 4 [default = 64];
      Parameters:
      value - The majorIterationFrequency to set.
      Returns:
      This builder for chaining.
    • clearMajorIterationFrequency

      public PrimalDualHybridGradientParams.Builder clearMajorIterationFrequency()
       The frequency at which extra work is performed to make major algorithmic
       decisions, e.g., performing restarts and updating the primal weight. Major
       iterations also trigger a termination check. For best performance using the
       NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale
       grid search over this parameter, for example, over powers of two.
       ADAPTIVE_HEURISTIC is mostly insensitive to this value.
       
      optional int32 major_iteration_frequency = 4 [default = 64];
      Returns:
      This builder for chaining.
    • hasTerminationCheckFrequency

      public boolean hasTerminationCheckFrequency()
       The frequency (based on a counter reset every major iteration) to check for
       termination (involves extra work) and log iteration stats. Termination
       checks do not affect algorithmic progress unless termination is triggered.
       
      optional int32 termination_check_frequency = 5 [default = 64];
      Specified by:
      hasTerminationCheckFrequency in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the terminationCheckFrequency field is set.
    • getTerminationCheckFrequency

      public int getTerminationCheckFrequency()
       The frequency (based on a counter reset every major iteration) to check for
       termination (involves extra work) and log iteration stats. Termination
       checks do not affect algorithmic progress unless termination is triggered.
       
      optional int32 termination_check_frequency = 5 [default = 64];
      Specified by:
      getTerminationCheckFrequency in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The terminationCheckFrequency.
    • setTerminationCheckFrequency

      public PrimalDualHybridGradientParams.Builder setTerminationCheckFrequency(int value)
       The frequency (based on a counter reset every major iteration) to check for
       termination (involves extra work) and log iteration stats. Termination
       checks do not affect algorithmic progress unless termination is triggered.
       
      optional int32 termination_check_frequency = 5 [default = 64];
      Parameters:
      value - The terminationCheckFrequency to set.
      Returns:
      This builder for chaining.
    • clearTerminationCheckFrequency

      public PrimalDualHybridGradientParams.Builder clearTerminationCheckFrequency()
       The frequency (based on a counter reset every major iteration) to check for
       termination (involves extra work) and log iteration stats. Termination
       checks do not affect algorithmic progress unless termination is triggered.
       
      optional int32 termination_check_frequency = 5 [default = 64];
      Returns:
      This builder for chaining.
    • hasRestartStrategy

      public boolean hasRestartStrategy()
       NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
       If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune
       major_iteration_frequency.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
      Specified by:
      hasRestartStrategy in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the restartStrategy field is set.
    • getRestartStrategy

       NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
       If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune
       major_iteration_frequency.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
      Specified by:
      getRestartStrategy in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The restartStrategy.
    • setRestartStrategy

       NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
       If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune
       major_iteration_frequency.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
      Parameters:
      value - The restartStrategy to set.
      Returns:
      This builder for chaining.
    • clearRestartStrategy

      public PrimalDualHybridGradientParams.Builder clearRestartStrategy()
       NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
       If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune
       major_iteration_frequency.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
      Returns:
      This builder for chaining.
    • hasPrimalWeightUpdateSmoothing

      public boolean hasPrimalWeightUpdateSmoothing()
       This parameter controls exponential smoothing of log(primal_weight) when a
       primal weight update occurs (i.e., when the ratio of primal and dual step
       sizes is adjusted). At 0.0, the primal weight will be frozen at its initial
       value and there will be no dynamic updates in the algorithm. At 1.0, there
       is no smoothing in the updates. The default of 0.5 generally performs well,
       but has been observed on occasion to trigger unstable swings in the primal
       weight. We recommend also trying 0.0 (disabling primal weight updates), in
       which case you must also tune initial_primal_weight.
       
      optional double primal_weight_update_smoothing = 7 [default = 0.5];
      Specified by:
      hasPrimalWeightUpdateSmoothing in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the primalWeightUpdateSmoothing field is set.
    • getPrimalWeightUpdateSmoothing

      public double getPrimalWeightUpdateSmoothing()
       This parameter controls exponential smoothing of log(primal_weight) when a
       primal weight update occurs (i.e., when the ratio of primal and dual step
       sizes is adjusted). At 0.0, the primal weight will be frozen at its initial
       value and there will be no dynamic updates in the algorithm. At 1.0, there
       is no smoothing in the updates. The default of 0.5 generally performs well,
       but has been observed on occasion to trigger unstable swings in the primal
       weight. We recommend also trying 0.0 (disabling primal weight updates), in
       which case you must also tune initial_primal_weight.
       
      optional double primal_weight_update_smoothing = 7 [default = 0.5];
      Specified by:
      getPrimalWeightUpdateSmoothing in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The primalWeightUpdateSmoothing.
    • setPrimalWeightUpdateSmoothing

      public PrimalDualHybridGradientParams.Builder setPrimalWeightUpdateSmoothing(double value)
       This parameter controls exponential smoothing of log(primal_weight) when a
       primal weight update occurs (i.e., when the ratio of primal and dual step
       sizes is adjusted). At 0.0, the primal weight will be frozen at its initial
       value and there will be no dynamic updates in the algorithm. At 1.0, there
       is no smoothing in the updates. The default of 0.5 generally performs well,
       but has been observed on occasion to trigger unstable swings in the primal
       weight. We recommend also trying 0.0 (disabling primal weight updates), in
       which case you must also tune initial_primal_weight.
       
      optional double primal_weight_update_smoothing = 7 [default = 0.5];
      Parameters:
      value - The primalWeightUpdateSmoothing to set.
      Returns:
      This builder for chaining.
    • clearPrimalWeightUpdateSmoothing

      public PrimalDualHybridGradientParams.Builder clearPrimalWeightUpdateSmoothing()
       This parameter controls exponential smoothing of log(primal_weight) when a
       primal weight update occurs (i.e., when the ratio of primal and dual step
       sizes is adjusted). At 0.0, the primal weight will be frozen at its initial
       value and there will be no dynamic updates in the algorithm. At 1.0, there
       is no smoothing in the updates. The default of 0.5 generally performs well,
       but has been observed on occasion to trigger unstable swings in the primal
       weight. We recommend also trying 0.0 (disabling primal weight updates), in
       which case you must also tune initial_primal_weight.
       
      optional double primal_weight_update_smoothing = 7 [default = 0.5];
      Returns:
      This builder for chaining.
    • hasInitialPrimalWeight

      public boolean hasInitialPrimalWeight()
       The initial value of the primal weight (i.e., the ratio of primal and dual
       step sizes). The primal weight remains fixed throughout the solve if
       primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of
       the norm of the objective vector to the L2 norm of the combined constraint
       bounds vector (as defined above). If this ratio is not finite and positive,
       then the default is 1.0 instead. For tuning, try powers of 10, for example,
       from 10^{-6} to 10^6.
       
      optional double initial_primal_weight = 8;
      Specified by:
      hasInitialPrimalWeight in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the initialPrimalWeight field is set.
    • getInitialPrimalWeight

      public double getInitialPrimalWeight()
       The initial value of the primal weight (i.e., the ratio of primal and dual
       step sizes). The primal weight remains fixed throughout the solve if
       primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of
       the norm of the objective vector to the L2 norm of the combined constraint
       bounds vector (as defined above). If this ratio is not finite and positive,
       then the default is 1.0 instead. For tuning, try powers of 10, for example,
       from 10^{-6} to 10^6.
       
      optional double initial_primal_weight = 8;
      Specified by:
      getInitialPrimalWeight in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The initialPrimalWeight.
    • setInitialPrimalWeight

      public PrimalDualHybridGradientParams.Builder setInitialPrimalWeight(double value)
       The initial value of the primal weight (i.e., the ratio of primal and dual
       step sizes). The primal weight remains fixed throughout the solve if
       primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of
       the norm of the objective vector to the L2 norm of the combined constraint
       bounds vector (as defined above). If this ratio is not finite and positive,
       then the default is 1.0 instead. For tuning, try powers of 10, for example,
       from 10^{-6} to 10^6.
       
      optional double initial_primal_weight = 8;
      Parameters:
      value - The initialPrimalWeight to set.
      Returns:
      This builder for chaining.
    • clearInitialPrimalWeight

      public PrimalDualHybridGradientParams.Builder clearInitialPrimalWeight()
       The initial value of the primal weight (i.e., the ratio of primal and dual
       step sizes). The primal weight remains fixed throughout the solve if
       primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of
       the norm of the objective vector to the L2 norm of the combined constraint
       bounds vector (as defined above). If this ratio is not finite and positive,
       then the default is 1.0 instead. For tuning, try powers of 10, for example,
       from 10^{-6} to 10^6.
       
      optional double initial_primal_weight = 8;
      Returns:
      This builder for chaining.
    • hasPresolveOptions

      public boolean hasPresolveOptions()
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
      Specified by:
      hasPresolveOptions in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the presolveOptions field is set.
    • getPresolveOptions

      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
      Specified by:
      getPresolveOptions in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The presolveOptions.
    • setPresolveOptions

      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
    • setPresolveOptions

      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
    • mergePresolveOptions

      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
    • clearPresolveOptions

      public PrimalDualHybridGradientParams.Builder clearPresolveOptions()
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
    • getPresolveOptionsBuilder

      public PrimalDualHybridGradientParams.PresolveOptions.Builder getPresolveOptionsBuilder()
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
    • getPresolveOptionsOrBuilder

      public PrimalDualHybridGradientParams.PresolveOptionsOrBuilder getPresolveOptionsOrBuilder()
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
      Specified by:
      getPresolveOptionsOrBuilder in interface PrimalDualHybridGradientParamsOrBuilder
    • hasLInfRuizIterations

      public boolean hasLInfRuizIterations()
       Number of L_infinity Ruiz rescaling iterations to apply to the constraint
       matrix. Zero disables this rescaling pass. Recommended values to try when
       tuning are 0, 5, and 10.
       
      optional int32 l_inf_ruiz_iterations = 9 [default = 5];
      Specified by:
      hasLInfRuizIterations in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the lInfRuizIterations field is set.
    • getLInfRuizIterations

      public int getLInfRuizIterations()
       Number of L_infinity Ruiz rescaling iterations to apply to the constraint
       matrix. Zero disables this rescaling pass. Recommended values to try when
       tuning are 0, 5, and 10.
       
      optional int32 l_inf_ruiz_iterations = 9 [default = 5];
      Specified by:
      getLInfRuizIterations in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The lInfRuizIterations.
    • setLInfRuizIterations

      public PrimalDualHybridGradientParams.Builder setLInfRuizIterations(int value)
       Number of L_infinity Ruiz rescaling iterations to apply to the constraint
       matrix. Zero disables this rescaling pass. Recommended values to try when
       tuning are 0, 5, and 10.
       
      optional int32 l_inf_ruiz_iterations = 9 [default = 5];
      Parameters:
      value - The lInfRuizIterations to set.
      Returns:
      This builder for chaining.
    • clearLInfRuizIterations

      public PrimalDualHybridGradientParams.Builder clearLInfRuizIterations()
       Number of L_infinity Ruiz rescaling iterations to apply to the constraint
       matrix. Zero disables this rescaling pass. Recommended values to try when
       tuning are 0, 5, and 10.
       
      optional int32 l_inf_ruiz_iterations = 9 [default = 5];
      Returns:
      This builder for chaining.
    • hasL2NormRescaling

      public boolean hasL2NormRescaling()
       If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically
       this has been found to help convergence.
       
      optional bool l2_norm_rescaling = 10 [default = true];
      Specified by:
      hasL2NormRescaling in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the l2NormRescaling field is set.
    • getL2NormRescaling

      public boolean getL2NormRescaling()
       If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically
       this has been found to help convergence.
       
      optional bool l2_norm_rescaling = 10 [default = true];
      Specified by:
      getL2NormRescaling in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The l2NormRescaling.
    • setL2NormRescaling

      public PrimalDualHybridGradientParams.Builder setL2NormRescaling(boolean value)
       If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically
       this has been found to help convergence.
       
      optional bool l2_norm_rescaling = 10 [default = true];
      Parameters:
      value - The l2NormRescaling to set.
      Returns:
      This builder for chaining.
    • clearL2NormRescaling

      public PrimalDualHybridGradientParams.Builder clearL2NormRescaling()
       If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically
       this has been found to help convergence.
       
      optional bool l2_norm_rescaling = 10 [default = true];
      Returns:
      This builder for chaining.
    • hasSufficientReductionForRestart

      public boolean hasSufficientReductionForRestart()
       For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
       reduction in the potential function by this amount always triggers a
       restart. Must be between 0.0 and 1.0.
       
      optional double sufficient_reduction_for_restart = 11 [default = 0.1];
      Specified by:
      hasSufficientReductionForRestart in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the sufficientReductionForRestart field is set.
    • getSufficientReductionForRestart

      public double getSufficientReductionForRestart()
       For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
       reduction in the potential function by this amount always triggers a
       restart. Must be between 0.0 and 1.0.
       
      optional double sufficient_reduction_for_restart = 11 [default = 0.1];
      Specified by:
      getSufficientReductionForRestart in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The sufficientReductionForRestart.
    • setSufficientReductionForRestart

      public PrimalDualHybridGradientParams.Builder setSufficientReductionForRestart(double value)
       For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
       reduction in the potential function by this amount always triggers a
       restart. Must be between 0.0 and 1.0.
       
      optional double sufficient_reduction_for_restart = 11 [default = 0.1];
      Parameters:
      value - The sufficientReductionForRestart to set.
      Returns:
      This builder for chaining.
    • clearSufficientReductionForRestart

      public PrimalDualHybridGradientParams.Builder clearSufficientReductionForRestart()
       For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
       reduction in the potential function by this amount always triggers a
       restart. Must be between 0.0 and 1.0.
       
      optional double sufficient_reduction_for_restart = 11 [default = 0.1];
      Returns:
      This builder for chaining.
    • hasNecessaryReductionForRestart

      public boolean hasNecessaryReductionForRestart()
       For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
       by this amount triggers a restart if, additionally, the quality of the
       iterates appears to be getting worse. The value must be in the interval
       [sufficient_reduction_for_restart, 1). Smaller values make restarts less
       frequent, and larger values make them more frequent.
       
      optional double necessary_reduction_for_restart = 17 [default = 0.9];
      Specified by:
      hasNecessaryReductionForRestart in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the necessaryReductionForRestart field is set.
    • getNecessaryReductionForRestart

      public double getNecessaryReductionForRestart()
       For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
       by this amount triggers a restart if, additionally, the quality of the
       iterates appears to be getting worse. The value must be in the interval
       [sufficient_reduction_for_restart, 1). Smaller values make restarts less
       frequent, and larger values make them more frequent.
       
      optional double necessary_reduction_for_restart = 17 [default = 0.9];
      Specified by:
      getNecessaryReductionForRestart in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The necessaryReductionForRestart.
    • setNecessaryReductionForRestart

      public PrimalDualHybridGradientParams.Builder setNecessaryReductionForRestart(double value)
       For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
       by this amount triggers a restart if, additionally, the quality of the
       iterates appears to be getting worse. The value must be in the interval
       [sufficient_reduction_for_restart, 1). Smaller values make restarts less
       frequent, and larger values make them more frequent.
       
      optional double necessary_reduction_for_restart = 17 [default = 0.9];
      Parameters:
      value - The necessaryReductionForRestart to set.
      Returns:
      This builder for chaining.
    • clearNecessaryReductionForRestart

      public PrimalDualHybridGradientParams.Builder clearNecessaryReductionForRestart()
       For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
       by this amount triggers a restart if, additionally, the quality of the
       iterates appears to be getting worse. The value must be in the interval
       [sufficient_reduction_for_restart, 1). Smaller values make restarts less
       frequent, and larger values make them more frequent.
       
      optional double necessary_reduction_for_restart = 17 [default = 0.9];
      Returns:
      This builder for chaining.
    • hasLinesearchRule

      public boolean hasLinesearchRule()
       Linesearch rule applied at each major iteration.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
      Specified by:
      hasLinesearchRule in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the linesearchRule field is set.
    • getLinesearchRule

       Linesearch rule applied at each major iteration.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
      Specified by:
      getLinesearchRule in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The linesearchRule.
    • setLinesearchRule

       Linesearch rule applied at each major iteration.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
      Parameters:
      value - The linesearchRule to set.
      Returns:
      This builder for chaining.
    • clearLinesearchRule

      public PrimalDualHybridGradientParams.Builder clearLinesearchRule()
       Linesearch rule applied at each major iteration.
       
      optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
      Returns:
      This builder for chaining.
    • hasAdaptiveLinesearchParameters

      public boolean hasAdaptiveLinesearchParameters()
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
      Specified by:
      hasAdaptiveLinesearchParameters in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the adaptiveLinesearchParameters field is set.
    • getAdaptiveLinesearchParameters

      public AdaptiveLinesearchParams getAdaptiveLinesearchParameters()
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
      Specified by:
      getAdaptiveLinesearchParameters in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The adaptiveLinesearchParameters.
    • setAdaptiveLinesearchParameters

      public PrimalDualHybridGradientParams.Builder setAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
    • setAdaptiveLinesearchParameters

      public PrimalDualHybridGradientParams.Builder setAdaptiveLinesearchParameters(AdaptiveLinesearchParams.Builder builderForValue)
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
    • mergeAdaptiveLinesearchParameters

      public PrimalDualHybridGradientParams.Builder mergeAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
    • clearAdaptiveLinesearchParameters

      public PrimalDualHybridGradientParams.Builder clearAdaptiveLinesearchParameters()
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
    • getAdaptiveLinesearchParametersBuilder

      public AdaptiveLinesearchParams.Builder getAdaptiveLinesearchParametersBuilder()
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
    • getAdaptiveLinesearchParametersOrBuilder

      public AdaptiveLinesearchParamsOrBuilder getAdaptiveLinesearchParametersOrBuilder()
      optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
      Specified by:
      getAdaptiveLinesearchParametersOrBuilder in interface PrimalDualHybridGradientParamsOrBuilder
    • hasMalitskyPockParameters

      public boolean hasMalitskyPockParameters()
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
      Specified by:
      hasMalitskyPockParameters in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the malitskyPockParameters field is set.
    • getMalitskyPockParameters

      public MalitskyPockParams getMalitskyPockParameters()
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
      Specified by:
      getMalitskyPockParameters in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The malitskyPockParameters.
    • setMalitskyPockParameters

      public PrimalDualHybridGradientParams.Builder setMalitskyPockParameters(MalitskyPockParams value)
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
    • setMalitskyPockParameters

      public PrimalDualHybridGradientParams.Builder setMalitskyPockParameters(MalitskyPockParams.Builder builderForValue)
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
    • mergeMalitskyPockParameters

      public PrimalDualHybridGradientParams.Builder mergeMalitskyPockParameters(MalitskyPockParams value)
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
    • clearMalitskyPockParameters

      public PrimalDualHybridGradientParams.Builder clearMalitskyPockParameters()
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
    • getMalitskyPockParametersBuilder

      public MalitskyPockParams.Builder getMalitskyPockParametersBuilder()
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
    • getMalitskyPockParametersOrBuilder

      public MalitskyPockParamsOrBuilder getMalitskyPockParametersOrBuilder()
      optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
      Specified by:
      getMalitskyPockParametersOrBuilder in interface PrimalDualHybridGradientParamsOrBuilder
    • hasInitialStepSizeScaling

      public boolean hasInitialStepSizeScaling()
       Scaling factor applied to the initial step size (all step sizes if
       linesearch_rule == CONSTANT_STEP_SIZE_RULE).
       
      optional double initial_step_size_scaling = 25 [default = 1];
      Specified by:
      hasInitialStepSizeScaling in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the initialStepSizeScaling field is set.
    • getInitialStepSizeScaling

      public double getInitialStepSizeScaling()
       Scaling factor applied to the initial step size (all step sizes if
       linesearch_rule == CONSTANT_STEP_SIZE_RULE).
       
      optional double initial_step_size_scaling = 25 [default = 1];
      Specified by:
      getInitialStepSizeScaling in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The initialStepSizeScaling.
    • setInitialStepSizeScaling

      public PrimalDualHybridGradientParams.Builder setInitialStepSizeScaling(double value)
       Scaling factor applied to the initial step size (all step sizes if
       linesearch_rule == CONSTANT_STEP_SIZE_RULE).
       
      optional double initial_step_size_scaling = 25 [default = 1];
      Parameters:
      value - The initialStepSizeScaling to set.
      Returns:
      This builder for chaining.
    • clearInitialStepSizeScaling

      public PrimalDualHybridGradientParams.Builder clearInitialStepSizeScaling()
       Scaling factor applied to the initial step size (all step sizes if
       linesearch_rule == CONSTANT_STEP_SIZE_RULE).
       
      optional double initial_step_size_scaling = 25 [default = 1];
      Returns:
      This builder for chaining.
    • getRandomProjectionSeedsList

      public List<Integer> getRandomProjectionSeedsList()
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Specified by:
      getRandomProjectionSeedsList in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      A list containing the randomProjectionSeeds.
    • getRandomProjectionSeedsCount

      public int getRandomProjectionSeedsCount()
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Specified by:
      getRandomProjectionSeedsCount in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The count of randomProjectionSeeds.
    • getRandomProjectionSeeds

      public int getRandomProjectionSeeds(int index)
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Specified by:
      getRandomProjectionSeeds in interface PrimalDualHybridGradientParamsOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The randomProjectionSeeds at the given index.
    • setRandomProjectionSeeds

      public PrimalDualHybridGradientParams.Builder setRandomProjectionSeeds(int index, int value)
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Parameters:
      index - The index to set the value at.
      value - The randomProjectionSeeds to set.
      Returns:
      This builder for chaining.
    • addRandomProjectionSeeds

      public PrimalDualHybridGradientParams.Builder addRandomProjectionSeeds(int value)
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Parameters:
      value - The randomProjectionSeeds to add.
      Returns:
      This builder for chaining.
    • addAllRandomProjectionSeeds

      public PrimalDualHybridGradientParams.Builder addAllRandomProjectionSeeds(Iterable<? extends Integer> values)
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Parameters:
      values - The randomProjectionSeeds to add.
      Returns:
      This builder for chaining.
    • clearRandomProjectionSeeds

      public PrimalDualHybridGradientParams.Builder clearRandomProjectionSeeds()
       Seeds for generating (pseudo-)random projections of iterates during
       termination checks. For each seed, the projection of the primal and dual
       solutions onto random planes in primal and dual space will be computed and
       added the IterationStats if record_iteration_stats is true. The random
       planes generated will be determined by the seeds, the primal and dual
       dimensions, and num_threads.
       
      repeated int32 random_projection_seeds = 28 [packed = true];
      Returns:
      This builder for chaining.
    • hasInfiniteConstraintBoundThreshold

      public boolean hasInfiniteConstraintBoundThreshold()
       Constraint bounds with absolute value at least this threshold are replaced
       with infinities.
       NOTE: This primarily affects the relative convergence criteria. A smaller
       value makes the relative convergence criteria stronger. It also affects the
       problem statistics LOG()ed at the start of the run, and the default initial
       primal weight, since that is based on the norm of the bounds.
       
      optional double infinite_constraint_bound_threshold = 22 [default = inf];
      Specified by:
      hasInfiniteConstraintBoundThreshold in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the infiniteConstraintBoundThreshold field is set.
    • getInfiniteConstraintBoundThreshold

      public double getInfiniteConstraintBoundThreshold()
       Constraint bounds with absolute value at least this threshold are replaced
       with infinities.
       NOTE: This primarily affects the relative convergence criteria. A smaller
       value makes the relative convergence criteria stronger. It also affects the
       problem statistics LOG()ed at the start of the run, and the default initial
       primal weight, since that is based on the norm of the bounds.
       
      optional double infinite_constraint_bound_threshold = 22 [default = inf];
      Specified by:
      getInfiniteConstraintBoundThreshold in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The infiniteConstraintBoundThreshold.
    • setInfiniteConstraintBoundThreshold

      public PrimalDualHybridGradientParams.Builder setInfiniteConstraintBoundThreshold(double value)
       Constraint bounds with absolute value at least this threshold are replaced
       with infinities.
       NOTE: This primarily affects the relative convergence criteria. A smaller
       value makes the relative convergence criteria stronger. It also affects the
       problem statistics LOG()ed at the start of the run, and the default initial
       primal weight, since that is based on the norm of the bounds.
       
      optional double infinite_constraint_bound_threshold = 22 [default = inf];
      Parameters:
      value - The infiniteConstraintBoundThreshold to set.
      Returns:
      This builder for chaining.
    • clearInfiniteConstraintBoundThreshold

      public PrimalDualHybridGradientParams.Builder clearInfiniteConstraintBoundThreshold()
       Constraint bounds with absolute value at least this threshold are replaced
       with infinities.
       NOTE: This primarily affects the relative convergence criteria. A smaller
       value makes the relative convergence criteria stronger. It also affects the
       problem statistics LOG()ed at the start of the run, and the default initial
       primal weight, since that is based on the norm of the bounds.
       
      optional double infinite_constraint_bound_threshold = 22 [default = inf];
      Returns:
      This builder for chaining.
    • hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals

      public boolean hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
       See
       https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
       for a description of this flag.
       
      optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
      Specified by:
      hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the handleSomePrimalGradientsOnFiniteBoundsAsResiduals field is set.
    • getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals

      public boolean getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
       See
       https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
       for a description of this flag.
       
      optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
      Specified by:
      getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The handleSomePrimalGradientsOnFiniteBoundsAsResiduals.
    • setHandleSomePrimalGradientsOnFiniteBoundsAsResiduals

      public PrimalDualHybridGradientParams.Builder setHandleSomePrimalGradientsOnFiniteBoundsAsResiduals(boolean value)
       See
       https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
       for a description of this flag.
       
      optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
      Parameters:
      value - The handleSomePrimalGradientsOnFiniteBoundsAsResiduals to set.
      Returns:
      This builder for chaining.
    • clearHandleSomePrimalGradientsOnFiniteBoundsAsResiduals

      public PrimalDualHybridGradientParams.Builder clearHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
       See
       https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
       for a description of this flag.
       
      optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
      Returns:
      This builder for chaining.
    • hasUseDiagonalQpTrustRegionSolver

      public boolean hasUseDiagonalQpTrustRegionSolver()
       When solving QPs with diagonal objective matrices, this option can be
       turned on to enable an experimental solver that avoids linearization of the
       quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the
       solve accuracy.
       TODO(user): Turn this option on by default for quadratic
       programs after numerical evaluation.
       
      optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
      Specified by:
      hasUseDiagonalQpTrustRegionSolver in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the useDiagonalQpTrustRegionSolver field is set.
    • getUseDiagonalQpTrustRegionSolver

      public boolean getUseDiagonalQpTrustRegionSolver()
       When solving QPs with diagonal objective matrices, this option can be
       turned on to enable an experimental solver that avoids linearization of the
       quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the
       solve accuracy.
       TODO(user): Turn this option on by default for quadratic
       programs after numerical evaluation.
       
      optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
      Specified by:
      getUseDiagonalQpTrustRegionSolver in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The useDiagonalQpTrustRegionSolver.
    • setUseDiagonalQpTrustRegionSolver

      public PrimalDualHybridGradientParams.Builder setUseDiagonalQpTrustRegionSolver(boolean value)
       When solving QPs with diagonal objective matrices, this option can be
       turned on to enable an experimental solver that avoids linearization of the
       quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the
       solve accuracy.
       TODO(user): Turn this option on by default for quadratic
       programs after numerical evaluation.
       
      optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
      Parameters:
      value - The useDiagonalQpTrustRegionSolver to set.
      Returns:
      This builder for chaining.
    • clearUseDiagonalQpTrustRegionSolver

      public PrimalDualHybridGradientParams.Builder clearUseDiagonalQpTrustRegionSolver()
       When solving QPs with diagonal objective matrices, this option can be
       turned on to enable an experimental solver that avoids linearization of the
       quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the
       solve accuracy.
       TODO(user): Turn this option on by default for quadratic
       programs after numerical evaluation.
       
      optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
      Returns:
      This builder for chaining.
    • hasDiagonalQpTrustRegionSolverTolerance

      public boolean hasDiagonalQpTrustRegionSolverTolerance()
       The solve tolerance of the experimental trust region solver for diagonal
       QPs, controlling the accuracy of binary search over a one-dimensional
       scaling parameter. Smaller values imply smaller relative error of the final
       solution vector.
       TODO(user): Find an expression for the final relative error.
       
      optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
      Specified by:
      hasDiagonalQpTrustRegionSolverTolerance in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the diagonalQpTrustRegionSolverTolerance field is set.
    • getDiagonalQpTrustRegionSolverTolerance

      public double getDiagonalQpTrustRegionSolverTolerance()
       The solve tolerance of the experimental trust region solver for diagonal
       QPs, controlling the accuracy of binary search over a one-dimensional
       scaling parameter. Smaller values imply smaller relative error of the final
       solution vector.
       TODO(user): Find an expression for the final relative error.
       
      optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
      Specified by:
      getDiagonalQpTrustRegionSolverTolerance in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The diagonalQpTrustRegionSolverTolerance.
    • setDiagonalQpTrustRegionSolverTolerance

      public PrimalDualHybridGradientParams.Builder setDiagonalQpTrustRegionSolverTolerance(double value)
       The solve tolerance of the experimental trust region solver for diagonal
       QPs, controlling the accuracy of binary search over a one-dimensional
       scaling parameter. Smaller values imply smaller relative error of the final
       solution vector.
       TODO(user): Find an expression for the final relative error.
       
      optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
      Parameters:
      value - The diagonalQpTrustRegionSolverTolerance to set.
      Returns:
      This builder for chaining.
    • clearDiagonalQpTrustRegionSolverTolerance

      public PrimalDualHybridGradientParams.Builder clearDiagonalQpTrustRegionSolverTolerance()
       The solve tolerance of the experimental trust region solver for diagonal
       QPs, controlling the accuracy of binary search over a one-dimensional
       scaling parameter. Smaller values imply smaller relative error of the final
       solution vector.
       TODO(user): Find an expression for the final relative error.
       
      optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
      Returns:
      This builder for chaining.
    • hasUseFeasibilityPolishing

      public boolean hasUseFeasibilityPolishing()
       If true, periodically runs feasibility polishing, which attempts to move
       from latest average iterate to one that is closer to feasibility (i.e., has
       smaller primal and dual residuals) while probably increasing the objective
       gap. This is useful primarily when the feasibility tolerances are fairly
       tight and the objective gap tolerance is somewhat looser. Note that this
       does not change the termination criteria, but rather can help achieve the
       termination criteria more quickly when the objective gap is not as
       important as feasibility.
      
       `use_feasibility_polishing` cannot be used with glop presolve, and requires
       `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`.
       `use_feasibility_polishing` can only be used with linear programs.
      
       Feasibility polishing runs two separate phases, primal feasibility and dual
       feasibility. The primal feasibility phase runs PDHG on the primal
       feasibility problem (obtained by changing the objective vector to all
       zeros), using the average primal iterate and zero dual (which is optimal
       for the primal feasibility problem) as the initial solution. The dual
       feasibility phase runs PDHG on the dual feasibility problem (obtained by
       changing all finite variable and constraint bounds to zero), using the
       average dual iterate and zero primal (which is optimal for the dual
       feasibility problem) as the initial solution. The primal solution from the
       primal feasibility phase and dual solution from the dual feasibility phase
       are then combined (forming a solution of type
       `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the
       termination criteria.
       
      optional bool use_feasibility_polishing = 30 [default = false];
      Specified by:
      hasUseFeasibilityPolishing in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the useFeasibilityPolishing field is set.
    • getUseFeasibilityPolishing

      public boolean getUseFeasibilityPolishing()
       If true, periodically runs feasibility polishing, which attempts to move
       from latest average iterate to one that is closer to feasibility (i.e., has
       smaller primal and dual residuals) while probably increasing the objective
       gap. This is useful primarily when the feasibility tolerances are fairly
       tight and the objective gap tolerance is somewhat looser. Note that this
       does not change the termination criteria, but rather can help achieve the
       termination criteria more quickly when the objective gap is not as
       important as feasibility.
      
       `use_feasibility_polishing` cannot be used with glop presolve, and requires
       `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`.
       `use_feasibility_polishing` can only be used with linear programs.
      
       Feasibility polishing runs two separate phases, primal feasibility and dual
       feasibility. The primal feasibility phase runs PDHG on the primal
       feasibility problem (obtained by changing the objective vector to all
       zeros), using the average primal iterate and zero dual (which is optimal
       for the primal feasibility problem) as the initial solution. The dual
       feasibility phase runs PDHG on the dual feasibility problem (obtained by
       changing all finite variable and constraint bounds to zero), using the
       average dual iterate and zero primal (which is optimal for the dual
       feasibility problem) as the initial solution. The primal solution from the
       primal feasibility phase and dual solution from the dual feasibility phase
       are then combined (forming a solution of type
       `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the
       termination criteria.
       
      optional bool use_feasibility_polishing = 30 [default = false];
      Specified by:
      getUseFeasibilityPolishing in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The useFeasibilityPolishing.
    • setUseFeasibilityPolishing

      public PrimalDualHybridGradientParams.Builder setUseFeasibilityPolishing(boolean value)
       If true, periodically runs feasibility polishing, which attempts to move
       from latest average iterate to one that is closer to feasibility (i.e., has
       smaller primal and dual residuals) while probably increasing the objective
       gap. This is useful primarily when the feasibility tolerances are fairly
       tight and the objective gap tolerance is somewhat looser. Note that this
       does not change the termination criteria, but rather can help achieve the
       termination criteria more quickly when the objective gap is not as
       important as feasibility.
      
       `use_feasibility_polishing` cannot be used with glop presolve, and requires
       `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`.
       `use_feasibility_polishing` can only be used with linear programs.
      
       Feasibility polishing runs two separate phases, primal feasibility and dual
       feasibility. The primal feasibility phase runs PDHG on the primal
       feasibility problem (obtained by changing the objective vector to all
       zeros), using the average primal iterate and zero dual (which is optimal
       for the primal feasibility problem) as the initial solution. The dual
       feasibility phase runs PDHG on the dual feasibility problem (obtained by
       changing all finite variable and constraint bounds to zero), using the
       average dual iterate and zero primal (which is optimal for the dual
       feasibility problem) as the initial solution. The primal solution from the
       primal feasibility phase and dual solution from the dual feasibility phase
       are then combined (forming a solution of type
       `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the
       termination criteria.
       
      optional bool use_feasibility_polishing = 30 [default = false];
      Parameters:
      value - The useFeasibilityPolishing to set.
      Returns:
      This builder for chaining.
    • clearUseFeasibilityPolishing

      public PrimalDualHybridGradientParams.Builder clearUseFeasibilityPolishing()
       If true, periodically runs feasibility polishing, which attempts to move
       from latest average iterate to one that is closer to feasibility (i.e., has
       smaller primal and dual residuals) while probably increasing the objective
       gap. This is useful primarily when the feasibility tolerances are fairly
       tight and the objective gap tolerance is somewhat looser. Note that this
       does not change the termination criteria, but rather can help achieve the
       termination criteria more quickly when the objective gap is not as
       important as feasibility.
      
       `use_feasibility_polishing` cannot be used with glop presolve, and requires
       `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`.
       `use_feasibility_polishing` can only be used with linear programs.
      
       Feasibility polishing runs two separate phases, primal feasibility and dual
       feasibility. The primal feasibility phase runs PDHG on the primal
       feasibility problem (obtained by changing the objective vector to all
       zeros), using the average primal iterate and zero dual (which is optimal
       for the primal feasibility problem) as the initial solution. The dual
       feasibility phase runs PDHG on the dual feasibility problem (obtained by
       changing all finite variable and constraint bounds to zero), using the
       average dual iterate and zero primal (which is optimal for the dual
       feasibility problem) as the initial solution. The primal solution from the
       primal feasibility phase and dual solution from the dual feasibility phase
       are then combined (forming a solution of type
       `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the
       termination criteria.
       
      optional bool use_feasibility_polishing = 30 [default = false];
      Returns:
      This builder for chaining.
    • hasApplyFeasibilityPolishingAfterLimitsReached

      public boolean hasApplyFeasibilityPolishingAfterLimitsReached()
       If true, feasibility polishing will be applied after the iteration limit,
       kkt limit, or time limit is reached. This can result in a solution that is
       closer to feasibility, at the expense of violating the limit by a moderate
       amount.
       
      optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
      Specified by:
      hasApplyFeasibilityPolishingAfterLimitsReached in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the applyFeasibilityPolishingAfterLimitsReached field is set.
    • getApplyFeasibilityPolishingAfterLimitsReached

      public boolean getApplyFeasibilityPolishingAfterLimitsReached()
       If true, feasibility polishing will be applied after the iteration limit,
       kkt limit, or time limit is reached. This can result in a solution that is
       closer to feasibility, at the expense of violating the limit by a moderate
       amount.
       
      optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
      Specified by:
      getApplyFeasibilityPolishingAfterLimitsReached in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The applyFeasibilityPolishingAfterLimitsReached.
    • setApplyFeasibilityPolishingAfterLimitsReached

      public PrimalDualHybridGradientParams.Builder setApplyFeasibilityPolishingAfterLimitsReached(boolean value)
       If true, feasibility polishing will be applied after the iteration limit,
       kkt limit, or time limit is reached. This can result in a solution that is
       closer to feasibility, at the expense of violating the limit by a moderate
       amount.
       
      optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
      Parameters:
      value - The applyFeasibilityPolishingAfterLimitsReached to set.
      Returns:
      This builder for chaining.
    • clearApplyFeasibilityPolishingAfterLimitsReached

      public PrimalDualHybridGradientParams.Builder clearApplyFeasibilityPolishingAfterLimitsReached()
       If true, feasibility polishing will be applied after the iteration limit,
       kkt limit, or time limit is reached. This can result in a solution that is
       closer to feasibility, at the expense of violating the limit by a moderate
       amount.
       
      optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
      Returns:
      This builder for chaining.
    • hasApplyFeasibilityPolishingIfSolverIsInterrupted

      public boolean hasApplyFeasibilityPolishingIfSolverIsInterrupted()
       If true, feasibility polishing will be applied after the solver is
       interrupted. This can result in a solution that is closer to feasibility,
       at the expense of not stopping as promptly when interrupted.
       
      optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
      Specified by:
      hasApplyFeasibilityPolishingIfSolverIsInterrupted in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      Whether the applyFeasibilityPolishingIfSolverIsInterrupted field is set.
    • getApplyFeasibilityPolishingIfSolverIsInterrupted

      public boolean getApplyFeasibilityPolishingIfSolverIsInterrupted()
       If true, feasibility polishing will be applied after the solver is
       interrupted. This can result in a solution that is closer to feasibility,
       at the expense of not stopping as promptly when interrupted.
       
      optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
      Specified by:
      getApplyFeasibilityPolishingIfSolverIsInterrupted in interface PrimalDualHybridGradientParamsOrBuilder
      Returns:
      The applyFeasibilityPolishingIfSolverIsInterrupted.
    • setApplyFeasibilityPolishingIfSolverIsInterrupted

      public PrimalDualHybridGradientParams.Builder setApplyFeasibilityPolishingIfSolverIsInterrupted(boolean value)
       If true, feasibility polishing will be applied after the solver is
       interrupted. This can result in a solution that is closer to feasibility,
       at the expense of not stopping as promptly when interrupted.
       
      optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
      Parameters:
      value - The applyFeasibilityPolishingIfSolverIsInterrupted to set.
      Returns:
      This builder for chaining.
    • clearApplyFeasibilityPolishingIfSolverIsInterrupted

      public PrimalDualHybridGradientParams.Builder clearApplyFeasibilityPolishingIfSolverIsInterrupted()
       If true, feasibility polishing will be applied after the solver is
       interrupted. This can result in a solution that is closer to feasibility,
       at the expense of not stopping as promptly when interrupted.
       
      optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
      Returns:
      This builder for chaining.