[[["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,[]]