【发布时间】:2014-01-02 17:45:54
【问题描述】:
我目前正在开发用于玩 Dots 游戏的 AI (link)。目标是通过用一条线连接相似颜色的点来去除尽可能多的点。我浏览了黑板并将每组相邻的点用相同的颜色分组。当前所有组都共享相同的突出显示颜色(黑色)。因此,例如,左上角的四个红点形成一个组,右上角的三个黄点也是如此。
我需要计算通过其中一个组的所有可能路径。谁能想到一个好的算法?如何避免创建重复路径?
我听说在这种情况下稍微修改 DFS 会很好。但是,允许路径在节点处交叉,但不能重用边。如何相应地修改 DFS?
【问题讨论】:
-
什么构成重复路径?如果 A、B、C、D 是 2x2 正方形模式中的节点,这些路径中是否有任何重复用于您的目的? A-B-C-D、B-C-D-A、C-D-A-B、D-C-B-A。
-
我想所有这些路径都是等效的。但是,如果拐角处有第五个红点,某些路径将无法包含它。因此,在完成详尽的搜索之前,我似乎不应该担心重复,然后考虑适当修剪。
-
如果我的回答有帮助,别忘了标记为答案。
标签: java artificial-intelligence path-finding depth-first-search