School of Computer Studies Research Report Series A

Total Page:16

File Type:pdf, Size:1020Kb

School of Computer Studies Research Report Series A University of Leeds SCHOOL OF COMPUTER STUDIES RESEARCH REPORT SERIES Rep ort A Tutorial on Constraint Programming by Barbara M Smith Division of Articial Intelligence April Abstract A constraint satisfaction problem CSP consists of a set of variables for each variable a nite set of p ossible values its domain and a set of con straints restricting the values that the variables can simultaneously take A solution to a CSP is an assignment of a value from its domain to every vari able in such a way that every constraint is satised Many problems arising in OR in particular scheduling timetabling and other combinatorial prob lems can b e represented as CSPs Constraint programming to ols now exist which allow CSPs to b e expressed easily and provide standard strategies for nding solutions This tutorial is intended to give a basic grounding in con straint satisfaction problems and some of the algorithms used to solve them including the techniques commonly used in constraint programming to ols In particular it covers arc and path consistency simple backtracking and forward checking as examples of search algorithms and the use of heuristics to guide the search A simple example is considered in detail to show the eect of dierent choices of formulation and search strategy Finding optimal solutions to CSPs is also discussed Intro duction Constraint satisfaction problems CSPs have b een a sub ject of research in AI for many years It has b een recognised that CSPs have practical sig nicance b ecause many problems arising in OR in particular scheduling timetabling and other combinatorial problems can b e represented as CSPs This tutorial is intended to intro duce the research into CSPs which is neces sary to make use of constraint programming to ols it is not intended to b e a comprehensive survey of the eld Briey a constraint satisfaction problem CSP consists of a set of variables X fx x g 1 n for each variable x a nite set D of p ossible values its domain i i and a set of constraints restricting the values that the variables can simultaneously take Note that the values need not b e a set of consecutive integers although often they are they need not even b e numeric A solution to a CSP is an assignment of a value from its domain to every variable in such a way that every constraint is satised We may want to nd just one solution with no preference as to which one all solutions an optimal or at least a go o d solution given some ob jective function dened in terms of some or all of the variables As describ ed b elow solutions to CSPs are found by searching systemati cally through the p ossible assignments of values to variables usually guided by heuristics The reasons for cho osing to represent and solve a problem as a CSP rather than say as a mathematical programming problem are two fold Firstly the representation is often much closer to the original prob lem the variables of the CSP directly corresp ond to problem entities and the constraints can b e expressed without having to b e translated into lin ear inequalities This makes the formulation simpler the solution easier to understand and the choice of go o d heuristics to guide the solution strategy more straightforward Secondly although CSP algorithms are essentially very simple they can sometimes nd solutions more quickly than if integer programming metho ds are used In recent years with the development of constraint programming to ols it has b ecome easier to express and solve constraint satisfaction problems The rst commercial constraint programming to ols were those based on exten sions of Prolog in particular CHIP Constraint Handling in Prolog Cur rently ICLs DecisionPower incorp orates CHIP and it is also available from Cosytec PrologI I I is an alternative constraint programming language based on Prolog available from Prologia Constraint logic programming ie the extension of logic programming languages like Prolog to supp ort the handling of constraints is now a signicant area of research in the logic programming community Logic programming is not however an essential basis for constraint pro gramming and other to ols have b een built notably Solver from ILOG which is a C library It is worth mentioning that the French computer com pany Bull which had its own constraint programming to ol called Charme develop ed from CHIP has now abandoned this in favour of a version of ILOG Solver Where necessary examples in this tutorial will refer to ILOG Solver which is the to ol that I am most familiar with However examples could equally well have b een presented in terms of CHIP or another to ol Constraints The constraints of a CSP are usually represented by an expression involving the aected variables eg x x 1 2 x x x 1 2 3 x x x 1 2 3 or in ILOG Solver CtNeqxx CtEqx x x CtLtx x x It is useful also to b e aware of the formal denition of a constraint a p ossible constraint C b etween the variables x x x is any subset of ij k i j k 1 the p ossible combinations of values of x x x The subset sp ecies the i j k combinations of values which the constraint allows For example if variable x has the domain f g and variable y has the domain f g then any subset of f g is a valid constraint b etween x and y The constraint x y would b e represented by the subset f g Although the constraints of real problems are not represented this way in practice the denition do es emphasise that constraints need not corresp ond to simple expressions and in particular they need not b e linear inequalities or equations although they can b e A constraint can aect any numb er of variables from to n n is the numb er of variables in the problem The numb er of aected variables is the arity of the constraint It is useful to distinguish two particular cases Unary constraints aect just one variable The constraint can b e used to remove any value which do es not satisfy the constraint from the domain of the variable at the outset For instance if there is a constraint x 1 the value can b e removed from the domain of x and the constraint will 1 then b e satised Since unary constraints are dealt with by prepro cessing the domains of the aected variable they can b e ignored thereafter Binary Constraints aect two variables If all the constraints of a CSP are binary the variables and constraints can b e represented in a constraint graph the no des of the graph represent the variables and there is an edge joining two no des if and only if there is a constraint b etween the corresp ond ing variables 1 The p ossible combinations of values of x x x are given by the crosspro duct of i j k the domains D D D so C is a p ossible constraint if i j k ij k C D D D ij k i j k In fact any constraint of higher arity can b e expressed in terms of binary constraints although in practice this is not likely to b e worth doing Hence in some sense binary CSPs are representative of all CSPs An individual binary constraint b etween two variables with domain sizes m and m can b e represented by an m m matrix of values where 1 2 1 2 signies that the constraint allows the corresp onding pair of values and that it do es not Although this is not a practical way of dening real constraints it means that a random matrix can represent a binary con straint and this allows exp erimenters who need a large numb er of CSPs to pro duce randomlygenerated problems The pairs of variables which have constraints b etween them are also selected randomly describ es in more detail two p ossible mo dels for randomlygenerated CSPs A great deal of exp erimental work on CSPs comparing the p erformance of dierent algo rithms for instance has b een done using p opulations of randomlygenerated binary CSPs Example Cryptarithmetic puzzles like the following can b e expressed as CSPs Each letter in the following sum stands for a dierent digit nd their values D O N A L D G E R A L D R O B E R T The variables are the letters D O N A L G E R B T and their domains are the set of digits f g except that D G and R cannot b e This expressed in ILOG Solver by creating a set of constrained integer variables CtIntVar DONAL GERBT It is convenient to form an array containing p ointers to these variables CtIntVar AllVars DONALGERBT The constraints are the ten variables must all b e assigned a dierent value Technically this means that there is a notequal constraint b etween every pair of variables giving binary constraints In practice to ols such as ILOG Solver allow an easy way of stating that all variables in a sp ecied set must set have dierent values CtAllNeq AllVars the sum given must work out CtEqDONALD GERALD ROBERT There are alternative ways of formulating this problem which are b etter from the p oint of view of nding a solution This will b e discussed later Arc Consistency If there is a binary constraint C b etween the variables x and x then the ij i j 2 arc x x is arc consistent if for every value a D there is a value b D i j i j such that the assignments x a and x b satisfy the constraint C i j ij Any value a D for which this is not true ie no such value b exists can i safely b e removed from D since it cannot b e part of any consistent solution i removing all such values makes the arc x x arc consistent Note that we i j have only checked the values of x there may still b e values in the domain i of x which could b e removed if we reverse the op eration and make the arc j x x arc consistent j i Figure a shows the original domains of x and y In b x y has b een made arc consistent in c b
Recommended publications
  • The Design and Implementation of Object-Constraint Programming
    Felgentreff, The Design and Implementation of Object-Constraint Programming The Design and Implementation of Object-Constraint Programming von Tim Felgentreff Dissertation zur Erlangung des akademischen Grades des Doktor der Naturwissenschaften (Doctor rerum naturalium) vorgelegt der Mathematisch-Naturwissenschaftlichen Fakultät der Universität Potsdam. Betreuer Prof. Dr. Robert Hirschfeld Fachgebiet Software-Architekturen Hasso-Plattner-Institut Universität Potsdam 21. April 2017 Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Dissertation selbst angefertigt und nur die im Literaturverzeichnis aufgeführten Quellen und Hilfsmittel verwendet habe. Diese Dissertation oder Teile davon wurden nicht als Prüfungsarbeit für eine staatliche oder andere wissenschaftliche Prüfung eingereicht. Ich versichere weiterhin, dass ich diese Arbeit oder eine andere Abhandlung nicht bei einer anderen Fakultät oder einer anderen Universität eingereicht habe. Potsdam, den 21. April 2017 Tim Felgentreff v Abstract Constraints allow developers to specify properties of systems and have those properties be main- tained automatically. This results in compact declarations to describe interactive applications avoid- ing scattered code to check and imperatively re-satisfy invariants in response to user input that perturbs the system. Constraints thus provide flexibility and expressiveness for solving complex problems and maintaining a desired system state. Despite these advantages, constraint program- ming is not yet widespread, with imperative programming still being the norm. There is a long history of research on constraint programming as well as its integration with general purpose programming languages, especially from the imperative paradigm. However, this integration typically does not unify the constructs for encapsulation and abstraction from both paradigms and often leads to a parallel world of constraint code fragments and abstractions inter- mingled with the general purpose code.
    [Show full text]
  • Constraint Satisfaction with Preferences Ph.D
    MASARYK UNIVERSITY BRNO FACULTY OF INFORMATICS } Û¡¢£¤¥¦§¨ª«¬­Æ !"#°±²³´µ·¸¹º»¼½¾¿45<ÝA| Constraint Satisfaction with Preferences Ph.D. Thesis Brno, January 2001 Hana Rudová ii Acknowledgements I would like to thank my supervisor, Ludˇek Matyska, for his continuous support, guidance, and encouragement. I am very grateful for his help and advice, which have allowed me to develop both as a person and as the avid student I am today. I want to thank to my husband and my family for their support, patience, and love during my PhD study and especially during writing of this thesis. This research was supported by the Universities Development Fund of the Czech Repub- lic under contracts # 0748/1998 and # 0407/1999. Declaration I declare that this thesis was composed by myself, and all presented results are my own, unless otherwise stated. Hana Rudová iii iv Contents 1 Introduction 1 1.1 Thesis Outline ..................................... 1 2 Constraint Satisfaction 3 2.1 Constraint Satisfaction Problem ........................... 3 2.2 Optimization Problem ................................ 4 2.3 Solution Methods ................................... 5 2.4 Constraint Programming ............................... 6 2.4.1 Global Constraints .............................. 7 3 Frameworks 11 3.1 Weighted Constraint Satisfaction .......................... 11 3.2 Probabilistic Constraint Satisfaction ........................ 12 3.2.1 Problem Definition .............................. 13 3.2.2 Problems’ Lattice ............................... 13 3.2.3 Solution
    [Show full text]
  • Constraint Programming and Operations Research
    Noname manuscript No. (will be inserted by the editor) Constraint Programming and Operations Research J. N. Hooker and W.-J. van Hoeve November 2017 Abstract We present an overview of the integration of constraint program- ming (CP) and operations research (OR) to solve combinatorial optimization problems. We interpret CP and OR as relying on a common primal-dual solution approach that provides the basis for integration using four main strategies. The first strategy tightly interweaves propagation from CP and relaxation from OR in a single solver. The second applies OR techniques to domain filtering in CP. The third decomposes the problem into a portion solved by CP and a portion solved by OR, using CP-based column generation or logic-based Benders decomposition. The fourth uses relaxed decision diagrams developed for CP propagation to help solve dynamic programming models in OR. The paper cites a significant fraction of the literature on CP/OR integration and concludes with future perspectives. Keywords Constraint Programming, Operations Research, Hybrid Optimization 1 Introduction Constraint programming (CP) and operations research (OR) have the same overall goal. They strive to capture a real-world situation in a mathematical model and solve it efficiently. Both fields use constraints to build the model, often in conjunction with an objective function to evaluate solutions. It is therefore only natural that the two fields join forces to solve problems. J. N. Hooker Carnegie Mellon University, Pittsburgh, USA E-mail: [email protected] W.-J. van Hoeve Carnegie Mellon University, Pittsburgh, USA E-mail: [email protected] 2 J. N.
    [Show full text]
  • Chapter 1 GLOBAL CONSTRAINTS and FILTERING ALGORITHMS
    Chapter 1 GLOBAL CONSTRAINTS AND FILTERING ALGORITHMS Jean-Charles R´egin ILOG 1681, route des Dolines, Sophia Antipolis, 06560 Valbonne, France [email protected] Abstract Constraint programming (CP) is mainly based on filtering algorithms; their association with global constraints is one of the main strengths of CP. This chapter is an overview of these two techniques. Some of the most frequently used global constraints are presented. In addition, the filtering algorithms establishing arc consistency for two useful con- straints, the alldiff and the global cardinality constraints, are fully de- tailed. Filtering algorithms are also considered from a theoretical point of view: three different ways to design filtering algorithms are described and the quality of the filtering algorithms studied so far is discussed. A categorization is then proposed. Over-constrained problems are also mentioned and global soft constraints are introduced. Keywords: Global constraint, filtering algorithm, arc consistency, alldiff, global car- dinality constraint, over-constrained problems, global soft constraint, graph theory, matching. 1. Introduction A constraint network (CN) consists of a set of variables; domains of possible values associated with each of these variables; and a set of con- straints that link up the variables and define the set of combinations of values that are allowed. The search for an instantiation of all vari- ables that satisfies all the constraints is called a Constraint Satisfaction Problem (CSP), and such an instantiation is called a solution of a CSP. A lot of problems can be easily coded in terms of CSP. For instance, CSP has already been used to solve problems of scene analysis, place- 1 2 ment, resource allocation, crew scheduling, time tabling, scheduling, fre- quency allocation, car sequencing, and so on.
    [Show full text]
  • Backtracking Search (Csps) ■Chapter 5 5.3 Is About Local Search Which Is a Very Useful Idea but We Won’T Cover It in Class
    CSC384: Intro to Artificial Intelligence Backtracking Search (CSPs) ■Chapter 5 5.3 is about local search which is a very useful idea but we won’t cover it in class. 1 Hojjat Ghaderi, University of Toronto Constraint Satisfaction Problems ● The search algorithms we discussed so far had no knowledge of the states representation (black box). ■ For each problem we had to design a new state representation (and embed in it the sub-routines we pass to the search algorithms). ● Instead we can have a general state representation that works well for many different problems. ● We can build then specialized search algorithms that operate efficiently on this general state representation. ● We call the class of problems that can be represented with this specialized representation CSPs---Constraint Satisfaction Problems. ● Techniques for solving CSPs find more practical applications in industry than most other areas of AI. 2 Hojjat Ghaderi, University of Toronto Constraint Satisfaction Problems ●The idea: represent states as a vector of feature values. We have ■ k-features (or variables) ■ Each feature takes a value. Domain of possible values for the variables: height = {short, average, tall}, weight = {light, average, heavy}. ●In CSPs, the problem is to search for a set of values for the features (variables) so that the values satisfy some conditions (constraints). ■ i.e., a goal state specified as conditions on the vector of feature values. 3 Hojjat Ghaderi, University of Toronto Constraint Satisfaction Problems ●Sudoku: ■ 81 variables, each representing the value of a cell. ■ Values: a fixed value for those cells that are already filled in, the values {1-9} for those cells that are empty.
    [Show full text]
  • Prolog Lecture 6
    Prolog lecture 6 ● Solving Sudoku puzzles ● Constraint Logic Programming ● Natural Language Processing Playing Sudoku 2 Make the problem easier 3 We can model this problem in Prolog using list permutations Each row must be a permutation of [1,2,3,4] Each column must be a permutation of [1,2,3,4] Each 2x2 box must be a permutation of [1,2,3,4] 4 Represent the board as a list of lists [[A,B,C,D], [E,F,G,H], [I,J,K,L], [M,N,O,P]] 5 The sudoku predicate is built from simultaneous perm constraints sudoku( [[X11,X12,X13,X14],[X21,X22,X23,X24], [X31,X32,X33,X34],[X41,X42,X43,X44]]) :- %rows perm([X11,X12,X13,X14],[1,2,3,4]), perm([X21,X22,X23,X24],[1,2,3,4]), perm([X31,X32,X33,X34],[1,2,3,4]), perm([X41,X42,X43,X44],[1,2,3,4]), %cols perm([X11,X21,X31,X41],[1,2,3,4]), perm([X12,X22,X32,X42],[1,2,3,4]), perm([X13,X23,X33,X43],[1,2,3,4]), perm([X14,X24,X34,X44],[1,2,3,4]), %boxes perm([X11,X12,X21,X22],[1,2,3,4]), perm([X13,X14,X23,X24],[1,2,3,4]), perm([X31,X32,X41,X42],[1,2,3,4]), perm([X33,X34,X43,X44],[1,2,3,4]). 6 Scale up in the obvious way to 3x3 7 Brute-force is impractically slow There are very many valid grids: 6670903752021072936960 ≈ 6.671 × 1021 Our current approach does not encode the interrelationships between the constraints For more information on Sudoku enumeration: http://www.afjarvis.staff.shef.ac.uk/sudoku/ 8 Prolog programs can be viewed as constraint satisfaction problems Prolog is limited to the single equality constraint: – two terms must unify We can generalise this to include other types of constraint Doing so leads
    [Show full text]
  • Quantum-Accelerated Constraint Programming
    Quantum-accelerated constraint programming Kyle E. C. Booth1,2, Bryan O’Gorman1,3, Jeffrey Marshall1,2, Stuart Hadfield1,2, and Eleanor Rieffel1 1Quantum Artificial Intelligence Laboratory (QuAIL), NASA Ames Research Center, Moffett Field, CA 94035, USA 2USRA Research Institute for Advanced Computer Science (RIACS), Mountain View, CA 94043, USA 3Berkeley Quantum Information and Computation Center, University of California, Berkeley, CA 94720, USA Constraint programming (CP) is a paradigm used to model and solve con- straint satisfaction and combinatorial optimization problems. In CP, problems are modeled with constraints that describe acceptable solutions and solved with backtracking tree search augmented with logical inference. In this paper, we show how quantum algorithms can accelerate CP, at both the levels of in- ference and search. Leveraging existing quantum algorithms, we introduce a quantum-accelerated filtering algorithm for the alldifferent global constraint and discuss its applicability to a broader family of global constraints with sim- ilar structure. We propose frameworks for the integration of quantum filtering algorithms within both classical and quantum backtracking search schemes, including a novel hybrid classical-quantum backtracking search method. This work suggests that CP is a promising candidate application for early fault- tolerant quantum computers and beyond. 1 Introduction Constraint programming (CP) is a paradigm used to model and solve constraint satisfaction and combinatorial optimization problems [1]. In CP, a problem is expressed in terms of a declarative model, identifying variables and constraints, and the model is evaluated using a general-purpose constraint solver, leveraging techniques from a variety of fields including artificial intelligence, computer science, and operations research. CP has successfully been used to approach challenging problems in areas such as scheduling, planning, and vehicle routing [1–3].
    [Show full text]
  • Handbook of Constraint Programming
    Handbook of Constraint Programming Francesca Rossi, Peter van Beek, Toby Walsh Elsevier Contents Contents v I First part 1 1 Modelling 3 Barbara M. Smith 1.1 Preliminaries ................................ 4 1.2 Representing a Problem . ......................... 5 1.3 Propagation and Search . ......................... 5 1.4 Viewpoints . ................................ 7 1.5 Expressing the Constraints ......................... 8 1.6 Auxiliary Variables . ......................... 12 1.7 Implied constraints . ......................... 13 1.8 Reformulations of CSPs . ......................... 17 1.9 Combining Viewpoints . ......................... 20 1.10 Symmetry and Modelling . ......................... 24 1.11 Optimization Problems . ......................... 26 1.12 Supporting modelling & reformulation . ................. 28 Bibliography 31 Appendices 35 v Part I First part Handbook of Constraint Programming 3 Francesca Rossi, Peter van Beek, Toby Walsh c 2006 Elsevier All rights reserved Chapter 1 Modelling Barbara M. Smith Constraint programming can be a successful technology for solving practical problems; however, there is abundant evidence that how the problem to be solved is modelled as a Constraint Satisfaction Problem (CSP) can have a dramatic effect on how easy it is to find a solution, or indeed whether it can realistically be solved at all. The importance of modelling in constraint programming has long been recognized e.g. in invited talks by Freuder [14] and Puget [34]. In this chapter, it will be assumed that the problem to be solved can be represented as a CSP whose domains are finite; infinite domains are discussed in Chapter 16, “Continuous and Interval Constraints”. In most of the examples, the variable domains will be sets of integers; see Chapter 17, “Constraints over Structured Domains”, for more on set variables and other variable types.
    [Show full text]
  • The Logic of Satisfaction Constraint
    Artificial Intelligence 58 (1992) 3-20 3 Elsevier ARTINT 948 The logic of constraint satisfaction Alan K. Mackworth* Department of Computer Science, University of British Columbia, Vancouver, BC, Canada V6T 1 W5 Abstract Mackworth, A.K., The logic of constraint satisfaction, Artificial Intelligence 58 (1992) 3-20. The constraint satisfaction problem (CSP) formalization has been a productive tool within Artificial Intelligence and related areas. The finite CSP (FCSP) framework is presented here as a restricted logical calculus within a space of logical representation and reasoning systems. FCSP is formulated in a variety of logical settings: theorem proving in first order predicate calculus, propositional theorem proving (and hence SAT), the Prolog and Datalog approaches, constraint network algorithms, a logical interpreter for networks of constraints, the constraint logic programming (CLP) paradigm and propositional model finding (and hence SAT, again). Several standard, and some not-so-standard, logical methods can therefore be used to solve these problems. By doing this we obtain a specification of the semantics of the common approaches. This synthetic treatment also allows algorithms and results from these disparate areas to be imported, and specialized, to FCSP; the special properties of FCSP are exploited to achieve, for example, completeness and to improve efficiency. It also allows export to the related areas. By casting CSP both as a generalization of FCSP and as a specialization of CLP it is observed that some, but not all, FCSP techniques lift to CSP and thereby to CLP. Various new connections are uncovered, in particular between the proof-finding approaches and the alternative model-finding ap- proaches that have arisen in depiction and diagnosis applications.
    [Show full text]
  • Non-Systematic Backtracking for Mixed Integer Programs
    From: AAAI Technical Report WS-02-14. Compilation copyright © 2002, AAAI (www.aaai.org). All rights reserved. Non-Systematic Backtracking for Mixed Integer Programs Steven Prestwich Armagan Tarim Cork Constraint Computation Centre Artificial Intelligence Group University College, Cork, Ireland Department of Computer Science [email protected] University of York,York, U.K. [email protected] Abstract The aim is to solve large MIPs that combine hard optimisa- tion with few feasible solutions. The remainder of this sec- Avariety of hybrids of Constraint Programming, Arti- tion provides background material. ficial Intelligence and Operations Research techniques have given impressive results. Three recent approaches are (i) the use of relaxations in constraint systems, (ii) Propagation and relaxation non-systematic backtracking to boost the scalability of Constraint programming systems use constraint propagation constraint solvers, and (iii) non-systematic backtrack- to eliminate infeasible variable assignments, and is the tool ing to boost the scalability of branch-and-bound search. of choice for combinatorial problems in which feasible so- This paper describes a hybrid of all three approaches lutions are hard to find. Operations Research, on the other that combines non-systematic backtracking, SAT-based hand, uses more sophisticated cost reasoning to prune search inference and linear relaxation. It is intended for large MIPs that are hard for reasons of both optimisation and spaces, and to locate high-quality solutions. The two disci- feasibility. Such problems are of practical as well as plines have complementary strengths and weaknesses, and theoretical interest and we expect the hybrid to find their combination can yield results that are superior to either many applications.
    [Show full text]
  • Towards Flexible Goal-Oriented Logic Programming
    FACULTY OF SCIENCES Towards Flexible Goal-Oriented Logic Programming ir. Benoit Desouter Dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Computer Science Supervisors: prof. dr. ir. Tom Schrijvers prof. dr. ir. Marko van Dooren Department of Applied Mathematics, Computer Science and Statistics Faculty of Sciences, Ghent University ii Acknowledgments As it feels more natural to thank people in the language that we have used on a daily basis during the journey towards completing this PhD thesis, I'll use Dutch for most of the next few pages. In de eerste plaats wil ik mijn promotoren Tom en Marko bedanken. Tom, bedankt voor het geduld als ik occasioneel iets maar half begreep, en om er altijd vertrouwen in te blijven hebben. Je hebt me heel wat kansen aangereikt, waardoor ik van heel wat onderwerpen iets heb opgestoken. Marko, hoewel je er pas halverwege bijkwam, toonde je al snel interesse voor het onderwerp en heb je er vanuit je eigen expertise heel wat aan toegevoegd. Je deur stond altijd voor me open als ik even een tussentijdse statusupdate wou geven. Bedankt voor de babbels over vanalles en nog wat, en om me grondig te betrekken bij het geven van Programmeren 1. Ik heb nog heel wat bijgeleerd over objec- tori¨entatie door jouw visie, slides en codevoorbeelden. Daarnaast ook bedankt om mijn lokale LATEX-goeroe te zijn: niettegenstaande ik LATEX al tien jaar lang gebruik, heb ik voor het precies goed krijgen van deze thesis heel wat nieuwe pakketten en trucjes moeten gebruiken, met regelmatig vreemde out- put of cryptische foutmeldingen tot gevolg die ik niet altijd alleen kon oplossen | of het zou me op zijn minst veel meer tijd gekost hebben.
    [Show full text]
  • Overview of the Monadic Constraint Programming Framework
    Overview of the Monadic Constraint Programming Framework Tom Schrijvers Dept. of Computer Science, K.U.Leuven Celestijnenlaan 200A 3001 Heverlee, Belgium [email protected] Abstract. A constraint programming system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about satisfiability of conjunctions of constraints, and the search engine controls the search for solutions by iteratively exploring a disjunctive search tree defined by the constraint program. The Monadic Constraint Programming framework gives a monadic defi- nition of constraint programming where the solver is defined as a monad threaded through the monadic search tree. Search and search strategies can then be defined as firstclass objects that can themselves be built or extended by composable search transformers. Search transformers give a powerful and unifying approach to viewing search in constraint program- ming, and the resulting constraint programming system is first class and extremely flexible. 1 Introduction A constraint programming (CP) [11] system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about conjunctions of constraints and its principal job it to determine unsatisfiability of a conjunction. The search engine controls the search for solutions by iteratively exploring an OR search tree defined by the program. Whenever the conjunction of constraints in one path defined by the search tree is unsatisfiable, search changes to explore another part of the search tree. Constraint programming is a declarative programming formalism, where the constraints are defined declaratively, but the underlying constraint solvers are highly stateful, and indeed to specify complex search CP programs rely on reflect- ing state information from the solver.
    [Show full text]