Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 给定2D中的一组点和最大距离,查找中心为该集合点的簇的最小值_Algorithm_Cluster Analysis - Fatal编程技术网

Algorithm 给定2D中的一组点和最大距离,查找中心为该集合点的簇的最小值

Algorithm 给定2D中的一组点和最大距离,查找中心为该集合点的簇的最小值,algorithm,cluster-analysis,Algorithm,Cluster Analysis,给定2D中的一组点(相当小)和最大距离,找到最小数量的簇,其中对于每个簇,其中的所有点之间的距离为最大距离处的半径。簇的中心应该是这些点之一。此外,请给出每个簇内的点数 它似乎类似于k-means和这类东西,但给出了最大距离。我认为没有比测试所有可能性更好的解决方案了(最大集群数是点数)。有更好的解决方案吗?正如Anony Mouse所说,您的问题似乎与问题“相关”。使用与维基百科页面中相同的符号和术语,宇宙U是您的点集,而集合S包含|U集,每个点U在U中有一个这样的集,包含磁盘内以u为中心且半

给定2D中的一组点(相当小)和最大距离,找到最小数量的簇,其中对于每个簇,其中的所有点之间的距离为最大距离处的半径。簇的中心应该是这些点之一。此外,请给出每个簇内的点数


它似乎类似于k-means和这类东西,但给出了最大距离。我认为没有比测试所有可能性更好的解决方案了(最大集群数是点数)。有更好的解决方案吗?

正如Anony Mouse所说,您的问题似乎与问题“相关”。使用与维基百科页面中相同的符号和术语,宇宙
U
是您的点集,而集合
S
包含
|U
集,每个点
U
U
中有一个这样的集,包含磁盘内以
u
为中心且半径等于最大距离的所有点。因此,您的问题是在
S
中找到最小数量的集合(相当于找到应该是簇中心的点),这样这些集合的并集就是
U

现在,我在上面所做的是把你的问题简化为封面问题。这是错误的方向,我们希望执行减少,以表明您的问题可能是“困难的”。要实现这一点,需要证明集合覆盖问题的每个实例都可以被重新表述为您的问题的一个实例


然而,你说你有一个相当小的点集。您可以如上所述定义集合
S
,然后强制执行它(即,尝试所有可能的
S
子集合,并选择其中集合数最少的子集合,从而导致
|S
大小的指数复杂性)。关于这种方法,实际上您希望在
S
中有相当少的集合,点数并不那么重要。

您的问题可以通过使用包在R中解决。它使用Hartigan的leader算法。

对我来说,听起来更像是聚类。因此,你有一组点,你想在一些点周围画直径为D的圆,这样所有的点都在一个圆内,你想找到圆数最少的解?确切地说,在每个圆盘中,每个点都必须最大距离D(如果我们使用直径而不是半径,则可以这样做)