Hi Michael,
thanks for your answer.
I tried to use WeightedPath path = dijkstraPath.findAllPaths(startNode,
endNode);
But always one path is returned, except when there are two or more paths
with the same cost.
Instead i would like to found the firts 3 alternative path, with different
cost.
Antonio Grimaldi
Il giorno venerdì 21 marzo 2014 17:26:21 UTC+1, Antonio Grimaldi ha scritto:
>
> Hi,
> I used the Dijkstra algorithm to compute the path between two nodes in the
> graph, in this way :
>
>
> CostEvaluator<Double> costEvaluator = null;
> if(costProperty.equalsIgnoreCase(IConstants.EDGE_LENGTH_PROPERTY)){
> //In questo caso bisogna eseguire il calcolo del percorso più breve
> (minore distanza percorsa)
> costEvaluator = CommonEvaluators.doubleCostEvaluator( costProperty );
> }else if(costProperty.equalsIgnoreCase(IConstants.EDGE_SPEED_PROPERTY)){
> //In questo caso bisogna eseguire il calcolo del percorso più rapido
> (minore rapporto distanza/velocità)
> costEvaluator = new CostEvaluator<Double>() {
> @Override
> public Double getCost(Relationship relationship, Direction direction) {
> Double edgeLength = (Double)
> relationship.getProperty(IConstants.EDGE_LENGTH_PROPERTY);
> Long edgeSpeed = (Long)
> relationship.getProperty(IConstants.EDGE_SPEED_PROPERTY);
> Double cost = edgeLength / edgeSpeed;
> return cost.doubleValue();
> }
>
> };
>
> }
> PathFinder<WeightedPath> dijkstraPath =
> GraphAlgoFactory.dijkstra(PathExpanders.forTypeAndDirection(relationType,
> Direction.OUTGOING), costEvaluator);
> WeightedPath path = dijkstraPath.findSinglePath(startNode, endNode);
>
> So, I can calculate the shortest route or the quickest route by
> costProperty's
> value...
>
> Now, I need to make the same considerations, whit shortestPath algoritm,
> because I would to retrieve the first N = 3 paths found.
>
> I tried using :
> PathFinder<Path> simplePaths =
> GraphAlgoFactory.shortestPath(PathExpanders.forTypeAndDirection(relationType,
> Direction.OUTGOING), 1000000, 3);
> Iterable<Path> paths = simplePaths.findAllPaths(startNode, endNode);
>
> but this not manage my "costProperty".
>
> Is there a way to retrieve the first N = 3 paths found, whit an algoritm
> that manage "costProperty", like Dijkstra?
>
> Thanks
>
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.