Reversi(奥赛罗)想法需要启发式函数

Posted

技术标签:

【中文标题】Reversi(奥赛罗)想法需要启发式函数【英文标题】:Need heuristic function for Reversi(Othello) ideas 【发布时间】:2012-10-30 03:21:17 【问题描述】:

我刚刚研究了heuristic functions,但我找不到用于反向棋(奥赛罗)的启发式函数的想法,我只需要一个好主意来对棋盘的某些状态进行分级

我想过:

    计算移动次数 算盘数 并计算角落中的光盘数量并给他们更好的分数,

不知道好不好。

【问题讨论】:

【参考方案1】:

你可以试试。没有什么比得到答案的数据更重要了。

假设您使用合理的软件工程实践并抽象启发式,您可以很快检查它。

【讨论】:

没有提供与回答问题相关的任何见解【参考方案2】:

不,这还不够好。磁盘的数量特别无用 - 尽管游戏的目标是收集尽可能多的磁盘,但除了最后一个之外的任何移动的计数都是毫无意义的。以下是您应该考虑的其他一些事项:

计算移动次数可以衡量即时移动性;在其他条件相同的情况下,您可以采取能够开辟更多其他举措的举措的情况应该受到青睐。您还需要测量潜在的移动性 - 靠近开放空间的对手磁盘的数量。 X 方块 - B2、B7、G2 和 G7。将你的圆盘提前放在那里几乎肯定会放弃相邻的角落,所以你的启发式应该给他们高负权重,至少在前 40 步中 C 方格 - A2、A7、B1、G1、H2、H7、B8 和 G8。它们让对手可以进入角落,因此它们的值应该不同于其他方格的值,至少在边上的圆盘少于 5 个时是这样

你可以阅读一个相对简短的描述来构建一个相对强大的(在它能够击败人类新手的能力)黑白棋小程序here。

【讨论】:

感谢您的想法。他们非常有帮助。【参考方案3】:

一个好的黑白棋启发式函数需要捕捉位置的更多方面,包括:

硬币平价 移动性(可能移动的数量) 弯道圈闭(弯道稳定/无法转弯且具有特殊重要性) 稳定性(测量光盘不被转动)

我已经讨论了这些方面,并在这里提供了一个很好的启发式函数的实现:http://kartikkukreja.wordpress.com/2013/03/30/heuristic-function-for-reversiothello/

【讨论】:

以上是关于Reversi(奥赛罗)想法需要启发式函数的主要内容,如果未能解决你的问题,请参考以下文章

启发式搜索和迭代深搜两道模板题

用于解决 N 谜题的 X-Y 启发式函数

2048视频游戏的EV功能[关闭]

为啥具有可接受的非一致启发式的 A* 会找到非最优解?

A*算法求解N数码

二维地图上A*启发函数的设计探索