Class SymmetryProto.Builder

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

public static final class SymmetryProto.Builder extends com.google.protobuf.GeneratedMessage.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 Details

    • getDescriptor

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

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

      public SymmetryProto.Builder mergeFrom(SymmetryProto other)
    • isInitialized

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

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

      public 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(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 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 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 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(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 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 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;