当我给他一个加权图并且顶点之间的边权重指向顶点之间的距离时,是否有算法给出了图中顶点的坐标?
类似的东西:
public _ArrayOfCoordinatesForVertices_ **super_hyper_algorithm**(weighted_graph){
return _foo_;
}
答案 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,它为我创建了一个图形图像:)我可以为边缘赋予权重,如属性:边缘的权重。在圆点中,重量越重,边缘就越短,越直,越垂直。