假设我们有少量物体和它们之间的“距离” - 是否存在一种算法,可以将这些物体适当地贴合到二维空间中的点上,以近似这些距离?
这里的困难在于,“距离”不是欧几里得空间中的距离 - 这就是为什么我们只能进行贴合/近似。
(对于那些对距离概念感兴趣的人,它是一个(有限)集合的幂集上的对称距离度量)。
假设我们有少量物体和它们之间的“距离” - 是否存在一种算法,可以将这些物体适当地贴合到二维空间中的点上,以近似这些距离?
这里的困难在于,“距离”不是欧几里得空间中的距离 - 这就是为什么我们只能进行贴合/近似。
(对于那些对距离概念感兴趣的人,它是一个(有限)集合的幂集上的对称距离度量)。
考虑到对象数量较少,您可以创建一个无向加权图,其中这些对象将成为节点,任何两个节点之间的边缘的权重对应于这两个对象之间的距离。最终会得到n*(n-1)/2 条边。
一旦图形被创建,就有很多可视化软件和与图形相对应的算法。
尝试使用三角测量方法,类似于以下步骤:
首先选取三个已知距离的物体,在任意网格上根据边长创建一个三角形。
对于每个未放置的物体,找到至少三个已放置的物体,这些物体与该物体之间的距离是已知的,使用距离/距离交点(即以固定点为圆心、半径为距离的三个圆的交点)来放置该物体。
重复以上步骤,直到所有物体都被放置或无法再放置为止。
对于未放置的物体,您可以开始另一个类似的练习,然后使用任何可用的距离来关联不同的聚类。查阅三角测量和三边测量网络以获取更多信息。
编辑: 根据下面的评论,在距离大概且包含误差元素的情况下,可以使用上述方法为每个对象建立初步坐标,然后使用最小二乘法(例如坐标变化)调整这些坐标。这也将根据需要加权距离大小。有关更详细的描述,请查看Ghilani & Wolf的相关书籍。 这非常取决于您的距离之间的差异的性质以及您希望基于这些距离在欧几里得空间中表示对象的方式。该关系需要作为任何解决方案的一部分进行建模和应用。