... There are several good texts covering some as-pects of such a course such as ... domains), an... more ... There are several good texts covering some as-pects of such a course such as ... domains), and Sterling and Shapiro's The Art of Prolog (for logic programming techniques). However, a comprehensive introductory text covering constraint programming, one of the most interesting ...
Garbage collection by copying is becoming more and more popular for Prolog. Copying requires a ma... more Garbage collection by copying is becoming more and more popular for Prolog. Copying requires a marking phase in order to be safe: safeness means that the to-space is guaranteed not to overflow. However, some systems use a copying garbage collector without marking prior to copying, and instead postpone the copying of potentially unsafe cells. Such systems only collect small portions of the heap and it is not clear whether postponing works while collecting the whole heap. Moreover, it is shown here that postponing does not solve the problem in a fundamental way. Since marking takes time, it is worth studying the tradeoffs involved. These observations have prompted the experimentation with a series of garbage collectors based on copying without marking and without postponing. In particular, variants were implemented that are named dangerous, optimistic and cautious copying which exhibit various degrees of unsafeness. Versions of each have been implemented based on recursive copying as in most implementations of copy-tern/2 and on the Cheney algorithm. Performance on benchmarks suggests that large performance gains can be obtained by skipping the marking phase, that dangerous copying is still relatively safe but can be costly, and that the additional effort of cautious copying over optimistic copying is not worth it. The optimistic collectors based on recursive copying perform best and slightly better than the ones based on Cheney. Cache performance measurements back up the benchmark results.
Proceedings. IEEE International Joint Symposia on Intelligence and Systems (Cat. No.98EX174)
GENET and EGENET are artificial neural networks with remarkable success in solving hard constrain... more GENET and EGENET are artificial neural networks with remarkable success in solving hard constraint satisfaction problems (CSPs) such as car sequencing problems. (E)GENET uses the min-conflict heuristic in variable updating to find local minima, and then applies heuristic learning rule(s) to escape the local minima not representing solution(s). In this paper we describe a micro-genetic algorithm (MGA) which generalizes the (E)GENET approach for solving CSPs efficiently. Our proposed MGA integrates the min-conflict heuristic into mutation for reassigning allels (values) to genes (variables). In addition, we derive two methods, based on general principles from evolutionary algorithms, for escaping local minima: population based learning, and look forward. Our preliminary experimental results showed that this evolutionary approach improved on EGENET in solving certain hard instances of CSPs.
ABSTRACT this paper we shall concentrate on a simple strength heirarchy of three levels, required... more ABSTRACT this paper we shall concentrate on a simple strength heirarchy of three levels, required, strong and weak which is expressive enough for many constraint-based graphical problems
ABSTRACT Web document designers typically have access to many dozens of different fonts, carefull... more ABSTRACT Web document designers typically have access to many dozens of different fonts, carefully choosing the type face and font size to achieve a certain feel, while most browsers provide only a few browser-dependant fonts. A key challenge in document delivery over the Internet is therefore to choose fonts on the viewing machine which most closely reflect the desires of the designer yet meet the requirements of the viewer. Here we present a very general model for font-size selection, in which the designer and viewer may specify both required and desired constraints between the font-sizes. It is the browser's responsibility to find which locally available fonts best satisfy these possibly conicting desires. We show that, in general, this font-size selection problem is NP-hard. In practice, however, the constraints occurring in such problems usually contain no more than two variables and are acyclic. We give a polynomial time algorithm for this case. An empirical comparison shows ...
ABSTRACT HAL is a new logic language that makes it easy to implement constraint solvers. HAL gets... more ABSTRACT HAL is a new logic language that makes it easy to implement constraint solvers. HAL gets most of its efficiency from compiling to Mercury code. The main mismatch between HAL and Mercury is that HAL supports variables a la Prolog, while Mercury recognises basically only the instantiations new and ground. We describe here the schema that overcomes this mismatch: it relies on a Parma representation of variables. Its main advantage is that once a datastructure is ground, it has the same internal representation as a Mercury ground term. Experiments show that our schema is very competitive with any other logic implementation that supports unbound terms. We also discuss the implementation of delay for the Herbrand solver.
Constraint search trees are a generic approach to search trees where all operations are defined i... more Constraint search trees are a generic approach to search trees where all operations are defined in terms of constraints. This abstract viewpoint makes clear the fundamental operations of search trees and immediately points to new possibilities for search trees. In this paper we present height-balanced constraint search trees (HCSTs), a general approach to building height-balanced index structures, and exemplify the approach with a new spatial index structure, the O-tree. An object in an O-tree is represented by constraints of the form ax/sub i/+bx/sub j//spl les/d where {a,b}/spl sube/{-1,0,1} and x/sub 1/,...,x/sub n/ are the dimensions of the spatial data. We define the basic operations to build and search HCSTs, as well as constraint joins. We illustrate these algorithms using O-trees showing how the algorithms can make use of the more accurate information in the O-tree nodes. Experiments compare the IO-performance of the 2-dimensional O-tree with the R-tree.
Many recent analyses for conventional imperative programs begin by transforming programs into log... more Many recent analyses for conventional imperative programs begin by transforming programs into logic programs, capitalising on existing LP analyses and simple LP semantics. We propose using logic programs as an intermediate program representation throughout the compilation process. With restrictions ensuring determinism and single-modedness, a logic program can easily be transformed to machine language or other low-level language, while maintaining the simple semantics that makes it suitable as a language for program analysis and transformation. We present a simple LP language that enforces determinism and single-modedness, and show that it makes a convenient program representation for analysis and transformation.
... There are several good texts covering some as-pects of such a course such as ... domains), an... more ... There are several good texts covering some as-pects of such a course such as ... domains), and Sterling and Shapiro's The Art of Prolog (for logic programming techniques). However, a comprehensive introductory text covering constraint programming, one of the most interesting ...
Garbage collection by copying is becoming more and more popular for Prolog. Copying requires a ma... more Garbage collection by copying is becoming more and more popular for Prolog. Copying requires a marking phase in order to be safe: safeness means that the to-space is guaranteed not to overflow. However, some systems use a copying garbage collector without marking prior to copying, and instead postpone the copying of potentially unsafe cells. Such systems only collect small portions of the heap and it is not clear whether postponing works while collecting the whole heap. Moreover, it is shown here that postponing does not solve the problem in a fundamental way. Since marking takes time, it is worth studying the tradeoffs involved. These observations have prompted the experimentation with a series of garbage collectors based on copying without marking and without postponing. In particular, variants were implemented that are named dangerous, optimistic and cautious copying which exhibit various degrees of unsafeness. Versions of each have been implemented based on recursive copying as in most implementations of copy-tern/2 and on the Cheney algorithm. Performance on benchmarks suggests that large performance gains can be obtained by skipping the marking phase, that dangerous copying is still relatively safe but can be costly, and that the additional effort of cautious copying over optimistic copying is not worth it. The optimistic collectors based on recursive copying perform best and slightly better than the ones based on Cheney. Cache performance measurements back up the benchmark results.
Proceedings. IEEE International Joint Symposia on Intelligence and Systems (Cat. No.98EX174)
GENET and EGENET are artificial neural networks with remarkable success in solving hard constrain... more GENET and EGENET are artificial neural networks with remarkable success in solving hard constraint satisfaction problems (CSPs) such as car sequencing problems. (E)GENET uses the min-conflict heuristic in variable updating to find local minima, and then applies heuristic learning rule(s) to escape the local minima not representing solution(s). In this paper we describe a micro-genetic algorithm (MGA) which generalizes the (E)GENET approach for solving CSPs efficiently. Our proposed MGA integrates the min-conflict heuristic into mutation for reassigning allels (values) to genes (variables). In addition, we derive two methods, based on general principles from evolutionary algorithms, for escaping local minima: population based learning, and look forward. Our preliminary experimental results showed that this evolutionary approach improved on EGENET in solving certain hard instances of CSPs.
ABSTRACT this paper we shall concentrate on a simple strength heirarchy of three levels, required... more ABSTRACT this paper we shall concentrate on a simple strength heirarchy of three levels, required, strong and weak which is expressive enough for many constraint-based graphical problems
ABSTRACT Web document designers typically have access to many dozens of different fonts, carefull... more ABSTRACT Web document designers typically have access to many dozens of different fonts, carefully choosing the type face and font size to achieve a certain feel, while most browsers provide only a few browser-dependant fonts. A key challenge in document delivery over the Internet is therefore to choose fonts on the viewing machine which most closely reflect the desires of the designer yet meet the requirements of the viewer. Here we present a very general model for font-size selection, in which the designer and viewer may specify both required and desired constraints between the font-sizes. It is the browser's responsibility to find which locally available fonts best satisfy these possibly conicting desires. We show that, in general, this font-size selection problem is NP-hard. In practice, however, the constraints occurring in such problems usually contain no more than two variables and are acyclic. We give a polynomial time algorithm for this case. An empirical comparison shows ...
ABSTRACT HAL is a new logic language that makes it easy to implement constraint solvers. HAL gets... more ABSTRACT HAL is a new logic language that makes it easy to implement constraint solvers. HAL gets most of its efficiency from compiling to Mercury code. The main mismatch between HAL and Mercury is that HAL supports variables a la Prolog, while Mercury recognises basically only the instantiations new and ground. We describe here the schema that overcomes this mismatch: it relies on a Parma representation of variables. Its main advantage is that once a datastructure is ground, it has the same internal representation as a Mercury ground term. Experiments show that our schema is very competitive with any other logic implementation that supports unbound terms. We also discuss the implementation of delay for the Herbrand solver.
Constraint search trees are a generic approach to search trees where all operations are defined i... more Constraint search trees are a generic approach to search trees where all operations are defined in terms of constraints. This abstract viewpoint makes clear the fundamental operations of search trees and immediately points to new possibilities for search trees. In this paper we present height-balanced constraint search trees (HCSTs), a general approach to building height-balanced index structures, and exemplify the approach with a new spatial index structure, the O-tree. An object in an O-tree is represented by constraints of the form ax/sub i/+bx/sub j//spl les/d where {a,b}/spl sube/{-1,0,1} and x/sub 1/,...,x/sub n/ are the dimensions of the spatial data. We define the basic operations to build and search HCSTs, as well as constraint joins. We illustrate these algorithms using O-trees showing how the algorithms can make use of the more accurate information in the O-tree nodes. Experiments compare the IO-performance of the 2-dimensional O-tree with the R-tree.
Many recent analyses for conventional imperative programs begin by transforming programs into log... more Many recent analyses for conventional imperative programs begin by transforming programs into logic programs, capitalising on existing LP analyses and simple LP semantics. We propose using logic programs as an intermediate program representation throughout the compilation process. With restrictions ensuring determinism and single-modedness, a logic program can easily be transformed to machine language or other low-level language, while maintaining the simple semantics that makes it suitable as a language for program analysis and transformation. We present a simple LP language that enforces determinism and single-modedness, and show that it makes a convenient program representation for analysis and transformation.
Uploads
Papers by P. Stuckey