Class CpModelProto.Builder

  • All Implemented Interfaces:
    CpModelProtoOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, java.lang.Cloneable
    Enclosing class:
    CpModelProto

    public static final class CpModelProto.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
    implements CpModelProtoOrBuilder
     A constraint programming problem.
     
    Protobuf type operations_research.sat.CpModelProto
    • Method Detail

      • getDescriptor

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

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.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.GeneratedMessageV3.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.GeneratedMessageV3.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
      • clone

        public CpModelProto.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • setField

        public CpModelProto.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                             java.lang.Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • clearField

        public CpModelProto.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • clearOneof

        public CpModelProto.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • setRepeatedField

        public CpModelProto.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                     int index,
                                                     java.lang.Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • addRepeatedField

        public CpModelProto.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                     java.lang.Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.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>
      • isInitialized

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

        public CpModelProto.Builder mergeFrom​(com.google.protobuf.CodedInputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws java.io.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:
        java.io.IOException
      • getName

        public java.lang.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​(java.lang.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 java.util.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​(java.lang.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;
      • 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 java.util.List<IntegerVariableProto.Builder> getVariablesBuilderList()
         The associated Protos should be referred by their index in these fields.
         
        repeated .operations_research.sat.IntegerVariableProto variables = 2;
      • addAllConstraints

        public CpModelProto.Builder addAllConstraints​(java.lang.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;
      • 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 java.util.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;
      • 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 java.util.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​(java.lang.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 java.util.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 java.util.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 java.util.List<java.lang.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​(java.lang.Iterable<? extends java.lang.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
      • setUnknownFields

        public final CpModelProto.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>
      • mergeUnknownFields

        public final CpModelProto.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<CpModelProto.Builder>