Suppose that, in addition to edge capacities, a flow network has vertex capacities. That is each vertex has a limit l./ on how much flow can pass though . Show how to transform a flow network G D .V; E/ with vertex capacities into an equivalent flow network G0 D .V 0 ; E0 / without vertex capacities, such that a maximum flow in G0 has the same value as a maximum flow in G. How many vertices and edges does G0 have?

Answer :

Answer:

See explanation and answer below.

Step-by-step explanation:

The tranformation

For this case we need to construct G' dividing making a division for each vertex v of G into 3 edges that on this case are [tex] v_1, v_2 and l(v)[/tex].

We assume that the edges from the begin are the incoming edges of [tex] v_1[/tex] and all the outgoing edges from v are outgoing edges from [tex]v_2[/tex]

We need to construct [tex] G' = (V', E')[/tex] with capacity function a' and we need to satisfy the follwoing:

For every [tex] v \in V[/tex] we create 2 vertices [tex] v_1, v_2 \in V'[/tex]

Now we can add a new edge asscoiated to [tex] v_1, v_2 \in E' [/tex] with the condition [tex] a' (v_1,v_2) = l(v)[/tex]

Now for each edges [tex] (u,v)\in E[/tex] we can create the following edge [tex]( u_r, v_1) \in E'[/tex] and the capacity is given by: [tex] a' (u_r, v_1) = a (u,v)[/tex]

And for this case we can see this:

[tex] |V'| = 2|V|, |E'|= |E| +|V|[/tex]

Now we assume that x is the flow who belongs to G respect vertex capabilities. We can create a flow function x' who belongs to G' with the following steps:

For every edge [tex](u,v) \in G[/tex] we can assume that [tex]x' (u_r ,v_1) = x(u,v)[/tex]

Then for each vertex [tex] u \in V -t[/tex] and we can define [tex] x\(u_1,u_r) = \sum_{v \in V} x(u,v)[/tex] and [tex] x' (t_1,t_2) = \sum_{v \in V} x(v,t)[/tex]

And after see that the capacity constraint on this case would be satisfied since for every edge in G' on the form [tex] (u_r, u_1)[/tex] we have a corresponding edge in G because:

[tex] u \in V -(s,t) [/tex] we have that:

[tex] x' (u_1, u_r) = \sum_{v \in V} x(u,v) \leq l(u) = a' (u_1, u_r)[/tex]

[tex] x' (t_1,t_2) = \sum_{v \in V} x(v,t) \leq (t) = a' (t_1,t_2)[/tex]

And with this we have the maximization problem solved.  

We assume that we have K vertices using the max scale algorithm.

Other Questions