Research Article
Supporting Continuous Skyline Queries in Dynamically Weighted Road Networks
Algorithm 2
Compute the distance between two vertices in a hub graph.
| input source vertex s and destination vertex t | | output d(s,t) | | Steps: | | to reducer: | | S.include(s); // define set S,add s to S | | T=V-S; // set V include all vertices in the road network | | while(T) | | R=GetNeighborRoute(s,S,T); // find all routes between s and neighbor vertices of S in T as R | | foreach r in R | | if r. ConVedgeNum>=2 | | R.delete(r); // if r contains more than 2 adjacent virtual edges, delete r from R | | continue(); | | else if r. VedgeNum>=1 | | r. Vedges.get(); // if r contains virtual edge,sent this virtual edge into input cache of mapper | | r.length.compute(); // compute length of r | | r=R.GetShortest(); // pick the shortest route,add its ends to S | | S.include(r.end); | | T.delete(r.end); | | if(r.end==t) // return result when reaches destination t | | return r.length; | | to mapper: | | Vedge.get(); // get virtual edges from input cache | | Vedge.length=GetLength(Vedge.id); | | Vedge.sent(); // sent length of virtual edges into output cache |
|