From: Babua on
On Apr 17, 6:20 pm, king...(a)freemail.it wrote:
> On 17 Apr, 13:09, Babua <pin...(a)iitg.ernet.in> wrote:
>
>
>
>
>
> > On Apr 17, 2:29 pm, king...(a)freemail.it wrote:
>
> > > Hi,
>
> > > i've a set S of points in R^n (a vector of n real numbers, where n, in
> > > pratical applications, is between 10 and 60). The number of points is
> > > in the order of 10^5, 10^6. I would like organize the points in an
> > > efficient search tree. The most important operation that i would like
>
> > You have to use mth-order Voronoi diagram for the set S. There
> > are different ways to compute this diagram either by lifting or
> > by superimposing lower order Voronoi diagrams. Also you
> > also have to preprocess that structure for point location query
> > to determine the m-nearest points of the query point P.
>
> > Thanks.
>
> > --- Pinaki
>
> > ===============================================
>
> > > to do is finding the nearest neighbour point (that is, give a point
> > > P=(a1,...,ak), tell me which is the first m nearest points in the set
> > > S to P). P does not necessarely belong to S.
>
> > > For n=2,3 i know that there are quadtrees and octrees. For k>3 i've
> > > read about kd-trees, but i'm not sure if k represents the
> > > dimensionality of the points (that is, k = n) or the number of points
> > > per node...
>
> > > If kd-trees are suitable for a multidimensional problem, are they
> > > efficient? Are there any other data structures that i can use to solve
> > > the problem?
> > > Thank you.
>
> Can you be more specific and/or point out some references?- Hide quoted text -
>
> - Show quoted text -

You can get details about higher order voronoi diagrams from any
Computational
Geometry standard text. The only problem here is the the preprocessing
step.
For 2d problem you can use planar point location preprocessing. But in
higher
dimensions the combinatorial complexity of higher order voronoi diagrm
may be
large. Like the combinatorial complexity of 1st order Voronoi diagram
is O(n^2)
in 3D. Of course you can superimpose an orthogonal d-dimensional grid
over the
structure and do the preprocessing to answer the query. But the
approach may
not be very efficient.

Thanks.

--- Pinaki

============================================================

From: mayur on
On Apr 17, 2:29 pm, king...(a)freemail.it wrote:
> Hi,
>
> i've a set S of points in R^n (a vector of n real numbers, where n, in
> pratical applications, is between 10 and 60). The number of points is
> in the order of 10^5, 10^6. I would like organize the points in an
> efficient search tree. The most important operation that i would like
> to do is finding the nearest neighbour point (that is, give a point
> P=(a1,...,ak), tell me which is the first m nearest points in the set
> S to P). P does not necessarely belong to S.
>
> For n=2,3 i know that there are quadtrees and octrees. For k>3 i've
> read about kd-trees, but i'm not sure if k represents the
> dimensionality of the points (that is, k = n) or the number of points
> per node...
>
> If kd-trees are suitable for a multidimensional problem, are they
> efficient? Are there any other data structures that i can use to solve
> the problem?
> Thank you.

kd-trees are good for nearest-neighbour queries in the approximate
sense. There's a paper on approximate nearest-neighbour searching
using kd-trees.

http://theory.stanford.edu/~rinap/papers/nnsqualpods.ps

Also look at this standard text-book description: -
http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE188.HTM


thanks,
mayur