[论文解读] Decompositions of Grammar Constraints
本文提出一种基于分解的方法,通过将形式语言指定的变量序列的语法约束转换为与SAT兼容的原语约束,实现高效传播语法约束。该方法实现了高效、增量式且回溯高效的约束传播,优于单体求解器,并支持与现代SAT求解器及约束工具包的集成。
A wide range of constraints can be compactly specified using automata or formal languages. In a sequence of recent papers, we have shown that an effective means to reason with such specifications is to decompose them into primitive constraints. We can then, for instance, use state of the art SAT solvers and profit from their advanced features like fast unit propagation, clause learning, and conflict-based search heuristics. This approach holds promise for solving combinatorial problems in scheduling, rostering, and configuration, as well as problems in more diverse areas like bioinformatics, software testing and natural language processing. In addition, decomposition may be an effective method to propagate other global constraints.
研究动机与目标
- 为在约束编程中高效推理复杂语法约束的挑战提供解决方案。
- 使状态先进的SAT求解器能够应用于涉及形式语言规范的问题。
- 提供一种可扩展且可扩展的方法,用于传播语法约束,而无需手工优化代码。
- 在组合搜索中支持增量式和回溯高效的约束传播。
- 为从示例中学习语法约束并将其扩展到其他全局约束打开新途径。
提出的方法
- 使用CYK解析器的AND/OR分解,将语法约束分解为原语约束的合取。
- 通过布尔函数将语法中的每个非终结符表示为带有关联长度和位置边界的约束。
- 使用与SAT兼容的逻辑约束来建模语法中的状态转移。
- 利用SAT求解器中的监视文字(watch literals)和基于冲突的搜索启发式,实现高效的回溯和增量传播。
- 构建一种分解结构,其镜像CYK解析算法的结构,但以原语约束的合取形式表达。
- 利用现有SAT求解器特性,如单位传播、子句学习和基于冲突的搜索启发式,以提升性能。
实验结果
研究问题
- RQ1语法约束能否被有效分解为原语约束,以实现与SAT求解器的高效推理?
- RQ2与单体传播器相比,基于分解的方法在性能上表现如何?
- RQ3该分解能否支持增量式约束传播和搜索中的高效回溯?
- RQ4该方法在多大程度上可推广到语法约束之外的其他全局约束?
- RQ5该分解能否促进从示例中学习语法约束,特别是在Gold定理等理论限制下?
主要发现
- 该分解方法在搜索树每个分支上的最坏情况传播成本,与调用一次单体传播器的成本相当。
- 该分解支持高效的增量传播,即在域变化后仅重新评估受影响的约束。
- 该方法利用监视文字实现常数时间回溯,这是现代SAT求解器原生支持的特性。
- 该分解方法与手写优化代码相比具有竞争力,并能受益于SAT求解技术的持续进步。
- 该方法可构建无解集(no-goods)和成本度量,用于过度约束问题,从而扩展其在可行性之外的应用。
- 基于相同分解的MIP编码在排班问题上表现出色,验证了该方法的可扩展性和实用性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。