二维拟合抽象距离的算法

时间:2012-02-07 16:41:08

标签: algorithm geometry visualization computational-geometry data-visualization

假设我们被赋予了少量的物体和它们之间的“距离” - 有什么算法可以将这些物体以近似这些距离的方式拟合到二维空间中的点上?

这里的困难在于“距离”不是欧几里德空间的距离 - 这就是为什么我们只能拟合/近似。

(对于那些对距离概念准确感兴趣的人,它是(有限)集的幂集上的对称距离度量。)

3 个答案:

答案 0 :(得分:1)

鉴于对象的数量很少,您可以创建一个无向加权图,其中这些对象是节点,任意两个节点之间的边的权重对应于这两个对象之间的距离。最终得到n *(n-1)/ 2个边。

创建图表后,有很多可视化软件和算法与图形相对应。

答案 1 :(得分:0)

尝试三角测量方法,就像这样;

  • 首先取三个物体之间已知距离,然后根据边长在任意网格中创建一个三角形。

  • 对于尚未放置的每个其他对象,找到至少已放置已知距离的其他三个对象,并使用这些距离使用距离/距离交叉点放置对象(即交叉点)三个圆的点以固定点为中心,距离的半径为

  • 重复直到放置完所有物体,或者不再放置任何物体。

对于未放置的对象,您可以启动另一个类似的练习,然后使用任何可用的距离来关联单独的群集。查看三角测量和三边测量网络以获取更多信息。

编辑根据下面的评论,如果距离是近似值并包含误差元素,则上述方法可用于为每个对象建立临时坐标,然后这些坐标可能是使用最小二乘法进行调整,例如variation of coordinates这也可以根据需要根据其大小来加权距离。有关更详细的说明,请查看Ghilani & Wolf's book on the subject。这在很大程度上取决于您的距离之间的差异性质以及您希望基于这些距离在欧几里得空间中表示对象的方式。这种关系需要建模并作为任何解决方案的一部分加以应用。

答案 2 :(得分:0)

这是Multidimensional Scaling的示例,或更一般地说,Nonlinear dimensionality reduction。有相当数量的工具/库可供使用(参见列表的第二个链接)。