Z3中的优化:去除epsilons

时间:2014-11-27 11:29:44

标签: optimization z3

根据严格约束优化实际值(例如max x s.t. x < 4)会在调用epsilon时生成Z3_optimize_get_upper值。

在上面的示例中,返回的值为4 - epsilon

有没有办法摆脱epsilon,即将其实例化为任何特定值?例如。将其设置为0,或10.1

谢谢!

编辑:

opt_context.cpp的代码中,我看到创建了名为epsilon的常量:

if (!eps.is_zero()) { expr* ep = m.mk_const(symbol("epsilon"), m_arith.mk_int());

1 个答案:

答案 0 :(得分:0)

实际上,我已经弄明白了:使用substitute进一步调用simplify似乎可以解决问题。