Class MartinShortestPath<V,​E>

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

    public class MartinShortestPath<V,​E>
    extends Object
    Martin's algorithm for the multi-objective shortest paths problem.

    Martin's label setting algorithm is a multiple objective extension of Dijkstra's algorithm, where the minimum operator is replaced by a dominance test. It computes a maximal complete set of efficient paths when all the cost values are non-negative.

    Note that the multi-objective shortest path problem is a well-known NP-hard problem.

    Author:
    Dimitrios Michail
    • Field Detail

      • graph

        protected final Graph<V,​E> graph
        The underlying graph.
    • Constructor Detail

      • MartinShortestPath

        public MartinShortestPath​(Graph<V,​E> graph,
                                  Function<E,​double[]> edgeWeightFunction)
        Create a new shortest path algorithm
        Parameters:
        graph - the input graph
        edgeWeightFunction - the edge weight function