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:
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
没有评论:
发表评论