Representations in constraint programming
Representations in constraint programming
复制标题
约束规划中的表示
DOI:
--
复制
发表时间:
2007
期刊:
影响因子:
--
通讯作者:
Christopher Jefferson
中科院分区:
文献类型:
--
作者:
Christopher Jefferson
Constraint programming is a powerful and general purpose tool which is used to solve a large range of combinatorial and real-world problems. CP solvers combine a number of powerful and generic algorithms, which when used together can often solve problems infeasable in other frameworks. The major practical issue which stalls adoption of constraint programming by a wider audience is that transforming a problem from a high-level description into a format suitable for a constraint solver, called modelling, is more of an art than a science. Hence, modelling can only be accomplished well by expert practitioners. Often small changes, which to the untrained user may appear useless, can lead to huge reductions or increases in the time taken to solve a problem. The first, and arguably most important, decision when modelling a problem is to choose the type of variables which will be used. Most constraint systems provide only a small number of variable types; usually integers, matrices and possibly sets. Users must transform the high-level abstract types from their problem into these basic types, and then map the constraints down onto these types. All this must be accomplished using only the set of constraints provided by their solver. This thesis provides the first complete, generic method for comparing all the representations of a particular variable. In doing so it provides a number of key insights which improve the state of the art in automating the modelling process. Choosing the “best” representation of a high-level variable, such as a timetable or partition, in CP is extremely difficult; with many possible conflicting definitions of best. In general keeping the number of variables and constraints used small will allow the solver to work faster. Designing the representation so that propagators for global constraints can be used can also improve performance. Often different representations have different strengths,