【问题标题】:Solving sudoku with heuristics: a good idea?用启发式方法解决数独:好主意?
【发布时间】:2012-02-24 03:25:52
【问题描述】:

我试图用“Drools Planner”包解决部分初始化的数独难题(报纸上出现的那种)。虽然它可以在 3 秒内从头开始生成(随机)谜题,但它会陷入解决部分初始化谜题的循环中。

问题:诸如禁忌搜索和模拟退火之类的启发式算法从根本上说不是数独的错误选择吗?我说的是完整性(是否会达成解决方案)和效率(是否矫枉过正)。

我的怀疑来自这样一个事实,即数独谜题总是有一个精确且单一的解决方案,而启发式算法(AFAIK)并非旨在“触及它们”。

【问题讨论】:

  • 数独谜题可以有多个解决方案
  • @Sentry - 关键是他们没有。至少不是精心设计的。
  • 将问题更新为“出现在报纸上的那种”以消除误解
  • @atornblad - 如果您考虑在报纸等中发现的数独谜题,您可能是对的。但是一般的数独问题类别也包括一个只有一个初始数字的 9x9 网格。我刚刚看到更新的问题;)

标签: artificial-intelligence drools heuristics simulated-annealing tabu-search


【解决方案1】:

对于像 9x9 数独这样的问题,经过严格编码的蛮力搜索可以很快找到解决方案。此外,由于它可以确定找到所有解决方案,因此它还将确定数独是否正确形成,因为它具有唯一的解决方案。

【讨论】:

    【解决方案2】:

    诸如禁忌搜索和模拟退火之类的启发式算法从根本上说是数独游戏的糟糕选择吗?

    是的,如果仅仅因为一个好的约束传播算法可以非常快地解决数独问题,那么根本不需要启发式算法。此外,您(确实)不想要数独的部分解决方案。

    【讨论】:

      【解决方案3】:

      我对你是/否问题的回答是,如果禁忌搜索和模拟退火等启发式方法是解决数独的错误选择,我的回答是肯定的。

      这个问题对局部搜索策略有太多限制,无法有效。

      数独是约束满足问题 (CSP) 的一个很好的例子,CSP 求解器非常擅长解决它。这并不意味着本地搜索不起作用或启发式通常不是一个坏主意,但这个问题可以通过传播约束很容易地解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-11
        • 2011-01-08
        相关资源
        最近更新 更多