C++ Reference: class CircuitCoveringPropagator

Note: This documentation is automatically generated.

This constraint ensures that the graph is a covering of all nodes by circuits and loops, such that all circuits contain exactly one distinguished node. Those distinguished nodes are meant to be depots.

This constraint does not need ExactlyOnePerRowAndPerColumn() to be correct, but it does not propagate degree deductions (only fails if a node has more than one outgoing arc or more than one incoming arc), so that adding ExactlyOnePerRowAndPerColumn() should work better.

TODO(user): Make distinguished nodes an array of Boolean variables, so this can be used for facility location problems.

Arguments: std::vector<std::vector<Literal>> graph, const std::vector<int>& distinguished_nodes, Model* model


Return type: bool

Arguments: const std::vector<int>& watch_indices


Return type: bool


Return type: void

Arguments: GenericLiteralWatcher* watcher


Return type: void

Arguments: int level