Class SymmetryProto.Builder

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

    public static final class SymmetryProto.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<SymmetryProto.Builder>
    implements SymmetryProtoOrBuilder
     EXPERIMENTAL. For now, this is meant to be used by the solver and not filled
     by clients.
    
     Hold symmetry information about the set of feasible solutions. If we permute
     the variable values of any feasible solution using one of the permutation
     described here, we should always get another feasible solution.
    
     We usually also enforce that the objective of the new solution is the same.
    
     The group of permutations encoded here is usually computed from the encoding
     of the model, so it is not meant to be a complete representation of the
     feasible solution symmetries, just a valid subgroup.
     
    Protobuf type operations_research.sat.SymmetryProto
    • 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<SymmetryProto.Builder>
      • clear

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

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

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

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

        public SymmetryProto.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<SymmetryProto.Builder>
      • setField

        public SymmetryProto.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<SymmetryProto.Builder>
      • clearField

        public SymmetryProto.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<SymmetryProto.Builder>
      • clearOneof

        public SymmetryProto.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<SymmetryProto.Builder>
      • setRepeatedField

        public SymmetryProto.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<SymmetryProto.Builder>
      • addRepeatedField

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

        public SymmetryProto.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<SymmetryProto.Builder>
      • isInitialized

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

        public SymmetryProto.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<SymmetryProto.Builder>
        Throws:
        java.io.IOException
      • getPermutationsList

        public java.util.List<SparsePermutationProto> getPermutationsList()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
        Specified by:
        getPermutationsList in interface SymmetryProtoOrBuilder
      • getPermutationsCount

        public int getPermutationsCount()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
        Specified by:
        getPermutationsCount in interface SymmetryProtoOrBuilder
      • getPermutations

        public SparsePermutationProto getPermutations​(int index)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
        Specified by:
        getPermutations in interface SymmetryProtoOrBuilder
      • setPermutations

        public SymmetryProto.Builder setPermutations​(int index,
                                                     SparsePermutationProto value)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • setPermutations

        public SymmetryProto.Builder setPermutations​(int index,
                                                     SparsePermutationProto.Builder builderForValue)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addPermutations

        public SymmetryProto.Builder addPermutations​(SparsePermutationProto value)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addPermutations

        public SymmetryProto.Builder addPermutations​(int index,
                                                     SparsePermutationProto value)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addPermutations

        public SymmetryProto.Builder addPermutations​(SparsePermutationProto.Builder builderForValue)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addPermutations

        public SymmetryProto.Builder addPermutations​(int index,
                                                     SparsePermutationProto.Builder builderForValue)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addAllPermutations

        public SymmetryProto.Builder addAllPermutations​(java.lang.Iterable<? extends SparsePermutationProto> values)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • clearPermutations

        public SymmetryProto.Builder clearPermutations()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • removePermutations

        public SymmetryProto.Builder removePermutations​(int index)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • getPermutationsBuilder

        public SparsePermutationProto.Builder getPermutationsBuilder​(int index)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • getPermutationsOrBuilder

        public SparsePermutationProtoOrBuilder getPermutationsOrBuilder​(int index)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
        Specified by:
        getPermutationsOrBuilder in interface SymmetryProtoOrBuilder
      • getPermutationsOrBuilderList

        public java.util.List<? extends SparsePermutationProtoOrBuilder> getPermutationsOrBuilderList()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
        Specified by:
        getPermutationsOrBuilderList in interface SymmetryProtoOrBuilder
      • addPermutationsBuilder

        public SparsePermutationProto.Builder addPermutationsBuilder()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • addPermutationsBuilder

        public SparsePermutationProto.Builder addPermutationsBuilder​(int index)
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • getPermutationsBuilderList

        public java.util.List<SparsePermutationProto.Builder> getPermutationsBuilderList()
         A list of variable indices permutations that leave the feasible space of
         solution invariant. Usually, we only encode a set of generators of the
         group.
         
        repeated .operations_research.sat.SparsePermutationProto permutations = 1;
      • getOrbitopesList

        public java.util.List<DenseMatrixProto> getOrbitopesList()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
        Specified by:
        getOrbitopesList in interface SymmetryProtoOrBuilder
      • getOrbitopesCount

        public int getOrbitopesCount()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
        Specified by:
        getOrbitopesCount in interface SymmetryProtoOrBuilder
      • getOrbitopes

        public DenseMatrixProto getOrbitopes​(int index)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
        Specified by:
        getOrbitopes in interface SymmetryProtoOrBuilder
      • setOrbitopes

        public SymmetryProto.Builder setOrbitopes​(int index,
                                                  DenseMatrixProto value)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • setOrbitopes

        public SymmetryProto.Builder setOrbitopes​(int index,
                                                  DenseMatrixProto.Builder builderForValue)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addOrbitopes

        public SymmetryProto.Builder addOrbitopes​(DenseMatrixProto value)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addOrbitopes

        public SymmetryProto.Builder addOrbitopes​(int index,
                                                  DenseMatrixProto value)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addOrbitopes

        public SymmetryProto.Builder addOrbitopes​(DenseMatrixProto.Builder builderForValue)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addOrbitopes

        public SymmetryProto.Builder addOrbitopes​(int index,
                                                  DenseMatrixProto.Builder builderForValue)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addAllOrbitopes

        public SymmetryProto.Builder addAllOrbitopes​(java.lang.Iterable<? extends DenseMatrixProto> values)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • clearOrbitopes

        public SymmetryProto.Builder clearOrbitopes()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • removeOrbitopes

        public SymmetryProto.Builder removeOrbitopes​(int index)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • getOrbitopesBuilder

        public DenseMatrixProto.Builder getOrbitopesBuilder​(int index)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • getOrbitopesOrBuilder

        public DenseMatrixProtoOrBuilder getOrbitopesOrBuilder​(int index)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
        Specified by:
        getOrbitopesOrBuilder in interface SymmetryProtoOrBuilder
      • getOrbitopesOrBuilderList

        public java.util.List<? extends DenseMatrixProtoOrBuilder> getOrbitopesOrBuilderList()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
        Specified by:
        getOrbitopesOrBuilderList in interface SymmetryProtoOrBuilder
      • addOrbitopesBuilder

        public DenseMatrixProto.Builder addOrbitopesBuilder()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • addOrbitopesBuilder

        public DenseMatrixProto.Builder addOrbitopesBuilder​(int index)
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • getOrbitopesBuilderList

        public java.util.List<DenseMatrixProto.Builder> getOrbitopesBuilderList()
         An orbitope is a special symmetry structure of the solution space. If the
         variable indices are arranged in a matrix (with no duplicates), then any
         permutation of the columns will be a valid permutation of the feasible
         space.
        
         This arise quite often. The typical example is a graph coloring problem
         where for each node i, you have j booleans to indicate its color. If the
         variables color_of_i_is_j are arranged in a matrix[i][j], then any columns
         permutations leave the problem invariant.
         
        repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
      • setUnknownFields

        public final SymmetryProto.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<SymmetryProto.Builder>
      • mergeUnknownFields

        public final SymmetryProto.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<SymmetryProto.Builder>