Stay organized with collections Save and categorize content based on your preferences.

C++ Reference: class UnaryDimensionChecker

This documentation is automatically generated.

This checker enforces unary dimension requirements. A unary dimension requires that there is some valuation of node_capacity and demand such that for all paths, if arc A -> B is on a path of path_class p, then node_capacity[A] + demand[p][A] = node_capacity[B]. Moreover, all node_capacities of a path must be inside interval path_capacity[path]. Note that Intervals have two meanings:
   - for demand and node_capacity, those are values allowed for each associated decision variable.
   - for path_capacity, those are set of values that node_capacities of the path must respect.
If the path capacity of a path is [kint64min, kint64max], then the unary dimension requirements are not enforced on this path.
Method
Check

Return type: bool

Given the change made in PathState, checks that the unary dimension constraint is still feasible.

Commit

Return type: void

Commits to the changes made in PathState, must be called before PathState::Commit().

UnaryDimensionChecker

Arguments: const PathState* path_state, std::vector<Interval> path_capacity, std::vector<int> path_class, std::vector<std::vector<Interval>> demand, std::vector<Interval> node_capacity