Algorithm 样本算法到;“线性化”;图表

Algorithm 样本算法到;“线性化”;图表,algorithm,Algorithm,简化一个业务示例,我有以下情况: 对于给定的“温度计”,某些对象应以最“线性”的方式分布在图形中 比如说,一个旅行者访问了一些城市。几座城市被多次访问 所以,我们在纵轴上有一个城市列表(可以复制),在横坐标上有一个时间列表 现在,对于给定的路径,比如说(a=>X=>a=>B=>C)我们应该以“可能的最线性方式”显示一行 例如,在上图中,绿线是最佳线 (1>2>3>4>5) 但可能有多种可能的结果 (1>2>1>4>5) (1>2>3>4>5) (1>2>6>4>5) (3>2>1>4>5) (

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

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

比如说,一个旅行者访问了一些城市。几座城市被多次访问

所以,我们在纵轴上有一个城市列表(可以复制),在横坐标上有一个时间列表

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

例如,在上图中,绿线是最佳线
(1>2>3>4>5)

但可能有多种可能的结果

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

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

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


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

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

边的权重将是最后一对节点和下一对节点之间的向量差(相反的角度)(这将使边权重根据其来源动态变化)。然后使用Dijkstra找到距离(a)目标的最小距离

示例图(边以度表示,仅为估计值):


为什么1>2>3>4>5不是一个好的解决方案?这对我来说似乎完全是线性的。你能控制线路的顺序吗?如果有的话,你只需选择与路径相同的序列,最终总是得到一个线性图。@Patrick:你有理由,12345是理想的解决方案。该示例仅用于演示目的。。从3开始:)我认为这个问题仍然有点过于抽象。我们需要一个定量函数来确定您上下文中的“线性”。例如,在您的新示例中,显然绿线更线性。但你们如何确定橙色和蓝色路径中哪个更线性呢?谢谢。我没有定义角度。。。我在Y上有一个城市数组,在X上有一个城市数组。我们可以对时间进行抽象,每一步设置为1。那么现在,我应该“估计”一个角度吗?。。。有点尴尬,但如果这是唯一的方法…@serhio:我认为你应该从定义“线性”开始。我故意抽象,因为我没有一个明确的指令来确定a是否比B“更线性”。我选择将其定义为“需要最少转弯的路线”。定义一个函数,其最小值表示您认为“最”线性的值。一个优化问题需要一个值来优化,而不是一些软描述的特征。
                                            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