Download
primal dual algorithm n.
Skip this Video
Loading SlideShow in 5 Seconds..
Primal-Dual Algorithm PowerPoint Presentation
Download Presentation
Primal-Dual Algorithm

Primal-Dual Algorithm

34 Vues Download Presentation
Télécharger la présentation

Primal-Dual Algorithm

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Primal-Dual Algorithm

  2. Self-reducibility Incremental Dynamic Program Primal Primal-Dual Divide-and-Conquer Local Ratio Greedy

  3. Primal-Dual • An optimality condition comes from the primal-dual theorem e.g., max-flow=min-cut. • Start from a pre-solution satisfying the optimality condition. • A pre-solution is not feasible, but approaching to feasibility step by step. • Eventually, the pre-solution becomes a feasible solution which is optimal.

  4. Primal-Feasible Consider a maximization problem Optimality condition: Max Primal = Min Dual Optimal solution Primal feasible solutions

  5. Dual Feasible Consider a maximization problem Dual feasible solutions coincide with pre-primal solution Optimal solution Optimality condition: Max Primal = Min Dual

  6. Lecture 16 Max Flows 3 Preflow-Relable Algorithms

  7. Review

  8. The Ford Fulkerson Maximum Flow Algorithm • Begin x := 0; • create the residual network G(x); • while there is some directed path from s to t in G(x) do • begin • let P be a path from s to t in G(x); • ∆:= δ(P); • send ∆ units of flow along P; • update the r's; • End • end {the flow x is now maximum}.

  9. Push: Saturating 4 3 2 1 1 3 3 2 1

  10. Push: Non-Saturating 3 4 2 1 0 3 1 2 1 3

  11. Relabel 2 3 Min{3,5}+1=4 4 3 2 5 1 1 1 2 3 4 3 4 5 1 1 1

  12. e(3)=1

  13. Exact distance: d(i) equals the length of the shortest path from node i to node t in G(x)

  14. The Goldberg-Tarjan Preflow Push Algorithm for the Maximum Flow Problem

  15. Preflow Push 4 2 5 1 3 1 1 2 4 s 4 t 3 2 1 3 This is the original network, and the original residual network.

  16. 5 4 3 2 1 0 Initialize Distances 4 2 2 5 1 1 3 1 1 2 4 2 s 1 4 t 0 3 2 2 s 1 3 4 5 1 3 t The node label henceforth will be the distance label. d(j) is at most the distance of j to t in G(x)

  17. 5 4 3 2 1 0 Saturate Arcs out of node s 3 s 4 2 2 2 1 5 1 3 1 1 2 4 6 s 2 4 1 1 0 t 3 2 2 2 s s 2 1 3 3 4 4 5 1 3 1 t 3 Saturate arcs out of node s. Move excess to the adjacent arcs Relabel node s after all incident arcs have been saturated.

  18. 5 4 3 2 1 0 Select, then relabel/push 3 s 4 2 2 2 1 5 1 3 1 1 2 4 s 2 6 1 1 4 t 0 3 2 2 s s 2 1 3 4 5 1 3 1 1 t 3 1 Select an active node, that is, one with excess Push/Relabel Update excess after a push

  19. 5 4 3 2 1 0 Select, then relabel/push 3 s 4 2 2 2 1 5 1 3 1 1 2 4 2 6 s 1 4 1 t 0 3 2 s 3 s 2 1 3 3 4 5 2 2 1 3 1 1 t 1 Select an active node, that is, one with excess No arc incident to the selected node is admissible. So relabel.

  20. 5 4 3 2 1 0 Select, then relabel/push 3 s 4 2 2 2 1 5 1 3 1 1 2 4 s 6 2 1 1 4 t 0 3 2 3 s 3 s 3 2 1 4 5 2 2 2 2 t 1 1 Select an active node, that is, one with excess Push/Relabel

  21. 3 3 5 4 3 2 1 0 Select, then relabel/push 3 s 4 1 2 2 2 2 2 1 5 1 3 1 3 1 1 2 4 6 2 s 1 4 1 0 t 3 2 2 3 s s 3 2 1 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  22. 5 4 3 2 1 0 Select, then relabel/push 2 3 s 4 1 2 2 2 2 1 1 5 3 1 3 1 1 2 4 s 6 2 4 1 1 t 0 3 2 s 3 s 3 2 1 4 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  23. 5 4 3 2 1 0 Select, then relabel/push 3 2 s 4 1 2 2 2 2 5 1 2 1 3 1 3 1 1 2 4 6 2 s 1 4 1 t 0 3 2 s s 3 5 2 3 1 4 5 5 2 2 2 t 1 1 Select an active node. There is no incident admissible arc. So Relabel.

  24. 5 4 3 2 1 0 Select, then relabel/push 1 3 2 s 4 1 2 2 2 2 5 2 2 1 3 1 3 1 1 2 4 s 6 2 1 4 1 0 t 3 2 3 s s 5 3 2 4 1 4 2 2 2 t 1 1 Select an active node. Push/Relabel

  25. 5 4 3 2 1 0 Select, then relabel/push 3 1 2 s 4 1 2 2 2 2 1 2 2 3 5 3 1 3 1 1 2 4 5 6 s 2 1 1 4 0 t 3 2 s s 3 5 5 3 4 2 1 4 2 2 2 t 1 1 Select an active node. There is no incident admissible arc. So relabel.

  26. 5 4 3 2 1 0 Select, then relabel/push 3 1 2 s 4 1 2 2 2 2 2 1 2 3 3 5 3 1 3 1 1 2 4 5 2 s 6 1 1 4 t 0 3 2 3 s s 2 4 3 1 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  27. 5 4 3 2 1 0 Select, then relabel/push 1 s 4 2 2 2 2 2 5 2 3 1 3 2 2 1 3 1 1 2 4 5 6 s 2 1 4 1 1 1 0 t 3 2 s 3 s 2 3 4 4 1 4 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  28. 5 4 3 2 1 0 Select, then relabel/push 1 s 4 2 2 2 2 2 4 2 5 3 3 2 2 1 2 1 3 1 2 1 2 4 5 s 6 2 4 1 1 0 t 3 2 2 s s 3 2 3 4 4 1 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  29. 5 4 3 2 1 0 Select, then relabel/push 1 s 4 2 2 4 2 2 4 2 2 1 2 3 3 5 2 1 3 1 2 1 2 4 5 s 2 6 1 4 1 t 0 3 3 s s 2 3 4 4 1 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  30. 5 4 3 2 1 0 Select, then relabel/push 1 s 4 1 4 2 2 2 4 2 5 1 3 5 2 3 3 2 5 3 1 3 1 2 1 2 4 5 5 s 6 2 1 4 1 0 t 3 3 s s 4 3 2 4 1 4 5 5 2 2 2 t 1 1 Select an active node. Push/Relabel

  31. 5 4 3 2 1 0 Select, then relabel/push 1 s 4 1 4 2 2 2 4 2 5 1 3 5 2 3 3 2 5 3 1 3 1 2 1 2 4 5 5 s 6 2 1 4 1 0 t 3 3 s s 4 3 2 4 1 4 5 5 2 2 2 t 1 1 One can keep pushing flow between nodes 2 and 5 until eventually all flow returns to node s. There are no paths from nodes 2 and 5 to t, and there are ways to speed up the last iterations.

  32. Push: Saturating 4 3 2 1 1 3 3 2 1

  33. Push: Non-Saturating 3 4 2 1 0 3 1 2 1 3

  34. Relabel 2 3 Min{3,5}+1=4 4 3 2 5 1 1 1 2 3 4 3 4 5 1 1 1