Removing Nonzero Lower Bounds
We wish to remove all arcs with a non-zero lower bound . If we replace by , then the flow bound constraint becomes . The mass balance constraint of node becomes
and the mass balance constraint of node is
Hence, making this replacement requires decreasing by units and increasing by units. This effects the objective function by a constant, i.e., the minimum is not changed.
We can do this process by sending units of flow along arc and then measure the incremental flow along the arc . We can then find by adding to .
Arc Reversal
Arc reversal can be used to remove arcs with negative costs. We replace the flow with which replaces the arc with an arc whose associated cost is . We first send units of flow along the arc to saturate the arc, we then pull back units of flow from to . Hence we need to flip the arc direction so we can pull back flow. Consider the change to the objective function:
Thus, changing the cost gives the result. Since , we now get a positive cost arc.
Removing Arc Capacities
We want to remove finite arc capacities resulting in uncapacitated arcs. Assume arc has finite capacity . We add a new node so that the capacity constraint along arc becomes the mass balance constraint of the new node, i.e.,
We introduce a slack variable so that the capacity constraint becomes . Note now that the flow variable appears in three mass balance constraints: nodes , and . But only appears in the mass balance constraint for node . We add from the mass balance constraint for node to get
Thus, as a result we now have an arc with flow . The resulting network is given below:
If is the flow along in the original network, then in the transformed network the corresponding flow is and . Since , and both flows are non-negative, we get that , i.e., the original capacity constraint still holds in the transformed network. Hence, we can solve this uncapacitated problem and we still get the correct flow .
Node Splitting
With node splitting we replace a node into two new nodes and corresponding to the node’s output and input, respectively. We then add a new arc with zero cost and infinite capacity. We replace all inarcs with arcs and all outarcs with arcs .
We set the supply/demand for and as follows:
- If , then and
- If , then and
- If , then