bookmark_borderbookmark
Stay organized with collections
Save and categorize content based on your preferences.
Note: This documentation is automatically generated.
Circuit/sub-circuit constraint.
Nodes that are not in the unique allowed sub-circuit must point to themseves.
A nodes that has no self-arc must thus be inside the sub-circuit. If there is
no self-arc at all, then this constaint forces the circuit to go through all
the nodes. Multi-arcs are NOT supported.
Important: for correctness, this constraint requires that "exactly one"
constraints have been added for all the incoming (resp. outgoing) arcs of
each node. Also, such constraint must propagate before this one.
[[["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."],[[["The `CircuitPropagator` class enforces circuit/sub-circuit constraints within a graph, ensuring nodes not in the allowed sub-circuit point to themselves, and nodes without self-arcs are within the sub-circuit."],["The constraint requires \"exactly one\" constraints for all incoming and outgoing arcs of each node, with those constraints propagating before `CircuitPropagator`."],["`CircuitPropagator` takes a sparse representation of a graph where arcs are active based on the truth of their corresponding literals."],["The class provides methods like `Propagate`, `IncrementalPropagate`, `RegisterWith`, and `SetLevel` for managing and interacting with the circuit constraints."]]],["The `CircuitPropagator` class enforces circuit/sub-circuit constraints in a graph represented sparsely. Nodes outside the allowed sub-circuit must self-loop; absence of a self-loop implies node inclusion. The constraint mandates \"exactly one\" constraints on each node's incoming/outgoing arcs, and these must propagate first. Key methods include: `CircuitPropagator` (constructor taking graph parameters and options), `Propagate` and `IncrementalPropagate` (for constraint enforcement), `RegisterWith` (to interact with a watcher), and `SetLevel` (for setting a propagation level).\n"]]