Logic 动态柔性约束满足问题

Logic 动态柔性约束满足问题,logic,clpfd,constraint-programming,Logic,Clpfd,Constraint Programming,我正在寻找一个逻辑约束解算器的能力,以解决灵活和/或动态约束。有什么想法吗?“动态的意思是,如果问题中的约束随时间不断变化”->,这在约束编程中没有意义。约束不会改变。只有变量域可以更改(通过约束传播或决策) “所谓灵活,我的意思是,如果约束不难——当然,有些约束可能会因成本而不被满足;有些约束更重要。它们具有权重或等级,或者存在一个成本函数,在该函数中,解算器试图将解算问题保持在最小值。”-->好的,那么基本上您是在尝试求解最大CSP和/或加权CSP。我建议您检查一个支持最大和/或加权CSP的

我正在寻找一个逻辑约束解算器的能力,以解决灵活和/或动态约束。有什么想法吗?

“动态的意思是,如果问题中的约束随时间不断变化”->,这在约束编程中没有意义。约束不会改变。只有变量域可以更改(通过约束传播或决策)

“所谓灵活,我的意思是,如果约束不难——当然,有些约束可能会因成本而不被满足;有些约束更重要。它们具有权重或等级,或者存在一个成本函数,在该函数中,解算器试图将解算问题保持在最小值。”-->好的,那么基本上您是在尝试求解最大CSP和/或加权CSP。我建议您检查一个支持最大和/或加权CSP的CSP竞赛(例如)。您也可以检查Minizing(但我不确定它是否支持最大/加权CSP)

你想解决什么样的问题

看看(Java、开源、ASL):

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

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

您可以定义灵活/动态约束吗?举一个例子,我所说的动态是指问题中的约束条件随着时间的推移不断变化,而灵活是指约束条件不难——当然,有些约束条件可能会因成本而无法满足;其中一些约束更为重要。它们具有权重或等级,或者有一个成本函数,在该函数中,解算器试图保持最小值以解决问题。感谢您的回答,我将查看它们。关于动态约束,我的意思是约束集随时间不断变化;添加新约束或删除一些旧约束。例如,当你在解决一个调查问题时,你会得到关于犯罪现场的新信息。多谢杰弗里,你的评论非常有用。亲爱的Geoffrey,我找不到可以用来解决柔性(软)约束的函数。谢谢你的帮助。