Two type extensions for the constraint modelling language MiniZinc

In this paper we present two type extensions for the modelling language MiniZinc that allow the representation of some problems in a more natural way. The first proposal, called MiniZinc? , extends existing types with additional values. The user can specify both the extension of a predefined type wi...

ver descrição completa

Detalhes bibliográficos
Autores: Caballero Roldán, Rafael, Stuckey, Peter J., Tenorio Fornés, Ámbar
Tipo de documento: artigo
Data de publicação:2015
País:España
Repositório:Docta Complutense
Idioma:inglês
OAI Identifier:oai:docta.ucm.es:20.500.14352/24376
Acesso em linha:https://hdl.handle.net/20.500.14352/24376
Access Level:Acceso aberto
Palavra-chave:004.438MiniZinc
Constraint Programming
NULL values
Union Types
Lenguajes de programación
1203.23 Lenguajes de Programación
Descrição
Resumo:In this paper we present two type extensions for the modelling language MiniZinc that allow the representation of some problems in a more natural way. The first proposal, called MiniZinc? , extends existing types with additional values. The user can specify both the extension of a predefined type with new values, and the behavior of the operations with relation to the new types. We illustrate the usage of MiniZinc? to model SQL-like problems with integer variables extended with NULL values. The second extension, MiniZinc+, introduces union types in the language. This allows defining recursive types such as trees, which are very useful for modelling problems that involve complex structures. A new case statement is introduced to select the different components of union type terms. The paper shows how a model defined using these extensions can be transformed into a MiniZinc model which is equivalent to the original model.