Connect6 游戏的 Prolog 表示与启发式算法

我想用 Prolog 来表示 Connect6 游戏(维基百科链接)(或许可以用谓词 stone(P, X, Y) 来表示,其中 P 代表玩家,X 和 Y 代表坐标)。同时,我希望使用一些好的启发式算法来解决这个问题(用来实现一个对手)。能否提供一些关于 Prolog 游戏 AI 的文章链接?谢谢。


回答:

你可能需要查找一下 http://en.wikipedia.org/wiki/Minimax 博弈树。 为了优化搜索,你可能不想考虑所有可能的移动。也许只考虑与现有棋子在一条线上,且距离小于等于 6 个空格的移动。

然后你需要一个 http://en.wikipedia.org/wiki/Evaluation_function (评估函数)。 可能类似于为“我距离完成一条线有多接近”分配一个分数,综合考虑所有正在进行中的线。

构建和优化博弈树更像是一个机械的过程。 创建评估函数才是更有趣的部分,它将赋予你的 AI 对手独特的风格。

在 Google 上搜索“minimax game tree prolog”找到了一份不错的 PowerPoint:http://staff.science.uva.nl/~arnoud/education/ZSB/2009/

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注