Interface MatchingAlgo

    • Method Detail

      • computeMaximumMatching

        <V,​E> Matching<V,​E> computeMaximumMatching​(Graph<V,​E> g,
                                                               WeightFunction<E> w)
        Compute the maximum weighted matching of a weighted undirected graph.

        To compute the maximum cardinality (non weighted) matching, pass null instead of the weight function w.

        If g is IntGraph, the returned object is IMatching.

        Type Parameters:
        V - the vertices type
        E - the edges type
        Parameters:
        g - an undirected graph
        w - an edge weight function
        Returns:
        the computed matching
        Throws:
        IllegalArgumentException - if g is a directed graph
      • computeMinimumMatching

        <V,​E> Matching<V,​E> computeMinimumMatching​(Graph<V,​E> g,
                                                               WeightFunction<E> w)
        Compute the minimum weighted matching of a weighted undirected graph.

        If g is IntGraph, the returned object is IMatching.

        Type Parameters:
        V - the vertices type
        E - the edges type
        Parameters:
        g - an undirected graph
        w - an edge weight function
        Returns:
        the computed matching
        Throws:
        IllegalArgumentException - if g is a directed graph
      • computeMaximumPerfectMatching

        <V,​E> Matching<V,​E> computeMaximumPerfectMatching​(Graph<V,​E> g,
                                                                      WeightFunction<E> w)
        Compute the maximum perfect matching of a weighted undirected graph.

        A perfect matching in which each vertex has an adjacent matched edge is assumed to exist in the input graph, and if no such matching exist the behavior is undefined.

        To compute the maximum cardinality (non weighted) perfect matching, pass null instead of the weight function w.

        If g is IntGraph, the returned object is IMatching.

        Type Parameters:
        V - the vertices type
        E - the edges type
        Parameters:
        g - an undirected graph
        w - an edge weight function
        Returns:
        the computed perfect matching
        Throws:
        IllegalArgumentException - if g is a directed graph
      • computeMinimumPerfectMatching

        <V,​E> Matching<V,​E> computeMinimumPerfectMatching​(Graph<V,​E> g,
                                                                      WeightFunction<E> w)
        Compute the minimum perfect matching of a weighted undirected graph.

        A perfect matching in which each vertex has an adjacent matched edge is assumed to exist in the input graph, and if no such matching exist the behavior is undefined.

        To compute the maximum cardinality (non weighted) matching, pass null instead of the weight function w. Note that this is equivalent to computeMaximumPerfectMatching(Graph, WeightFunction).

        If g is IntGraph, the returned object is IMatching.

        Type Parameters:
        V - the vertices type
        E - the edges type
        Parameters:
        g - an undirected graph
        w - an edge weight function
        Returns:
        the computed perfect matching
        Throws:
        IllegalArgumentException - if g is a directed graph
      • newInstance

        static MatchingAlgo newInstance()
        Create a new matching algorithm object.

        This is the recommended way to instantiate a new MatchingAlgo object. The MatchingAlgo.Builder might support different options to obtain different implementations.

        Returns:
        a default implementation of MatchingAlgo