2021年1月29日星期五

Grouping 2D points in minimum number of circles of varying radius

I need to group a list of 2D points into a minimum number of circles. The criteria are as follows:

  • Circles should be non-overlapping since the minimum number of circles is required.
  • The default dataset assigned each point with a unique number, which tells us the radius of circle that can cover it.
  • So a resultant circle has varying radius depending on the points that it covers. If a circle contains multiple points, the smallest radius should be used.
  • All points must be grouped, even if a circle contains only 1 point.
  • The required output is only the coordinates for the centres of all circles.

Example of the grouping result:

enter image description here

Sample input and expected output:

[pt_x pt_y radius]=[[ 1 20 12],          [cir_x cir_y]=[[ 7 13],                      [ 3 21 12],                         [20  4],                      [ 7 13  9],                         [26 27],                      [15 13  9],                         [42 17],                      [10  6 10],                         [50 29]]                      [17  6  7],                      [19  5  8],                      [26 23  7],                      [24 26  8],                      [26 27  6],                      [26 30 10],                      [36  9 13],                      [48 25 11],                      [49 10 14],                      [35 23 12],                      [42 17 11],                      [49 27  4]]  

The radius varies with the location of point xy, but it is not a function derived from xy (it is the range that can be covered by a sensor at point xy).

What is the clustering algorithm best-suited for my application? And what are the modifications that I need to make? Thanks in advance :)

https://stackoverflow.com/questions/65963495/grouping-2d-points-in-minimum-number-of-circles-of-varying-radius January 30, 2021 at 08:35AM

没有评论:

发表评论