AI Minesweeper项目

我需要实现一个扫雷游戏的求解器。我已经开始实现基于规则的代理。我已经实现了一些规则。我有一个启发式函数,用于选择当前处理的单元格(包括周围单元格的信息)最匹配的规则。因此,对于每个选择的单元格,它可以决定是否打开、标记或不对周围的8个单元格进行任何操作。我的意思是,目前,代理会接收到一些已揭示的单元格作为输入,并决定如何处理周围的单元格(目前,代理还不知道如何决定处理哪个单元格)。

我的问题是,应该实现什么算法来决定处理哪个单元格?

假设,第一步,代理会揭示一个角落单元格(或根据第一步的某些规则揭示其他单元格)。之后该怎么办?

我明白我需要实现某种搜索。我知道许多搜索算法(广度优先搜索、深度优先搜索、A星算法等),这不是问题,我只是不明白如何在这里使用这些搜索算法。

我需要按照《人工智能:现代方法》这本书的原则来实现它。


回答:

BFS、DFS和A*在这里可能不合适。这些算法在你对世界有完全了解时规划行动路线时很好用。在扫雷游戏中,你没有这样的知识。

相反,我建议尝试使用书中第三部分的一些逻辑推理技术,特别是使用SAT或第十章的技术。这将使你能够根据诸如“以下八个方格中有一个是地雷,以及以下八个方格中有两个是地雷”这样的信息得出结论。在每一步这样做将帮助你确定地雷的位置,或者意识到在继续之前必须进行猜测。

希望这对你有帮助!

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

发表回复

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