Google OR-Tools v9.9
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
Google.OrTools.Sat.SymmetryProto Class Referencesealed

EXPERIMENTAL. For now, this is meant to be used by the solver and not filled by clients. More...

Inheritance diagram for Google.OrTools.Sat.SymmetryProto:

Public Member Functions

 SymmetryProto ()
 
 SymmetryProto (SymmetryProto other)
 
SymmetryProto Clone ()
 
override bool Equals (object other)
 
bool Equals (SymmetryProto other)
 
override int GetHashCode ()
 
override string ToString ()
 
void WriteTo (pb::CodedOutputStream output)
 
int CalculateSize ()
 
void MergeFrom (SymmetryProto other)
 
void MergeFrom (pb::CodedInputStream input)
 

Static Public Attributes

const int PermutationsFieldNumber = 1
 Field number for the "permutations" field.
 
const int OrbitopesFieldNumber = 2
 Field number for the "orbitopes" field.
 

Properties

static pb::MessageParser< SymmetryProtoParser [get]
 
static pbr::MessageDescriptor Descriptor [get]
 
pbc::RepeatedField< global::Google.OrTools.Sat.SparsePermutationProto > Permutations [get]
 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.
 
pbc::RepeatedField< global::Google.OrTools.Sat.DenseMatrixProto > Orbitopes [get]
 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.
 

Detailed Description

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.

Definition at line 8234 of file CpModel.pb.cs.

Constructor & Destructor Documentation

◆ SymmetryProto() [1/2]

Google.OrTools.Sat.SymmetryProto.SymmetryProto ( )
inline

Definition at line 8259 of file CpModel.pb.cs.

◆ SymmetryProto() [2/2]

Google.OrTools.Sat.SymmetryProto.SymmetryProto ( SymmetryProto other)
inline

Definition at line 8267 of file CpModel.pb.cs.

Member Function Documentation

◆ CalculateSize()

int Google.OrTools.Sat.SymmetryProto.CalculateSize ( )
inline

Definition at line 8384 of file CpModel.pb.cs.

◆ Clone()

SymmetryProto Google.OrTools.Sat.SymmetryProto.Clone ( )
inline

Definition at line 8275 of file CpModel.pb.cs.

◆ Equals() [1/2]

override bool Google.OrTools.Sat.SymmetryProto.Equals ( object other)
inline

Definition at line 8320 of file CpModel.pb.cs.

◆ Equals() [2/2]

bool Google.OrTools.Sat.SymmetryProto.Equals ( SymmetryProto other)
inline

Definition at line 8326 of file CpModel.pb.cs.

◆ GetHashCode()

override int Google.OrTools.Sat.SymmetryProto.GetHashCode ( )
inline

Definition at line 8340 of file CpModel.pb.cs.

◆ MergeFrom() [1/2]

void Google.OrTools.Sat.SymmetryProto.MergeFrom ( pb::CodedInputStream input)
inline

Definition at line 8407 of file CpModel.pb.cs.

◆ MergeFrom() [2/2]

void Google.OrTools.Sat.SymmetryProto.MergeFrom ( SymmetryProto other)
inline

Definition at line 8396 of file CpModel.pb.cs.

◆ ToString()

override string Google.OrTools.Sat.SymmetryProto.ToString ( )
inline

Definition at line 8352 of file CpModel.pb.cs.

◆ WriteTo()

void Google.OrTools.Sat.SymmetryProto.WriteTo ( pb::CodedOutputStream output)
inline

Definition at line 8358 of file CpModel.pb.cs.

Member Data Documentation

◆ OrbitopesFieldNumber

const int Google.OrTools.Sat.SymmetryProto.OrbitopesFieldNumber = 2
static

Field number for the "orbitopes" field.

Definition at line 8296 of file CpModel.pb.cs.

◆ PermutationsFieldNumber

const int Google.OrTools.Sat.SymmetryProto.PermutationsFieldNumber = 1
static

Field number for the "permutations" field.

Definition at line 8280 of file CpModel.pb.cs.

Property Documentation

◆ Descriptor

pbr.MessageDescriptor Google.OrTools.Sat.SymmetryProto.Descriptor
staticget

Definition at line 8247 of file CpModel.pb.cs.

◆ Orbitopes

pbc.RepeatedField<global.Google.OrTools.Sat.DenseMatrixProto> Google.OrTools.Sat.SymmetryProto.Orbitopes
get

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.

Definition at line 8314 of file CpModel.pb.cs.

◆ Parser

pb.MessageParser<SymmetryProto> Google.OrTools.Sat.SymmetryProto.Parser
staticget

Definition at line 8243 of file CpModel.pb.cs.

◆ Permutations

pbc.RepeatedField<global.Google.OrTools.Sat.SparsePermutationProto> Google.OrTools.Sat.SymmetryProto.Permutations
get

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.

Definition at line 8291 of file CpModel.pb.cs.


The documentation for this class was generated from the following file: