0
$\begingroup$

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?

  • 0
    How should the effect of a deactivated source/sink propagate through the network? Have you tried delayed constraint generation?2017-01-19
  • 0
    A deactivated source should cause all sinks to receive an equal reduction in output. A deactivated sink should cause the remaining sinks to receive a flow increase if they aren't full and then reduce the input from the sources2017-01-19

0 Answers 0