Nabeel,
the patch looks good, will apply it and test a bit hopefully tonight,
so you can find it in trunk tomorrow... thanks for the work!

Cheers,

/peter neubauer

COO and Sales, Neo Technology

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org                - Your high performance graph database.
http://gremlin.tinkerpop.com    - The terminal to the Giant Global Graph.



On Wed, Jan 27, 2010 at 2:45 PM, Nabeel Siddiqui
<[email protected]> wrote:
> Hi Peter
> Ideally I would like to stop traversal as soon as the max. cost limit is 
> reached as we know there are no negative edges. That would probable be good 
> performance-wise for huge graphs. Attached is a patch for my attempt at 
> implementing the cost limit option. Its not thoroughly tested though I have 
> added some tests as well that pass. But it would be great of it can be tested 
> a little more if you decide to apply it.
>
> Let me know what you think.
>
> Regards
> Nabeel Mukhtar
>
>
>
> ----- Original Message ----
> From: Peter Neubauer <[email protected]>
> To: Neo user discussions <[email protected]>
> Sent: Wed, January 27, 2010 3:29:06 AM
> Subject: Re: [Neo] Cost limit option in Dijkstra Algorithm
>
> Nabeel,
> you are right, this is not going to work. I am prepared to take out
> the cost evaluation again since I don't want to have non-working code
> in there, and have no time to figure this out right now.
>
> Is that ok with you, or would you like to figure out a better place to
> put the cost evaluation, maybe after a shortest path has been found in
> order to exclude it and continue or be done if it is cheaper than
> maxCost? I that case I wil be happy to apply a patch...
>
> Cheers,
>
> /peter neubauer
>
> COO and Sales, Neo Technology
>
> GTalk:      neubauer.peter
> Skype       peter.neubauer
> Phone       +46 704 106975
> LinkedIn   http://www.linkedin.com/in/neubauer
> Twitter      http://twitter.com/peterneubauer
>
> http://www.neo4j.org                - Your high performance graph database.
> http://gremlin.tinkerpop.com    - PageRank in 2 lines of code.
>
>
>
> On Tue, Jan 26, 2010 at 10:06 AM, Nabeel Siddiqui
> <[email protected]> wrote:
>> Hi all
>> Thanks Peter for adding a cost limit option to the Dijkstra algorithm in the 
>> graph algo package. However for some reason I could not make it to work as I 
>> expected.
>> I see you have added some tests in FindPathTest#testMaxCost method (which is 
>> given below):
>>    public void testMaxCost()
>>    {
>>        graph.makeEdge( "a", "b", "cost", (double) 1 );
>>        graph.makeEdge( "a", "c", "cost", (double) 1 );
>>        graph.makeEdge( "c", "d", "cost", (double) 1 );
>>        graph.makeEdge( "b", "d", "cost", (double) 1 );
>>        FindPath findPath = new FindPath( graph.getNode( "a" ), graph
>>                .getNode( "d" ), 0, Direction.OUTGOING, MyRelTypes.R1 );
>>        List<List<PropertyContainer>> paths = findPath.getPaths();
>>        assertTrue( paths.isEmpty() );
>>        assertNull( findPath.getCost() );
>>        findPath = new FindPath( graph.getNode( "a" ), graph
>>                .getNode( "d" ), 1, Direction.OUTGOING, MyRelTypes.R1 );
>>        assertTrue( findPath.getCost() == 2 );
>>        assertTrue( findPath.getPathAsNodes().size() == 3 );
>>        assertTrue( findPath.getPathAsRelationships().size() == 2 );
>>    }
>>
>> However I expect the second test to fail as the maximum cost specified is 1 
>> but the cost from a to d is greater than 1. So no paths should be returned. 
>> Interestingly If I add another edge:
>>        graph.makeEdge( "d", "e", "cost", (double) 1 );
>>
>> And search from a to e with max cost 1, it still returns the paths although 
>> it should return empty list as the cost from a to e is obviously greater 
>> than 1. What am I doing wrong?. As far as I know, the max cost check inside 
>> DijstraIterator may not work as the algorithm uses two simultaneous 
>> iterators and the total cost of both traversals may exceed the limit while 
>> the individual cost is still under limit.
>>
>> I have attached a patch with the added test that fails.
>> Also it would be great to rename the test sub-package from shortestPath to 
>> shortestpath (same as the source package) because it creates problems in 
>> eclipse when both src and test are in the source path.
>>
>> Thanks for your help.
>>
>> Regards
>> Nabeel Mukhtar
>>
>>
>>
>>
>> _______________________________________________
>> Neo mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>>
> _______________________________________________
> Neo mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
>
>
>
> _______________________________________________
> Neo mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
>
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to