×

Voronoi diagram-based algorithm for efficient progressive continuous k-nearest neighbor query for moving objects

  • US 10,200,814 B1
  • Filed: 04/24/2018
  • Issued: 02/05/2019
  • Est. Priority Date: 04/24/2018
  • Status: Active Grant
First Claim
Patent Images

1. A method for performing a continuous computer-based k-nearest neighbors (kNN) query in location based services for moving objects, which outputs ordered query results in a continuous and progressive manner, comprising:

  • providing a query computing device comprising a computer readable medium comprising instructions that when executed causes at least one processor to;

    receive, by a receiving device, a continuous k-nearest neighbor (kNN) query from a querying device;

    detect, by a detecting device, an initial position, a current position, and a trajectory path of the querying device, the initial position being considered a reference point;

    continuously detect a set of interest points surrounding the querying device along the trajectory path;

    continuously map the set of interest points into a Voronoi diagram;

    store and index the set of interest points using a Voronoi R-tree (VoR-tree);

    continuously compute a set of k-nearest interest points to the querying device;

    construct a list of the k-nearest interest points, the list being ordered on each interest point'"'"'s distance from the querying device;

    partition the ordered list, a first partition containing the k-nearest interest points, and a second partition containing all adjacent neighbors of the k-nearest interest points;

    initialize a min-heap data structure to contain a plurality of split points, a split point being computed by computing a perpendicular bisector for each interest point and subsequent interest point in the ordered list and then detecting each point of intersection of each perpendicular bisector and the trajectory path, each point of intersection being a split point;

    insert each split point into the min-heap data structure in ordered pairs, a second interest point of a pair being the first interest point in a directly subsequent pair;

    maintain an order of the min-heap data structure based upon each point of intersection'"'"'s distance from the querying device;

    link each split point with its pair of interest point and subsequent interest point;

    perform steps a)-e) until a termination condition is reached;

    a) detect the querying device traversing a split point;

    b) move the position of the reference point from the initial position to a position of the traversed split point;

    c) in the list swap the position of the interest point and subsequent adjacent interest point (s 1, s2) linked to the traversed split point thereby causing the list to be ordered by the distance to the position of the traversed split point;

    d) remove from the min-heap data structure, each split point being computed using pairs (s0, s1), (s1, s2) and (s2, s3); and

    e) for each of pairs (s0, s2), (s2, s1), and (s1, s3), add to the min-heap data structure a nearest (to the reference point) intersection point of the trajectory and the perpendicular bisector of each respective pair; and

    continuously transmit the k-nearest interest points to the mobile device.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×