Minizinc:当条件不可满足时返回文本

时间:2016-10-30 19:07:06

标签: output minizinc

我正在编写一个代码,可以解决MiniZinc中的单人纸牌问题。我被要求回复一条消息"这个单人纸牌无法解决"如果条件不满意。

不幸的是,我无法在互联网上找到解决此问题的方法。有没有人知道我该怎么做?

1 个答案:

答案 0 :(得分:1)

我不知道做这个的万无一失的版本,事实上它有点棘手。但这里有一些想法。

不满足模型时的标准响应是" ===== UNSATISFIABLE ====="。您可以编写一个包装器程序来将此字符串替换为"此单人纸牌无法解决"。这可能就是我自己做的。

这个字符串可以通过程序" solns2out"来改变。 (MiniZinc工具链中的程序,可以完成解决方案的漂亮打印),其中包含参数" - 不良信息"你可以在哪里陈述自己的信息。

solns2out的参数是 - 我所知道的 - 不能通过MiniZincIDE获得,所以你必须编写自己的工具链,这样你就必须编写完整的程序链来使用它,例如

 flatzinc model.mzn -some_parameters | solver model.fzn -with_some_parameters | solns2out model.ozn --unsat-msg "This solitaire cannot be solved"

取决于您希望它的灵活性,这可能非常棘手,例如:你需要什么参数等。

(有时候使用" minizinc"程序而不是" flatzinc"程序更容易。使用-help选项运行程序以查看不同的参数。 )