基于视图的传播器推导
人工智能
2009-08-17 v1
摘要
在实现约束的传播器时,必须决定其变体:实现min时,是否也应实现max?是否应同时实现单位系数和非单位系数的线性约束?约束变体无处不在:实现它们需要相当大的(甚至令人望而却步的)工作量,并降低可维护性,但相比采用约束分解,能提供更好的性能。本文展示了如何使用视图来推导完美的传播器变体。引入了视图和派生传播器的模型。派生传播器被证明确实是完美的,因为它们继承了正确性、域一致性和边界一致性等基本属性。开发了系统推导传播器的技术,如变换、泛化、特化和类型转换。本文介绍了一种独立于底层约束编程系统的视图实现架构。对在Gecode中实现的视图进行的详细评估表明,派生传播器是高效的,并且视图通常不会带来开销。如果没有视图,Gecode要么需要180 000行而非40 000行的传播器代码,要么会缺少许多高效的传播器变体。与8 000行的视图代码相比,传播器代码的减少带来了1750%的投资回报率。
引用
@article{arxiv.0908.2050,
title = {View-based Propagator Derivation},
author = {Christian Schulte and Guido Tack},
journal= {arXiv preprint arXiv:0908.2050},
year = {2009}
}
备注
28 pages, 7 tables, 3 figures