I have a Graph G with some set of sources and sinks. Each edge, source and sink has a maximum capacity of 1. A node divides its inputs evenly among the output edges. (Might not be relevant to the problem at hand but each node also has a maximum of 2 inputs and 2 outputs)
For my optimization model (implemented in GAMS) I would like to ensure that if some set of sources/sinks was deactivated the sinks still receive an equal amount of output, the output for each sink being min(1,|sources|/|sinks|) for the graph.
When a source is deactivated all other sources increase their output equally until there is no more capacity left (possibly when they output 1). Sinks get a reduction in output if |active sources|<|active sinks|
When a sink is deactivated all other sinks get an equal increase in output possibly up to max capacity. If there is no capacity left for the sinks to accept more output the sources reduce their input into the graph equally.
How can I state this condition without enumerating all possible combinations which becomes intractable quickly?