使用 MAXSMT 进行增量学习
Incremental Learning using MAXSMT
我们可以在 z3 中以增量方式使用 MaxSMT 求解器(优化)的先前解决方案吗?另外,有没有办法在优化器上打印出软断言?
答案是 YES 如果你问的是 技术上 可能 运行 或者 z3
或 OptiMathSAT
递增 与 MaxSMT 问题。 (使用API).
所有具有相同 id
的软从句--在执行 check-sat
-- 的那一刻被认为是相同的一部分MaxSMT 目标。本质上,OMT 求解器懒惰地评估 MaxSMT 目标的相关软条款集。这适用于 z3
和 OptiMathSAT
。
An optimal solution found at an early stage may be far away from the optimal solution of later stages of the iterative process.
在处理 MaxSMT 问题时,OMT 求解器重用的能力
增量 调用中学习的子句可能取决于正在使用的优化算法。
我看到两种可能的情况:
一个正在使用 基于内核的 MaxSMT 引擎。在这种情况下,探索复杂程度不断增加的问题的公式可能有助于识别原始问题的 tractable 子集。但是,请注意,涉及在先前迭代中学习的软约束的引理在后期阶段可能没有用(实际上,OMT 求解器将丢弃所有这些子句并在必要时重新计算它们).
一个正在使用 基于卫星的 MaxSMT 引擎。在这种情况下,除了将搜索重点放在 (?可能相关?) 软条款的特定组上之外,我不清楚将问题分成更小的块的好处。 OMT 求解器可以立即获得所有软约束以及硬超时,并且在警报触发时它仍然能够产生部分最优解。 (涉及成本函数的 T-Lemmas 在增量调用中不会有用,因为成本函数发生变化。在最好的情况下,OMT 求解器会丢弃它们。在最坏的情况下,这些 T-Lemmas 会保留在环境并在不改变解决方案的情况下使搜索混乱。
我承认很难预测 OMT 求解器的性能,因为这两种方法都会引入开销。一方面,我们有 增量 调用的开销以及优化过程从头开始多次重新启动的事实。另一方面,我们有在更大的软条款集上执行 BCP 的开销。我猜天平有利于 增量 方法来处理足够大的软条款集。 [这将是一个有趣的研究课题,我很想读一篇关于它的论文!]
我们可以在 z3 中以增量方式使用 MaxSMT 求解器(优化)的先前解决方案吗?另外,有没有办法在优化器上打印出软断言?
答案是 YES 如果你问的是 技术上 可能 运行 或者 z3
或 OptiMathSAT
递增 与 MaxSMT 问题。 (使用API).
所有具有相同 id
的软从句--在执行 check-sat
-- 的那一刻被认为是相同的一部分MaxSMT 目标。本质上,OMT 求解器懒惰地评估 MaxSMT 目标的相关软条款集。这适用于 z3
和 OptiMathSAT
。
An optimal solution found at an early stage may be far away from the optimal solution of later stages of the iterative process.
在处理 MaxSMT 问题时,OMT 求解器重用的能力 增量 调用中学习的子句可能取决于正在使用的优化算法。
我看到两种可能的情况:
一个正在使用 基于内核的 MaxSMT 引擎。在这种情况下,探索复杂程度不断增加的问题的公式可能有助于识别原始问题的 tractable 子集。但是,请注意,涉及在先前迭代中学习的软约束的引理在后期阶段可能没有用(实际上,OMT 求解器将丢弃所有这些子句并在必要时重新计算它们).
一个正在使用 基于卫星的 MaxSMT 引擎。在这种情况下,除了将搜索重点放在 (?可能相关?) 软条款的特定组上之外,我不清楚将问题分成更小的块的好处。 OMT 求解器可以立即获得所有软约束以及硬超时,并且在警报触发时它仍然能够产生部分最优解。 (涉及成本函数的 T-Lemmas 在增量调用中不会有用,因为成本函数发生变化。在最好的情况下,OMT 求解器会丢弃它们。在最坏的情况下,这些 T-Lemmas 会保留在环境并在不改变解决方案的情况下使搜索混乱。
我承认很难预测 OMT 求解器的性能,因为这两种方法都会引入开销。一方面,我们有 增量 调用的开销以及优化过程从头开始多次重新启动的事实。另一方面,我们有在更大的软条款集上执行 BCP 的开销。我猜天平有利于 增量 方法来处理足够大的软条款集。 [这将是一个有趣的研究课题,我很想读一篇关于它的论文!]