人工智能在’Blokus’游戏中的应用(1-4人玩家)

我们正在开发一款基于Blokus游戏的Java小游戏。Blokus规则手册

我是一个Java初学者,计划实现一个高级的人工智能。我们已经有了一个随机AI(随机选择有效移动)和一个带有简单移动评级机制的AI。我们还希望有一个尽可能优秀(或至少非常好 ;))的AI。

问题是:哪种AI概念适合我们的目的?Minimax算法似乎是一个有效的选择,但如何将其适应于四人游戏呢?对于像Blokus这样的游戏,是否有更好的概念?

谢谢你们 🙂


回答:

在四人游戏中实现Min-max算法是困难的,因为:

  • 决策树呈指数增长,因此你将受到内存和/或计算时间的限制,只能进行log(medMoves)=N步。对于四人游戏,这将减少到N/4。例如,如果N是8,你只能看到每个玩家前面的2步移动。
  • 玩家之间的勾结很难处理。在现实游戏中,一些玩家可能会互相帮助(即使他们不在同一队伍)。这会导致他们偏离个人‘最大值’。

如果你想要使用Minmax,你将不得不进行大量的剪枝来使其可行。我建议学习一些模式,以便AI知道如何反应。这可以通过神经网络,或通过一些调整的强化学习来实现。

这些模式可以是静态的(你可以手动或编程地创建输入场景),也可以是动态的(创建所有有效场景并随机选择移动,选择得分最高的那些)。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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