algorithmgraphmax-flownetwork-flowhungarian-algorithm

convert assignment problem to The Maximum Flow Problem


According to the article I read in this link, the assignment problem can be turned into a maximum flow problem under certain conditions. I know about the conversion of the minimum-cost flow problem, but I want to know from this method and under what conditions this problem becomes the maximum flow problem?


Solution

  • An assignment problem can be converted to a single maximum flow problem when all the allowed assignments have exactly the same weight. The idea is to make a bipartite graph (plus global source and sink nodes) with a capacity 1 edge between each person and each allowed task for that person and see if you can find a flow with value equal to the number of people available. If you can, then the flow represents the allocation of people to tasks.

    The article explains how a more general assignment problem can also be converted to solving a series of maximum flow problems. (The assignment problem can be converted into a minimum-cost flow problem. One method of solving a minimum-cost flow problem is the Kuhn-Munkres Algorithm. The Kuhn-Munkres Algorithm works by solving lots of maximum matching problems. Each of these maximum matching problems can be converted into a maximum-flow problem.)