Nabeel,
your patch is applied in trunk now :) Thanks again!

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 Sun, Jan 31, 2010 at 4:05 PM, Peter Neubauer
<[email protected]> wrote:
> 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