CLP(FD)允许用户为每个崇拜整数变量设置域,因此它能够解决方程式。
到目前为止一切都很好。
但是,您无法在CLP(R)或类似语言中执行相同的操作(您只能进行简单的推理)。并且不难理解为什么:数字的小数部分可能具有几乎无限的区域,由实施限制推迟。这意味着搜索空间太大,无法用于处理像整数一样的浮点数的求解器。因此,用户任务是在CLP(R)中编写生成器,并设置约束保护,以获取用数字实例化的变量(如果无法进行简单的推理)。
所以我的问题在这里:是否有任何类似CLP(FD)的语言而不是实物?我认为可以通过使用数字舍入,搜索和跟随增量近似来实现。
答案 0 :(得分:1)
至少有一些主要的CLP(FD)求解器支持实际(决策)变量:
(前三个也支持MiniZinc中的var float。)
答案 1 :(得分:0)
你问题的回答是肯定的。基于约束的求解器专用于浮动数字。我没有解算器列表,但我知道ibex http://www.ibex-lib.org是一个允许使用浮点数的库。您还应该了解实现Real-Theory(http://smtlib.cs.uiowa.edu/solvers.shtml)的SMT-Solvers。