繁体   English   中英

当目标状态的确切权重未知时,A* 中的启发式

[英]Heuristic in A* when exact weight of the goal state is unknown

所以这是我一直在研究的问题:给你一个随机的 nxn 网格,网格的每个框都有权重,你也有一组 p<=n 的钉子。 您的目标是将栓钉放置在网格上,以使放置栓钉的网格上的权重总和最大化。 限制是钉子位置也必须遵循非攻击皇后的位置。

我最初的尝试是从最大得分网格框开始,然后按照 n 皇后的位置。 但是,这不起作用,因为它最终错过了最大值。

我一直在尝试用 A* 解决这个问题,但一直在努力寻找启发式方法。

通常 A* 搜索用于寻找最短路径,而不是用于寻找最大值,但您也可以将其用于最大化。 在通常的最小化版本中,您的启发式必须始终是长度的下限。 为了最大化,启发式需要是一个不太难计算的上限。 而且你需要一个最大堆,而不是一个最小堆来产生下一个最佳候选者。

另一个问题是有许多不同的订单来选择最佳位置。 使用n x n板将有n! 这样的命令。 如果您坚持从最大到最小的引脚进行选择,您将大大加快搜索速度。

因此,我建议将尚未受到攻击的最大引脚的总和作为启发式方法,并且不大于您当前选择的最小引脚的总和,而无需尝试测试是否为非攻击。 这是一个很容易计算的上限,并且会导致您最初尝试抓住最大的可用引脚的明显贪婪选择开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM