[mlpack] How to keep object when searching neighbors?

Li Dong dongli at lasg.iap.ac.cn
Wed Jan 15 21:36:49 EST 2014


> You can use the RangeSearch class to find all the neighbors of a tracer
> in a specified radius.

RangeSearch is exactly what I want.

> Or am I misunderstanding?  Are you trying to find the Tracer neighbors
> of the MeshCell points or the MeshCell neighbors of the Tracer points?

MeshCells is the reference dataset, and Tracer is the query point.

On 2014年1月16日, at 上午10:12, Ryan Curtin <gth671b at mail.gatech.edu> wrote:

> On Thu, Jan 16, 2014 at 09:10:06AM +0800, Li Dong wrote:
>> Hi Ryan,
>> 
>> Thank you for your thorough explanation! I will give MLPACK a try. In
>> my simulation, I need two kinds of neighbor searching:
>> 
>> Transferring information between Tracer and MeshCell. The MeshCell is
>> fixed, so I think the tree is fixed too.
>> Communication among tracers (e.g., compute physical diffusion). The
>> tree for Tracer will be changed each time step.
> 
> Yes, you can build a tree on the MeshCell points and then use it
> repeatedly for searching.  In this situation I would suggest using the
> NeighborSearch object in single-tree mode, so that no tree is built on
> the query points (the Tracer points), which will change each iteration.
> 
> Or am I misunderstanding?  Are you trying to find the Tracer neighbors
> of the MeshCell points or the MeshCell neighbors of the Tracer points?
> 
>> In addition, I need the mesh cell neighbors of a tracer that are
>> within a specified radius (say R). Actually, after finding them, I
>> also need to use some shape (or kernel) function to calculate weights.
>> Does MLPACK provide such searching without just returning K nearest
>> neighbors? Or do I need to make some changes on the template parameter
>> (NearestNeighborSearch)? Could I use the shape function directly
>> (There may be problem, since the shape function depends on the
>> tracer’s properties.)?
> 
> You can use the RangeSearch class to find all the neighbors of a tracer
> in a specified radius.
> 
> If the shape function is a metric then you can create a metric class
> using your shape function and use that, but if the shape function is
> different for each tracer that won't work.
> 
> Thanks,
> 
> Ryan
> 
> -- 
> Ryan Curtin    | "Reprogram him!"
> ryan at ratml.org |   - Master Control Program




More information about the mlpack mailing list