Hi Peter, The test case could be:
clique A ---> node c ---> clique B Clique means SCC, like all connected graph. node c is a SCC, if we assume a node can reach itself. Actually, an extreme case could be: node a ---> node b ---> node c each node is a SCC. *Best Regards,* *ZhiQiang ZHAO* On Wed, Jul 29, 2015 at 3:24 AM, Peter <[email protected]> wrote: > Hi ZhiQiang, > > the examples you show are SCC of only 1 node, but the original example is > not a SCC I think, as you have an outgoing and an incoming edge. So I guess > this is a bug or something. Maybe you can provide a failing and small unit > test for this so that I can have a look? > > Also the step 4 is indeed only for informational purposes but will print > new information if the step 3 changed the subnetworks. > > Regards, > Peter > > > On 29.07.2015 11:44, John Zhao wrote: > > Hi Peter, > > There are a lot of SCC with only 1 node, like: > http://www.openstreetmap.org/node/1707762331 > http://www.openstreetmap.org/node/386885888 > http://www.openstreetmap.org/node/364825950 > > Step 4 is only to findSubnetwork(), and print some info, not removal > them. > So, step 4 is optional. > > Now I only understand why this happen. :( > > > *Best Regards,* > *ZhiQiang ZHAO* > > On Wed, Jul 29, 2015 at 2:28 AM, Peter <[email protected]> wrote: > >> Hi ZhiQiang, >> >> > And the http://www.openstreetmap.org/node/678314919 itself is a SCC. >> size is 1. >> >> It shouldn't be a SCC im my opinion - is there a bug? >> If it is not a bug - do you have a suggestion for this, like avoiding >> step 4? >> >> Regards, >> Peter >> >> >> >> On 29.07.2015 11:18, John Zhao wrote: >> >> Hi Peter, >> >> The parameter I set are minOnewayNetworkSize = 20, minNetworkSize = 200 >> >> on step 3, despite the node http://www.openstreetmap.org/node/678314919, >> the inside island is a SCC, and the size is larger than 20. >> So, this island is kept, instead of removal. >> And the http://www.openstreetmap.org/node/678314919 itself is a SCC. >> size is 1. Then it was removed. >> >> Then on step 4, the island is recognized as a subnetwork, which has >> size less than 200. >> >> *Best Regards,* >> *ZhiQiang ZHAO* >> >> On Wed, Jul 29, 2015 at 1:04 AM, Peter <[email protected]> wrote: >> >>> Hi ZhiQiang, >>> >>> you mean the oneway procedure (step 3) removes nodes+edges leading to >>> further normal subnetwork removal in step 4? This should not happen. The >>> subnetwork should be removed already in step 3. >>> >>> > On step 2, although there is a gate >>> http://www.openstreetmap.org/node/703042503 >>> > on http://www.openstreetmap.org/way/6374339 >>> > And gate block that edge. >>> >>> Because of this gate the island is a oneway subnetwork (!) and should >>> get entirely removed in step 2 IMO. >>> >>> > On step 3, a very important point are removed due to oneway >>> >>> If just one edge/node is removed there is something wrong. The whole >>> island should be removed. >>> >>> Kind Regards, >>> Peter >>> >>> >>> On 29.07.2015 09:50, John Zhao wrote: >>> >>> Hi Peter, >>> >>> I know the difference between subnetworks and oneway-subnetworks. >>> I am talking about the step 2 and step 4, not step 3. >>> >>> step 2 and step 4 are both findSubnetwork() with the same parameter. >>> minOnewayNetworkSize = 20, minNetworkSize = 200 >>> >>> I think I figure out why this discrepancy occurs. >>> One case is a island in SF bay area. The island has 2 oneway roads >>> connected to the main network. >>> http://www.openstreetmap.org/way/53726398 >>> http://www.openstreetmap.org/way/6374339 >>> >>> On step 2, although there is a gate >>> http://www.openstreetmap.org/node/703042503 on >>> http://www.openstreetmap.org/way/6374339 >>> And gate block that edge. >>> The other oneway is connected http://www.openstreetmap.org/way/53726398. >>> So, this island is connected to the whole network. >>> >>> On step 3, a very important point are removed due to oneway: >>> http://www.openstreetmap.org/node/678314919 >>> >>> Then on step 4, the island are not connected to the main network. >>> >>> *Best Regards,* >>> *ZhiQiang ZHAO* >>> >>> On Tue, Jul 28, 2015 at 11:12 PM, Peter <[email protected]> wrote: >>> >>>> Hi ZhiQiang, >>>> >>>> hmmh, not sure if I understand what is unknown at your side. >>>> >>>> Subnetworks are different things than oneway-subnetworks. For example >>>> 4-5 is a oneway subnetwork if connect with a oneway to the main graph only: >>>> mainGraph->4-5 >>>> >>>> And this cannot be detected in step 2. >>>> >>>> Please have a look at the unit tests to see more examples for the >>>> different scenes >>>> >>>> Regards, >>>> Peter >>>> >>>> >>>> On 28.07.2015 20:05, John Zhao wrote: >>>> >>>> Hi Peter, >>>> >>>> the result I posted is not the result of oneway-subnetwork procedure. >>>> >>>> The total procedures include: >>>> 1. remove zero-degree node >>>> 2. findSubnetwork >>>> 3. oneway-subnetwork procedure >>>> 4. findSubnetwork again on graphhopper.cleanup() >>>> >>>> My question is, why those islands are recognized on step 4, but not >>>> on step 2? >>>> >>>> >>>> >>>> *Best Regards,* >>>> *ZhiQiang ZHAO* >>>> >>>> On Tue, Jul 28, 2015 at 12:02 AM, Peter <[email protected]> wrote: >>>> >>>>> Hi ZhiQiang, >>>>> >>>>> I think it is because both networks are oneway subnetworks not found >>>>> by the normal subnetwork procedure (but by the oneway-subnetwork >>>>> procedure) >>>>> and you defined the oneway minimum size to 20 >>>>> >>>>> Regards, >>>>> Peter >>>>> >>>>> >>>>> On 28.07.2015 03:13, John Zhao wrote: >>>>> >>>>> Hi Peter, >>>>> >>>>> What I do is: >>>>> 1. minOnewayNetworkSize = 20, minNetworkSize = 200 >>>>> 2. build san francisco bay area osm data >>>>> 3. I print out the subnetworks result of the second call. >>>>> >>>>> int remainingSubnetworks = preparation.findSubnetworks().size(); >>>>> >>>>> 4. I found the subnetwork has some smaller than 200, like: >>>>> >>>>> subnetwork start from: 37.32611992939085,-121.9961998312816 size: 24 >>>>> >>>>> subnetwork start from: 37.78373608999855,-122.25065187925067 size: 34 >>>>> >>>>> 5. I can't understand why the subnetworks with 24 nodes and 34 nodes are >>>>> not removed by preparation.doWork(); >>>>> >>>>> It call the same method: >>>>> >>>>> Map map = this.findSubnetworks(); >>>>> >>>>> >>>>> *Best Regards,* >>>>> *ZhiQiang ZHAO* >>>>> >>>>> On Mon, Jul 27, 2015 at 12:54 PM, Peter <[email protected]> wrote: >>>>> >>>>>> Hi John, >>>>>> >>>>>> sorry, I do not understand your problem or question here. Would you >>>>>> describe it again step by step for me :) ? >>>>>> >>>>>> Kind Regards, >>>>>> Peter >>>>>> >>>>>> >>>>>> On 27.07.2015 21:45, John Zhao wrote: >>>>>> >>>>>> Hi Peter, >>>>>> >>>>>> Thanks. >>>>>> Actually I only have 1 flagEncoder in the EncodingManager. >>>>>> The call is exact same, preparation.findSubnetworks() >>>>>> >>>>>> preparation.findSubnetworks() using edgeFilter which is also from >>>>>> singleEncoder. >>>>>> >>>>>> >>>>>> *Best Regards,* >>>>>> *ZhiQiang ZHAO* >>>>>> >>>>>> On Sun, Jul 26, 2015 at 7:56 AM, Peter <[email protected]> wrote: >>>>>> >>>>>>> Hi John, >>>>>>> >>>>>>> it should not be related to calling these method twice. It is just >>>>>>> one time where you calculate the subnetworks independent of any >>>>>>> FlagEncoder >>>>>>> or direction via findSubnetworks and the second pass is FlagEncoder- and >>>>>>> access-dependent via removeDeadEndUnvisitedNetworks. >>>>>>> >>>>>>> Regards, >>>>>>> Peter >>>>>>> >>>>>>> >>>>>>> On 24.07.2015 21:16, John Zhao wrote: >>>>>>> >>>>>>> Hi Peter, >>>>>>> >>>>>>> I am still confused. >>>>>>> at first we call >>>>>>> map = findSubnetworks(); >>>>>>> >>>>>>> after the cleanup, we call the same method in Graphhopper. >>>>>>> >>>>>>> int remainingSubnetworks = preparation.findSubnetworks().size(); >>>>>>> >>>>>>> Why the subnetwork was recognized the latter time, but not the first >>>>>>> time? >>>>>>> >>>>>>> we remove some edges make it not connected? >>>>>>> >>>>>>> >>>>>>> *Best Regards,* >>>>>>> *ZhiQiang ZHAO* >>>>>>> >>>>>>> On Thu, Jul 23, 2015 at 2:22 PM, Peter <[email protected]> wrote: >>>>>>> >>>>>>>> >>>>>>>> Hi ZhiQiang, >>>>>>>> >>>>>>>> yes, according to the wiki this is wrongly mapped: >>>>>>>> * Avoid tagging highway intersections as that does not make clear >>>>>>>> which way has the impediment. * >>>>>>>> >>>>>>>> http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate >>>>>>>> >>>>>>>> Peter >>>>>>>> >>>>>>>> >>>>>>>> On 23.07.2015 23:16, John Zhao wrote: >>>>>>>> >>>>>>>> Hi Peter, >>>>>>>> >>>>>>>> Maybe the following one related with >>>>>>>> https://github.com/graphhopper/graphhopper/issues/388#issuecomment-88066385 >>>>>>>> >>>>>>>> >>>>>>>> I have a look at 37.32611992939085,-121.9961998312816. >>>>>>>> It seesm related with barrier=gate at intersection. >>>>>>>> http://www.openstreetmap.org/node/1126492194 >>>>>>>> >>>>>>>> *Best Regards,* >>>>>>>> *ZhiQiang ZHAO* >>>>>>>> >>>>>>>> On Thu, Jul 23, 2015 at 2:11 PM, Peter <[email protected]> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> There are two types of subnetworks and the smaller ones seems to >>>>>>>>> be 'one-way subnetworks' which means they are eg. only reachable as >>>>>>>>> destination or start. But if you would start from a destination-only >>>>>>>>> subnetwork you'll get 'not found' for all points outside of this >>>>>>>>> network. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Peter >>>>>>>>> >>>>>>>>> >>>>>>>>> On 23.07.2015 23:03, John Zhao wrote: >>>>>>>>> >>>>>>>>> Interesting, >>>>>>>>> when I increase minOnewayNetworkSize from 20 to 50, the following >>>>>>>>> two disappeared. >>>>>>>>> subnetwork start from: 37.32611992939085,-121.9961998312816 >>>>>>>>> size: 24 >>>>>>>>> subnetwork start from: 37.78373608999855,-122.25065187925067 >>>>>>>>> size: 34 >>>>>>>>> >>>>>>>>> *Best Regards,* >>>>>>>>> *ZhiQiang ZHAO* >>>>>>>>> >>>>>>>>> On Thu, Jul 23, 2015 at 1:55 PM, John Zhao <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I tried car flag encoder with following parameter on San >>>>>>>>>> Francisco bay area data from mapzen. >>>>>>>>>> >>>>>>>>>> https://s3.amazonaws.com/metro-extracts.mapzen.com/san-francisco-bay_california.osm.pbf >>>>>>>>>> >>>>>>>>>> minNetworkSize=200 >>>>>>>>>> minOnewayNetworkSize=20 >>>>>>>>>> >>>>>>>>>> I printed all the remaining subnetworks. >>>>>>>>>> edges: 591932, nodes 437420, there were 3496 subnetworks. >>>>>>>>>> removed them => 13121 less nodes. Remaining subnetworks:5 >>>>>>>>>> The remaining subnetworks are: >>>>>>>>>> subnetwork start from: 37.32611992939085,-121.9961998312816 size: >>>>>>>>>> 24 >>>>>>>>>> subnetwork start from: 37.56018439442332,-122.30257814308803 >>>>>>>>>> size: 436637 >>>>>>>>>> subnetwork start from: 37.78373608999855,-122.25065187925067 >>>>>>>>>> size: 34 >>>>>>>>>> subnetwork start from: 38.180185962770565,-121.70631393878864 >>>>>>>>>> size: 301 >>>>>>>>>> subnetwork start from: 37.85717050411933,-122.07633641532816 >>>>>>>>>> size: 424 >>>>>>>>>> >>>>>>>>>> I don't understand why there is still subnetwork less than 200 >>>>>>>>>> nodes. >>>>>>>>>> >>>>>>>>>> I have a look at 37.32611992939085,-121.9961998312816. >>>>>>>>>> It seesm related with barrier=gate at intersection. >>>>>>>>>> http://www.openstreetmap.org/node/1126492194 >>>>>>>>>> >>>>>>>>>> *Best Regards,* >>>>>>>>>> *ZhiQiang ZHAO* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >> > > _______________________________________________ > GraphHopper mailing list > [email protected] > https://lists.openstreetmap.org/listinfo/graphhopper > >
_______________________________________________ GraphHopper mailing list [email protected] https://lists.openstreetmap.org/listinfo/graphhopper
