[[["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\u003e\u003ccode\u003ePropagationMonitor\u003c/code\u003e is a class within the OR-Tools Constraint Solver that allows monitoring and interacting with the constraint propagation process.\u003c/p\u003e\n"],["\u003cp\u003eIt provides virtual methods to track events like constraint initial propagation, demon runs, and modifications to integer and interval variables.\u003c/p\u003e\n"],["\u003cp\u003eUsers can extend this class to implement custom monitoring or debugging logic during the solving process, such as printing debug information or collecting statistics.\u003c/p\u003e\n"],["\u003cp\u003eMethods are provided to track the beginning and end of constraint initial propagation, allowing detailed insight into how constraints are processed.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePropagationMonitor\u003c/code\u003e can be installed on the solver to automatically receive notifications during the search for solutions.\u003c/p\u003e\n"]]],["The `PropagationMonitor` class in C++ manages constraint propagation. Key actions include: monitoring constraint and demon lifecycles (`Begin/EndConstraintInitialPropagation`, `Begin/EndDemonRun`, `RegisterDemon`), setting and modifying variable bounds (`SetMin`, `SetMax`, `SetRange` for `IntExpr` and `IntVar`; `SetStart/End/Duration` for `IntervalVar`), removing values (`RemoveValue`, `RemoveValues`, `RemoveInterval`), ranking variables in sequences (`RankFirst`, `RankLast`, etc.), and managing contexts (`PushContext`, `PopContext`). It also handles variable processing starts and ends (`Start/EndProcessingIntegerVariable`).\n"],null,[]]