Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 贪婪算法伪码_Algorithm_Pseudocode_Greedy - Fatal编程技术网

Algorithm 贪婪算法伪码

Algorithm 贪婪算法伪码,algorithm,pseudocode,greedy,Algorithm,Pseudocode,Greedy,假设你必须从伊斯兰堡开车到拉合尔。一开始,你的油箱是满的。当你的油箱加满时,它能容纳足够行驶m英里的汽油,你还有一张地图,上面显示了沿途加油站之间的距离。设d1

假设你必须从伊斯兰堡开车到拉合尔。一开始,你的油箱是满的。当你的油箱加满时,它能容纳足够行驶m英里的汽油,你还有一张地图,上面显示了沿途加油站之间的距离。设d1 你的目标是尽可能少的加油站。给出一个伪代码形式的贪婪算法,以确定应该在哪个加油站停车


你的解决方案是最优的吗?您的解决方案的时间复杂度是多少?

此算法从伊斯兰堡开始,反复尝试在不耗尽汽油的情况下尽可能远地行驶

current_distance = 0
current_stop = 0
stops = []
while current != lahore:
  next_stop = 0
  while distance(next_stop) - current_distance <= m:
    next_stop = next_stop + 1
  next_stop = next_stop - 1

  current_stop = next_stop
  current_distance = distance(current_stop)
  add next_stop to stops
return stops
这是一个最佳解决方案。为了看到这一点,我们注意到,任何一系列的站点,如果站点数少于贪婪算法,那么必须在路径的某个点“通过”贪婪算法

使用归纳法,我们可以看到,如果贪婪算法在第一次停车后是最远的,而在第n次停车后是最远的,那么贪婪算法必须是路线上所有停车的最远算法


虽然该算法具有复杂性,并在计算上返回最优解,但它返回的路线可能不是非常“均匀”或“平滑”的路线。为了生成供人们实际使用的路线,需要考虑更多的路线,使其站点之间的间隔更均匀。

这个问题读起来像是一些家庭作业中的复制粘贴作业。无论如何,这是离题的,因为询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试过的解决方案、它们不起作用的原因以及预期结果。另见:我无法映射贪婪算法的类型,请帮助!!比TSP容易得多。我猜顺序是N,其中N是两个城市之间的加油站数量。根据声明,我了解到的是,di到dn这些加油站都会在路线上出现,每行驶m英里,油箱就会用完,根据这一点,我们必须停止对每一个加油站如何在它上面:找到范围内的所有加油站。选择离目的地最近的一个。重复这不是最佳的。