Min Global Cut Animation

Slides:



Advertisements
Similar presentations
Lecture 5: Network Flow Algorithms Max-Flow Min-Cut Single-Source Shortest-Path (SSSP) Job Sequencing.
Advertisements

Chapter 6 Maximum Flow Problems Flows and Cuts Augmenting Path Algorithm.
1 Maximum Flow Networks Suppose G = (V, E) is a directed network. Each edge (i,j) in E has an associated ‘capacity’ u ij. Goal: Determine the maximum amount.
Chapter 7 Maximum Flows: Polynomial Algorithms
A New Approach to the Maximum-Flow Problem Andrew V. Goldberg, Robert E. Tarjan Presented by Andrew Guillory.
1 Maximum flow: The preflow/push method of Goldberg and Tarjan (87)
A New Approach to the Maximum-Flow Problem Andrew V. Goldberg, Robert E. Tarjan Presented by Andrew Guillory.
15.082J and 6.855J and ESD.78J October 19, 2010 Max Flows 3 Preflow-Push Algorithms.
Maximum Flow Algorithms —— ACM 黄宇翔. 目录 Max-flow min-cut theorem 12 Augmenting path algorithms 3 Push-relabel maximum flow algorithm.
The Ford-Fulkerson Augmenting Path Algorithm for the Maximum Flow Problem Thanks to Jim Orlin & MIT OCW.
and 6.855J The Goldberg-Tarjan Preflow Push Algorithm for the Maximum Flow Problem.
and 6.855J March 6, 2003 Maximum Flows 2. 2 Network Reliability u Communication Network u What is the maximum number of arc disjoint paths from.
EMIS 8374 The Ford-Fulkerson Algorithm (aka the labeling algorithm) Updated 4 March 2008.
Network Problems A D O B T E C
15.082J and 6.855J and ESD.78J October 21, 2010 Max Flows 4.
1 Maximum Flows CONTENTS Introduction to Maximum Flows (Section 6.1) Introduction to Minimum Cuts (Section 6.1) Applications of Maximum Flows (Section.
Cycle Canceling Algorithm
Network Simplex Animations
Dijkstra’s Algorithm with two levels of buckets
Maximum Flow Problem flow capacity Actual flow  capacity
Edmonds-Karp Algorithm
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
Introduction to Maximum Flows
Introduction to Maximum Flows
15.082J & 6.855J & ESD.78J Visualizations
15.082J & 6.855J & ESD.78J Visualizations
Lecture 6 Shortest Path Problem.
Dijkstra’s Algorithm for the Shortest Path Problem
Breadth first search animation
Lecture 4 Graph Search.
3.4 Push-Relabel(Preflow-Push) Maximum Flow Alg.
Network Flows – Multiple sources and sinks
Introduction to Minimum Cost Flows
Not Always Feasible 2 (3,5) 1 s (0,2) 3 (, u) t.
Spanning Tree Algorithms
and 6.855J Flow Decomposition
Primal-Dual Algorithm
Complexity of Ford-Fulkerson
Successive Shortest Path Algorithm
and 6.855J March 6, 2003 Maximum Flows 2
15.082J & 6.855J & ESD.78J Radix Heap Animation
Network Optimization Depth First Search
Introduction to Algorithms
Dijkstra’s Algorithm for Shortest Paths
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
Reading before Lecture 13
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
MAXIMUM flow by Eric Wengert.
Network Optimization Topological Ordering
and 6.855J The Goldberg-Tarjan Preflow Push Algorithm for the Maximum Flow Problem Obtain a network, and use the same network to illustrate the.
and 6.855J Dijkstra’s Algorithm
Visualizations Dijkstra’s Algorithm
Introduction to Maximum Flows
Network Simplex Animations
and 6.855J The Goldberg-Tarjan Preflow Push Algorithm for the Maximum Flow Problem Obtain a network, and use the same network to illustrate the.
Eulerian Cycles in directed graphs
and 6.855J Topological Ordering
7. Preflow-Push Demo.
15.082J & 6.855J & ESD.78J Visualizations
The Minimum Cost Spanning Tree Problem
and 6.855J Depth First Search
Maximum flow: The preflow/push method of Goldberg and Tarjan (87)
Breadth first search animation
OPIM 915 Fall 2010 Data Structures 23-38,
Introduction to Maximum Flows
Not Always Feasible 2 (3,5) 1 s (0,2) 3 (, u) t.
Max Flows 3 Preflow-Push Algorithms
Class 11 Max Flows Obtain a network, and use the same network to illustrate the shortest path problem for communication networks, the max flow.
15.082J & 6.855J & ESD.78J Visualizations
Excess Scaling Approach Algorithm
Presentation transcript:

Min Global Cut Animation 15.082 and 6.855J Min Global Cut Animation Obtain a network, and use the same network to illustrate the shortest path problem for communication networks, the max flow problem, the minimum cost flow problem, and the multicommodity flow problem. This will be a very efficient way of introducing the four problems. (Perhaps under 10 minutes of class time.)

Initialize 1 3 2 5 6 4 Saturate the arcs out of node 1. Update the residual network

Initialize 1 1 3 2 5 6 4 5 4 3 2 1 We will never push from node 1 again or into node 1. 4 6 3 5 2 Compute distances to node 2 Determine admissible arcs

Push/Relabel 1 1 5 4 3 2 1 4 1 4 4 4 1 5 2 3 3 6 6 1 3 5 3 6 6 3 2 1 2 5 1 Select an active node Carry out push/relabel

Push/Relabel 1 1 5 4 3 2 1 4 1 4 4 4 3 1 5 2 3 3 6 6 1 3 5 6 6 6 2 1 2 5 1 Select an active node Relabel. There are no admissible arcs.

Push/Relabel 1 1 5 4 3 2 1 4 1 4 4 4 3 1 5 2 1 3 3 6 1 6 1 5 6 6 6 2 1 2 5 1 Select an active node Push from node 3.

Push/Relabel 1 1 5 4 3 2 1 4 1 4 4 4 3 5 1 2 3 3 6 1 6 2 5 6 6 6 2 1 2 5 1 Select an active node Relabel node 3. Rule: no empty levels permitted.

Gaps Let t denote the current sink node. Let dmax be the maximum distance label of a node other than the source node. An empty level is a value k with d(t) < k < dmax such that there is no node j with d(j) = k. If we increase d(3) to 7, we create a gap. In such a case, we increase d(j) to dmax + 1.

Push/Relabel 1 1 5 4 3 2 1 4 1 3 4 4 4 3 5 1 2 3 3 6 1 6 2 5 6 6 6 2 1 2 5 1 Relabel node 3 so no empty level is created.

Cut Level 1 1 5 4 1 4 3 4 4 3 4 2 1 2 5 3 6 1 6 2 1 5 6 6 6 2 1 2 5 1 A cut level is a level with exactly one node that needs to be relabeled. There is no path in the residual network from a node in a cut level to a node below it.

Cut-level rule Always select an active node that is below the lowest cut-level. If each active node is at or above a cut level, then stop with the max preflow/ min cut.

Push/Relabel 1 1 5 4 4 1 4 3 4 4 3 4 2 1 2 5 3 6 1 6 2 1 5 6 6 6 2 1 2 5 1 Select an active node below the lowest cut level. Push from node 4.

Push/Relabel 1 5 4 1 4 3 3 5 3 4 2 1 2 5 3 6 6 2 6 2 1 5 6 6 6 2 1 2 5 1 Select an active node below the lowest cut level. Push from node 6.

Push/Relabel 1 5 4 1 4 3 3 5 3 4 2 1 2 5 3 6 6 2 1 5 8 4 6 2 1 2 5 5 2 1 Select an active node below the lowest cut level. Push from node 5.

Push/Relabel 1 5 4 1 4 3 3 5 3 4 2 1 2 5 3 6 6 2 1 5 8 4 6 2 2 2 5 5 1 Select an active node below the lowest cut level. Relabel node 5 if it will not create an empty level.

End of finding the first cut 1 5 4 1 4 3 3 5 3 4 2 2 1 5 3 6 6 2 1 5 8 4 6 2 2 2 5 1 There is no active node below the lowest cut level. The max preflow and min cut have been found. Let T be all nodes that can reach the sink node.

End of finding the first cut 1 1 5 4 1 4 3 5 4 3 4 1 2 3 6 6 1 5 6 3 2 1 2 5 Here is the first minimum cut.

Beginning of the second cut 1 5 4 1 4 3 3 5 3 4 2 2 5 1 3 6 6 2 1 5 5 8 4 6 2 2 2 2 5 1 Choose a new sink node at the lowest level Make node 2 a source node Saturate arcs out of node 2.

Beginning of the second cut 1 2 5 4 1 4 3 3 5 3 4 2 5 7 2 3 6 6 2 1 5 8 4 2 2 5 5 We will not push from node 2 or into node 2 again. There is no need to physically merge nodes 1 and 2.

Push/Relabel 1 2 5 4 1 4 3 3 5 3 4 2 7 5 2 3 3 6 6 2 1 5 8 4 2 2 5 5 Select an active node Relabel node 3 if it will not create an empty level.

Push/Relabel 1 2 5 4 1 4 3 3 5 3 4 2 5 7 2 3 6 6 2 1 5 8 4 2 2 5 5 Level 4 becomes a cut level There is no active node below a cut level. The second cut has been found. Let T be all nodes that can reach the sink node.

Push/Relabel 1 2 1 5 4 1 4 3 5 4 3 4 1 2 3 6 6 1 5 6 3 1 2 5 Here is the 2nd cut.

Starting the 3rd cut 1 2 5 4 1 4 3 3 5 3 4 2 6 7 5 2 3 6 6 2 1 5 5 8 4 2 2 5 5 Make node 5 a source node Node 6 becomes the new sink node Saturate arcs out of node 5.

Starting the 3rd cut 1 2 5 5 4 1 4 3 3 5 3 4 2 5 7 2 3 6 6 2 1 2 2 5 5 Level 3 is still a cut level There are still no active nodes below a cut level We have found the 3rd cut Let T be all nodes that can reach the sink node.

The 3rd cut 1 2 5 1 5 4 1 4 3 5 4 3 4 1 2 3 6 6 1 6 3 1 2 5 The above cut is the best cut with 1, 2, 5 on one side and with node 6 on the other side.

Starting the 4th cut 1 2 5 5 4 4 1 4 3 3 5 3 4 2 6 5 7 2 3 6 6 2 1 2 2 5 5 Node 6 becomes a source node Node 4 becomes the next source node Saturate arcs out of node 6

We have found the 4th and 5th cuts 1 2 5 6 5 4 1 4 3 3 4 2 2 5 9 3 6 1 2 2 5 5 The only arcs in the network are out of source nodes We can stop the algorithm and identify the remaining cuts.

Here are cuts 4 and 5 1 1 4 4 1 1 5 5 4 4 1 1 3 6 3 6 6 6 3 3 1 1 2 5 2 5 Cut 5 Cut 4

The global min cut was cut number 2 5 4 3 2 1 6 The algorithm ends with the minimum cut with node 1 on the source side.