动态规划算法和递归关系

时间:2015-06-08 06:08:03

标签: algorithm dynamic-programming

有谁知道如何回答这个问题?我已经被困了几天试图搞清楚。

学生决定从温哥华骑自行车到哈利法克斯。 她在0公里的路上开始。沿途有n家酒店H1 ,. 。 。 ,Hn,at 距离h_1< h_2< h_3< 。 。 。 < h_n-1< h_n分别来自旅程的起点。 这些酒店是学生们愿意在这里停留的唯一地方,但她 可以选择她停在哪家酒店。她必须在最后的酒店H_n停留,因为这是她 目的地(她打算飞回来)。 理想情况下,这名学生想每天100Km旅行,但这可能是不可能的, 取决于酒店的间距。为了确定学生的接近程度 在这个目标距离,她将一天的罚款定义为| 100 - x | ^ 1.5,其中x是 那天的距离。她的目标是以最小化的方式计划她的旅行 旅行中所有日子的每日罚款总和。

  • 为D_k写一个递归关系,其中D_k是每日罚款的最小总和,超过所有可能在酒店H_k结束的旅行(即学生不再继续)
  • 找到一个计算D_n的动态编程算法。

1 个答案:

答案 0 :(得分:1)

我认为考虑这个问题的最好方法是反思。让我们说你在N酒店,最后的最后一次是什么?是n-1吗? N-2?的n-3?然后,你选择最好的并向后工作直到到达起点

 F(n) = min( F(j) + abs(100 - h_n + h_j)^1.5 ) where 0 < j < n