【发布时间】:2019-06-23 00:32:42
【问题描述】:
我写信是为了询问 Z3 Optimize 功能背后的理论/算法,尤其是它的maximum 和minimum 功能。这对我来说似乎很神奇。它是某种二进制搜索吗?它如何有效地计算出这里的最大值/最小值..?
我试图搜索相关函数的源代码(例如,execute_min_max 函数),但是对那里的术语没有深入了解,这对我来说没有太多意义......基本上是什么lex 代表这里?似乎解决方案以某种方式保存在堆栈中。
任何建议或意见将不胜感激。谢谢。
【问题讨论】:
-
我不知道全部答案,但我敢打赌
lex是lexicographic的缩写。 -
查看有关该主题的出版物,例如 1. Nikolaj Bjorner 和 Anh-Dung Phan。 νZ - Z3 的最大满意度。 在 2014 年 12 月在突尼斯 Gammat 举行的关于软件科学中符号计算的 Proc 国际研讨会上。EasyChair Proceedings in Computing (EPiC)。 easychair.org/publications/?page=862275542 2. Nicolaj Bjorner、Anh-Dung Phan 和 Lars Fleckenstein。 Z3 - 优化 SMT 求解器。 在 Proc. TACAS,LNCS 第 9035 卷。 Springer, 2015 -- 如果这些还不够的话,还有与 Optimization Modulo Theories 主题相关的任何其他出版物。
-
@PatrickTrentin 这应该是一个答案,而不是评论!当场。
-
@patrick-trentin 您与 Bjorner 和 Phan 的链接对我不起作用,但这似乎是论文:microsoft.com/en-us/research/wp-content/uploads/2016/02/…。这是第二篇论文的链接:microsoft.com/en-us/research/wp-content/uploads/2016/02/…。论文似乎有点重叠,如果我必须选择一个,我会选择第一个。
-
@MatthewWoodruff 非常感谢,我会相应地更新我的参考书目数据库。