• No results found

An Efficient Algorithm for Calculating Maximum Flow in an Undirected Edge- Weighted Graph

N/A
N/A
Protected

Academic year: 2020

Share "An Efficient Algorithm for Calculating Maximum Flow in an Undirected Edge- Weighted Graph"

Copied!
9
0
0

Loading.... (view fulltext now)

Full text

(1)

Volume 2, Issue 6, June 2013

Page 4

A

BSTRACT

We proposed a new approximation algorithm for calculating the min-cut tree of an undirected edge-weighted graph. Our algorithm runs in O(V2.logV + V2.d), where V is the number of vertices in the given graph and d is the degree of the graph. It is a significant improvement over time complexities of existing solutions. However, because of an assumption it does not produce correct result for all sort of graphs but for the dense graphs success rate is more than 90%. Moreover in the unsuccessful cases, the deviation from actual result is very less and for most of the pairs we obtain correct values of max-flow or min-cut. We have implemented our algorithm in JAVA language and checked for many input cases.

Keywords: Maximum Flow, approximation Algorithm, complexity, min-cut tree

1.

Introduction

Graph connectivity is one of the classical subjects in graph theory and has many applications like Reliability of communication networks, cluster analysis, transportation planning, chip and circuit design. Finding the minimum cut of an undirected edge-weighted graph is the fundamental algorithmic problem. Precisely it consists in finding a non-trivial partition of graph vertex set V into two parts such that the cut weight, the sum of weights of the edges connecting the two parts is minimum. Given a graph G = (V, E) with vertex set V, edge set E and weight function w: E  R, it can be shown that there are at most n-1 distinct min-cuts among the total n(n-1)/2 pairs of nodes. We represent these n-1 min-cuts by a (not necessarily unique) tree, called Min-Cut Tree, which always exists and has the following properties:

The nodes of the tree are the same as the nodes of the initial graph, (i.e. V). Each edge is assigned a value.

For every pair s, t, we can find the min-cut value by following the (unique) path between s and t in the min-cut tree. Suppose that e is the edge with minimum value on that path. Then value (e) is also the min-cut value between s and t in the initial graph G.

To actually find the cut between s and t, we simply cut off the edge e of minimum value on the s-t path. The two connected subsets of nodes in the tree, also define the min-cut between s and t in the initial graph G.

2.

W

ORK

B

ACKGROUND

In the maximum flow problem we are given a flow network G = (V, E) which is a graph in which each edge (u, v)  E

has a non-negative capacity c(u, v) ≥ 0. If (u, v)  E then it is assumed that c(u, v) = 0. We distinguish two vertices in a flow network: a source s and a sink t. In this problem we wish to compute the greatest rate at which material can be shipped from the source s to the sink t without violating any capacity constraints.

2.1 The Max-Flow-Min-Cut theorem by Ford and Fulkerson

The Max-Flow-Min-Cut theorem by Ford and Fulkerson shows the duality of the maximum flow and minimum s-t cut. This theorem states that the value of maximum flow in a flow network G with source s and sink t is equal to the value of minimum s-t cut of G.

An Efficient Algorithm for Calculating

Maximum Flow in an Undirected

Edge-Weighted Graph

Ashwani Kumar1, Jigyasha Arora2 and Nitin Arora3

1

Deptartment of CSE, G. B. Pant Engineering College, Pauri, Uttarakhand, INDIA

2

Department of CSE, Shivalik College of Engineering, Dehradun, Uttarakhand, INDIA

3

(2)

Volume 2, Issue 6, June 2013

Page 5

2.2 Gomory and Hu Algorithm

Gomory and Hu [6] showed that in a graph having n nodes, there can be only n-1 numerically different flows/cuts. They proposed a method to compute minimum-cut tree by computing only n-1 minimum s-t cuts.

2.3 M. Stoer and F. Wagner’s Algorithm

M. Stoer and F. Wagner presented an algorithm for finding the minimum cut of an undirected edge-weighted graph without using any flow techniques. This algorithm is one of a small number of papers treating questions of graph connectivity by non-flow-based methods. Time complexity of this algorithm is much better than those of flow based algorithms.

3.

O

UR

E

FFICIENT

A

LGORITHM

We present a new approximation algorithm for constructing the minimum cut tree. We calculate an upper-bound value for each node in the graph. We define the upperbound value of each node as the value of cut which separates this node from rest of the graph. We used the following Lemma:

Lemma: The value of minimum cut of a graph G separating Ni and Nj is less than or equal to minimum of the

upperbound values of two nodes Ni and Nj

We proceed by finding an edge uv such that upon merging the two nodes Nu and Nv we are able to reduce the

upperbound value of the new node, i.e.

upperbound(Nu) + upperbound(Nv) – 2*w(u,v) ≤ max(upperbound(Nu), upperbound(Nv))

