How does space partitioning algorithm for finding nearest neighbors work?

烈酒焚心 提交于 2019-12-22 07:44:11

问题


For finding the nearest neighbor, Space Partitioning is one of the algorithms. How does it work?

Suppose I have a 2D set of points (x and y coordinates), and I am given a point (a,b). How would this algorithm find out the nearest neighbor?


回答1:


Spacial partitioning is actually a family of closely related algorithms that partition space so that applications can process the points or polygons easier.

I reckon there are many ways to solve your problem. I don't know how complex you are willing to build your solution. A simple way would probably to build a binary tree cutting the space into 2. All the points divided between some middle plane. Build your tree by subdividing recursively until you run out of points.

Searching for the nearest neighbor will then be optimized, because each traversal of the tree narrows down the search area.

In some literature, they call this a kd tree




回答2:


These two videos should help:

  • Explaining how a KD tree is built up: http://www.youtube.com/watch?v=T9h2KKJ_Pl8
  • Explaining how to perform nearest neighbour search: http://www.youtube.com/watch?v=2SbVSxWGtpI


来源:https://stackoverflow.com/questions/1713736/how-does-space-partitioning-algorithm-for-finding-nearest-neighbors-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!