Function Variables for Constraint Programming

Quite often modelers with constraint programming (CP) use the same modelling patterns for different problems, possibly from different domains. This results in recurring idioms in constraint programs. Our approach can be seen as a three-step approach. First, we identify some of these recurring patt...

Full description

Bibliographic Details
Main Author: Hnich, Brahim
Format: Doctoral Thesis
Language:English
Published: Uppsala universitet, Institutionen för informationsvetenskap 2003
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-3143
http://nbn-resolving.de/urn:isbn:91-506-1650-1
id ndltd-UPSALLA1-oai-DiVA.org-uu-3143
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-uu-31432013-01-08T13:03:39ZFunction Variables for Constraint ProgrammingengHnich, BrahimUppsala universitet, Institutionen för informationsvetenskapUppsala : Institutionen för informationsvetenskap2003DatalogiConstraint saisfactionconstraint programminghigh-level modellingabstractionreformulationfunction variables.DatalogiComputer scienceDatalogiQuite often modelers with constraint programming (CP) use the same modelling patterns for different problems, possibly from different domains. This results in recurring idioms in constraint programs. Our approach can be seen as a three-step approach. First, we identify some of these recurring patterns in constraint programs. Second, we propose a general way of describing these patterns by introducing proper constructs that would cover a wide range of applications. Third, we propose automating the process of reproducing these idioms from these higher-level descriptions. The whole process can be seen as a way of encapsulating some of the expertise and knowledge often used by CP modelers and making it available in much simpler forms. Doing so, we are able to extend current CP languages with high-level abstractions that open doors for automation of some of the modelling processes. In particular, we introduce function variables and allow the statement of constraints on these variables using function operations. A function variable is a decision variable that can take a value from a set of functions as opposed to an integer variable that ranges over integers, or a set variable that ranges over a set of sets. We show that a function variable can be mapped into different representations in terms of integer and set variables, and illustrate how to map constraints stated on a function variable into constraints on integer and set variables. As a result, a function model expressed using function variables opens doors to the automatic generation of alternate CP models. These alternate models either use a different variable representation, or have extra implied constraints, or employ different constraint formulation, or combine different models that are linked using channelling constraints. A number of heuristics are also developed that allow the comparison of different constraint formulations. Furthermore, we present an extensive theoretical comparison of models of injection problems supported by asymptotic and empirical studies. Finally, a practical modelling tool that is built based on a high-level language that allows function variables is presented and evaluated. The tool helps users explore different alternate CP models starting from a function model that is easier to develop, understand, and maintain. Doctoral thesis, monographinfo:eu-repo/semantics/doctoralThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-3143urn:isbn:91-506-1650-1application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Doctoral Thesis
sources NDLTD
topic Datalogi
Constraint saisfaction
constraint programming
high-level modelling
abstraction
reformulation
function variables.
Datalogi
Computer science
Datalogi
spellingShingle Datalogi
Constraint saisfaction
constraint programming
high-level modelling
abstraction
reformulation
function variables.
Datalogi
Computer science
Datalogi
Hnich, Brahim
Function Variables for Constraint Programming
description Quite often modelers with constraint programming (CP) use the same modelling patterns for different problems, possibly from different domains. This results in recurring idioms in constraint programs. Our approach can be seen as a three-step approach. First, we identify some of these recurring patterns in constraint programs. Second, we propose a general way of describing these patterns by introducing proper constructs that would cover a wide range of applications. Third, we propose automating the process of reproducing these idioms from these higher-level descriptions. The whole process can be seen as a way of encapsulating some of the expertise and knowledge often used by CP modelers and making it available in much simpler forms. Doing so, we are able to extend current CP languages with high-level abstractions that open doors for automation of some of the modelling processes. In particular, we introduce function variables and allow the statement of constraints on these variables using function operations. A function variable is a decision variable that can take a value from a set of functions as opposed to an integer variable that ranges over integers, or a set variable that ranges over a set of sets. We show that a function variable can be mapped into different representations in terms of integer and set variables, and illustrate how to map constraints stated on a function variable into constraints on integer and set variables. As a result, a function model expressed using function variables opens doors to the automatic generation of alternate CP models. These alternate models either use a different variable representation, or have extra implied constraints, or employ different constraint formulation, or combine different models that are linked using channelling constraints. A number of heuristics are also developed that allow the comparison of different constraint formulations. Furthermore, we present an extensive theoretical comparison of models of injection problems supported by asymptotic and empirical studies. Finally, a practical modelling tool that is built based on a high-level language that allows function variables is presented and evaluated. The tool helps users explore different alternate CP models starting from a function model that is easier to develop, understand, and maintain.
author Hnich, Brahim
author_facet Hnich, Brahim
author_sort Hnich, Brahim
title Function Variables for Constraint Programming
title_short Function Variables for Constraint Programming
title_full Function Variables for Constraint Programming
title_fullStr Function Variables for Constraint Programming
title_full_unstemmed Function Variables for Constraint Programming
title_sort function variables for constraint programming
publisher Uppsala universitet, Institutionen för informationsvetenskap
publishDate 2003
url http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-3143
http://nbn-resolving.de/urn:isbn:91-506-1650-1
work_keys_str_mv AT hnichbrahim functionvariablesforconstraintprogramming
_version_ 1716507488864436224