490 likes | 494 Views
This seminar discusses the paper on the single-source unsplittable flow problem by Maurizio Patrignani. It covers the models, relationships with other models, and the algorithm architecture. Key topics include feasibility, minimum congestion, maximum routable demands, and minimum number of rounds.
E N D
Maurizio Patrignani seminar on the paper on the single-source unsplittable flow problem authored by Yefim Dinitz Naveen Garg Michel X. Goemans FOCS ‘98
4.1 1.0 8.5 1.5 3.2 2.6 1.7 2.6 3.4 2.9 1.6 2.1 2.3 2.2 the model – capacitated graph • directed graph G(V,E) • capacity on edges c : E R+
0.9 t t t t t t 1.2 6 1 2 5 4 3 3.1 s 4.1 1.0 8.5 1.5 3.2 2.6 3.1 1.7 2.6 3.4 1.5 2.9 1.6 2.1 2.1 2.3 2.2 the model – source and terminals • a single source s and k terminals ti with demands di R+ • a vertex may contain an arbitrary number of terminals
0.9 t t t t t t 1.2 1 2 3 6 5 4 3.1 s 4.1 1.0 8.5 1.5 3.2 2.6 3.1 1.7 2.6 3.4 1.5 2.9 1.6 2.1 2.1 2.3 2.2 the model – unsplittable, fractional flows • each commodity flows along a single path from s to ti(unsplittable) • the flow on each edge is a real number (fractional) f : E R+ 0
s s the model – relationships with other models • if flows were allowed to split • a (splittable) single source multicommodity flow can be obtained from a single source network flow • consider a flow of the simple network flow problem and iterate: • find a maximal route (blue) from s to ti on the flow network (red) • add such route to the splittable flow of ti • update flow and demand di 2.0 3.0 1.0 1.0 1.0 3.0 7.0 2.0 2.0 4.5 0.5 1.0 3.0 0.5 6.0 3.5 0.5 0.5
s 4.1 1.0 8.5 1.5 3.2 2.6 1.7 2.6 3.4 2.9 1.6 2.1 2.3 2.2 simple network flow is an easy problem simple network flow problem (and, hence, splittable single source multicommodity flow problem) admits a solution for any vertex set S (sS) the total demand of terminals in S is at most the total capacity of the edges entering S 1.2 0.9 3.1 1.5 2.1 cut condition
four possible questions feasibility: can one route all commodities unsplittably? minimum congestion: find the smallest 1, such that the problem is feasible if all capacities are multiplied by ? maximum routable demands: max(iT di) over all subsets T of demands D minimum number of rounds: if we partition the demands into rounds, how many rounds are needed in order to have all feasible rounds?
2C 1.2 2.1 0.9 s C 3.1 1.5 3.1 C C feasibility is NP-hard reduction from partition the obtained instance is feasible the partition instance admits a solution
2C 1.2 2.1 0.9 s C 3.1 1.5 3.1 1 1 minimum congestion is NP-hard reduction from partition the minimum congestion =C the partition instance admits a solution
2C 1.2 2.1 0.9 C s C 3.1 1.5 3.1 minimum number of rounds is NP-hard reduction from partition 2 rounds are needed to unsplittably route all demands the partition instance admits a solution
2C 1.2 2.1 0.9 C s C 3.1 1.5 3.1 maximum routable demand is NP-hard reduction from partition C demands can be unsplittably satisfied the partition instance admits a solution
example of application scheduling on a parallel machine jobs machines p1 T p2 T p3 T p4 p5 T pn
notations and assumptions • notations: • dmax = maximum demand • cmin = minimum capacity • assumptions: • flow is acyclic (thus, graph G is acyclic) • cmin dmax, that is, any commodity can be routed on any edge
results of the paper • if the cut condition is verified: • all demands can be unsplittably routed violating the capacities by at most the maximum demand dmax • since cmin dmax then congestion is at most two (best possible) • all demands can be unsplittably routed in at most 5 rounds • 22.6% of demands can be routed unsplittably we will focus on result 1.
start from a single-source, splittable, fractional flow satisfying all demands transform it into an unsplittable flow that, in the worst case, violates capacities of dmax basic idea of the paper
d d d f1 f2 preliminary (simplification) phase if fd f-d f • remove each edge e with f(e)=0 • remove each ti that is on the same vertex as s • remove each vertex that has no incident edge stop when all terminals are regular a terminal is regular ifi < d
algorithm architecture preliminary simplification search for alternating cycle augment flow move terminals s is the only vertex? no yes end
d1 d2 invariant condition rather than asking for all regular terminals, a relaxed invariant condition will be pursued f2 f1 invariant condition: each vertex v containing terminals has at least a regular terminal (it follows that v has at least two incoming edges)
search for alternating cycle arbitrarily chosen vertex forward path go forward as long as possible (but the grafo is acyclic!) arbitrarily chosen outgoing edge no outgoing edges backward path go backward till you find vertices with only one outgoing edge arbitrarily chosen incoming edge as soon as it is possible start a new forward path
search for alternating cycle stop when you reach an already visited vertex surely a terminal here surely a terminal here • it may happen that • a forward path intersects a forward path (represented in the figure above) • a forward path intersects a backward path • a backward path intersects a forward path
augment flow decrease the flow on forward paths and increase on backward paths of the same quantity the balance of each vertex is granted
augment flow augment/decrement flow until one of these two conditions holds: condition one a forward edge disappears condition two a non-movable terminal becomes movable
singular edges an edge e = (u,v) is called singular if the directed subgraph reachable from e is a path singular edges the edges of a backward path are all singular once an edge becomes singular it stays singular until it is removed
move terminals move terminal t along edge e if: 1) e is singular and f(e) = d singular edges 2) e is not singular and f(e) d non singular edge with a preference for (1) in other words: 1) you move preferentially through singular edges, only if the flow is matched (and the singular edge is then removed) 2) you move on non-singular edges if no other move can be done
4 u 2 8 7 6 s w 3 2 v example consider this instance all terminals are regular
4 u 2 8 7 6 s w 3 2 v example search for an alternating cycle
4 7 example augment/decrease flow u -2 -2 2 8 6 s w 3 2 +2 +2 v
4 7 example augment/decrease flow u 2 8 0 6 6 s w 4 3 2 5 v
4 7 example move terminals u 6 6 s w 5 4 v
4 7 example move terminals u • it is not possible to move terminal 4 to s since (s,v) is singular and f(s,v)>4 • it is not possible to move terminal 4 to u since (u,v) is singular and f(u,v)>4 6 6 s 5 v end of the first iteration
4 7 example search for an alternating cycle (iteration 2) u 6 6 s 5 v
4 7 example augment/decrease flow (iteration 2) u -2 6 6 -2 s 5 +2 v
4 7 example augment/decrease flow (iteration 2) u 6 4 6 4 s 5 7 v
4 7 example move terminals (iteration 2) u • it is not possible to move terminal 4 to s since (s,v) is singular and f(s,v) > 4 4 4 s 7 v
4 7 example move terminals (iteration 2) u done 4 4 s v
4 7 example move terminals (iteration 2) u done 4 s
4 7 example move terminals (iteration 2) done s
4 7 example final solution of the unsplittable flow problem u 2 8 6 s w 3 2 4 7 v
main result the algorithm finds an unsplittable flow such that the total flow on each edge e violates its capacity (actually, violates the initial flow on e) of a quantity that is less than the maximum demand • before edge e becomes singular • the value of all terminals moved through e is at most the initial flow f(e) • after edge e becomes singular • at most one terminal may be moved through e (and this deletes e) corollary the sum of the flows of all commodities, with the exception of at most one, on edge e is less than the initial flow f(e)
M-M/q M-M/q M-M/q M-M/q s M tightness consider this example M M M M M M M M • an unsplittable flow necessarily violates the capacity of M-M/q on some edge • growing q, M/q goes to zero and the unsplittable flow violates the capacity of M, the maximum demand
running time m = |E| n = |V| k = no. terminals preliminary simplification O(km) search for alternating cycle O(n) augment flow O(k) move terminals O(km) total O(m) times (removes at least one edge) s is the only vertex? no yes end O(nm + km)
correctness lemma 3.1: whenever an edge becomes singular, it remains so until it is removed from the graph • lemma3.2: if, at the beginning of an iteration, v contains an irregular terminal, then • the out-degree of v is zero • v contains no other irregular terminal • v contains another (regular) terminal lemma 3.3: at the beginning of any iteration, the in-degree of any vertex containing one or more terminals is at least 2 lemma 3.4: as long as all terminals have not reached the source, the algorithm always finds an alternating cycle
v e’ e u lemma 3.1 lemma 3.1: whenever an edge becomes singular, it remains so until it is removed from the graph • when e becomes singular, the statement obviously true • no edge is added during the process (edges are removed only) • by removing an edge the property can not be violated
18 7 lemma 3.2 • lemma3.2: if, at the beginning of an iteration, v contains an irregular terminal tj, then • the out-degree of v is zero • v contains no other irregular terminal • v contains another (regular) terminal 9 • terminal with demand 7 is not regular • terminal with demand 18 is regular 8 v 8
18 7 lemma 3.2 9 8 w e v 8 • since tj is irregular, at least one edge e entering v must have f(e) > dj • consider the iteration i when you moved terminal tj to v • since tj was not moved further backwards, edge e was singular • f(e) can not be increased from below tj to above tj in a following iteration • hence edge (v,w) was singular and out-degree of v is zero after iteration i
18 7 lemma 3.2 9 8 e v 8 • at most one irregular terminal can be moved to a vertex v • this proves that v contains no other irregular terminals • since f(e) > tj and out-degree of v is zero, the conservation of the flow implies that there is at least another (regular) terminal on v
lemma 3.3 lemma 3.3: at the beginning of any iteration, the in-degree of any vertex containing one or more terminals is at least 2 if a vertex has irregular terminals it has also (at least) one regular terminal vertices with regular terminals have in-degree at least two by definition
s lemma 3.4 lemma 3.4: as long as all terminals have not reached the source, the algorithm always finds an alternating cycle • when constructing a forward path you stop at a vertex v with no outgoing edges • flow conservation implies that v has terminals • by lemma 3.3 vertex v has in-degree at least 2 • when constructing a backward path you may be stuck at a vertex v with no incoming edges • necessarily v=s • contradiction how can this branch be connected to s?