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 neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.