Class SymmetryProto

  • All Implemented Interfaces:
    SymmetryProtoOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, java.io.Serializable

    public final class SymmetryProto
    extends com.google.protobuf.GeneratedMessageV3
    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
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  SymmetryProto.Builder
      EXPERIMENTAL.
      • Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

        com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,​BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,​BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
      • Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

        com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ORBITOPES_FIELD_NUMBER  
      static int PERMUTATIONS_FIELD_NUMBER  
      • Fields inherited from class com.google.protobuf.GeneratedMessageV3

        alwaysUseFieldBuilders, unknownFields
      • Fields inherited from class com.google.protobuf.AbstractMessage

        memoizedSize
      • Fields inherited from class com.google.protobuf.AbstractMessageLite

        memoizedHashCode
    • Field Detail

      • PERMUTATIONS_FIELD_NUMBER

        public static final int PERMUTATIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected java.lang.Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws java.io.IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        java.io.IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static SymmetryProto parseFrom​(java.nio.ByteBuffer data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(java.nio.ByteBuffer data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(com.google.protobuf.ByteString data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(com.google.protobuf.ByteString data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(byte[] data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(byte[] data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static SymmetryProto parseFrom​(java.io.InputStream input)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static SymmetryProto parseFrom​(java.io.InputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • parseDelimitedFrom

        public static SymmetryProto parseDelimitedFrom​(java.io.InputStream input)
                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • parseDelimitedFrom

        public static SymmetryProto parseDelimitedFrom​(java.io.InputStream input,
                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static SymmetryProto parseFrom​(com.google.protobuf.CodedInputStream input)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • parseFrom

        public static SymmetryProto parseFrom​(com.google.protobuf.CodedInputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • newBuilderForType

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

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

        protected SymmetryProto.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstance

        public static SymmetryProto getDefaultInstance()
      • parser

        public static com.google.protobuf.Parser<SymmetryProto> parser()
      • getParserForType

        public com.google.protobuf.Parser<SymmetryProto> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

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