Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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_Language Agnostic - Fatal编程技术网

Algorithm 掠夺者困境算法

Algorithm 掠夺者困境算法,algorithm,language-agnostic,Algorithm,Language Agnostic,我将在前一篇文章的基础上再做一次更详细的报道 问题: 问题在于劫掠者必须在地图上前往不同的城市。起始位置是已知的。每个城市都有固定的战利品。掠夺者的目标是穿越各种地形。就地形而言,我的意思是,每对城市之间的旅行成本各不相同。他必须最大限度地利用所获得的战利品 我们所做的: 我们已经生成了一个邻接矩阵(每个节点的战利品路径成本),然后采用了启发式分析。它给出了一些合理的输出 现在,问题是,每个城市都有少量或更多的车辆,可以(通过付费)购买并用于旅行。车辆在实际中的作用是降低路径成本。一旦购买了一

我将在前一篇文章的基础上再做一次更详细的报道

问题: 问题在于劫掠者必须在地图上前往不同的城市。起始位置是已知的。每个城市都有固定的战利品。掠夺者的目标是穿越各种地形。就地形而言,我的意思是,每对城市之间的旅行成本各不相同。他必须最大限度地利用所获得的战利品


我们所做的: 我们已经生成了一个邻接矩阵(每个节点的战利品路径成本),然后采用了启发式分析。它给出了一些合理的输出

现在,问题是,每个城市都有少量或更多的车辆,可以(通过付费)购买并用于旅行。车辆在实际中的作用是降低路径成本。一旦购买了一辆车,它将一直保留到购买下一辆车时。这取决于是否购买车辆以及如何购买


在这一点上我需要帮助。如何将车辆理念融入到我们已有的产品中?此外,任何可能帮助我们实现利润最大化的进一步想法。如果需要,我可以发布代码。谢谢

一种方法是将承载车辆成本的定向边指向一个成本降低的复制图。如果你愿意的话,你甚至可以这样做,使减少的幅度比一个百分比还要小

不利的一面是,这可能会大大增加图表的大小(不同车辆的副本数量,加上它们之间的链接),如果您的启发式不是最优的,您可能必须修改它,以便它积极地考虑新的边缘。

听起来似乎适合这个问题。波束搜索使用启发式函数H和参数k,其工作原理如下:

  • 将集合S初始化为初始游戏位置

  • 将T设置为空集

  • 对于S中的每个游戏位置,在掠夺者移动一步后生成S的所有可能的后续位置。(移动是为了抢劫、购买车辆、移动到邻近城市,或者掠夺者可以做的任何事情。)将每个这样的继任者位置添加到集合T中

  • 对于T中的每个位置p,计算启发式函数H的H(p)(启发式函数可以考虑战利品的数量、车辆的占有量、剩余未上路城市的数量,以及您认为相关且易于计算的任何其他因素。)

  • 如果搜索时间不足,请返回T中的最佳得分位置

  • 否则,将S设置为T中的最佳得分k位置,然后返回步骤2


  • 如果将T存储为包含k个元素的a的形式,则该算法运行良好。

    如何降低成本?这是一个固定的百分比减少,还是你得到了一套全新的成本?百分比减少。如果说步行的话(这是正常的交通方式)会变成0.9。他是一个掠夺者,他不买车!我可能会为此投反对票,但绝对值得!这一点也不清楚@维韦克,你能举个例子解释一下吗?掠夺者的选择是什么,他们试图优化什么?他的最终目标是最大化他的利润或战利品。现在,由于与正常旅行相比,买车降低了旅行成本,因此如果他可能获得比买车更多的收益,他就会买。如果旅行的费用高于获得的战利品,他也可以跳过城市。类似于带有proifts的TSP!我想是的。因为车辆的类型可能足够大(比如10或20),所以实现起来应该不会太难,因为它只包括对图形的预处理。然后你就能知道额外的费用是否真的是个问题。它还应该告诉您是否需要修改启发式。根据我们目前的知识,我们发现这有点困难!请帮忙好的,这里有一个提纲:1。生成图形副本(每辆车一个),跟踪对应关系。2.将可以购买车辆的位置的定向边添加到相应子图中的相应位置,并将成本与该车辆关联。3.在扩充图上运行现有算法问题是,我们必须为购买车辆付费。所以,除非我们的投资没有恢复,否则我们为什么要在下一个城市购买一辆车,而购买这辆车是否有利可图,只有在我猜我们知道全部路径的情况下才能知道。(例如,我们投资了300,但由于路径成本,只额外获得了150),因此这不是最好的选择!我发布的是原始问题的一个子集。它还涉及一些图像处理的东西。但是,核心功能很容易看到,您可以在这里看到()