给定地球表面上一组 n 位置的(lat,lon)坐标,找到(lat,lon)点 c ,和值 r > 0这样 我们最大化每平方位置的密度 d 例如,在由 c 和 r 定义的圆圈描述和包含的表面区域中的英里。
起初我想也许你可以用线性编程来解决这个问题。但是,密度取决于面积取决于r的平方。二次项。所以,我认为问题不适合线性编程。
有没有一种已知的解决此类问题的方法?假设您将问题简化为笛卡尔平面上的(x,y)坐标。这会让事情变得更容易吗?
你有两个变量 c 和 r ,你试图找到它们以最大化密度,这是 c <的函数/ em>和 r (以及位置,这是一个常量)。那么爬山,梯度下降或模拟退火方法可能有用吗?你可以对你的第一个值做出很好的猜测。只需使用位置的质心。我认为从那里到达的局部最大值将是全局最大值。
答案 0 :(得分:1)
步骤:
此算法仅在您拥有如下所示的群集时才有效,因为递归探索将产生类似形状的群集:
算法会因为像这样形状笨拙的簇而失败,因为你可以看到,即使在你计算甜甜圈形状的密度时三角形的位置最密集,它们也会报告密度远低于圆形的圆[ 0,0]:
1。一个适合您的基于密度的聚类算法是DBSCAN。