[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["\u003cp\u003eThe C++ \u003ccode\u003ecp_model_symmetries\u003c/code\u003e library provides functionalities for detecting and handling symmetries in constraint programming models.\u003c/p\u003e\n"],["\u003cp\u003eIt offers functions to identify symmetries within a \u003ccode\u003eCpModelProto\u003c/code\u003e and add them to the problem definition using \u003ccode\u003eDetectAndAddSymmetryToProto\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eSymmetries can also be exploited during presolve to simplify the model with \u003ccode\u003eDetectAndExploitSymmetriesInPresolve\u003c/code\u003e, potentially improving solver performance.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFindCpModelSymmetries\u003c/code\u003e can be used to explicitly find and return symmetry generators for a given \u003ccode\u003eCpModelProto\u003c/code\u003e.\u003c/p\u003e\n"]]],["The `cp_model_symmetries` documentation outlines three core functions: `DetectAndAddSymmetryToProto` adds detected symmetries to a `CpModelProto`. `DetectAndExploitSymmetriesInPresolve` checks for and exploits symmetries during presolving. `FindCpModelSymmetries` identifies symmetries within a `CpModelProto` problem, storing them as `SparsePermutation` generators. These functions take parameters, model protocol buffers, logger and context for analysis. The functions are automatically generated.\n"],null,["# cp_model_symmetries\n\nC++ Reference: cp_model_symmetries\n==================================\n\n\nNote: This documentation is automatically generated.\n\n| Function | Type | Arguments | Comments |\n|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|----------|\n| [`DetectAndAddSymmetryToProto`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_symmetries.h#L51) | Return type: `void ` Arguments: `const SatParameters& params, CpModelProto* proto, SolverLogger* logger` \u003cbr /\u003e |\n| [`DetectAndExploitSymmetriesInPresolve`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_symmetries.h#L58) | Return type: `bool ` Arguments: `PresolveContext* context` \u003cbr /\u003e |\n| [`FindCpModelSymmetries`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_symmetries.h#L45) | Return type: `void ` Arguments: ` const SatParameters& params, const CpModelProto& problem, std::vector\u003cstd::unique_ptr\u003cSparsePermutation\u003e\u003e* generators, double deterministic_limit, SolverLogger* logger` \u003cbr /\u003e |"]]