【问题标题】:Clingo - Progression error/warningClingo - 进度错误/警告
【发布时间】:2017-12-27 15:40:55
【问题描述】:

我正在按计划运行求解器,并且在各种答案集之间我得到了我认为是警告(因为它不会终止执行),说明如下:

Progression : [2;8] (Error: 3)
Progression : [3;8] (Error: 1.66667)
Progression : [4;8] (Error: 1)
Progression : [5;8] (Error: 0.6)
Progression : [6;8] (Error: 0.333333)
Progression : [7;8] (Error: 0.142857)

我找不到任何关于该警告的参考,所以我希望有人知道它们的意思。

【问题讨论】:

    标签: answer-set-programming clingo gringo


    【解决方案1】:

    这些行提供了有关当前优化状态的有价值信息:在您的示例中,求解器找到了成本为 8 的解决方案,但尚未证明该解决方案是最优的,但正在证明这一点:它已证明成本至少为 2、3、4、...、7。因此,如果您在最后一行之后中止求解器,则可以保证您找到的解决方案是最优的或与最优相差 1。

    这些信息可以帮助您在最优性和求解器时间之间做出折衷。通常,如果您的次优结果与最优结果足够接近,那么您在应用程序中的表现就很好。

    【讨论】:

      【解决方案2】:

      快速搜索 clasp 源 https://github.com/potassco/clasp/blob/master/src/clasp_output.cpp 发现方法 TextOutput::printUnsat 负责这些消息。

      基类中的注释显示为Output::printUnsat

      //! Called on unsat - may print new info.
      

      具体来说,TextOutput::printUnsat 评论是

      //! Prints the given lower bound and upper bounds that are known to be optimal.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-22
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 2014-09-08
        • 2020-07-22
        相关资源
        最近更新 更多