G. Gange, Peter James Stuckey
{"title":"Constraint Propagation and Explanation over Novel Types by Abstract Compilation","authors":"G. Gange, Peter James Stuckey","doi":"10.4230/OASIcs.ICLP.2016.13","DOIUrl":null,"url":null,"abstract":"© Graeme Gange and Peter J. Stuckey. The appeal of constraint programming (CP) lies in compositionality - the ability to mix and match constraints as needed. However, this flexibility typically does not extend to the types of variables. Solvers usually support only a small set of pre-defined variable types, and extending this is not typically a simple exercise: not only must the solver engine be updated, but then the library of supported constraints must be re-implemented to support the new type. In this paper, we attempt to ease this second step. We describe a system for automatically deriving a native-code implementation of a global constraint (over novel variable types) from a declarative specification, complete with the ability to explain its propagation, a requirement if we want to make use of modern lazy clause generation CP solvers. We demonstrate this approach by adding support for wrapped-integer variables to chuffed, a lazy clause generation CP solver.","PeriodicalId":271041,"journal":{"name":"International Conference on Logic Programming","volume":"13 17","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Logic Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/OASIcs.ICLP.2016.13","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
抽象编译对新类型的约束传播与解释
©Graeme Gange和Peter J. Stuckey。约束规划(CP)的吸引力在于组合性——根据需要混合和匹配约束的能力。但是,这种灵活性通常不会扩展到变量的类型。求解器通常只支持一小部分预定义的变量类型,扩展它通常不是一个简单的练习:不仅必须更新求解器引擎,而且必须重新实现所支持的约束库以支持新类型。在本文中,我们试图简化这第二步。我们描述了一个系统,用于从声明性规范自动派生全局约束(在新的变量类型上)的本机代码实现,并具有解释其传播的能力,如果我们想要使用现代惰性子句生成CP求解器,这是一个要求。我们通过向chuffed(一个惰性子句生成CP求解器)添加对包装整数变量的支持来演示这种方法。
本文章由计算机程序翻译,如有差异,请以英文原文为准。