We start from the node having the minimum upperbound value and check for all of the edges leaving it. If we are able to reduce the upperbound value by merging it with any of the nodes, we merge the nodes and repeat the same procedure. If we are not able to reduce the node’s upperbound value, we check for rest of the nodes in the increasing order of upperbound value. If at any stage it is not possible to merge any node, then we merge that pair of nodes which results in minimum increment of the upperbound value. After all the nodes in the graph are merged and it has only one node left, we proceed to construct the min-cut tree by using the information from intermediate stages.

We move from last to first stage and at each stage we see the two nodes that were merged during last stage and separate the node with smaller of the two upperbound values from the other by an arc bearing the value equal to the smaller of the two upperbound values. Since we are considering the nodes in the increasing order of upperbound values, checking for Ni itself implies that Nj has already been checked and it was not possible to reduce its upperbound value at all. So in

this case upperbound(Nj) cannot be reduced.

Our algorithm is based on the assumption that if we are merging two nodes Ni and Nj and if upperbound(Ni) <

upperbound(Nj) then it is not possible to merge Nj with any other node which will result in a node having upperbound

value which is less than upperbound(Ni). After running the procedure with more than 20000 randomly generated

graphs we have figured out that for graphs having density >= 0.4, success rate of algorithm is more than 90%. Moreover in the unsuccessful cases, the deviation from actual result is very less (usually for less than 5% pairs) and for most of the pairs we obtain correct values of max-flow or min-cut.

Procedure: Min-Cut Tree(G)

1.Input: Undirected edge-weighted graph G 2.Output: Min-Cut Tree

3.Calculate the upperbound values for each node. 4.while(number of vertices in the current graph > 1)

5. loop(Consider the vertices in the increasing order of upperbound value)

6. if(upperbound value can be reduced by merging a node with any adjacent node) 7. then merge those two adjacent nodes

8. break;

9. End if 10. End loop

11. if (it is not possible to merge any pair of nodes)

12. then merge the pair of nodes which results in minimum increment of the upperbound value.

13. End if

14. End While

15. Construct Min-Cut Tree T by using the information from intermediate stages as described: 16. Move from last to first stage.

17. At each stage check the two nodes that were merged during last stage.

18. Separate the node with lower upperbound value from the other by an arc bearing the value equal to the lower upperbound value.

(3)

Volume 2, Issue 6, June 2013

Page 6

Time Complexity of our algorithms is O(V2.logV + V2.d), where V is the number of vertices in the given graph and d is the degree of the graph. This is an improvement over the best existing O(V4) solution for minimum cut tree problem. In the following figures we have shown the steps used in our efficient algorithm by taking some Undirected edge-weighted graph G

We start from the node having the minimum upperbound value and check for all of the edges leaving it. If we are able to reduce the upperbound value by merging it with any of the nodes, we merge the nodes and repeat the same procedure. If we are not able to reduce the node’s upperbound value, we check for rest of the nodes in the increasing order of upperbound value. If at any stage it is not possible to merge any node, then we merge that pair of nodes which results in minimum increment of the upperbound value

Figure 1: Input Undirected edge-weighted graph G

Figure 2: Undirected edge-weighted graph G after the first phase.

Figure 3: Undirected edge-weighted graph G after the second phase.

(4)

Volume 2, Issue 6, June 2013

Page 7

Figure 5: Undirected edge-weighted graph G after the fourth phase.

Figure 6: Undirected edge-weighted graph G after the fifth phase.

Figure 7: Undirected edge-weighted graph G after the sixth phase.

Figure 8: Undirected edge-weighted graph G after the seventh phase.

(5)

Volume 2, Issue 6, June 2013

Page 8

Figure 10: Undirected edge-weighted graph G after the ninth phase.

Figure 11: Undirected edge-weighted graph G after the tenth phase.

Figure 12: Undirected edge-weighted graph G after the eleventh phase.

After all the nodes in the graph are merged and it has only one node left, we proceed to construct the min-cut tree by using the information from intermediate stages.

We move from last to first stage and at each stage we see the two nodes that were merged during last stage and separate the node with smaller of the two upperbound values from the other by an arc bearing the value equal to the smaller of the two upperbound values. Since we are considering the nodes in the increasing order of upperbound values, checking for Ni itself implies that Nj has already been checked and it was not possible to reduce its upperbound value at all. So in

this case upperbound(Nj) cannot be reduced.

Figure 13: min-cut tree of an undirected edge-weighted graph G

(6)

Volume 2, Issue 6, June 2013

Page 9

Figure 15: min-cut tree of an undirected edge-weighted graph G

Figure 16: min-cut tree of an undirected edge-weighted graph G

Figure 17: min-cut tree of an undirected edge-weighted graph G

Figure 18: min-cut tree of an undirected edge-weighted graph G

Figure 19: min-cut tree of an undirected edge-weighted graph G

(7)

Volume 2, Issue 6, June 2013

Page 10

Figure 21: min-cut tree of an undirected edge-weighted graph G

Figure 22: min-cut tree of an undirected edge-weighted graph G

4.

R

ESULTS

We generated 7500 random graphs of different densities but having fixed number of nodes (=50). Edge-weights were also random and were in between 1-300. Results of running our algorithm with these graphs are summarised in following plots

