A Genetic Algorithm Applied to the Maximum Flow Problem

A genetic algorithms is applied to find a maximum flow from the source to sink in a weighted directed graph, where the weight associated with each edge represents its flow capacity in one direction. The maximum flow problem appears to be more challenging in applying genetic algorithms than many other common graph problems because of its several unique characteristics. For example, a flow at each edge can be anywhere between zero and its flow capacity, rather than, say, a fixed distance. Also, the total inflow and outflow at each vertex must balance. In our approach, each solution is represented by a flow matrix. The fitness function is defined to reflect two characteristics - balancing vertices and the saturation rate of the flow. Starting with a population of randomized solutions, better and better solutions are sought through the genetic algorithm. Optimal or near optimal solutions are determined with a reasonable number of iterations compared to other previous GA applications.