Solving The Maximum Flow Problem by Augmenting Flows on Subnetworks

碩士 === 國立成功大學 === 工業與資訊管理學系碩博士班 === 97 === The s-t maximum flow problem is a fundamental network optimization problem which computes for the largest amount of flow sent through a network from a source node s to a sink node t. This problem often appears in many business applications as an optimizatio...

Full description

Bibliographic Details
Main Authors: Chun-Hsien Lee, 李俊賢
Other Authors: I-Lin Wang
Format: Others
Language:en_US
Published: 2009
Online Access:http://ndltd.ncl.edu.tw/handle/69957290971457543474
Description
Summary:碩士 === 國立成功大學 === 工業與資訊管理學系碩博士班 === 97 === The s-t maximum flow problem is a fundamental network optimization problem which computes for the largest amount of flow sent through a network from a source node s to a sink node t. This problem often appears in many business applications as an optimization subproblem, and has been investigated extensively over the recent five decades. Conventional maximum flow algorithms either augment flow via a simple path to t, or via admissible arcs from those nodes of excess flow to their neighbors at each iteration. In this thesis, we propose three new maximum flow algorithms that ship flow via all the arcs in an admissible subnetwork composed by shortest augmenting paths at each iteration. With the intuition to ship more flow along more spacious admissible arcs at each iteration, our proposed proportional arc augmenting algorithm (PAA) calculates an augmenting-flow vector δ along all arcs in an admissible subnetwork based on the proportion of the residual capacity for each arc emanating from a node to their sum. In particular, PAA ships as much flow as possible along the augmenting-flow vector until one admissible arc is saturated, then all of its neighbor admissible arcs are saturated as well. PAA iteratively saturates at least one node at each iteration, and calculates the maximum flow in polynomial time. Several speed-up techniques are also proposed to improve the practical efficiency of PAA. In order to save more overhead than PAA in calculating a different δ while still shipping flow via all the admissible arcs at each iteration, we proposed flow splitting augmenting algorithm (FSA) which equally distributes all the flow entering a node to each of its outgoing arcs in an admissible subnetwork. FSA saturates at least one arc at each iteration, instead of one node as PAA. We also show FSA calculates the maximum flow in polynomial time. Our third algorithm, called as modified least-squares dual primal algorithm(MLSDP), exploits the least-squares primal-dual algorithm that was designed for solving LPs without degenerate pivots. In particular, the augmenting-flow vector calculated by MLSDP guarantees nondegenerate pivots at each iteration, which may lead to fewer iterations of flow augmentation than other algorithms. Instead of solving a quadratic nonnegative least squares problem for calculating an augmenting-flow vector, MLSDP solves systems of linear equations composed by Kirchhoff's circuit laws. We show the polynomial-time complexity for MLSDP, and also suggest more efficient implementation that exploits sparse matrix operations. All of our proposed maximum flow algorithms give fractional optimal flow, which can be further converted into integral optimal flow within polynomial-time by techniques based on flow decomposition. Comprehensive computational experiments have been conducted to analyze the practical efficiency of our proposed algorithms in comparison to several state-of-the-art maximum flow algorithms over several families of simulated networks. Although the results indicate our current implementations on proposed algorithms perform less efficient than the state-of-the-art preflow-push algorithms, we observe that our proposed algorithms tend to terminate in fewer iterations and make several speed-up suggestions for future research.