Multiprocessor Execution of Logic Programs addresses the problem of efficient implementation of logic programming languages, specifically Prolog, on multiprocessor architectures. The approaches and implementations developed attempt to take full advantage of sequential implementation technology developed for Prolog (such as the WAM) while exploiting all forms of control parallelism present in logic programs, namely, or-parallelism, independent and-parallelism and dependent and-parallelism. Coverage includes a thorough survey of parallel implementation techniques and parallel systems developed for Prolog. Multiprocessor Execution of Logic Programs is recommended for people implementing parallel logic programming systems, parallel symbolic systems, parallel AI systems, and parallel theorem proving systems. It will also be useful to people who wish to learn about the implementation of parallel logic programming systems.
Constraint Logic Programming (CLP), an area of extreme research interest in recent years, extends the semantics of Prolog in such a way that the combinatorial explosion, a characteristic of most problems in the field of Artificial Intelligence, can be tackled efficiently. By employing solvers dedicated to each domain instead of the unification algorithm, CLP drastically reduces the search space of the problem, which leads to increased efficiency in the execution of logic programs. CLP offers the possibility of solving complex combinatorial problems in an efficient way, and at the same time maintains the advantages offered by the declarativeness of logic programming. The aim of this book is to present parallel and constraint logic programming, offering a basic understanding of the two fields to the reader new to the area. The first part of the book gives an introduction to the fundamental aspects of conventional logic programming which is necessary for understanding the parts that follow. The second part includes an introduction to parallel logic programming, architectures and implementations proposed in the area. Finally, the third part presents the principles of constraint logic programming. The last two parts also include descriptions of the supporting facilities for the two paradigms in two popular systems; ECLIPSe and SICStus. These platforms have been selected mainly because they offer both parallel and constraint features. Annotated and explained examples are also included in the relevant parts, offering a valuable guide and a first practical experience to the reader. Finally, applications of the covered paradigms are presented. The authors felt that a book of this kind should provide some theoretical background necessary for the understanding of the covered logic programming paradigms, and a quick start for the reader interested in writing parallel and constraint logic programming programs. However it is outside the scope of this book to provide a deep theoretical background of the two areas. In that sense, this book is addressed to a public interested in obtaining a knowledge of the domain, without spending the time and effort to understand the extensive theoretical work done in the field – namely postgraduate and advanced undergraduate students in the area of logic programming. This book fills a gap in the current bibliography, since there is no comprehensive book of this level that covers the areas of conventional, parallel, and constraint logic programming. Parallel and Constraint Logic Programming: An Introduction to Logic, Parallelism and Constraints is appropriate for an advanced level course on Logic Programming or Constraints, and as a reference for practitioners and researchers in industry.
Covers the latest research in areas such as theoretical foundations, constraints, concurrency and parallelism, deductive databases,language design and implementation, non-monotonic reasoning, and logicprogramming and the Internet. 8-12 July 1997, Leuven, Belgium The International Conference on Logic Programming is the main annual conference sponsored by the Association for Logic Programming. It covers the latest research in areas such as theoretical foundations, constraints, concurrency and parallelism, deductive databases, language design and implementation, non-monotonic reasoning, and logic programming and the Internet.
This text provides an excellent balance of theory and application that enables you to deploy powerful algorithms, frameworks, and methodologies to solve complex optimization problems in a diverse range of industries. Each chapter is written by leading experts in the fields of parallel and distributed optimization. Collectively, the contributions serve as a complete reference to the field of combinatorial optimization, including details and findings of recent and ongoing investigations.
The Tenth International Conference on Logic Programming, sponsored by the Association for Logic Programming, is a major forum for presentations of research, applications, and implementations in this important area of computer science. Logic programming is one of the most promising steps toward declarative programming and forms the theoretical basis of the programming language Prolog and it svarious extensions. Logic programming is also fundamental to work in artificial intelligence, where it has been used for nonmonotonic and commonsense reasoning, expert systems implementation, deductive databases, and applications such as computer-aided manufacturing.David S. Warren is Professor of Computer Science at the State University of New York, Stony Brook.Topics covered: Theory and Foundations. Programming Methodologies and Tools. Meta and Higher-order Programming. Parallelism. Concurrency. Deductive Databases. Implementations and Architectures. Applications. Artificial Intelligence. Constraints. Partial Deduction. Bottom-Up Evaluation. Compilation Techniques.
Advances in microelectronic technology have made massively parallel computing a reality and triggered an outburst of research activity in parallel processing architectures and algorithms. Distributed memory multiprocessors - parallel computers that consist of microprocessors connected in a regular topology - are increasingly being used to solve large problems in many application areas. In order to use these computers for a specific application, existing algorithms need to be restructured for the architecture and new algorithms developed. The performance of a computation on a distributed memory multiprocessor is affected by the node and communication architecture, the interconnection network topology, the I/O subsystem, and the parallel algorithm and communication protocols. Each of these parametersis a complex problem, and solutions require an understanding of the interactions among them. This book is based on the papers presented at the NATO Advanced Study Institute held at Bilkent University, Turkey, in July 1991. The book is organized in five parts: Parallel computing structures and communication, Parallel numerical algorithms, Parallel programming, Fault tolerance, and Applications and algorithms.
This volume presents selected papers from KBCS '89, which is the second in a series of annual conferences hosted by the Knowledge Based Computer Systems Project funded by the Government of India with United Nations assistance. The papers are grouped into sections including: - AI applications - computer architecture and parallel processing - expert systems - intelligent tutoring systems - knowledge representation - logic programming - natural language understanding - pattern recognition - reasoning - search - activities at the KBCS Nodal Centres.
This book presents the first attempt to combine concurrent logic programming and constraint logic programing. It is divided into three parts. In the first part, a novel computation model, called the multi-Pandora model, which is designed on the basis of the Pandora model, is presented. In the second part, the distributed implementation schemes for Parlog, Pandora, and multi-Pandora are presented. Finally, the author presents the distributed constraint solvers for finite domain constraints, as well as the distributed constraint solvers in the domains of real numbers and Boolean rings which can be incorporated into the schemes presented in the second part to handle the ?ask?- and ?tell?-constraints.