Computing and Information Systems - Research Publications

Permanent URI for this collection

Search Results

Now showing 1 - 10 of 18
  • Item
    Thumbnail Image
    A theory of overloading
    Stuckey, PJ ; Sulzmann, M (ASSOC COMPUTING MACHINERY, 2005-11)
    We present a novel approach to allow for overloading of identifiers in the spirit of type classes. Our approach relies on a combination of the HM(X) type system framework with Constraint Handling Rules (CHRs). CHRs are a declarative language for writing incremental constraint solvers, that provide our scheme with a form of programmable type language. CHRs allow us to precisely describe the relationships among overloaded identifiers. Under some sufficient conditions on the CHRs we achieve decidable type inference and the semantic meaning of programs is unambiguous. Our approach provides a common formal basis for many type class extensions such as multiparameter type classes and functional dependencies.
  • Item
    Thumbnail Image
    When do bounds and domain propagation lead to the same search space?
    Schulte, C ; Stuckey, PJ (ASSOC COMPUTING MACHINERY, 2005-05)
    This article explores the question of when two propagation-based constraint systems have the same behavior, in terms of search space. We categorize the behavior of domain and bounds propagators for primitive constraints, and provide theorems that allow us to determine propagation behaviors for conjunctions of constraints. We then show how we can use this to analyze CLP(FD) programs to determine when we can safely replace domain propagators by more efficient bounds propagators without increasing search space. Empirical evaluation shows that programs optimized by the analysis' results are considerably more efficient.
  • Item
    Thumbnail Image
    Efficient Constraint Propagation Engines
    Schulte, C ; Stuckey, PJ (ASSOC COMPUTING MACHINERY, 2008-12)
    This article presents a model and implementation techniques for speeding up constraint propagation. Three fundamental approaches to improving constraint propagation based on propagators as implementations of constraints are explored: keeping track of which propagators are at fixpoint, choosing which propagator to apply next, and how to combine several propagators for the same constraint. We show how idempotence reasoning and events help track fixpoints more accurately. We improve these methods by using them dynamically (taking into account current variable domains to improve accuracy). We define priority-based approaches to choosing a next propagator and show that dynamic priorities can improve propagation. We illustrate that the use of multiple propagators for the same constraint can be advantageous with priorities, and introduce staged propagators that combine the effects of multiple propagators with priorities for greater efficiency.
  • Item
    Thumbnail Image
    Comparing Usability of One-Way and Multi-Way Constraints for Diagram Editing
    WYBROW, M. ; MARRIOTT, K. ; MCIVER, L. ; STUCKEY, P. ( 2008)
  • Item
    Thumbnail Image
    Monadic constraint programming
    Schrijvers, T ; Stuckey, P ; Wadler, P (CAMBRIDGE UNIV PRESS, 2009-11)
    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. In this paper we give a monadic definition of constraint programming in which the solver is defined as a monad threaded through the monadic search tree. We are then able to define search and search strategies as first-class 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 programming, and the resulting constraint programming system is first class and extremely flexible.
  • Item
    Thumbnail Image
    HM(X) type inference is CLP(X) solving
    Sulzmann, M ; Stuckey, PJ (CAMBRIDGE UNIV PRESS, 2008-03)
  • Item
    Thumbnail Image
    Understanding functional dependencies via constraint handling rules
    Sulzmann, M ; Duck, GJ ; Peyton-Jones, S ; Stuckey, PJ (CAMBRIDGE UNIV PRESS, 2007-01)
    Abstract Functional dependencies are a popular and useful extension to Haskell style type classes. We give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing user-programmable type extensions in the context of Haskell style type classes. Here, we make use of CHRs to provide for the first time a concise result that under some sufficient conditions, functional dependencies allow for sound, complete and decidable type inference. The sufficient conditions imposed on functional dependencies can be very limiting. We show how to safely relax these conditions and suggest several sound extensions of functional dependencies. Our results allow for a better understanding of functional dependencies and open up the opportunity for new applications.
  • Item
    Thumbnail Image
    Solving Partial Order Constraints for LPO Termination
    Codish, ; LAGOON, V ; STUCKEY, P ( 2008)
  • Item
    Thumbnail Image
    MUSTANG: A multiple structural alignment algorithm
    Konagurthu, AS ; Whisstock, JC ; Stuckey, PJ ; Lesk, AM (WILEY, 2006-08-15)
    Multiple structural alignment is a fundamental problem in structural genomics. In this article, we define a reliable and robust algorithm, MUSTANG (MUltiple STructural AligNment AlGorithm), for the alignment of multiple protein structures. Given a set of protein structures, the program constructs a multiple alignment using the spatial information of the C(alpha) atoms in the set. Broadly based on the progressive pairwise heuristic, this algorithm gains accuracy through novel and effective refinement phases. MUSTANG reports the multiple sequence alignment and the corresponding superposition of structures. Alignments generated by MUSTANG are compared with several handcurated alignments in the literature as well as with the benchmark alignments of 1033 alignment families from the HOMSTRAD database. The performance of MUSTANG was compared with DALI at a pairwise level, and with other multiple structural alignment tools such as POSA, CE-MC, MALECON, and MultiProt. MUSTANG performs comparably to popular pairwise and multiple structural alignment tools for closely related proteins, and performs more reliably than other multiple structural alignment methods on hard data sets containing distantly related proteins or proteins that show conformational changes.
  • Item
    Thumbnail Image
    The island confinement method for reducing search space in local search methods
    Fang, H ; Kilani, Y ; Lee, JHM ; Stuckey, PJ (SPRINGER, 2007-12)