我必须建立一个扫雷解决方案,但真的不知道从哪里开始。问题是,我不得不使用一些元启发式算法,如蚁群优化、模拟退火、遗传规划等。我在网上找到了一些相关的资料,但我不确定哪些有用,哪些不有用,因为没有什么是“完美匹配”。看起来我得自己调整一些元启发式算法,而不必遵循以前写过的一些文章。这就是为什么我想在开始之前知道所有我需要知道的事情。
我该如何制定我的问题,使之适合使用元启发式来解决它?我知道这基本上是一个CSP(约束满足问题),但不知道如何利用这些知识来找到合适的算法来解决它。
哪种启发式方法适合解决我的问题(为什么)?
我的问题有什么特别的地方需要注意吗?

最佳答案

“蚁群优化,模拟退火,遗传规划”…大话,但我不知道你会怎么用!
我建议有两个解算器:
完美的解决方案:在那里有一个完美的答案毫无疑问并解决它。
不完美的解决方案:在有疑问的地方,你希望找到危害最小的解决方案。
先应用完美解算器,如果失败,则应用不完美解算器。
完美的求解者需要找到所有的组合可能性,并检查它们中的哪一个有效。实际上,这并不难,因为你会同时考虑1-5个平铺(作为一个人类解算器,我通常将自己限制在许多平铺上),最多只有32个组合是容易检查的。
对于非完美解算器,可以考虑所有的组合,找出有效的组合,使用有效的组合计算不同位置的挖掘概率,并选择挖掘概率最小的组合。
想想看,这两种方法是一样的!在完美解算器中,您将选择具有0我的概率的平铺。所以,总结一下:
选取1-10个相邻或最多由一个间隙连接的未标记瓷砖,并且每个瓷砖都连接到至少一个显示的非矿区位置。
找到所有有效的组合
如果我在任何位置的概率为0,请立即选择该选项。
或者,以最小的地雷概率跟踪位置。
转到步骤1
步骤1并没有听起来那么糟糕,因为只能有几个组合同时满足这两个条件(相邻和邻近已解决的非矿区位置)。

10-08 04:14