从文章

问题描述

我读过一篇文章,他们使用“深度优先分支”和“边界”来查找《星际争霸2》中AI代理的最佳构建顺序,但是很难理解其中的某些部分。

这是他们的伪代码

DFBB

我大部分都理解,但是很难理解启发式方法。他们尝试在文章中对此进行解释,如下所示:

我们的深度优先分支定界算法使我们能够根据启发式评估留给目标的路径长度来修剪节点。算法1的第13行显示,如果到目前为止,子节点的长度加上启发式评估小于上限,则可以修剪子节点。如果我们的启发式是可允许的,则这保证了我们的计算解将是最优的。我们使用以下可允许的下限试探法来简化搜索

  • LandmarkLowerBound(S,G)-星际争霸的科技树为行动设置了许多先决条件。这些动作在搜索文献中被称为地标。鉴于这种非并行地标动作的顺序,我们将尚未创建的动作的各个持续时间相加,以形成我们的搜索的下界。
  • ResourceGoalBound(S,G)—总结一个目标中各个单元的总消耗资源成本,这使我们可以最佳地构建目标所需的资源下限。进行快速搜索以确定仅生产这些资源的期限是可以接受的启发式方法

然后我们可以将这三种启发式方法中的最大值作为我们的启发式值h。用作搜索上限的启发式方法是TrivialPlan(S,G)-给定状态和目标,我们简单地从目标中采取随机法律行动,并在可能的情况下发出。这保证了我们的目标得以实现,但没有针对时间进行优化。该计划的长度然后用作我们搜索的上限。

我不明白他们的意思是LandmarkLowerBound和ResourceGoalBound应该起作用。有人可以用更简单的术语解释这些工作原理吗?他们为什么需要上下启发式?例如,我认为启发式只是一个价值,而价值就是从那个状态到目标的估计。那么,试探法怎么会有上限和下限呢?还有为什么需要第11行?我认为没有必要。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)