<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">OJAppS</journal-id><journal-title-group><journal-title>Open Journal of Applied Sciences</journal-title></journal-title-group><issn pub-type="epub">2165-3917</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ojapps.2016.62014</article-id><article-id pub-id-type="publisher-id">OJAppS-64048</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Biomedical&amp;Life Sciences</subject><subject> Chemistry&amp;Materials Science</subject><subject> Computer Science&amp;Communications</subject><subject> Engineering</subject><subject> Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Modified EDMONDS-KARP Algorithm to Solve Maximum Flow Problems
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>alyan</surname><given-names>Kumar Mallick</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Aminur</surname><given-names>Rahman Khan</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mollah</surname><given-names>Mesbahuddin Ahmed</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Md.</surname><given-names>Shamsul Arefin</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Md.</surname><given-names>Sharif Uddin</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Mathematics, University of Development Alternative (UODA), Dhaka, Bangladesh</addr-line></aff><aff id="aff3"><addr-line>Department of Computer Science and Engineering, University of Development Alternative (UODA), Dhaka, Bangladesh</addr-line></aff><aff id="aff2"><addr-line>Department of Mathematics, Jahangirnagar University, Savar, Dhaka, Bangladesh</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>kalyan_uoda@yahoo.com(AKM)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>22</day><month>02</month><year>2016</year></pub-date><volume>06</volume><issue>02</issue><fpage>131</fpage><lpage>140</lpage><history><date date-type="received"><day>18</day>	<month>January</month>	<year>2016</year></date><date date-type="rev-recd"><day>accepted</day>	<month>26</month>	<year>February</year>	</date><date date-type="accepted"><day>29</day>	<month>February</month>	<year>2016</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  Maximum Flow Problem (MFP) discusses the maximum amount of flow that can be sent from the source to sink. Edmonds-Karp algorithm is the modified version of Ford-Fulkerson algorithm to solve the MFP. This paper presents some modifications of Edmonds-Karp algorithm for solving MFP. Solution of MFP has also been illustrated by using the proposed algorithm to justify the usefulness of proposed method.
 
