git-subtree-dir: software/mza git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
16 lines
564 B
MiniZinc
16 lines
564 B
MiniZinc
predicate fzn_network_flow_reif(array[int,1..2] of int: arc,
|
|
array[int] of int: balance,
|
|
array[int] of var int: flow,
|
|
var bool: b) =
|
|
|
|
let { int: source_node = 1;
|
|
int: sink_node = 2;
|
|
set of int: ARCS = index_set_1of2(arc);
|
|
set of int: NODES = index_set(balance);
|
|
} in
|
|
b <-> forall (i in NODES) (
|
|
sum (j in ARCS where i == arc[j,source_node]) (flow[j]) -
|
|
sum (j in ARCS where i == arc[j,sink_node]) (flow[j])
|
|
= balance[i]
|
|
);
|