用于“线性化”图形的示例算法

时间:2011-01-25 11:19:42

标签: algorithm

简化业务示例,我有以下情况:

对于给定的“温度计”,某些对象应以大多数“线性”方式分布在图形中。

说,航海家访问一些城市。多次访问了几个城市。

所以,我们有纵坐标轴的城市列表(可能是重复的),而横坐标的时间是一个。

现在,对于给定的路径,比如说(A => X => A => B => C),我们应该以“最线性的方式”显示一条线”

enter image description here

通过例如。在上图中,绿色线是最佳的一个 (1> 2> 3> 4> 5)

但可能有多种可能的输出

(1> 2> 1> 4> 5)
(1> 2> 3> 4> 5)
(1> 2> 6> 4> 5)

(3> 1>> 4> 5)
(3> 2> 3> 4> 5)
(3> 2> 6> 4> 5)

(6> 1>> 4> 5)
(6> 2> 3> 4> 5)
(6> 2> 6> 4> 5)

在这种情况下是否有一些算法有帮助?

1 个答案:

答案 0 :(得分:1)

构建一个图表,其中节点是城市+值和时间的配对(例如A(3)/ 1)。边缘存在于路径中相邻的两个节点之间(例如A(3)/ 1到X(2)/ 2)。

边缘的权重将是最后一对节点与下一对节点之间的向量(相反角度)的差异(这将使边缘权重动态取决于它来自何处)。然后使用Dijkstra找到(a)目标的最小距离。

示例图表(以度为单位的边,只是估算值):

                                            Total cost
      0        0      105       15
A31  ->  X22  ->  A13  ->  B44  ->  C55     120

              90       0        0
              ->  A33  ->  B44  ->  C55     90

              115      110      105
              ->  A63  ->  B44  ->  C55     330