Class KShortestPathsStAbstract

  • All Implemented Interfaces:
    KShortestPathsSt
    Direct Known Subclasses:
    KShortestPathsStBasedPathsTree

    public abstract class KShortestPathsStAbstract
    extends Object
    implements KShortestPathsSt
    Abstract class for computing the k-shortest paths in graphs.

    The class implements the interface by solving the problem on the index graph and then maps the results back to the original graph. The implementation for index graphs is abstract and left to the subclasses.

    Author:
    Barak Ugav
    • Constructor Detail

      • KShortestPathsStAbstract

        public KShortestPathsStAbstract()
        Default constructor.
    • Method Detail

      • computeKShortestPaths

        public <V,​E> List<Path<V,​E>> computeKShortestPaths​(Graph<V,​E> g,
                                                                       WeightFunction<E> w,
                                                                       V source,
                                                                       V target,
                                                                       int k)
        Description copied from interface: KShortestPathsSt
        Compute the K shortest paths from a source vertex to a target vertex.

        If g is IntGraph, the returned object is a list of IPath. If g is IntGraph, prefer to pass IWeightFunction for best performance.

        Specified by:
        computeKShortestPaths in interface KShortestPathsSt
        Type Parameters:
        V - the vertices type
        E - the edges type
        Parameters:
        g - the graph
        w - an edge weight function
        source - the source vertex
        target - the target vertex
        k - the number of shortest paths to compute
        Returns:
        k shortest paths from the source to the target, or less if there are no such k paths