【发布时间】:2013-07-19 18:04:55
【问题描述】:
我有一个加权邻接列表,其中权重是顶点之间的距离。我想通过将每个顶点转换为 x、y 坐标来可视化这一点。
是否有一种算法会采用此邻接列表并在 2D 空间中绘制,以使图形与列表一致(即所有图形线的长度都是距离权重规定的长度)?
【问题讨论】:
我有一个加权邻接列表,其中权重是顶点之间的距离。我想通过将每个顶点转换为 x、y 坐标来可视化这一点。
是否有一种算法会采用此邻接列表并在 2D 空间中绘制,以使图形与列表一致(即所有图形线的长度都是距离权重规定的长度)?
【问题讨论】:
一般来说,答案是否定的,您不能在精确保留距离的同时在 2d 中绘制 general 图。
原因是为了能够在不扭曲距离的情况下嵌入图形,距离必须具有非常特殊的属性。例如,他们必须满足triangle inequality 等条件。
要查看这一点,请考虑具有 3 个顶点 A、B、C 且距离 d(A,B)=1 d(B,C)=2 d(A,C)=5 的图。您可以很容易地看到这不起作用。事实上,无论维度如何,您都无法将其嵌入到 ANY 欧几里得空间中!
您可以执行以下操作:尝试使用PCA 之类的算法来降低维度(将图形嵌入到二维空间中)。 PCA 被广泛使用,您可以轻松找到任何您喜欢的编程语言的实现。它会给你一些二维的表示,但不能保证保持距离。但是,如果您的图表恰好具有与 2D 嵌入一致的距离,PCA 可以找到它。
顺便说一句,将 PCA 直接应用于距离有时称为 Multidimensional Scaling (MDS)。
【讨论】: