算法-Fruchterman和Reingold力导向图布局算法中的温度变量是什么意思?

时间:2018-12-30 10:36:26

标签: algorithm layout graph

我正计划实施Fruchterman和Reingold算法,以从此处绘制图形:http://cs.brown.edu/people/rtamassi/gdhandbook/chapters/force-directed.pdf,第5页。有温度变量“ t”,但没有解释它是什么,也有通过迭代应用此“ cool(t)”函数。有人对此有任何解释吗?谢谢。

1 个答案:

答案 0 :(得分:0)

首先,文章中对“温度”变量的含义进行了简短描述:

  

Fruchterman和Reingold的算法添加了“温度”的概念,该概念可以按如下方式使用:“温度可以从初始值(例如框架宽度的十分之一)开始,然后以线性倒数递减为0”温度控制顶点的位移,以便随着布局的改善,调整会变小。在这里,温度的使用是一种称为模拟退火的通用技术的特例,该技术在力导向​​算法中的使用将在本章后面讨论。

因此,该算法是Simulated annealing技术的一种变体,用于搜索函数的全局最优值。这是该算法的直观描述:

您从处于高温温度的随机状态开始。您开始随机修改状态,优先选择可改善功能值的新状态。首先,由于温度高,您会允许当前状态发生非常大的变化-包括这样的变化,即不会提高功能值,甚至不会使其变差(这有助于避免陷入局部最优状态)。通过迭代,您可以根据一些冷却时间表(在cool(t)函数起作用的地方)降低温度,从而越来越多地偏爱那些只会提高函数值的变量。

在如何选择初始温度,冷却时间表,新状态的接受概率等方面有许多微妙之处。通常,这是一个非常有问题的任务,很难提供一种通用的方法。