Class KuhnMunkresMinimalWeightBipartitePerfectMatching<V,​E>

  • Type Parameters:
    V - the graph vertex type
    E - the graph edge type
    All Implemented Interfaces:
    MatchingAlgorithm<V,​E>

    public class KuhnMunkresMinimalWeightBipartitePerfectMatching<V,​E>
    extends java.lang.Object
    implements MatchingAlgorithm<V,​E>
    Kuhn-Munkres algorithm (named in honor of Harold Kuhn and James Munkres) solving assignment problem also known as hungarian algorithm (in the honor of hungarian mathematicians Dénes K?nig and Jen? Egerváry). It's running time $O(V^3)$.

    Assignment problem could be set as follows:

    Given complete bipartite graph $G = (S, T; E)$, such that $|S| = |T|$, and each edge has non-negative cost c(i, j), find perfect matching of minimal cost.

    Author:
    Alexey Kudinkin
    • Constructor Detail

      • KuhnMunkresMinimalWeightBipartitePerfectMatching

        public KuhnMunkresMinimalWeightBipartitePerfectMatching​(Graph<V,​E> graph,
                                                                java.util.Set<? extends V> partition1,
                                                                java.util.Set<? extends V> partition2)
        Construct a new instance of the algorithm.
        Parameters:
        graph - the input graph
        partition1 - the first partition of the vertex set
        partition2 - the second partition of the vertex set