Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最短路径算法与Python的结合_Python_Algorithm_Combinatorics - Fatal编程技术网

最短路径算法与Python的结合

最短路径算法与Python的结合,python,algorithm,combinatorics,Python,Algorithm,Combinatorics,我对编码知之甚少,但了解基本的Python。 我想通过编写一个能够解决下一个问题的程序来挑战自己—— 考虑到一家商店给你3种选择——每天X美元、每月Y美元或每年Z美元,假设我不想浪费时间,哪种组合对我最合适 现在,据我所知,我这里有一个创建组合树的基本组合问题,需要一些最短路径算法(Djikstra,Bellman Ford…?)来找到最佳选择(“最短”、“较便宜”) 请帮助我找到解决此问题的方法。这是一个多项目的实例,其中您的时间是重量,“价值”是成本。你的背包大小是你想要的时间量。在这里,您

我对编码知之甚少,但了解基本的Python。 我想通过编写一个能够解决下一个问题的程序来挑战自己—— 考虑到一家商店给你3种选择——每天X美元、每月Y美元或每年Z美元,假设我不想浪费时间,哪种组合对我最合适

现在,据我所知,我这里有一个创建组合树的基本组合问题,需要一些最短路径算法(Djikstra,Bellman Ford…?)来找到最佳选择(“最短”、“较便宜”)


请帮助我找到解决此问题的方法。

这是一个多项目的实例,其中您的时间是重量,“价值”是成本。你的背包大小是你想要的时间量。在这里,您希望最小化该值,这相当于最大化负数(假设一天“成本-X,月-Y,年-Z”)

这可以通过以下递归公式来解决(假设成本为整数或可以转化为整数),并且可以通过使用来相当有效地实现

D(0,0)=0
D(x,0)=无穷大x>0
D(x,i)=无穷大x<0
D(x,i)=最小{D(x,i-1),D(x时间[i],i)+成本[i]}


编辑:请注意,这不是最短路径问题的一个实例(无论如何也不是直接的),因为您对路径有限制,您希望找到一条需要M天的路径,而最短路径算法正与这些限制作斗争。

非常感谢Amit-我想通过了解整个组合(例如,过滤哪个组合比M天大…)我可以输入正确的路径到算法中…但我想使用背包问题更聪明。
D(0,0) = 0
D(x,0) = INFINITY   x>0
D(x,i) = INFINITY x < 0
D(x,i) = min{ D(x,i-1), D(x-time[i],i) + cost[i] }