动态图算法最短路径

时间:2016-04-17 15:37:00

标签: algorithm graph-algorithm

我有一个问题,我正在转换为TSP类问题,以便我可以在这里解释它,我正在寻找可能对我有帮助的任何现有算法。

  1. 有一个我需要访问的地方列表,我需要访问它们。
  2. 有些地方必须作为n的第一个x访问(IE,它们需要先访问3个或前5个地方)。 (数字是任意的)
  3. 还有一些其他地方必须作为n的最后一个访问(IE,他们需要最后3个或访问的最后5个地方)。
  4. 这些地方可以分类(有些可能没有类别),对于那些类别的人来说,他们需要远离彼此访问(即,如果2个地方被归类为绿色,那么我想访问这些绿色分类地点之间尽可能多的其他类别的地方)
  5. 以下是一个示例列表:

    A:类别绿色:最后3

    B:类别无:订购无

    C:粉红色类别:前3个

    D:类别无:订购无

    E:类别无:最后3

    F:类别绿色:订购无

    G:粉红色类别:前3个

    我想提出的顺序是:

    G(粉红色,前3) - > F(绿色,无) - > C(粉色,前3) - > D(无,无) - > B(无,无) - > E(无,最后3) - > A(绿色,last3)

    说明: G排在第一位,尽可能远离C。 F接下来让它尽可能远离A。 接下来是C,因为它需要在第3位.C和G可以互换 D B可以放在任何地方 E接下来因为它必须是最后3 A是最后一个,因为它必须是最后3个,并且最后放置它,它尽可能远离F。

    我的想法是评估每个边缘成本,并动态计算边际成本。因此,如果你试图访问A然后F,它将会有很高的成本,而不是访问A然后访问其他地方然后F(其中两者之间的位置数将是成本的一​​部分)。另外,我会介绍一个开始和结束的地方,所以,如果我不得不访问一些地方作为第一个x,如果开始在那个地方的N个地方,我将能够给它一个低成本。同样结束。

    我想知道是否有图表算法可以解释这种动态权重/成本并确定从开始到结束的最短路径?

    注意:在某些情况下,最好的情况可能无法使用,那也没关系,只要我能证明成本很高,因为没有足够的类别分离(例如:所有地方属于同一类别)

    强力算法 我的初步想法是:给出一个地方列表,提出地点排序的所有组合,并计算每个之间的成本,然后选择最便宜的。 (但这意味着要评估n!其中8个将是我需要评估的362880个订单!为什么8个,因为这就是我认为将要评估的平均场所数量)

    但是有没有一种算法可以在不测试所有排序的情况下确定它。

1 个答案:

答案 0 :(得分:1)

你可以做的一件事:

  • 按以下顺序排列地点:首先是1,......首先是n,无序,最后是n,......最后是1。
  • 浏览列表并尽可能使用相同的颜色分隔元素而不违反先前的顺序
  • 计算此列表的费用并将其存储为当前最佳
  • 使用此列表确定评估排列的顺序
  • 在构建排列时,跟踪成本
  • 当成本超过当前最佳时,中止建立当前排列(包括其余地方的理论最低成本,如果有的话)
  • 如果您有理论上可能的最佳分数,也会中止。