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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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