AI Minesweeper项目

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

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

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

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

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


回答:

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

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

希望这对你有帮助!

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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