Z3 Optimize 最大和最小功能背后的理论是什么?

What is the theory behind Z3 Optimize maximum and minimum functionality?

来信询问Z3 Optimize功能背后的theory/algorithm,特别是maximumminimum功能。这对我来说似乎很神奇。它是以某种方式进行二进制搜索吗?它如何有效地计算出这里的 max/min 值..?

我试图搜索相关函数的源代码(例如execute_min_max函数),但没有深入了解那里的术语,对我来说意义不大.. . 基本上 lex 在这里代表什么?似乎解决方案以某种方式保存在堆栈中。

如有任何建议或建议,我们将不胜感激。谢谢。

查看有关该主题的出版物,例如

1. Nikolaj Bjorner 和 Anh-Dung Phan. νZ - Z3 的最大满意度。 在 Proc 国际软件科学符号计算研讨会上,Gammart,突尼斯,2014 年 12 月。EasyChair 计算会议论文集 (EPiC)。 [PDF]

2. Nikolaj Bjorner、Anh-Dung Phan 和 Lars Fleckenstein。 Z3 - 优化SMT 求解器。 在过程中。 TACAS,LNCS 第 9035 卷。 Springer,2015 年——而且,如果这些还不够,还有与优化模数理论主题相关的任何其他出版物。 [Springer] [[PDF]


z3 优化模理论 (OMT) 求解器具有各种优化程序。其中一些技术比其他技术更有效,但只能处理某些 类 of objective 函数(即 Pseudo-Boolean/MaxSMT objectives).在Linear Arithmetic cost functions which cannot be reduced to Pseudo-Boolean/MaxSMT的情况下,最优化搜索的基本方法,被大多数人采用OMT 求解器,是 运行 在 linear-binary-search 中。如需比较这两种方法,请参阅

  • Roberto Sebastiani 和 Silvia Tomasi 使用 LA(Q) 成本函数在 SMT 中进行优化。 在 IJCAR 中,体积LNAI 的 7364,第 484-498 页。斯普林格,2012 年 7 月。[PDF]

  • 罗伯托·塞巴斯蒂安尼和西尔维娅·托马西具有线性有理成本的优化模理论。 ACM 计算逻辑交易,16(2),2015 年 3 月。[PDF]

我不确定如何回答问题 "How can it efficiently figure out the max/min value here..?",因为第一个应该定义 efficiency 在这里的意思语境。正如您可以从前两个出版物中读到的那样,binary-search 并不总是最佳选择,因为优化中的搜索步骤并不完全相同 "cost"

词典优化的定义在网上随处可见,这是我最近用的:

Definition 4.6.4. (Lexicographic OMT [BP14, BPF15, ST15b, ST15c]). Let <φ,O> be a multi-objective OMT problem, where φ is a ground SMT formula and O = { obj_1 , ..., obj_N } is a sorted list of N objective functions. We call Lexicographic OMT problem, the problem of finding the model M which satisfies φ and makes each obj_i minimum¹ in decreasing order of priority.

¹: in practice objectives need not to be all minimized, this is just for ease of definition

AFAIK,在 z3 中实现的词典优化程序在任何公开可用的论文中都没有广泛描述。然而,lex 的一个简单方法是 运行 N single-objective(增量)优化,每次固定上一轮获得的最佳值。


如果这还不足以回答您的问题,请查看与优化模数理论主题相关的任何其他出版物。