The Essence language allows a user to specify a constraint problem at a level of abstraction above that at which constraint modelling decisions are made. Essence specifications are refined into constraint models using the Conjure automated modelling tool, which employs a suite of refinement rules. However, Essence is a rich language in which there are many equivalent ways to specify a given problem. A user may therefore omit the use of domain attributes or abstract types, resulting in fewer refinement rules being applicable and therefore a reduced set of output models from which to select. This paper addresses the problem of recovering this information automatically to increase the robustness of the quality of the output constraint models in the face of variation in the input Essence specification. We present reformulation rules that can change the type of a decision variable or add attributes that shrink its domain. We demonstrate the efficacy of this approach in terms of the quantity and quality of models Conjure can produce from the transformed specification compared with the original.
翻译:Essence 语言允许用户在一个抽象层次上具体说明制约问题,比作出制约建模决定的抽象程度高。 Esssence 规格通过使用一套完善规则的Conjure自动建模工具改进为制约模型。然而,Essence 是一种丰富的语言,有许多相当的方法来指定一个特定问题。因此,用户可以省略域属性或抽象类型的使用,从而导致适用精细规则较少,因此可以选择的输出模型也较少。本文件述及在投入 Essence 规格出现差异时自动恢复这一信息以提高产出限制模型质量的稳健性的问题。我们提出了重新拟订规则,可以改变决定变量的类型或增加缩小其域的属性。我们从修改后的规格与原始规格相比,从模型的数量和质量上展示了这一方法的功效。