Papers by Christian Schulte
Lecture Notes in Computer Science, 2009
This paper introduces propagator groups as an abstraction for controlling the execution of propag... more This paper introduces propagator groups as an abstraction for controlling the execution of propagators as implementations of constraints. Propagator groups enable users of a constraint programming system to program how propagators within a group are executed. The paper exemplifies propagator groups for controlling both propagation order and propagator interaction. Controlling propagation order is applied to debugging constraint propagation and optimal constraint propagation for Berge-acyclic propagator graphs. Controlling propagator interaction by encapsulating failure and entailment is applied to general reification and constructive disjunction. The paper describes an implementation of propagator groups (based on Gecode) that is applicable to any propagator-centered constraint programming system. Experiments show that groups incur little to no overhead and that the applications of groups are practically usable and efficient.
ABSTRACT This volume contains the proceedings of the 13th International Colloquium on Implementat... more ABSTRACT This volume contains the proceedings of the 13th International Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2013), held in Istanbul, Turkey during August 25, 2013. CICLOPS is a well established line of workshops, traditionally co-located with ICLP, that aims at discussing and exchanging experience on the design, implementation, and optimization of constraint and logic programming systems, and other systems based on logic as a means of expressing computations. This year, CICLOPS received 8 paper submissions. Each submission was reviewed by at least 3 Program Committee members and, at the end, 6 papers were accepted for presentation at the workshop. We would like to thank the ICLP organizers for their support, the EasyChair conference management system for making the life of the program chairs easier and arxiv.org for providing permanent hosting. Thanks should go also to the authors of all submitted papers for their contribution to make CICLOPS alive and to the participants for making the event a meeting point for a fruitful exchange of ideas and feedback on recent developments. Finally, we want to express our gratitude to the Program Committee members, as the symposium would not have been possible without their dedicated work.
Oz is a concurrent language providing for functional, object-oriented, and constraintprogramming.... more Oz is a concurrent language providing for functional, object-oriented, and constraintprogramming. The Oz Standard Modules are part of the Oz language specificationand contain procedures that are made generally available to the programmer.A thorough knowledge of the Oz Standard Modules is highly recommended for effectiveprogramming in Oz.The Oz Standard Modules provide the basic operations on the Oz values and a setof
This chapter addresses the integration of constraints and search into programming languages from ... more This chapter addresses the integration of constraints and search into programming languages from three different points of views. It discusses the various uses of constraints: (1) to model combinatorial optimization problem and to easily implement search procedures, (2) for supporting concurrent computations, and (3) to enable open implementations of constraints solvers. The chapter examines that the continued success and growth of constraints depends on the availability of flexible, extensible, versatile, and easy to use solvers. It is contingent on retaining performance that rival or exceeds the ad-hoc methods they supplant. Therefore, efficiency remains a key objective, often at odds with flexibility and ease of use. The chapter also focuses on focused on the creation of new hybrid, multi-paradigm languages and platforms that preserved declarative constructions, adopt constraints and concurrency as first class citizens in the design, and preserve efficiency with a lesser emphasis on targeting existing platforms. The chapter provides insights into the strengths, weaknesses and capabilities of systems that fall in one of these three classes: (1) toolkits for procedural and object-oriented languages, (2) hybrid systems, and (3) rule-based systems.
This chapter addresses the integration of constraints and search into programming languages from ... more This chapter addresses the integration of constraints and search into programming languages from three different points of views. It first focuses on the use of constraints to model combinatorial optimization problem and to easily implement search procedures, then it considers the use of constraints for supporting concurrent computations and finally turns to the use of constraints to enable open implementations of constraints solvers.
Search in constraint programming is a time consuming task. Search can be speeded up by exploring ... more Search in constraint programming is a time consuming task. Search can be speeded up by exploring subtrees of a search tree in par- allel. This paper presents distributed search engines that achieve paral- lelism by distribution across networked computers. The main point of the paper is a simple design of the parallel search engine. Simplicity comes as an immediate consequence
Flow Java integrates single assignment variables (logic variables) into Java. This paper presents... more Flow Java integrates single assignment variables (logic variables) into Java. This paper presents and compares three implementation strategies for single assignment variables in Flow Java. One strategy uses forwarding and dereferencing while the two others are variants of Taylor's scheme. The paper introduces how to adapt Taylor's scheme for a concurrent language based on operating system threads, token equality, and update of data structures. Evaluation of the strategies clarifies that the key issue for efficiency is reducing memory usage.
Proceedings of the 1994 International Symposium on Logic Programming, Nov 1, 1994
The paper presents an extension of the concurrent constraint model providingfor higher-order prog... more The paper presents an extension of the concurrent constraint model providingfor higher-order programming, deep guards, and encapsulated search.The paper focuses on a higher-order combinator providing for encapsulatedsearch. The search combinator spawns a local computation space andresolves remaining choices by returning the alternatives as first-class citizens.The search combinator allows to program different search strategies,including depth-first, indeterministic one solution,...
A central service of a constraint programming system is search. In almost all constraint programm... more A central service of a constraint programming system is search. In almost all constraint programming systems search is based on trailing, which is well understood and known to be efficient. This paper compares trailing to copying. Copying offers more expressiveness as required by parallel and concurrent systems. However, little is known how trailing compares to copying as it comes to implementation effort, runtime efficiency, and memory requirements. This paper discusses these issues.
Lecture Notes in Computer Science, 2007
While incremental propagation for global constraints is recognized to be important, little resear... more While incremental propagation for global constraints is recognized to be important, little research has been devoted to how propagator-centered constraint programming systems should support incremental propagation. This paper introduces advisors as a simple and efficient, yet widely applicable method for supporting incremental propagation in a propagator-centered setting. The paper presents how advisors can be used for achieving different forms of incrementality and evaluates cost and benefit for several global constraints.
Lecture Notes in Computer Science, 2005
... In many systems this is provided by supporting an ab-stract set-datatype for variable domains... more ... In many systems this is provided by supporting an ab-stract set-datatype for variable domains, as for example in Choco [5], Eclipse ... Brisset, Hani El Sakkout, Thom Frühwirth, Warwick Harvey, Micha Meier, Stefano Novello, Thierry Le Provost, Joachim Schimpf, and Mark Wallace ...
Lecture Notes in Computer Science, 2009
Today’s models for propagation-based constraint solvers require propagators as implementations of... more Today’s models for propagation-based constraint solvers require propagators as implementations of constraints to be at least contracting and monotonic. These models do not comply with reality: today’s constraint programming systems actually use non-monotonic propagators. This paper introduces the first realistic model of constraint propagation by assuming a propagator to be weakly monotonic (complying with the constraint it implements). Weak monotonicity
Lecture Notes in Computer Science, 2008
ABSTRACT Constraint propagation solvers interleave propagation (removing impossible values from v... more ABSTRACT Constraint propagation solvers interleave propagation (removing impossible values from variable domains) with search. Previously, Schulte and Stuckey introduced the use of static analysis to determine where in a constraint program domain propagators can be replaced by more efficient bounds propagators and still ensure that the same search space is traversed. This paper introduces a dynamic yet considerably simpler approach to uncover the same information. The information is obtained by a linear time traversal of an analysis graph that straightforwardly reflects the properties of propagators implementing constraints. Experiments confirm that the simple dynamic method is efficient and that it can be used interleaved with search, taking advantage of the simplification of the constraint graph that arises from search.
Lecture Notes in Computer Science, 2004
Page 1. Speeding Up Constraint Propagation Christian Schulte1 and Peter J. Stuckey2 1 IMIT, KTH ... more Page 1. Speeding Up Constraint Propagation Christian Schulte1 and Peter J. Stuckey2 1 IMIT, KTH Royal Institute of Technology, Sweden [email protected] 2 Dept. of Comp. Sci. & Soft. Eng., Univ. of Melbourne, Australia [email protected] Abstract. ...
We present a higher-order module discipline with separate compilation and concurrent dynamic link... more We present a higher-order module discipline with separate compilation and concurrent dynamic linking. Based on first-order modules one can program security policies for systems that link modules from untrusted locations (e.g., Java). We introduce a pickling operation that writes persistent clones of volatile, possibly higher-order data structures on the file system. Our pickling operation respects lexical binding. Our module discipline is based on functors, which are annotated functions that are applied to modules and return modules. Pickled computed functors can be used interchangeably with compiled functors. In contrast to compiled functors, pickled computed functors can carry computed data structures with them, which has significant practical applications.
Lecture Notes in Computer Science, 1999
Constraint combination methods are essential for a flexible constraint programming system. This p... more Constraint combination methods are essential for a flexible constraint programming system. This paper presents deep concurrent constraint combinators based on computation spaces as combination mechanism. It introduces primitives and techniques needed to program ...
Lecture Notes in Computer Science, 2006
Ideally, programming propagators as implementations of constraints should be an entirely declarat... more Ideally, programming propagators as implementations of constraints should be an entirely declarative specification process for a large class of constraints: a high-level declarative specification is automatically translated into an efficient propagator. This paper introduces the use of existential monadic secondorder logic as declarative specification language for finite set propagators. The approach taken in the paper is to automatically derive projection propagators (involving a single variable only) implementing constraints described by formulas. By this, the paper transfers the ideas of indexicals to finite set constraints while considerably increasing the level of abstraction available with indexicals. The paper proves soundness and completeness of the derived propagators and presents a run-time analysis, including techniques for efficiently executing projectors for n-ary constraints.
Uploads
Papers by Christian Schulte