Central to constraint logic programming (CLP) languages is the notion of a global constraint solver which is queried to direct execution and to which constraints are monotonically added. We present a methodology for use in the compilation of CLP languages which is designed to reduce the overhead of the global constraint solver. This methododology is based on three optimizations. The first, refinement, involves adding new constraints, which in effect make information available earlier in the computation, guiding subsequent execution away from unprofitable choices. The second, removal, involves eliminating constraints from the solver when they are redundant. The last, reordering, involves moving constraint addition later and constraint removal earlier in the computation. Determining the applicability of each optimization requires sophisticated global analysis. These analyses are based on abstract interpretation and provide information about potential and definite interaction between constraints.
中央约束逻辑编程(CLP)语言是全局约束求解器的概念,该查询器被要求直接执行并向其单调添加约束。我们提出了一种用于CLP语言编译的方法,该方法旨在减少全局约束求解器的开销。该方法论基于三个优化。首先,完善涉及添加新的约束,实际上使信息在计算中更早可用,从而指导后续执行摆脱无利可图的选择。第二种方法是删除,涉及从求解器中消除多余的约束。最后,重新排序涉及在计算中稍后移动约束添加并在早期移动约束删除。确定每个优化的适用性需要复杂的全局分析。这些分析基于抽象解释,并提供有关约束之间潜在的和确定的相互作用的信息。 P>
机译:一些组合优化问题的性质及其对整数规划和约束逻辑规划的影响
机译:使用逻辑编程解决分布式约束优化问题
机译:通过约束逻辑编程解决工业线性优化问题
机译:通过约束逻辑程序设计(CLP)和混合整数线性程序设计(MILP)优化管道操作
机译:通过基于逻辑的方法将优化和约束编程相结合。
机译:基于约束逻辑编程的故障定位重量优先切片
机译:分布式约束的逻辑和约束逻辑程序设计 优化