4.1Random Graphs with Fixed Number of Nodes

Figure 22: Plot of Success Rate Vs Density (Number of nodes were fixed to 50)

(8)

Volume 2, Issue 6, June 2013

Page 11

It is clear from figure 22 that for desity >= 0.4 success rate is about 100%. Figure 23 says that for the unsuccessful test cases deviation from the actual result is less than 3%. It means that even in the case of failure we get correct valus of max-flows or min-cuts for most of the pair of nodes

4.2 Random Graphs with Random Number of Nodes

We generated 7500 random graphs of different densities and number of nodes in them were also random (=5-55). Edges weights were also random and were in between 1-300. Results of running our algorithm with these graphs are summarised in following plots:

Figure 24: Plot of Success Rate Vs Density (Number of nodes were random 5-55)

Figure 25: Plot of Deviation Vs Density (For unsuccessful test cases)

It is clear from figure 24 that for desity >= 0.4 success rate is more than 92%. Figure 25 says that for the unsuccessful test cases deviation from the actual result is less than 5%. It means that even in the case of failure we get correct valus of max-flows or min-cuts for most of the pair of nodes.

5.

A

PPLICATIONS

1.1 Reliability of Communication Networks:

The problem of finding the minimum cut in a graph plays an important role in the design of communication networks. An important measure of the reliability of a network is the minimum number of links that must fail in order for the communication between any pair of nodes to fail.

1.2 Cluster Analysis:

The goal of clustering is to find groups that are both homogeneous and well separated. The main idea behind using minimum cut technique for clustering is to find clusters that have small inter-cluster cuts and large intra-cluster cuts.

1.3 Transportation Planning:

(9)

Volume 2, Issue 6, June 2013

Page 12

1.4 Circuit partitioning:

Circuit partitioning is one of the central problems in VLSI system design.

The primary objective of circuit partitioning is to minimize the number of interconnections between different components of the partitioned circuit. So the circuit partitioning problem is closely related to the minimum cut problem.

Because of the difference between on-chip and off-chip signal delays, a good partitioning should limit the number of signals travelling off-chip to ensure high system performance.

So min-cut partitioning that minimizes the number of interconnections between different chips is desired.

References

[1] Arora N., Kaushik P. K. and Singh S. P., “A Survey on Methods for finding Min-Cut Tree”. International Journal of Computer Applications (IJCA), Volume 66, No. 23, March 2013, pp. 18-22.

[2] Kumar A., Singh S. P. and Arora N., “A New Technique for Finding Min-Cut Tree”. International Journal of Computer Applications (IJCA), Volume 69, No. 20, May 2013, pp. 1-7.

[3] Stoer M. and Wagner F. 1997. “A Simple Min-Cut Algorithm”. Journal of the ACM (JACM), volume 44, issue 4, 585-591.

[4] Brinkmeier M. 2007. “A Simple and Fast Min-Cut Algorithm”. Theory of Computing Systems, volume 41, issue 2, 369-380.

[5] Hu T. C. 1974. “Optimum Communication Spanning Trees”. SIAM J. Computing, volume 3, issue 3.

[6] Flake G. W., Tarjan R. E. and Tsioutsiouliklis K. Graph Clustering and Minimum Cut Trees. Internet Mathematics, volume 1, issue 4, 385-408.

[7] Introduction to Algorithms by T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein.

[8] Gomory R. E. and Hu T. C. December 1961. Multi-Terminal Network Flows. J. Soc. Indust. Appl. Math, volume 9, No. 4.

AUTHOR

Figure

Figure 2:  Undirected edge-weighted graph G after the first phase.
Figure 8:  Undirected edge-weighted graph G after the seventh phase.
Figure 10:  Undirected edge-weighted graph G after the ninth phase.
Figure 20:  min-cut tree of an undirected edge-weighted graph G
+3

References

Related documents

• how they and others choose and adapt features and functions of spoken language for specific purposes in different contexts. • some common influences on spoken language and

[r]

Furthermore, while symbolic execution systems often avoid reasoning precisely about symbolic memory accesses (e.g., access- ing a symbolic offset in an array), C OMMUTER ’s test

By following UNESCO’s idea of Value Creation within creative industry (Flew 2009, fig 1), and the Screen Idea System (Redvall 2013, fig 2) derived from creativity theories, we

Precut lettuce mix Fresh Spinach Red Cabbage Green Cabbage Mesclun (baby salad greens) Asparagus Beans: Garbanzo Kidney Green Beets Broccoli Carrots Cauliflower

This solution collapsed the Employer Obligations of Loyalty, Internal Development, and Dynamic Performance into Factor I, External Employability items into Factor II, and

The AF-OM200 series Fiber Optic Power Meter has the same high performance as the AF-OM100 series with the added advantage of a user selectable choice of 0.1 or 0.01 resolution,

The beetles found at the Lebanese, Spanish, French and Myanmar amber sites had not participated in the resin production that resulted in early and mid-Cretaceous ambers..