QUICK REVIEW
[论文解读] Approximating Constraint Propagation in Datalog
Dario Campagna, Beata Sarna-Starosta|arXiv (Cornell University)|Dec 16, 2011
Constraint Satisfaction and Optimization参考文献 16被引用 3
一句话总结
本文提出了一种针对 Datalog LB 的源到源变换,通过近似约束规划中的约束传播技术,加速包含算术约束的程序求值。通过整合源自完整性约束和聚集的过滤谓词,该方法在递归与非递归程序上实现了最高达 8× 的加速,优于以往的约束魔术集技术。
ABSTRACT
We present a technique exploiting Datalog with aggregates to improve the performance of programs with arithmetic (in)equalities. Our approach employs a source-to-source program transformation which approximates the propagation technique from Constraint Programming. The experimental evaluation of the approach shows good run time speed-ups on a range of non-recursive as well as recursive programs. Furthermore, our technique improves upon the previously reported in the literature constraint magic set transformation approach.
研究动机与目标
- 通过利用约束规划中的约束传播技术,提升包含算术(不)等式约束的 Datalog LB 程序性能。
- 解决现有 Datalog 编译器中朴素的生成-测试求值方式效率低下的问题,其中算术约束被视为后期生效的过滤器。
- 开发一种源到源变换,通过约束传播实现的域缩减预先过滤生成器,避免对搜索空间的完整枚举。
- 在运行时效率和可扩展性方面超越现有方法(如约束魔术集变换)。
提出的方法
- 该方法引入源自完整性约束的过滤谓词,在连接操作前预先过滤变量的域,从而早期减少搜索空间。
- 利用 Datalog LB 对聚集和类型安全谓词的支持,编码域约束并通过算术表达式传播边界信息。
- 该变换应用一种源到源重写机制,在连接前插入过滤谓词,近似约束规划中约束传播器的效果。
- 该方法利用 Datalog LB 的静态类型系统和完整性约束,声明过滤类型,基于算术约束限制变量的域。
- 该变换应用于非递归和递归程序,包括 Flights 和 I*AM=SAM 等谜题。
- 在一系列基准测试中评估该方法,对比 LogicBlox 和 XSB 系统中应用变换前后性能表现。
实验结果
研究问题
- RQ1能否在 Datalog 中通过源到源变换有效近似约束传播,以提升算术约束程序的性能?
- RQ2所提出的过滤谓词变换在运行时效率方面与约束魔术集变换相比如何?
- RQ3该变换在包含算术约束的非递归与递归 Datalog 程序中是否具有良好的可扩展性?
- RQ4为何该变换在 LogicBlox 中提升性能而在 XSB 中导致性能下降?这揭示了系统级约束排序机制的何种影响?
- RQ5能否将约束传播与 Datalog 中的半朴素自底向上求值进一步结合以提升性能?
主要发现
- 在 LogicBlox 环境中,该变换在原始运行时间较长的程序上实现了最高达 8× 的加速。
- 对于原始运行时间低于 0.1 秒的程序,该变换在 LogicBlox 中表现出性能下降,表明优化收益存在一个阈值效应。
- 该方法优于约束魔术集变换,尤其在递归和复杂程序(如 Flights 基准)上表现更优。
- 在 XSB 中,该变换导致大多数程序性能下降,归因于变换引入的约束排序增加了开销。
- CMR+FP 变体(含过滤谓词)在 LogicBlox 中表现出显著改进,加速比在 2× 到 8× 之间,具体取决于程序复杂度。
- 结果表明,该变换的有效性高度依赖于底层求值引擎对约束排序和增量计算的处理方式。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。