使用动态编程的最低行驶路径成本

假设我们要从A行驶到B,在行驶过程中,有一些加油站d_1,...,d_n,其中d_1 = A,d_n = B,我们可以选择在每个加油站加燃料C_i,假设如果在d_i站添加天然气,那么我们可以将a_i行驶更多公里。我想找到一种动态编程算法,以找到前往B的最低成本(假设存在这样的序列)。

我尝试使用D [i]作为从A到第i站的最低费用,但是我在弄清楚递归关系方面遇到麻烦。我认为我可能需要跟踪我们目前可以旅行多长时间。但这太复杂了...

芦叶

如您所说,您可能需要跟踪我们目前可以旅行多长时间。您应使用D [i] [j]作为从A到第i站并留下j公里燃料的最低费用。在这种情况下,递归关系变为下面。

D[i][j] = min( min{ D[i-k][j+(d_i - d_{i-k})] | k<i }, D[i][j-a_i] + C_i );

第一项min{ D[i-k][j+(d_i - d_{i-k})] | k<i }是指以(d-i - d_{i-k})几公里的油耗从ik站移至i站k可以取0到i-1的值。

第二项D[i][j-a_i] + C_i意味着在d_i站增加a_i公里的天然气,并消耗C_i成本。另外,如果您允许在同一站点多次添加气体,则必须小心。

最后,min{ D[n][*] | '*' is any positive value }成为答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用动态路径访问数组

来自分类Dev

成本最低的途径

来自分类Dev

排序数组中的最低成本路径

来自分类Dev

查找两点之间的最短路径,动态编程

来自分类Dev

选择最低成本的组合

来自分类Dev

通过障碍和空间限制将总路径成本降至最低

来自分类Dev

切割木板的最低成本

来自分类Dev

在ArrayList中查找成本最低的项目

来自分类Dev

使用Graphhopper实际行驶速度

来自分类Dev

使用动态编程复制书籍

来自分类Dev

动态编程,将成本降到最低?

来自分类Dev

打印动态编程解决方案中遍历的路径

来自分类Dev

使用迭代的动态编程问题

来自分类Dev

爬楼梯的最低成本动态编程

来自分类Dev

寻找最小楼梯成本的动态编程问题的错误答案

来自分类Dev

最大矩阵成本路径,

来自分类Dev

最低成本的0/1背包

来自分类Dev

排序数组中的最低成本路径

来自分类Dev

在有向图中找到所有不同的路径并计算最低成本

来自分类Dev

通过Bing Maps API以编程方式获取行驶距离

来自分类Dev

选择最低成本的组合

来自分类Dev

国际象棋编程,Scala,JVM:动态调度的成本如何?

来自分类Dev

使用动态编程的tsp

来自分类Dev

使用动态编程计算网格中的路径数?

来自分类Dev

在多个节点之间找到成本最低的路径

来自分类Dev

动态编程-地铁系统中的路径计数

来自分类Dev

寻找迷宫路径的成本

来自分类Dev

标记顶点以创建最低成本

来自分类Dev

错误使用基于 Avg 的 Max 和 Min 来确定最低平均成本和最高平均成本 (MySQL)