绘制一个图形,其中顶点之间的距离对应于边缘权重

时间:2011-03-31 08:52:22

标签: algorithm graph drawing euclidean-distance

当我给他一个加权图并且顶点之间的边权重指向顶点之间的距离时,是否有算法给出了图中顶点的坐标?

类似的东西:

public _ArrayOfCoordinatesForVertices_ **super_hyper_algorithm**(weighted_graph){  
     return _foo_;  
}

4 个答案:

答案 0 :(得分:4)

这通常是不可能的:想象一下有3个节点n1,n2和n3的图形。

现在考虑以下距离:

n1-n2: 4
n1-n3: 1
n2-n3: 1

(这违反了三角形不平等)。

答案 1 :(得分:2)

你所指的是Multidimensional scaling (MDS),你应该找到很多实现,现在你知道如何搜索它。

像其他人所说的那样,在某种程度上,在不违反某些约束条件(点之间的距离)的情况下绘制完美的图形是不可能的。 MDS算法专门用于最大限度地减少此类违规行为。

答案 2 :(得分:0)

如果在Euclidean Space中绘制图表,则无法执行此操作,因为正如this answer中所指出的那样,您可能会违反Triangle Inequality

通常,您可以通过使用不同的颜色(即通过将权重映射到颜色图)或通过使用不同的边缘厚度(即通过将权重映射到厚度比例)来可视地表示边的权重。

答案 3 :(得分:0)

好的我找到了library的python,它为我创建了一个图形图像:)我可以为边缘赋予权重,如属性:边缘的权重。在圆点中,重量越重,边缘就越短,越直,越垂直。