【问题标题】:Dynamic Flexible constraint satisfaction problems动态柔性约束满足问题
【发布时间】:2013-04-18 18:17:12
【问题描述】:

我正在寻找能够解决灵活和/或动态约束的逻辑约束求解器。有什么想法吗?

【问题讨论】:

  • 你能定义灵活/动态的约束吗?举个例子。
  • 动态是指问题中的约束是否会随着时间的推移而不断变化,而灵活的意思是如果约束不是硬的——当然,有些约束可能会不满足,但要付出代价;一些限制更为重要。它们带有权重或等级,或者存在成本函数,求解器试图保持最小以解决问题。

标签: logic clpfd constraint-programming


【解决方案1】:

看看OptaPlanner(Java,开源,ASL):

  • 动态(随着时间的推移不断变化):OptaPlanner 约束易于维护,因为它们是面向对象的并且彼此隔离。此外,如果您使用 drools 集成,您甚至可以在决策表、guvnor Web 应用程序中定义您的约束...
  • 灵活(并非所有约束都是硬性的):OptaPlanner 支持hard and soft constraints 开箱即用。如果需要,它支持分数加权和 3 个以上的分数级别(例如硬、中和软)。

还有其他几个约束满足库。

【讨论】:

  • 非常感谢 Geoffrey,您的评论很有帮助。我去看看。
  • 亲爱的 Geoffrey,我找不到可用于解决灵活(软)约束的函数。非常感谢您的帮助。
【解决方案2】:

“我所说的动态是指问题中的约束是否随着时间的推移而不断变化”——>这在约束编程中没有意义。约束不变。只有变量的域可以改变(通过约束传播或决策)。

“灵活我的意思是如果约束不是硬的——一些约束当然可以用成本来满足;一些约束更重要。它们带有权重或等级,或者有一个成本函数,其中求解器试图保持最小来解决问题。” --> 好的所以基本上你正在尝试解决 Max-CSP 和/或加权 CSP。我建议您检查支持最大和/或加权 CSP 的 CSP 竞赛之一(例如http://www.cril.univ-artois.fr/CPAI08/)。您还可以检查 Minizinc 的 http://www.minizinc.org(但我不确定它是否支持最大/加权 CSP)。

您想解决什么样的问题?

【讨论】:

  • 感谢您的回答,我会检查出来。关于动态约束,我的意思是约束集随着时间不断变化;添加新约束或删除一些旧约束。例如,当您解决调查问题时,您会随着时间的推移获得有关犯罪现场的新信息
猜你喜欢
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多