使用 Z3 优化非线性 objective 函数
optimization of non-linear objective functions using Z3
我有两个方程,其中一个是线性的,而第二个是非线性的。
我必须最小化第一个,同时最大化第二个。
这可以用 Z3 实现吗?似乎它无法优化非线性方程。它 returns "Unknown" 与非线性方程。
Z3优化主要针对线性片段,见本文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-nuz.pdf(注意本文中描述的工具现在是z3的一部分,你不需要单独的可执行文件。)
话虽如此,一个常见的技巧是使用优化器来做线性部分;并重复调用以获取 non-linear 部分的 "better" 值。有关示例,请参见此答案:
我有两个方程,其中一个是线性的,而第二个是非线性的。 我必须最小化第一个,同时最大化第二个。
这可以用 Z3 实现吗?似乎它无法优化非线性方程。它 returns "Unknown" 与非线性方程。
Z3优化主要针对线性片段,见本文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-nuz.pdf(注意本文中描述的工具现在是z3的一部分,你不需要单独的可执行文件。)
话虽如此,一个常见的技巧是使用优化器来做线性部分;并重复调用以获取 non-linear 部分的 "better" 值。有关示例,请参见此答案: