给定地球表面上一组n个位置的(lat,lon)坐标,找到一个(lat,lon)点c,并且r的值大于0
我们最大化密度每平方英寸的位置。
比如说,在由c和r定义的圆所描述和包含的表面积上的英里。
一开始我以为你可以用线性规划来解决这个问题。然而,密度取决于面积取决于r的平方。二次项。所以,我认为这个问题不适合线性规划。
有没有已知的方法来解决这类问题?假设将问题简化为笛卡尔平面上的(x,y)坐标。这样做容易吗?
你有两个变量C和R,你试图找到,以便最大限度地密度,这是C和R的函数(和位置,这是一个常数)。所以也许爬山,梯度下降,或者模拟退火的方法可以奏效?你可以对你的第一个价值做出很好的猜测。只需使用位置的质心。我认为你从那里达到的最大值将是一个全球最大值。
最佳答案
步骤:
使用基于密度的聚类算法对点进行聚类1;
计算每个簇的密度;
递归(或迭代)将最密集的簇中的点分组;
算法必须忽略异常值,并使它们成为自己的一个集群。这样,所有高密度的异常值将被保留,而低密度的异常值将被淘汰。
跟踪到目前为止观测到的密度最高的星团。当您最终到达由单个点组成的簇时返回。
此算法仅当具有如下所示的群集时才起作用,因为递归探索将生成形状类似的群集:
对于这种形状不规则的簇,该算法将失败,因为正如您所看到的,即使在计算甜甜圈形状的密度时,三角形的位置最密集,但它们的密度会比以[0,0]为中心的圆低得多:
一。有一种基于密度的聚类算法对您有效,那就是DBSCAN。
关于algorithm - 从给定集中找到具有最大点密度的最小圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45616217/