</p></abstract><kwd-group><kwd>Maximum Flow</kwd><kwd> Maximum Flow Problem</kwd><kwd> Breadth First Search</kwd><kwd> Augmenting Path</kwd><kwd> Residual  Network</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The maximum amount of commodities that can be shipped through any network from source to sink is called maximum flow and this problem is called MFP, which is a classical network flow problem. Network flows problem has got a vast application in the field of Mathematics, Computer Science, Management and Operations Research.</p><p>At first the effective solution procedure to obtain the maximum flow in a flow network was introduced by Lester R. Ford and Delbert R. Fulkerson [<xref ref-type="bibr" rid="scirp.64048-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.64048-ref2">2</xref>] in 1955 which is the well known Ford-Fulkerson algorithm. The improvement of the Ford-Fulkerson method is Edmonds-Karp algorithm [<xref ref-type="bibr" rid="scirp.64048-ref3">3</xref>] which observed that augmenting along shortest paths leads to a polynomial-time algorithm, and performs better than the previous one. Again extensive discussion, further improvement and effectiveness of the solution procedure of MFP are studied by a good no. of researchers [<xref ref-type="bibr" rid="scirp.64048-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.64048-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.64048-ref4">4</xref>] -[<xref ref-type="bibr" rid="scirp.64048-ref16">16</xref>] . Those researchers also proposed various methods to solve the MFP basing on the merits and demerits of the previous methods. Very recently, Ahmed, F. et al. [<xref ref-type="bibr" rid="scirp.64048-ref17">17</xref>] and Khan, Md. A. et al. [<xref ref-type="bibr" rid="scirp.64048-ref18">18</xref>] also proposed new approaches for finding maximum flow problem.</p><p>In this paper, a modified Edmonds-Karp algorithm is proposed to compute maximum amount of flow from source to sink for a MFP. Numerical illustration of the proposed algorithm is also done by solving a good number of examples to test the effectiveness and usefulness of the proposed algorithm.</p></sec><sec id="s2"><title>2. Basic Definitions</title><p>Some of the basic ideas related to maximum flow problems are given below with an aim to accustom the readers with the article.</p><sec id="s2_1"><title>2.1. Capacity Constraint</title><p>The flow f(u, v) through an edge cannot be negative and cannot exceed the capacity of the edge c(u, v), 0 ≤ f(u, v) ≤ c(u, v). If an edge (u, v) doesn’t exist in the network, then c(u, v) = 0.</p></sec><sec id="s2_2"><title>2.2. Flow Conservation</title><p>Aside from the source vertex s and sink vertex t, each vertex u belongs to V must satisfy the property that the sum of f(v, u) for all edges (v, u) in E (the flow into u) must equal the sum of f(u, w) for all edges (u, w) belongs to E (the flow out of u).</p><p>This property ensures that flow is neither produced nor consumed in the network, except at s and t.</p></sec><sec id="s2_3"><title>2.3. Skew Symmetry</title><p>For consistency, the quantity f(v, u) represents the net flow from vertex u to v. This means that it must be the case that f(u, v) = −f(v, u); this holds even if both edges (u, v) and (v, u) exist in a directed graph.</p></sec><sec id="s2_4"><title>2.4. Residual Network</title><p>Intuitively, given a flow network and a flow, the residual network consists of edges that can admit more flow. More formally, let <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/7-2310550x6.png" xlink:type="simple"/></inline-formula> a flow network with source s and sink t. Let f be a flow in G, and consider a pair of vertices <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/7-2310550x7.png" xlink:type="simple"/></inline-formula> The amount of additional flow which can be pushed from u to v before exceeding the capacity c(u, v) is the residual capacity of (u, v), given by c<sub>f</sub>(u, v) = c(u, v) − f(u, v).</p></sec></sec><sec id="s3"><title>3. Proposed Algorithm</title><p>It is to be mentioned that the proposed algorithm is a modified version of Ford-Fulkerson algorithm. The basic steps of this algorithm are explained below.</p></sec><sec id="s4"><title>4. Mathematical Illustration</title><p>Two numerical examples have been solved for finding the maximum value of a MFP by using proposed algorithm which is given below.</p><sec id="s4_1"><title>4.1. Example-1</title><p>Consider the water supply system in a Campus. The pipeline between the supply points of any two areas has a stated capacity in gallons per hour, given as a maximum flow at which water can flow through the pipe between those two areas. To supply water from the source area, A (say) to the sink area, I (say) and water passes through 7 other areas before reaching from source to sink. Suppose these 7 areas are B, C, D, E, F, G, H and pipeline between any two areas has a defined capacity. <xref ref-type="table" rid="table1">Table 1</xref> shows the defined capacities of each pipeline between any two areas which can flow between corresponding two areas.</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Defined capacities of each pipeline between two areas</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Source Area</th><th align="center" valign="middle" >Destination Area</th><th align="center" valign="middle" >Capacity (Gallons/hour)</th><th align="center" valign="middle" >Source Area</th><th align="center" valign="middle" >Destination Area</th><th align="center" valign="middle" >Capacity (Gallons/hour)</th></tr></thead><tr><td align="center" valign="middle" >A</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >G</td><td align="center" valign="middle" >22</td></tr><tr><td align="center" valign="middle" >A</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >H</td><td align="center" valign="middle" >18</td></tr><tr><td align="center" valign="middle" >A</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >35</td></tr><tr><td align="center" valign="middle" >B</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >15</td></tr><tr><td align="center" valign="middle" >B</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >H</td><td align="center" valign="middle" >34</td></tr><tr><td align="center" valign="middle" >C</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >G</td><td align="center" valign="middle" >I</td><td align="center" valign="middle" >48</td></tr><tr><td align="center" valign="middle" >C</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >H</td><td align="center" valign="middle" >G</td><td align="center" valign="middle" >20</td></tr><tr><td align="center" valign="middle" >D</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >H</td><td align="center" valign="middle" >I</td><td align="center" valign="middle" >30</td></tr></tbody></table></table-wrap><p>Calculate the maximum amount of water which can flow from A to I.</p>Solution of Example-1<p>Now the problem discussed in the Example 1 is converted into directed graph by representing areas as vertices of the graph and pipelines between any two areas as edges of the graph. The capacity of the pipeline in gallons per hour is represented as capacity of an edge in units between vertices.</p><p>Now, following correspondence between areas and vertices is used to create the graph.</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Correspondence between areas and vertices</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Area</th><th align="center" valign="middle" >A</th><th align="center" valign="middle" >B</th><th align="center" valign="middle" >C</th><th align="center" valign="middle" >D</th><th align="center" valign="middle" >E</th><th align="center" valign="middle" >F</th><th align="center" valign="middle" >G</th><th align="center" valign="middle" >H</th><th align="center" valign="middle" >I</th></tr></thead><tr><td align="center" valign="middle" >Vertex</td><td align="center" valign="middle" >s</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >t</td></tr></tbody></table></table-wrap><p>So, the initial graph corresponding to <xref ref-type="table" rid="table1">Table 1</xref> and <xref ref-type="table" rid="table2">Table 2</xref> is as follows.</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> The initial flow network corresponding to the problem</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x19.png"/></fig><p>Now we use the modified Edmonds-Karp Method to compute a maximum flow in G.</p><p>According to the <xref ref-type="fig" rid="fig1">Figure 1</xref>, the maximum capacity is 48. So, the value of the variable C in the above algorithm will be 48.</p><p>So, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/7-2310550x20.png" xlink:type="simple"/></inline-formula>, this will be the value of the variable I in the 1st iteration of the algorithm.</p><p>Iteration-1: I = 27. So, the augmenting path with capacity at least 27 will be searched by the Breadth First Search (BFS) procedure. But, there is no augmenting path with capacity at least 27. So, no flow will be added to the initial flow of the graph which is 0.</p><p>Iteration-2: I = I/3 = 27/3 = 9. So, now the augmenting path with capacity at least 9 will be searched by the same BFS procedure in the residual graph which is given in <xref ref-type="fig" rid="fig2">Figure 2</xref> corresponding to the initial graph. The augmenting path will be searched till path with capacity at least 9 is found in the graph. Now, in the consecutive figures, <xref ref-type="fig" rid="fig2">Figure 2</xref> shows the residual graph and <xref ref-type="fig" rid="fig3">Figure 3</xref> shows the corresponding flow in the graph.</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Residual Graph before any augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x21.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Flow graph after 1<sup>st</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x22.png"/></fig><p>Whenever the augmenting path is to be found in the graph, if there are more than 1 path satisfying the capacity criteria, then the path is determined by BFS procedure on the basis of sequential ordering of the vertices and corresponding edges which has been given as input.</p><p>1<sup>st</sup> Augmentation: So, the augmenting path found in 2nd iteration is s - v1 - v3 - v6 - t with capacity 20. So, the initial flow is augmented by 20 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig3">Figure 3</xref> giving maximum flow value f = 20. The residual graph after 1<sup>st</sup> augmentation is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Residual Graph after 1<sup>st</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x23.png"/></fig><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Flow Graph after 2<sup>nd</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x24.png"/></fig><p>2<sup>nd</sup> Augmentation: Now, again there is a path with capacity at least 18 and the path found in the same 2<sup>nd</sup> iteration is s - v4 - v3 - v7 - t with capacity 18. So, the maximum flow is augmented by 18 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig5">Figure 5</xref> giving maximum flow value f = 20 + 18 = 38. Now, there is no path with capacity at least 18. Same procedure will be followed until variable I becomes &lt; 1. Residual graph after 2<sup>nd</sup> augmentation is shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>.</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Residual Graph after 2<sup>nd</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x25.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Flow Graph after 3<sup>rd</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x26.png"/></fig><p>3<sup>rd</sup> Augmentation: Now, again there is a path with capacity at least 12 and the path found in the same 2<sup>nd</sup> iteration is s - v2 - v5 - v7 - t with capacity 12. So, the maximum flow is augmented by 12 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig7">Figure 7</xref> giving maximum flow value f = 38 + 12 = 50. Now, there is no path with capacity at least 12. Same procedure will be followed until variable I becomes &lt; 1. Residual graph after 3rd augmentation is shown in <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Residual Graph after 3<sup>rd</sup><sup> </sup>augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x27.png"/></fig><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Flow Graph after 4<sup>th</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x28.png"/></fig><p>4<sup>th</sup> Augmentation: Now, again there is a path with capacity at least 15 and the path found in the same 2<sup>nd</sup> iteration is s - v4 - v5 - v7 - v6 - t with capacity 15. So, the maximum flow is augmented by 15 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig9">Figure 9</xref> giving maximum flow value f = 50 + 15 = 65. Now, there is no path with capacity at least 15. Same procedure will be followed until variable I becomes &lt; 1.</p><p>3<sup>rd</sup> Iteration: I = I/3 = 9/3 = 3. So, now the augmenting path with capacity at least 3 will be searched in the residual graph which is given in <xref ref-type="fig" rid="fig1">Figure 1</xref>0 corresponding to the initial graph.</p><p>5<sup>th</sup> Augmentation: So, the augmenting path found in 3rd iteration is s - v1 - v4 - v3 - v5 - v7 - v6 - t with capacity 5. So, the initial flow is augmented by 5 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>1 gives maximum flow value f = 65 + 5 = 70. The residual graph after 4<sup>th</sup> augmentation is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>0.</p><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Residual Graph after 4<sup>th</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x29.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Flow Graph after 5<sup>th</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x30.png"/></fig><p>4<sup>th</sup> Iteration: I = I/3= 3/3 = 1. So, the augmenting path with capacity at least 1 will be searched in the residual graph which is given in <xref ref-type="fig" rid="fig1">Figure 1</xref>2 corresponding to the initial graph.</p><p>6<sup>th</sup> Augmentation: So, the augmenting path found in 4th iteration is s - v2 - v4 - v3 - v6 - t with capacity 2. So, the initial flow is augmented by 2 units and the flow in the graph is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>3 giving maximum flow value f = 70 + 2 = 72. The residual graph after 6<sup>th</sup> augmentation is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>4.</p><fig id="fig12"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>2</label><caption><title> Residual Graph after 5<sup>th</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x31.png"/></fig><fig id="fig13"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>3</label><caption><title> Flow graph after 6<sup>th</sup> augmentation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x32.png"/></fig><p>The residual graph after 6<sup>th</sup> augmentation is shown below:</p><fig id="fig14"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>4</label><caption><title> Resulting residual network</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x33.png"/></fig></sec><sec id="s4_2"><title>4.2. Example-2</title><p>Suppose a pipeline system in a Campus to supply gas in different areas of a Campus. The pipeline between any two areas has a stated capacity in per unit per hour, given as a maximum flow at which gas can flow through the pipe between those two areas. Now, suppose we want to supply gas from the source area, suppose A to the sink area, say F and gas passes through 4 other areas before reaching from source to sink. Suppose these 4 areas are B, C, D, E and pipeline between any two areas has defined capacity.</p><p>The following table shows the defined capacities of each pipeline between any two areas which can flow between corresponding two areas.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Defined capacities of each pipeline between two areas</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Source Area</th><th align="center" valign="middle" >Destination Area</th><th align="center" valign="middle" >Capacity (Gallons/hour)</th><th align="center" valign="middle" >Source Area</th><th align="center" valign="middle" >Destination Area</th><th align="center" valign="middle" >Capacity (Gallons/hour)</th></tr></thead><tr><td align="center" valign="middle" >A</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >9</td></tr><tr><td align="center" valign="middle" >A</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >10</td></tr><tr><td align="center" valign="middle" >B</td><td align="center" valign="middle" >C</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >6</td></tr><tr><td align="center" valign="middle" >B</td><td align="center" valign="middle" >D</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >F</td><td align="center" valign="middle" >10</td></tr><tr><td align="center" valign="middle" >B</td><td align="center" valign="middle" >E</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td></tr></tbody></table></table-wrap><p>Calculate the maximum amount of gas which can flow from A to F.</p>Solution of Example-2<p>Now the problem discussed in the Example 2 is converted into directed graph by representing areas as vertices of the graph and pipelines between any two areas as edges of the graph. The capacity of the pipeline in unit per hour is represented as capacity of an edge in units between vertices.</p><p>Now, following correspondence between areas and vertices is used to create the graph.</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Correspondence between areas and vertices</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Area</th><th align="center" valign="middle" >A</th><th align="center" valign="middle" >B</th><th align="center" valign="middle" >C</th><th align="center" valign="middle" >D</th><th align="center" valign="middle" >E</th><th align="center" valign="middle" >F</th></tr></thead><tr><td align="center" valign="middle" >Vertex</td><td align="center" valign="middle" >S</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >t</td></tr></tbody></table></table-wrap><p>So, the initial graph corresponding to <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref> is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>5.</p><fig id="fig15"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>5</label><caption><title> The initial flow network corresponding to the problem</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/7-2310550x34.png"/></fig><p>Solving the above example using our proposed algorithm, the maximum flow value f = 19.</p></sec></sec><sec id="s5"><title>5. Outcome</title><p><xref ref-type="table" rid="table5">Table 5</xref> shows a comparison of no. of iteration and no. of augmentation required to obtain the maximum flow by using various existing methods and our proposed Modified Edmonds-Karp algorithm by means of the abovetwo sample examples and it is seen that our proposed algorithm requires less number of iterations and augmentation paths to reach the maximum flow.</p></sec><sec id="s6"><title>6. Conclusion</title><p>In this paper, we have modified Edmonds-Karp algorithm to compute maximum amount of flow from source to</p><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Comparison of the resul obtained by different methods</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Name of the Algorithm</th><th align="center" valign="middle"  colspan="2"  >Number of Iterations</th><th align="center" valign="middle"  colspan="2"  >Number of Augmentation</th></tr></thead><tr><td align="center" valign="middle" >Example-1</td><td align="center" valign="middle" >Example-2</td><td align="center" valign="middle" >Example-1</td><td align="center" valign="middle" >Example-2</td></tr><tr><td align="center" valign="middle" >Ford-Fulkerson</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >Edmonds-Karp</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >Md. Al-Amin Khan et al.’s</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >Chintan J. &amp; Deepak G.’s</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >Faruque Ahmed et al.’s</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >Modified Edmonds-Karp (Proposed)</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >3</td></tr></tbody></table></table-wrap><p>sink in a flow network. We have also solved several number of maximum flow problems by using our proposed algorithm, Ford-Fulkerson algorithm, Md. Al-Amin Khan et al.’s Algorithm, and Faruque Ahmed et al.’s algorithm and Edmonds-Karp algorithm to test the efficiency of the proposed algorithm. During this process, it is observed that our proposed algorithm is faster and taking less number of iterations and less number of augmentations to determine the maximum flow in maximum flow problems in comparison with the other well known algorithms.</p></sec><sec id="s7"><title>Cite this paper</title><p>Kalyan KumarMallick,Aminur RahmanKhan,Mollah MesbahuddinAhmed,Md. ShamsulArefin,Md. SharifUddin, (2016) Modified EDMONDS-KARP Algorithm to Solve Maximum Flow Problems. Open Journal of Applied Sciences,06,131-140. doi: 10.4236/ojapps.2016.62014</p></sec></body><back><ref-list><title>References</title><ref id="scirp.64048-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Ford Jr., L.R. and Fulkerson D.R. (1962) Flows in Networks. Princeton University Press, Princetion, NJ.</mixed-citation></ref><ref id="scirp.64048-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Ford, Jr. L.R. and Fulkerson D.R. (1956) Maximal Flow through a Network. Canadian Journal of Mathematics, 8, 399-404. http://dx.doi.org/10.4153/CJM-1956-045-5</mixed-citation></ref><ref id="scirp.64048-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Edmonds, J. and Karp, R.M. (1972) Theoretical Improvements in Algorithmic Efficiency for Network Flow Problems. Journal of the Association for Computing Machinery, 19, 248-264.&lt;br /&gt; http://dx.doi.org/10.1145/321694.321699</mixed-citation></ref><ref id="scirp.64048-ref4"><label>4</label><mixed-citation publication-type="book" xlink:type="simple">Goldberg, A.V., Tardos, E. and Tarjan, R.E. (1990) Network Flow Algorithms. In: Korte, B., Lovasz, L., Promel, H.J. and Schriver, A., Eds., Paths, Flows, and VLSI-Layout, Vol. 9, Springer-Verlag, Berlin Heidelberg, 101-164.</mixed-citation></ref><ref id="scirp.64048-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Goldberg, A.V. and Tarjan, R.E. (1988) A New Approach to the Maximum-Flow Problem. Journal of the Association for Computing Machinery, 35, 921-940. http://dx.doi.org/10.1145/48014.61051</mixed-citation></ref><ref id="scirp.64048-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Goldberg, A.V., Plotkin, S.A. and Tardos, E. (1991) Combinatorial Algorithms for the Generalized Circulation Problem. Mathematics of Operations Research, 16, 351-381. &lt;br /&gt;http://dx.doi.org/10.1287/moor.16.2.351</mixed-citation></ref><ref id="scirp.64048-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Goldberg, E. and Rao, S. (1998) Beyond the Flow Decomposition Barrier. Journal of the ACM, 45, 783-797.  
http://dx.doi.org/10.1145/290179.290181</mixed-citation></ref><ref id="scirp.64048-ref8"><label>8</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Cherkasky</surname><given-names> B.V. </given-names></name>,<etal>et al</etal>. (<year>1977</year>)<article-title>An Algorithm for Constructing Maximal Flows in Networks with Complexity of   Operations</article-title><source> Mathematical Methods of Solution of Economical Problems</source><volume> 7</volume>,<fpage> 117</fpage>-<lpage>125</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.64048-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Jain, C. and Garg, D. (2012) Improved Edmond Karps Algorithm for Network Flow Problem. International Journal of Computer Applications, 37, 48-53. http://dx.doi.org/10.5120/4576-6624</mixed-citation></ref><ref id="scirp.64048-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Kelly, D. and O`Neill, G.M. (1991) The Minimum Cost Flow Problem and The Network Simplex Solution Method. Master of Management Science Dissertation, University College Dublin.</mixed-citation></ref><ref id="scirp.64048-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Dinic, E.A. (1970) Algorithm for Solution of a Problem of Maximum Flow in a Network with Power Estimation. Soviet Math Doklady, 11, 1277-1280. http://www.citeulike.org/user/Fujisaki/author/Dinic:EA</mixed-citation></ref><ref id="scirp.64048-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Goldfarb, D. and Jin, Z.Y. (1996) A Faster Combinatorial Algorithm for the Generalized Circulation Problem. Mathematics of Operations Research, 21, 529-539. http://dx.doi.org/10.1287/moor.21.3.529</mixed-citation></ref><ref id="scirp.64048-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Goldfarb, D., Jin, Z.Y. and Orlin, J.B. (1997) Polynomial-Time Highest-Gain Augmenting Path Algorithms for the Generalized Circulation Problem. Mathematics of Operations Research, 22, 793-802. &lt;br /&gt; 
http://dx.doi.org/10.1287/moor.22.4.793</mixed-citation></ref><ref id="scirp.64048-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Hamdy, A.T. (2007) Operations Research: An Introduction. 8th Edition, Pearson Prentice Hall, Upper Saddle River, New Jersey.</mixed-citation></ref><ref id="scirp.64048-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Mallick, J.B. (2014) An Efficient Network Flow Approach: On Development of New Idea &amp; A Modification of EDMONDS-KARP Algorithm.  M. Phil. Thesis, Department of Mathematics, Jahangirnagar University.</mixed-citation></ref><ref id="scirp.64048-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Galil, Z. and Naamad, A. (1980) An   Algorithm for the Maximal Flow Problem. Journal of Computer and System Sciences, 21, 203-217. http://dx.doi.org/10.1016/0022-0000(80)90035-5</mixed-citation></ref><ref id="scirp.64048-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Ahmed, F., Khan, Md.A., Khan, A.R., Ahmed, S.S. and Uddin, Md.S. (2014) An Efficient Algorithm for Finding Maximum Flow in a Network-Flow. Journal of Physical Sciences, 19, 41-50.</mixed-citation></ref><ref id="scirp.64048-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Khan, Md.A., Rashid, A., Khan, A.R. and Uddin, Md.S. (2013) An Innovative Approach for Solving Maximal-Flow Problems. Journal of Physical Sciences, 17, 143-154.</mixed-citation></ref></ref-list></back></article>