使用距离度量制作完全连接的图形

时间:2013-07-25 15:18:36

标签: algorithm graph graph-algorithm

假设我有一系列数千个节点。对于每对节点,我有一个距离度量。该距离度量可以是物理距离(比如每个节点的x,y坐标)或使节点相似的其他事物。

每个节点最多可以连接N个其他节点,其中N很小 - 比如说6。

如何构建完全连接的图形(例如,我可以在图形边缘之后的任意两个节点之间移动),同时最小化所有图形节点之间的总距离。

这就是我不想要一个图表,其中任何遍历的总距离被最小化,但是对于任何节点,所有链接与该节点的总距离最小化。

我不需要绝对最小值 - 因为我认为这可能是NP完全 - 但是获得接近真正绝对最小值的图表的相对有效的方法。

2 个答案:

答案 0 :(得分:0)

我建议使用贪婪的启发式方法来选择边缘,直到所有顶点都有6个邻居。例如,从最小生成树开始。然后,对于一些随机顶点对,找到它们之间的最短路径,其中最多使用一个未选择的边缘(使用Dijkstra算法对具有所选边缘的图形的两个副本,由未选择的边缘连接)。然后选择总共产生最大距离减小的边缘。

答案 1 :(得分:0)

您可以使用内核仅为特定截止距离下的节点创建边。

  • 如果您想要非加权边您可以简单地使用基本截止开头。如果d(v1,v2)<(d1,v2,v2),则在2点之间添加边。 [R

    您可以调整截止R以获得节点之间正确的平均边数。

  • 如果您想要加权图,首选内核通常是高斯内核,

    K(x,y)= e ^( - d(x,y)^ 2 / d_0)

    带有截止值以防止节点值过低。 d_0是调整以获得最适合您的权重的参数。

在寻找参考资料时,我发现这篇博文并非如此,但这似乎非常具有说明性,还有更多细节:http://charlesmartin14.wordpress.com/2012/10/09/spectral-clustering/

此方法用于基于图形的半监督机器学习任务,例如在图像识别中,您可以标记对象的一小部分,并具有有效的标签传播以识别整个对象。

您可以在Google上搜索:使用图表进行半监督学习

相关问题