Abstract
Essence is a formal language for specifying combinatorial problems in a manner similar to natural rigorous specifications that use a mixture of natural language and discrete mathematics. Essence provides a high level of abstraction, much of which is the consequence of the provision of decision variables whose values can be combinatorial objects, such as tuples, sets, multisets, relations, partitions and functions. Essence also allows these combinatorial objects to be nested to arbitrary depth, providing for example sets of partitions, sets of sets of partitions, and so forth. Therefore, a problem that requires finding a complex combinatorial object can be specified directly by using a decision variable whose type is precisely that combinatorial object.
Similar content being viewed by others
References
Aggoun, A., & Beldiceanu, N. (1993). Overview of the CHIP compiler system. In F. Benhamou, A. Colmerauer (Eds.), Constraint logic programming: Selected research (pp. 421–436). London: MIT.
Brooke, A., Kendrick, D., & Meeraus, A. (1988). GAMS: A users’ guide. Danvers: Scientific.
Cadoli, M., Ianni, G., Palopoli, L., Schaerf, A., & Vasile, D. (2000). NP-SPEC: An executable specification language for solving all problems in NP. Computer Languages, 26, 165–195.
Cheadle, A. M., Harvey, W., Sadler, A. J., Schimpf, J., Shen, K., & Wallace, M. G. (2003). ECLiPSe: An introduction. Technical report, IC-Parc-03-1. Imperial College London.
Flener, P., Frisch, A. M., Hnich, B., Kızıltan, Z., Miguel, I., Walsh, T. (2001). Matrix modelling. In Proceedings of the CP’01 workshop on modelling and problem formulation (pp. 1–7).
Flener, P., Pearson, J., & Agren, M. (2004). Introducing ESRA, a relational language for modelling combinatorial problems. In Proceedings of LOPSTR ’03: Revised selected papers (Vol. 3018). Lecture notes in computer science.
Fourer, R., Gay, D. M., & Kernighan, B. W. (2003). AMPL: A modeling language for mathematical programming (2nd ed.). Pacific Grove: Thomson/Brooks/Cole.
Frisch, A. M., Grum, M., Jefferson, C., Martínez Hernández, B., & Miguel, I. (2005). The essence of Essence: A language for specifying combinatorial problems. In Proc. of the 4th int. workshop on modelling and reformulating constraint satisfaction problems (pp. 73–88).
Frisch, A. M., Grum, M., Jefferson, C., Martínez Hernández, B., & Miguel, I. (2007). The design of Essence: A language for specifying combinatorial problems. In Proc. of the twentieth int. joint conf. on artificial intelligence.
Frisch, A. M., Hnich, B., Miguel, I., Smith, B. M., & Walsh, T. (2005). Transforming and refining abstract constraint specifications. In Proceedings of the sixth symposium on abstraction, reformulation and approximation. Lecture notes in computer science (Vol. 3607, pp. 76–91). Springer.
Frisch, A. M., Jefferson, C., Martínez Hernández, B., & Miguel, I. (2005). The rules of constraint modelling. In Proc. of the nineteenth int. joint conf. on artificial intelligence (pp. 109–116).
Frisch, A. M., Jefferson, C., Martinez-Hernandez, B., & Miguel, I. (2007). Symmetry in the generation of constraint models. In Proceedings of the international symmetry conference.
Frisch, A. M., & Miguel, I. (2006). The concept and provenance of unnamed, indistinguishable types. www.cs.york.ac.uk/aig/constraints/AutoModel/. Accessed September 2007.
Garey, M. R., & Johnson, D. S. (1979). Computers and intractability. San Francisco: W. H. Freeman.
Gent, I. P., Jefferson, C., Miguel, I. (2006). Minion: Lean, fast constraint solving. In Proceedings of the 17th European conference on artifical intelligence.
Gent, I. P., Miguel, I., & Rendl, A. (2007). Tailoring solver-independent constraint models: A case study with Essence′ and Minion. In Proceedings of the 7th international symposium on abstraction, reformulation and approximation (pp. 18–21).
Gervet, C. (1994). Conjunto: Constraint logic programming with finite set domains. In M. Bruynooghe (Ed.), Logic programming — proc. of the 1994 international symposium (pp. 339–358). London: MIT.
Hnich, B. (2003). Function Variables for Constraint Programming. Ph.D. thesis, Computer Science Division, Dept. of Information Science, Uppsala University.
ILOG (2006) ILOG Solver 6.3 user manual. ILOG, S.A., Gentilly.
Jackson, D. (2006). Software abstractions: Logic, language, and snalysis. London: MIT.
Lauriere, J-L. (1978). ALICE: A language and a program for stating and solving combinatorial problems. Artificial Intelligence, 10(1), 29–127.
Marriott, K., Nethercote, N., Rafeh, R., Stuckey, P. J., De la Banda, M. G., & Wallace, M. (2008). The design of the Zinc modelling language. Constraints, This Volume.
Marriott, K., Rafeh, R., Wallace, M., Garcia de la Banda, M., & Nethercote, N. (2006). Zinc 0.1: Language and libraries. Technical report, Monash University.
Michel, L., & Van Hentenryck, P. (2000). Localizer. Constraints, 5(1/2), 43–84.
Mills, P., Tsang, E. P. K., Williams, R., Ford, J., Borrett, J. (1999). EaCL 1.5: An easy abstract constraint optimisation programming language. Technical report, University of Essex, Colchester, UK, December.
Mitchell, D., & Ternovska, E. (2008). Expressive power and abstraction in Essence. Constraints, This Volume.
Nethercote, N., Stuckey, P. J., Becket, R., Brand, S., Duck, G. J., & Tack G. (2007). Minizinc: Towards a standard CP modelling language. In Proceedings of the 13th international conference on principles and practice of constraint programming (pp. 529–543).
Regin, J-C. (1996). Generalized arc consistency for global cardinality constraint. In Proceedings of the 13th conference on artificial intelligence (pp. 209–215).
Renker, G., & Ahriz, H. (2004). Building models through formal specification. In Proc of the first int. conf. on the integration of AI and OR techniques in constraint programming for combinatorial optimization problems, Lecture notes in computer science (Vol. 3011, pp. 395–401). Springer.
Simons, R. V. (1987). Mathematical programming modeling using MGG. IMA Journal of Mathematics in Management, 1, 267–276.
Spivey, J. M. (1989). An introduction to Z and formal specifications. Software Engineering Journal, 4(1), 40–50.
Van Hentenryck, P. (1999). The OPL optimization programming language. London: MIT.
Wallace, M. G., Novello, S., & Schimpf, J. (1997). ECLiPSe: A platform for constraint logic programming. ICL Systems Journal, 12(1), 159–200.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Frisch, A.M., Harvey, W., Jefferson, C. et al. Essence: A constraint language for specifying combinatorial problems. Constraints 13, 268–306 (2008). https://doi.org/10.1007/s10601-008-9047-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10601-008-9047-y