Z3 Optimize 最大和最小功能背后的理论是什么?
What is the theory behind Z3 Optimize maximum and minimum functionality?
来信询问Z3 Optimize功能背后的theory/algorithm,特别是maximum
和minimum
功能。这对我来说似乎很神奇。它是以某种方式进行二进制搜索吗?它如何有效地计算出这里的 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(增量)优化,每次固定上一轮获得的最佳值。
如果这还不足以回答您的问题,请查看与优化模数理论主题相关的任何其他出版物。
来信询问Z3 Optimize功能背后的theory/algorithm,特别是maximum
和minimum
功能。这对我来说似乎很神奇。它是以某种方式进行二进制搜索吗?它如何有效地计算出这里的 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 andO = { obj_1 , ..., obj_N }
is a sorted list ofN
objective functions. We call Lexicographic OMT problem, the problem of finding the modelM
which satisfiesφ
and makes eachobj_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(增量)优化,每次固定上一轮获得的最佳值。
如果这还不足以回答您的问题,请查看与优化模数理论主题相关的任何其他出版物。