【问题标题】:Optimization in Z3: removing the epsilonsZ3 中的优化:删除 epsilon
【发布时间】:2014-11-27 11:29:44
【问题描述】:

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

在上面的例子中,返回值是4 - epsilon

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

谢谢!

编辑:

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

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

【问题讨论】:

    标签: optimization z3


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 2016-02-25
      • 2017-11-30
      • 2011-06-23
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      相关资源
      最近更新 更多