Research Article

Efficient Shared Execution Processing of k-Nearest Neighbor Joins in Road Networks

Algorithm 3

.
Input: : number of inner objects retrieved for an outer object, : outer segment, : set of inner objects
Output: : set of ordered pairs of outer object and inner object
(1)if then              // denotes that contains only an outer object , that is,
(2)       ⁡⁡   // kNN query from is performed and its result is saved to
(3)       ⁡⁡⁡   // a partial join result for is generated from
(4)return          ⁡    ⁡⁡ // a partial join result for is returned
(5)else if then           ⁡ // denotes that contains only two outer objects and
(6)        ⁡⁡  // kNN query from is performed, and its result is saved to
(7)        ⁡⁡⁡  // a partial join result for is generated from
(8)      ⁡    // kNN query from is performed, and its result is saved to
(9)       ⁡   // a partial join result for is generated from
(10)return         ⁡ ⁡  // the union of the partial join results for and is returned
(11)else if then          ⁡⁡  // denotes that contains more than three outer objects
(12)        ⁡⁡  // kNN query from is performed, and its result is saved to
(13)       ⁡⁡⁡   // a partial join result for is generated from
(14)       ⁡   // kNN query from is performed, and its result is saved to
(15)      ⁡    // a partial join result for is generated from
(16)        ⁡   // inner objects located in are retrieved
(17)for each outer object do  // k NNs of outer objects are retrieved from
(18)    ⁡⁡// is explained in Algorithm 4
(19)             // a partial join result for is generated from
(20)return      // the union of the partial join results for is returned