Class CpModelProto.Builder

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

public static final class CpModelProto.Builder extends com.google.protobuf.GeneratedMessage.Builder<CpModelProto.Builder> implements CpModelProtoOrBuilder
 A constraint programming problem.
 
Protobuf type operations_research.sat.CpModelProto
  • 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<CpModelProto.Builder>
    • clear

      public CpModelProto.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<CpModelProto.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<CpModelProto.Builder>
    • getDefaultInstanceForType

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

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

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

      public CpModelProto.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<CpModelProto.Builder>
    • mergeFrom

      public CpModelProto.Builder mergeFrom(CpModelProto other)
    • isInitialized

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

      public CpModelProto.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<CpModelProto.Builder>
      Throws:
      IOException
    • getName

      public String getName()
       For debug/logging only. Can be empty.
       
      string name = 1;
      Specified by:
      getName in interface CpModelProtoOrBuilder
      Returns:
      The name.
    • getNameBytes

      public com.google.protobuf.ByteString getNameBytes()
       For debug/logging only. Can be empty.
       
      string name = 1;
      Specified by:
      getNameBytes in interface CpModelProtoOrBuilder
      Returns:
      The bytes for name.
    • setName

      public CpModelProto.Builder setName(String value)
       For debug/logging only. Can be empty.
       
      string name = 1;
      Parameters:
      value - The name to set.
      Returns:
      This builder for chaining.
    • clearName

      public CpModelProto.Builder clearName()
       For debug/logging only. Can be empty.
       
      string name = 1;
      Returns:
      This builder for chaining.
    • setNameBytes

      public CpModelProto.Builder setNameBytes(com.google.protobuf.ByteString value)
       For debug/logging only. Can be empty.
       
      string name = 1;
      Parameters:
      value - The bytes for name to set.
      Returns:
      This builder for chaining.
    • getVariablesList

      public List<IntegerVariableProto> getVariablesList()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
      Specified by:
      getVariablesList in interface CpModelProtoOrBuilder
    • getVariablesCount

      public int getVariablesCount()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
      Specified by:
      getVariablesCount in interface CpModelProtoOrBuilder
    • getVariables

      public IntegerVariableProto getVariables(int index)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
      Specified by:
      getVariables in interface CpModelProtoOrBuilder
    • setVariables

      public CpModelProto.Builder setVariables(int index, IntegerVariableProto value)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • setVariables

      public CpModelProto.Builder setVariables(int index, IntegerVariableProto.Builder builderForValue)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addVariables

      public CpModelProto.Builder addVariables(IntegerVariableProto value)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addVariables

      public CpModelProto.Builder addVariables(int index, IntegerVariableProto value)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addVariables

      public CpModelProto.Builder addVariables(IntegerVariableProto.Builder builderForValue)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addVariables

      public CpModelProto.Builder addVariables(int index, IntegerVariableProto.Builder builderForValue)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addAllVariables

      public CpModelProto.Builder addAllVariables(Iterable<? extends IntegerVariableProto> values)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • clearVariables

      public CpModelProto.Builder clearVariables()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • removeVariables

      public CpModelProto.Builder removeVariables(int index)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • getVariablesBuilder

      public IntegerVariableProto.Builder getVariablesBuilder(int index)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • getVariablesOrBuilder

      public IntegerVariableProtoOrBuilder getVariablesOrBuilder(int index)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
      Specified by:
      getVariablesOrBuilder in interface CpModelProtoOrBuilder
    • getVariablesOrBuilderList

      public List<? extends IntegerVariableProtoOrBuilder> getVariablesOrBuilderList()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
      Specified by:
      getVariablesOrBuilderList in interface CpModelProtoOrBuilder
    • addVariablesBuilder

      public IntegerVariableProto.Builder addVariablesBuilder()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • addVariablesBuilder

      public IntegerVariableProto.Builder addVariablesBuilder(int index)
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • getVariablesBuilderList

      public List<IntegerVariableProto.Builder> getVariablesBuilderList()
       The associated Protos should be referred by their index in these fields.
       
      repeated .operations_research.sat.IntegerVariableProto variables = 2;
    • getConstraintsList

      public List<ConstraintProto> getConstraintsList()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
      Specified by:
      getConstraintsList in interface CpModelProtoOrBuilder
    • getConstraintsCount

      public int getConstraintsCount()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
      Specified by:
      getConstraintsCount in interface CpModelProtoOrBuilder
    • getConstraints

      public ConstraintProto getConstraints(int index)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
      Specified by:
      getConstraints in interface CpModelProtoOrBuilder
    • setConstraints

      public CpModelProto.Builder setConstraints(int index, ConstraintProto value)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • setConstraints

      public CpModelProto.Builder setConstraints(int index, ConstraintProto.Builder builderForValue)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addConstraints

      public CpModelProto.Builder addConstraints(ConstraintProto value)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addConstraints

      public CpModelProto.Builder addConstraints(int index, ConstraintProto value)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addConstraints

      public CpModelProto.Builder addConstraints(ConstraintProto.Builder builderForValue)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addConstraints

      public CpModelProto.Builder addConstraints(int index, ConstraintProto.Builder builderForValue)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addAllConstraints

      public CpModelProto.Builder addAllConstraints(Iterable<? extends ConstraintProto> values)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • clearConstraints

      public CpModelProto.Builder clearConstraints()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • removeConstraints

      public CpModelProto.Builder removeConstraints(int index)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • getConstraintsBuilder

      public ConstraintProto.Builder getConstraintsBuilder(int index)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • getConstraintsOrBuilder

      public ConstraintProtoOrBuilder getConstraintsOrBuilder(int index)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
      Specified by:
      getConstraintsOrBuilder in interface CpModelProtoOrBuilder
    • getConstraintsOrBuilderList

      public List<? extends ConstraintProtoOrBuilder> getConstraintsOrBuilderList()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
      Specified by:
      getConstraintsOrBuilderList in interface CpModelProtoOrBuilder
    • addConstraintsBuilder

      public ConstraintProto.Builder addConstraintsBuilder()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • addConstraintsBuilder

      public ConstraintProto.Builder addConstraintsBuilder(int index)
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • getConstraintsBuilderList

      public List<ConstraintProto.Builder> getConstraintsBuilderList()
      repeated .operations_research.sat.ConstraintProto constraints = 3;
    • hasObjective

      public boolean hasObjective()
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
      Specified by:
      hasObjective in interface CpModelProtoOrBuilder
      Returns:
      Whether the objective field is set.
    • getObjective

      public CpObjectiveProto getObjective()
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
      Specified by:
      getObjective in interface CpModelProtoOrBuilder
      Returns:
      The objective.
    • setObjective

      public CpModelProto.Builder setObjective(CpObjectiveProto value)
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
    • setObjective

      public CpModelProto.Builder setObjective(CpObjectiveProto.Builder builderForValue)
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
    • mergeObjective

      public CpModelProto.Builder mergeObjective(CpObjectiveProto value)
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
    • clearObjective

      public CpModelProto.Builder clearObjective()
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
    • getObjectiveBuilder

      public CpObjectiveProto.Builder getObjectiveBuilder()
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
    • getObjectiveOrBuilder

      public CpObjectiveProtoOrBuilder getObjectiveOrBuilder()
       The objective to minimize. Can be empty for pure decision problems.
       
      .operations_research.sat.CpObjectiveProto objective = 4;
      Specified by:
      getObjectiveOrBuilder in interface CpModelProtoOrBuilder
    • hasFloatingPointObjective

      public boolean hasFloatingPointObjective()
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
      Specified by:
      hasFloatingPointObjective in interface CpModelProtoOrBuilder
      Returns:
      Whether the floatingPointObjective field is set.
    • getFloatingPointObjective

      public FloatObjectiveProto getFloatingPointObjective()
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
      Specified by:
      getFloatingPointObjective in interface CpModelProtoOrBuilder
      Returns:
      The floatingPointObjective.
    • setFloatingPointObjective

      public CpModelProto.Builder setFloatingPointObjective(FloatObjectiveProto value)
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
    • setFloatingPointObjective

      public CpModelProto.Builder setFloatingPointObjective(FloatObjectiveProto.Builder builderForValue)
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
    • mergeFloatingPointObjective

      public CpModelProto.Builder mergeFloatingPointObjective(FloatObjectiveProto value)
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
    • clearFloatingPointObjective

      public CpModelProto.Builder clearFloatingPointObjective()
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
    • getFloatingPointObjectiveBuilder

      public FloatObjectiveProto.Builder getFloatingPointObjectiveBuilder()
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
    • getFloatingPointObjectiveOrBuilder

      public FloatObjectiveProtoOrBuilder getFloatingPointObjectiveOrBuilder()
       Advanced usage.
       It is invalid to have both an objective and a floating point objective.
      
       The objective of the model, in floating point format. The solver will
       automatically scale this to integer during expansion and thus convert it to
       a normal CpObjectiveProto. See the mip* parameters to control how this is
       scaled. In most situation the precision will be good enough, but you can
       see the logs to see what are the precision guaranteed when this is
       converted to a fixed point representation.
      
       Note that even if the precision is bad, the returned objective_value and
       best_objective_bound will be computed correctly. So at the end of the solve
       you can check the gap if you only want precise optimal.
       
      .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
      Specified by:
      getFloatingPointObjectiveOrBuilder in interface CpModelProtoOrBuilder
    • getSearchStrategyList

      public List<DecisionStrategyProto> getSearchStrategyList()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
      Specified by:
      getSearchStrategyList in interface CpModelProtoOrBuilder
    • getSearchStrategyCount

      public int getSearchStrategyCount()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
      Specified by:
      getSearchStrategyCount in interface CpModelProtoOrBuilder
    • getSearchStrategy

      public DecisionStrategyProto getSearchStrategy(int index)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
      Specified by:
      getSearchStrategy in interface CpModelProtoOrBuilder
    • setSearchStrategy

      public CpModelProto.Builder setSearchStrategy(int index, DecisionStrategyProto value)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • setSearchStrategy

      public CpModelProto.Builder setSearchStrategy(int index, DecisionStrategyProto.Builder builderForValue)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addSearchStrategy

      public CpModelProto.Builder addSearchStrategy(DecisionStrategyProto value)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addSearchStrategy

      public CpModelProto.Builder addSearchStrategy(int index, DecisionStrategyProto value)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addSearchStrategy

      public CpModelProto.Builder addSearchStrategy(DecisionStrategyProto.Builder builderForValue)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addSearchStrategy

      public CpModelProto.Builder addSearchStrategy(int index, DecisionStrategyProto.Builder builderForValue)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addAllSearchStrategy

      public CpModelProto.Builder addAllSearchStrategy(Iterable<? extends DecisionStrategyProto> values)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • clearSearchStrategy

      public CpModelProto.Builder clearSearchStrategy()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • removeSearchStrategy

      public CpModelProto.Builder removeSearchStrategy(int index)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • getSearchStrategyBuilder

      public DecisionStrategyProto.Builder getSearchStrategyBuilder(int index)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • getSearchStrategyOrBuilder

      public DecisionStrategyProtoOrBuilder getSearchStrategyOrBuilder(int index)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
      Specified by:
      getSearchStrategyOrBuilder in interface CpModelProtoOrBuilder
    • getSearchStrategyOrBuilderList

      public List<? extends DecisionStrategyProtoOrBuilder> getSearchStrategyOrBuilderList()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
      Specified by:
      getSearchStrategyOrBuilderList in interface CpModelProtoOrBuilder
    • addSearchStrategyBuilder

      public DecisionStrategyProto.Builder addSearchStrategyBuilder()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • addSearchStrategyBuilder

      public DecisionStrategyProto.Builder addSearchStrategyBuilder(int index)
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • getSearchStrategyBuilderList

      public List<DecisionStrategyProto.Builder> getSearchStrategyBuilderList()
       Defines the strategy that the solver should follow when the
       search_branching parameter is set to FIXED_SEARCH. Note that this strategy
       is also used as a heuristic when we are not in fixed search.
      
       Advanced Usage: if not all variables appears and the parameter
       "instantiate_all_variables" is set to false, then the solver will not try
       to instantiate the variables that do not appear. Thus, at the end of the
       search, not all variables may be fixed. Currently, we will set them to
       their lower bound in the solution.
       
      repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
    • hasSolutionHint

      public boolean hasSolutionHint()
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
      Specified by:
      hasSolutionHint in interface CpModelProtoOrBuilder
      Returns:
      Whether the solutionHint field is set.
    • getSolutionHint

      public PartialVariableAssignment getSolutionHint()
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
      Specified by:
      getSolutionHint in interface CpModelProtoOrBuilder
      Returns:
      The solutionHint.
    • setSolutionHint

      public CpModelProto.Builder setSolutionHint(PartialVariableAssignment value)
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
    • setSolutionHint

      public CpModelProto.Builder setSolutionHint(PartialVariableAssignment.Builder builderForValue)
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
    • mergeSolutionHint

      public CpModelProto.Builder mergeSolutionHint(PartialVariableAssignment value)
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
    • clearSolutionHint

      public CpModelProto.Builder clearSolutionHint()
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
    • getSolutionHintBuilder

      public PartialVariableAssignment.Builder getSolutionHintBuilder()
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
    • getSolutionHintOrBuilder

      public PartialVariableAssignmentOrBuilder getSolutionHintOrBuilder()
       Solution hint.
      
       If a feasible or almost-feasible solution to the problem is already known,
       it may be helpful to pass it to the solver so that it can be used. The
       solver will try to use this information to create its initial feasible
       solution.
      
       Note that it may not always be faster to give a hint like this to the
       solver. There is also no guarantee that the solver will use this hint or
       try to return a solution "close" to this assignment in case of multiple
       optimal solutions.
       
      .operations_research.sat.PartialVariableAssignment solution_hint = 6;
      Specified by:
      getSolutionHintOrBuilder in interface CpModelProtoOrBuilder
    • getAssumptionsList

      public List<Integer> getAssumptionsList()
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Specified by:
      getAssumptionsList in interface CpModelProtoOrBuilder
      Returns:
      A list containing the assumptions.
    • getAssumptionsCount

      public int getAssumptionsCount()
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Specified by:
      getAssumptionsCount in interface CpModelProtoOrBuilder
      Returns:
      The count of assumptions.
    • getAssumptions

      public int getAssumptions(int index)
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Specified by:
      getAssumptions in interface CpModelProtoOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The assumptions at the given index.
    • setAssumptions

      public CpModelProto.Builder setAssumptions(int index, int value)
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Parameters:
      index - The index to set the value at.
      value - The assumptions to set.
      Returns:
      This builder for chaining.
    • addAssumptions

      public CpModelProto.Builder addAssumptions(int value)
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Parameters:
      value - The assumptions to add.
      Returns:
      This builder for chaining.
    • addAllAssumptions

      public CpModelProto.Builder addAllAssumptions(Iterable<? extends Integer> values)
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Parameters:
      values - The assumptions to add.
      Returns:
      This builder for chaining.
    • clearAssumptions

      public CpModelProto.Builder clearAssumptions()
       A list of literals. The model will be solved assuming all these literals
       are true. Compared to just fixing the domain of these literals, using this
       mechanism is slower but allows in case the model is INFEASIBLE to get a
       potentially small subset of them that can be used to explain the
       infeasibility.
      
       Think (IIS), except when you are only concerned by the provided
       assumptions. This is powerful as it allows to group a set of logically
       related constraint under only one enforcement literal which can potentially
       give you a good and interpretable explanation for infeasiblity.
      
       Such infeasibility explanation will be available in the
       sufficient_assumptions_for_infeasibility response field.
       
      repeated int32 assumptions = 7;
      Returns:
      This builder for chaining.
    • hasSymmetry

      public boolean hasSymmetry()
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
      Specified by:
      hasSymmetry in interface CpModelProtoOrBuilder
      Returns:
      Whether the symmetry field is set.
    • getSymmetry

      public SymmetryProto getSymmetry()
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
      Specified by:
      getSymmetry in interface CpModelProtoOrBuilder
      Returns:
      The symmetry.
    • setSymmetry

      public CpModelProto.Builder setSymmetry(SymmetryProto value)
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
    • setSymmetry

      public CpModelProto.Builder setSymmetry(SymmetryProto.Builder builderForValue)
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
    • mergeSymmetry

      public CpModelProto.Builder mergeSymmetry(SymmetryProto value)
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
    • clearSymmetry

      public CpModelProto.Builder clearSymmetry()
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
    • getSymmetryBuilder

      public SymmetryProto.Builder getSymmetryBuilder()
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
    • getSymmetryOrBuilder

      public SymmetryProtoOrBuilder getSymmetryOrBuilder()
       For now, this is not meant to be filled by a client writing a model, but
       by our preprocessing step.
      
       Information about the symmetries of the feasible solution space.
       These usually leaves the objective invariant.
       
      .operations_research.sat.SymmetryProto symmetry = 8;
      Specified by:
      getSymmetryOrBuilder in interface CpModelProtoOrBuilder