Hi there,

I'm having performance issues with Neo4J while using GraphAlgoFactory to
find a path between two nodes. I want to calculate the cost between the two
nodes (each relation type has a different cost), with the maximum depth of
3 (paths with more length can be discarded). I'm using the findAllPaths
method, since the findShorthestPath method takes into account the path
length and not the cost associated to it. But this is not the ideal
solution, because of the performance issues I'm having.

I'm thinking about using something like the Dijkstra algorithm, but with a
maximum depth of 3. I already took a look at the Neo4J source code and
found the class *org.neo4j.graphalgo.impl.shortestpath.Dijkstra, *which I
have tried to use with limitMaxRelationShipsToTraverse set to 3. Most of
the times it doesn't found any path, and  throws the exception:
java.lang.RuntimeException: Trying to decrease to a greater key
at
org.neo4j.graphalgo.impl.util.FibonacciHeap.decreaseKey(FibonacciHeap.java:318)
at
org.neo4j.graphalgo.impl.shortestpath.DijkstraPriorityQueueFibonacciImpl.decreaseValue(DijkstraPriorityQueueFibonacciImpl.java:103)
at
org.neo4j.graphalgo.impl.shortestpath.Dijkstra$DijstraIterator.next(Dijkstra.java:393)
at
org.neo4j.graphalgo.impl.shortestpath.Dijkstra.calculate(Dijkstra.java:516)

Is this class appropriate for what I want to accomplish? I also would like
to know if this is a good solution for the discribed problem, or if there
is a better solution out there.

Best regards,
Joel Filipe Antunes Cordeiro
jkorde...@gmail.com
j...@student.dei.uc.pt
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to