Path: news1.ucsd.edu!ihnp4.ucsd.edu!swrinde!newsfeed.internetmci.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv From: jampel@cs.city.ac.uk (Michael Jampel) Newsgroups: comp.constraints,comp.answers,news.answers Subject: comp.constraints FAQ 1/2 Frequently Asked Questions [Monthly posting] Supersedes: <constraints-faq/part1_813948566@rtfm.mit.edu> Followup-To: comp.constraints Date: 16 Nov 1995 23:22:22 GMT Organization: Department of Computer Science, City University Lines: 1171 Approved: news-answers-request@MIT.Edu Expires: 30 Dec 1995 23:20:30 GMT Message-ID: <constraints-faq/part1_816564030@rtfm.mit.edu> Reply-To: jampel@cs.city.ac.uk (Michael Jampel) NNTP-Posting-Host: bloom-picayune.mit.edu Summary: Frequently asked questions about constraints X-Last-Updated: 1995/10/02 Originator: faqserv@bloom-picayune.MIT.EDU Xref: news1.ucsd.edu comp.constraints:734 comp.answers:12785 news.answers:49443 Archive-name: constraints-faq/part1 Last-Modified: Mon Oct 2 15:40:00 1995 by Michael Jampel Version: 1.79 Important Changes (since last posting): CLP(R) and analog circuits. Additional info on TOC: Theory of Constraints Contributions and corrections should be sent to Michael Jampel <jampel@cs.city.ac.uk>. This is a list of Frequently Asked Questions (and answers) for the area of constraints, including books, journal articles, ftp archives, and systems & products. It is posted once a month to the newsgroups comp.constraints, comp.answers, and news.answers. NOTE: the WWW page associated with this FAQ now contains far more information than the FAQ does, including meta-information, i.e. pointers to other WWW pages and ftp sites. I strongly suggest you have a look at it: http://web.cs.city.ac.uk/archive/constraints/constraints.html People who helped with this FAQ include Philippe Blache <pb@llaor.unice.fr>, Mark Kantrowitz <mkant@cs.cmu.edu>, Wm Leler <wm@ithaca.com>, Manfred Meyer <meyer@dfki.uni-kl.de>, Milind Tambe <tambe@isi.edu>, Thomas Schiex <schiex@cert.fr>, and Tad Hogg <hogg@parc.xerox.com>. Thanks to Mark Kantrowitz for allowing me to use large parts of his FAQs and Resource Guides for comp.lang.prolog and comp.ai. ---------------------------------------------------------------- Table of Contents: [1-1] Introduction [1-2] Definitions, scope of the word `constraint' [1-3] Sources of information about constraints [1-4] Constraints-related Mailing Lists and Journals [1-5] FTP Archives, WWW Pages, and Other Resources [1-6] Books and Journal Articles [1-7] Reviews and Surveys of Constraint Systems [1-8] Complexity of Constraint Satisfaction (including Phase Transition) [1-9] Benchmarks for Constraint Satisfaction Problems [1-10] Constraints for Natural Language Processing [1-11] N-Ary CSPs (N > 2) [1-12] Constraint Libraries for C and LISP programs [1-13] Constraints and Rule-Based (Production) Systems [1-14] Interval Constraints and Newton's Approximation [1-15] Dynamic CSPs (Constraint Satisfaction Problems) [1-16] Glossary: definitions of some terms [1-17] Explanation of value ordering heuristics [1-18] Explanation of constraint entailment [1-19] Explanation of Don't Know / Don't Care nondeterminism [1-20] Survey of CLP with Non-Linear Constraints (architectures) [1-21] TOC: The management "Theory of Constraints" [1-22] Global, specific, structural, continuous & symbolic constraints [1-23] CLP(R) and analog circuit diagnosis In the second part of this FAQ: [2-1] Introduction (same as in part1) [2-2] Introduction to Systems for Non-Linear Constraints [2-3] Free and Commercial Constraint Systems Search for [#] to get to topic number # quickly. In newsreaders which support digests (such as rn), [CTRL]-G will page through the answers. ---------------------------------------------------------------- Subject: [1-1] Introduction This guide lists constraint-related resources: archives, newsgroups, books, magazines, compilers and interpreters (in part 2), and anything else you can think of. Also included is a list of suppliers of products and a list of publishers. This guide is regularly posted in two parts to comp.constraints, usually on the 17th or 18th of each month. It may also be obtained by anonymous ftp from City University: ftp.cs.city.ac.uk [138.40.91.9], using username "anonymous" and password "name@host". The files part1 and part2 are located in the directory pub/constraints/constraints-faq/ [The ftp site will also contain other items on constraints.] WWW (World Wide Web) address: http://web.cs.city.ac.uk/archive/constraints/constraints.html This is also a jumping-off point giving access to most of the ftp sites mentioned in section [1-5]. The articles posted to the newsgroup are archived by month in the same location as this FAQ, in subdirectory ftp.cs.city.ac.uk:/pub/constraints/archive/comp.constraints The FAQ postings are also archived in the periodic posting archive on rtfm.mit.edu. Look in the anonymous ftp directory /pub/usenet/news.answers/constraints-faq in the files part1 and part2. If you do not have anonymous ftp access, you can access the archive by mail server as well. Send an E-mail message to mail-server@rtfm.mit.edu with "help" and "index" in the body on separate lines for more information. FAQs and Resource Guides for other newsgroups will usually be available on rtfm.mit.edu too. Disclaimer: We are not responsible for anything at all. Ever. So there. Copyright Michael Jampel 1994. Permission to do reasonable things not for profit is given to anyone. Anything else, ask me. ---------------------------------------------------------------- Subject: [1-2] Definitions, scope of the word `constraint' ``Constraint programming techniques can be more declarative and elegant (hence maintainable) than standard imperative languages, without sacrificing efficiency.'' Areas of interest include: [suggestions welcome] constraint satisfaction problem (eg Travelling Salesman) constraint satisfaction in AI constraint logic programming concurrent constraint programming complexity of constraint satisfaction dynamic (dynamically changing) constraint satisfaction problems partial constraint satisfaction hierarchical CLP object-oriented constraints deductive databases applications links to linear programming heterogeneous systems (e.g. mixtures of constraints with C (see [1-12]), expert system shells, constraint imperative programming etc). ---------------------------------------------------------------- Subject: [1-3] Sources of Information about constraints The newsgroups comp.lang.prolog, comp.ai, and (to a lesser extent) sci.op-research and comp.theory are a source of information and discussion on constraints. See also [1-4] and [1-5]. ---------------------------------------------------------------- Subject: [1-4] Mailing Lists and Journals Constraint Logic Programming clp-request@cis.ohio-state.edu For those interested in the CLP(R) Language: clpr-users-request@cis.ohio-state.edu Both the above lists are maintained by Spiro Michaylov <spiro@cis.ohio-state.edu>. E-mail the given addresses for more info. The list clp-request.All_Areas@xerox.com, aimed at Concurrent Logic Programming, no longer exists, according to Vijay Saraswat (information via David Joslin). Constraint Satisfaction Problem (CSP) To subscribe, send e-mail to listserver@saturne.cert.fr in the form "SUB CSP-LIST <name>". (Send submissions to <csp-list@saturne.cert.fr>.) List maintained by Thomas Schiex <schiex@cert.fr>. Previous articles are archived at the same place as this FAQ; availble via WWW or ftp from ftp.cs.city.ac.uk:/pub/constraints/archive/csp-list Intelligent Decision Support System Mailing List [not completely relevant, but to some extent related to applications of constraints] To post to the list e-mail <IDSS@socs.uts.EDU.AU>. Subscription requests should be sent to <idss-request@socs.uts.EDU.AU> The Journal of Functional and Logic Programming (JFLP) is a new electronic journal that covers a broad scope of topics from functional and logic programming. It is specially concerned with the integration of the functional and logic paradigm as well as their common foundations. The Journal expects articles ranging from the theoretical foundations of functional and logic programming up to the application of such languages ``in the real world''. The Journal is published by The MIT Press. See either of the following URL's for more details http://mitpress.mit.edu/jrnls-catalog/jflp.html http://www.cs.tu-berlin.de/~chak/jflp/ Various AI and Logic Programming journals are likely to have articles on constraints, including `AI Journal'. There will soon be a new journal called CONSTRAINTS, pulished by Kluwer: Editor-in-Chief: Eugene C. Freuder, University of New Hampshire (ecf@cs.unh.edu) CONSTRAINTS will be available both as a conventional paper journal and in electronic form. Publication will commence in the second half of 1996. Aims and Scope: The journal seeks to provide a common forum for the many disciplines interested in constraint satisfaction and optimization, and the many application domains interested in employing constraint technology. It will cover all aspects of computing with constraints: theory and practice, algorithms and systems, reasoning and programming, logics and languages. Relevant disciplines and application domains include, but are not limited to: Disciplines Artificial Intelligence Programming Languages Operations Research Combinatorial Algorithms Discrete Mathematics Databases Computational Logic Symbolic Computation Parallel/Distributed Computing Neural Networks Domains Scheduling, Planning, Resource Allocation Design and Configuration Graphics, Visualization, Interfaces Hardware Verification and Software Engineering Robotics, Machine Vision and Computational Linguistics Temporal and Spatial Reasoning Qualitative and Diagnostic Reasoning Human-Computer Interaction and Decision Support Real-Time Systems Molecular Biology Papers that cut across disciplinary lines, or that combine theory and practice, are especially welcome. The journal will also consider tutorial and survey papers. The Instructions for Authors can be obtained from Miss Kelly Riddle via e-mail: krkluwer@world.std.com. ---------------------------------------------------------------- Subject: [1-5] FTP Archives, WWW pages, and Other Resources The following are archives that contain constraint-related material. Most of the archives are anonymous ftp sites. Mark_Kantrowitz@cs.cmu.edu has created an AI ftp repository. ftp.cs.cmu.edu:/user/ai See also PTF below. Constraint Programming Paper Archive: Aarhus University, Denmark, has established an anonymous ftp archive for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/ For further information, contact Brian H. Mayoh <brian@daimi.aau.dk>. Original Constraint Logic Programming Bibliography: [A more recent, larger, version is available on the ftp site for this FAQ: ftp.cs.city.ac.uk:/pub/constraints/bibliography/] ftp archive.cis.ohio-state.edu:/pub/clp (128.146.8.52) cd pub/clp or cd pub/clp/{bib,papers} Originally maintained by Spiro Michaylov <spiro@cis.ohio-state.edu> Constraints Bibliography: ftp ??? [any offers?] ??? Maintained by ??? Manfred Meyer's constraints bibliography may be made available soon. It, and other useful items concerning constraints, may be found on the City University ftp site where this FAQ is stored. See topic [1-1]. ECRC tech reports are available by anonymous ftp from ftp.ecrc.de or http://www.ecrc.de/ on WWW. FAQs on Linear and Non-Linear programming written by John Gregory <jwg@ceres.cray.com> for the sci.op-research newsgroup are posted there and are available from rtfm.mit.edu directory /pub/usenet/sci.answers/ in files linear-programming-faq and nonlinear-programming-faq. ICOT: Japan's Institute for New Generation Computer Technology (ICOT) has made their software available to the public free of charge. The collection includes a variety of prolog-based programs in symbol processing, knowledge representation, reasoning and problem solving, natural language processing. All programs are available by anonymous ftp from ftp.icot.or.jp. Note that most of the programs are written for the PSI machines, and very few have been ported to Unix-based emulators. Some languages are discussed in section [2-1] in part2 of this FAQ; for further information, send email to ifs@icot.or.jp, or write to ICOT Free Software Desk, Institute for New Generation Computer Technology, 21st Floor, Mita Kokusai Bldg., 4-28, Mita 1-chome, Minato-ku, Tokyo 108, Japan, fax +81-3-4456-1618. See also PTF. PTF: The Prime Time Freeware CD-ROM series contains various items mentioned in this FAQ including Mark Kantrowitz's AI Repository, some ICOT material, BERTRAND, GARNET, and LIFE. Prime Time Freeware for UNIX sells for $60 US, list, and is issued twice each year. E-mail <ptf@cfcl.com> for more details. University of Washington (Seattle): Constraint-related papers and solvers/implementations including ThingLabII, CoolDraw (a constraint-based drawing system), and the DeltaBlue and SkyBlue algorithms. All public domain. Contact Alan Borning <borning@cs.washington.edu> for details. ftp.cs.washington.edu:/pub/constraints or, on WWW, http://www.cs.washington.edu/research/constraints.html WWW sites: http://web.cs.city.ac.uk/archive/constraints/constraints.html http://ps-www.dfki.uni-sb.de/ http://www.ecrc.de/ http://www.cis.upenn.edu/~screamer-tools/home.html/ http://www.sics.se/ccp/ccp.html/ http://www.cs.washington.edu/research/constraints.html ---------------------------------------------------------------- Subject: [1-6] Books and Journal Articles This is not intended to be a complete bibliography. See ftp sites above for the location of longer bibliographies. Please suggest additions etc. F. Benhamou and A. Colmerauer, eds. "Constraint Logic Programming: Selected Research" MIT Press, 1993. J. Cohen, "Constraint Logic Programming Languages", Communications of the ACM 33(7):52-68, 1992. [Good introduction to CLP and includes a historical overview.] B. Freeman-Benson, J. Maloney, and A. Borning, "An Incremental Constraint Solver", Communications of the ACM 33(1):54-63, 1990. [Includes a good reading list on the history and applications of constraints.] E. Freuder, "Synthesizing Constraint Expressions", Communications of the ACM 21(11):24-32, 1978. T. Fruehwirth et al, "Constraint Logic Programming: An Informal Introduction", in Logic Programming in Action, 1992, Springer-Verlag, LNCS 636, (Also available as Technical Report ECRC-93-5. ECRC tech reports are available from ftp.ecrc.de:/pub/ECRC_tech_reports) J. Jaffar and J-L. Lassez, "Constraint Logic Programming", in Proceedings of the 14th ACM Symposium on Principles of Programming Languages (POPL), Munich, pp. 111-119, 1987. J. Jaffar and M. Maher, "Constraint Logic Programming: A Survey", Journal of Logic Programming, 1994, (To appear). V. Kumar, "Algorithms for Constraint-Satisfaction Problems: A Survey", AI Magazine 13(1):32-44, 1992. E. Lawler, J. Lenstra, A. Rinnooy Kan and D. Shmoys, "The Traveling Salesman Problem", Wiley, 1985/1992. W. Leler, "Constraint Programming Languages", Addison-Wesley, 1988, 0-201-06243-7. (See entry on `BERTRAND' in section [2-1] of part2 of this FAQ.) A. Mackworth, "Consistency in Networks of Relations", Artificial Intelligence 8(1):99-118, 1977. P. Meseguer, "Constraint Satisfaction Problems: An Overview", AICOM 2(1):3-17, 1989. U. Montanari, "Networks of Constraints: Fundamental Properties and Applications to Picture Processing", Information Science 7(2):95-132, 1974. G. Nemhasuer, A. Rinnooy Kan, M. Todd, "Optimization", North-Holland, 1989. J. Pearl, "Heuristics: Intelligent Search Strategies for Computer Problem Solving", 1984, Addison-Wesley, 0-201-05594-5. V. Saraswat, "Concurrent Constraint Programming", MIT Press, 1993. G. Steele, "The Definition and Implementation of A Computer Programming Language Based on Constraints", PhD thesis, MIT, 1980. E. Tsang, "Foundations of Constraint Satisfaction", Academic Press, 1993. ISBN 0-12-701610-4. P. Van Hentenryck, "Constraint Logic Programming", Knowledge Engineering Review, 6(3):151-194, September 1991. P. Van Hentenryck, "Constraint Satisfaction in Logic Programming", MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4. [See also the articles on Constraint Networks (pages 276-285) and Constraint Satisfaction (pages 285-293) in Shapiro's Encyclopedia of Artificial Intelligence.] The Journal "Artificial Intelligence" has articles on the Constraint Satisfaction Problem (CSP), as do other AI journals. Magazines related to Prolog will have articles on Constraint Logic programming (CLP). AI Communications (4 issues/yr) "The European Journal on Artificial Intelligence" ISSN 0921-7126, European Coordinating Committee for Artificial Intelligence. AI Expert (issued monthly) ISSN 0888-3785, Miller Freeman Publishers On CompuServe: GO AIEXPERT. Reviews Prolog-related products. Expert Systems (4 issues/yr) ISSN 0266-4720, Learned Information (Europe) Ltd. IEEE Expert (issued bimonthly) ISSN 0885-9000, IEEE Computer Society The Journal of Logic Programming (issued bimonthly), (North-Holland), Elsevier Publishing Company, ISSN 0743-1066 New Generation Computing, Springer-Verlag. (Prolog-related articles) ---------------------------------------------------------------- Subject: [1-7] Reviews and Surveys of Constraint Systems The WWW address http://www.aiai.ed.ac.uk/~timd/constraints/csptools.html contains an Overview of CSP tools, including CHIP, CHARME, and ILOG SOLVER by Tim Duncan. ---------------------------------------------------------------- Subject: [1-8] Complexity of Constraint Satisfaction (including Phase Transition) Standard papers on this area include: Alan Mackworth and Eugene Freuder, "The Complexity of Some Polynomial Network Consistency Algorithms for Constraint Satisfaction Problems", in Artificial Intelligence, 1985, 25:65-73 Alan Mackworth and Eugene Freuder, "The Complexity of Constraint Satisfaction Revisited", in Artificial Intelligence, February 1993, 59 (1-2): 57-62, Also Tsang's book as mentioned previously. Phase Transitions in Constraint Satisfaction Problems ----------------------------------------------------- The search difficulty of constraint satisfaction problems can be determined, on average, from knowledge of easily computed structural properties of the problems. In fact, hard problem instances are concentrated near an abrupt transition between under- and over- constrained problems. This transition is analogous to phase transitions in physical systems and offers a way to estimate the likely difficulty of a constraint problem before attempting to solve it with search. For more information and pointers to related work, see the web page: ftp://parcftp.xerox.com/pub/dynamics/constraints.html Information kindly supplied by Tad Hogg <hogg@parc.xerox.com>. ---------------------------------------------------------------- Subject: [1-9] Benchmarks for Constraint Satisfaction Problems Some benchmarks are available from the same ftp archive and WWW page as this FAQ: ftp.cs.city.ac.uk:/pub/constraints/csp-benchmarks including a Radio Link Frequency Assignment Problem ---------------------------------------------------------------- Subject: [1-10] Constraints for Natural Language Processing [This entry reprinted by kind permission of the author: Philippe Blache <pb@llaor.unice.fr>, University of Nice-Sophia Antipolis] Current linguistics theories often describe syntactic relations as constraints on linguistic structures. It is in particular the case of unification-based theories. But linguistic constraints are generally far from the CLP ones and the question remains: is NLP a constraint satisfaction problem ? [[MBJ adds an editorial note: Micha Meier <micha@ecrc.de> feels that NLP _is_ a typical CSP.]] It is still difficult to say what could be the actual advantages of a CLP approach for natural language processing in general. But if we don't have a global answer, several works propose CLP representation of particular problems such as linear precedence (cf Patrick Saint- Dizier), disjunctive values (cf Franz Guenthner), subcategorization, etc ... I'm currently working on the interpretation of HPSG's principles with boolean constraints. The problem in this case comes from the fact that the instantiation principles of this theory can be seen as constraints on feature structures, but using actual active constraints need a very rigid (and heavy) representation of these structures. A compromise between a pure CLP and a pure linguistic approach is still inevitable. I would be deeply interested in other approaches to this problem. Franz Guenthner (1988) "Features and Values 1988" CIS-BERICHT-90-2, University of Munich Patrick Saint-Dizier (1994) Advanced Logic Programming for Natural Language Processing, Academic Press, London Philippe Blache (1992) "Using Active Constraints to Parse GPSGs" in proceedings of COLING'92 ---------------------------------------------------------------- Subject: [1-11] N-Ary CSPs (N > 2) [This entry reprinted by kind permission of the author: Sunil Mohan <mohan@yoko.rutgers.edu>, Rutgers University] N-ary CSPs have constraints with arbitrary arity, including some with arity > 2. There are some problems with solving CSPs that appear only when encountering constraints with higher arities. Constraints with maximum arity are also called global constraints. Selecting a suitable Variable-Constraint Ordering (Control Sequence) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Some of the popular variable ordering heuristics for generating a "good" control sequence fail on N-ary CSPs: - Ordering based on variable domain size. Many such heuristics fail because of their very localized view of the problem. Consider the CSP: {<x1..x5> | T1(x1 x2) T2(x1 x2 x3) T3(x4 x5)} After first selecting (x1 x2 T1), a variable-domain-size based heuristic could proceed to pick x4 as the next variable to bind, when x3 could have been a better choice because it allows T3 to be tested. Or, in Forward-Check, (x1 T1 x2 T3..) is probably a better choice than (x1 T1 x4 T5 x2 T3..), but this heuristic does not have a way of recognizing the presence of higher-arity constraints. This is not a problem with Binary CSPs, particularly in FwdChk, because after binding each variable, a binary constraint on that variable can be tested. - Ordering based on variable connectivity. In a CSP with a global constraint, every variable is connected to n-1 other variables. The same happens with heuristics based on minimizing Constraint Bandwidth [Ramin Zabih, 8th NCAI 1990]. Some Ordering Heuristics for N-ary CSPs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I have experimented with the following ordering heuristics: - Minimizing Constraint Bandwidth Sum - Minimizing Constraint Depth Sum (Constr Depth is distance of constr from beginning of sequence) - Ordering variables based on nbr of constraints on it. In general, to generate a good control sequence for N-ary CSPs, a global view of the problem is needed. Binding a variable that allows a (n-ary) constraint that already has the rest of its argument variables bound, should get higher priority than another variable, all other things being equal. Sometimes it is better to view the problem as one of ordering constraints rather than variables. I like to think of testing constraints as early as possible in the search tree. Hence the Constraint BandWidth Sum and Depth Sum heuristics. Of course, variable domain size is also a factor. Decomposing the CSP ~~~~~~~~~~~~~~~~~~~ Freuder [JACM, Jan 1981] showed that tree-shaped CSPs can be solved (find first solution) without backtracking after some consistency processing. Consequently some techniques have been developed to get non-tree problems into that form. Some techniques decompose a CSP into variable clusters such that the shape of the constraint network on these clusters is tree shaped [Dechter & Pearl, AIJ 1989; Gyssens, Jeavons, Cohen, 1992; etc.]. Each variable cluster includes some cluster-local constraints. The complexity of the problem is reduced to the complexity of the largest cluster. With a global constraint in the CSP, this kind of decomposition is not possible. Cycle-cutset based techniques stumble in the same way. ---------------------------------------------------------------- Subject: [1-12] Constraint Libraries for C and LISP Programs Patrick Prosser <pat@cs.strath.ac.uk> discusses various standard algorithms in the journal Computational Intelligence vol 9(3), 1993. Scheme versions available from Pat on request; Lisp implementations are available from ftp://ftp.cs.strath.ac.uk/local/pat/csp-lab. Peter Van Beek <vanbeek@cs.ualberta.ca> has written a set of libraries for C. This package is available from ftp://ftp.cs.ualberta.ca/pub/ai/csp where you will find a README and also csplib.tar.Z. Also available from the archive site for this FAQ (see section [1-1]). ---------------------------------------------------------------- Subject: [1-13] Constraints and Rule-Based (Production) Systems Milind Tambe <tambe@isi.edu> writes: Many researchers have explored the possible integration of constraint satisfaction techniques/methods and production (rule-based) systems. The integration has been explored in the context of both backward chaining[1] and forward-chaining systems (see below). This short note focuses on one aspect of this integration: constraints and forward-chaining production systems. These forward chaining systems execute tasks by going through recognize-act cycles: in the recognize or match phase, productions or rules match with working memory (a database of facts) and in the act phase, the matched productions are fired, causing changes to working memory, in turn causing the system to execute the next recognize act cycle. Integration of constraints with such systems is possible at multiple levels. At a higher level, the integration with constraints may involve a shift in the recognize-act cycle. For instance, constraint-satisfaction techniques may be used in addition to the recognize-act cycle to define values in working memory[2]. At this higher level, constraints do not change the recognize-act cycle itself. At a lower level, however, the integration with constraints may involve a change in the recognition procedure, i.e., the procedure used to match productions with working memory. More specifically, the problem of matching conditions of productions with working memory can be mapped over onto constraint satisfaction problems. Techniques such as arc-consistency, path-consistency or others may then be used either to reduce the match cost of productions by quickly eliminating easily detectably inconsistencies, or alternatively even to substitute for the matching procedure[3]. 1. "Concurrent constraint programming languages", V. Saraswat, PhD Thesis, 1989, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA. 2. "Constrained heuristic search" M. Fox, N. Zadeh & C. Baykan, IJCAI-89, pp 309-315. 3. "Investigation production system representations for non- combinatorial match" M. Tambe & P. Rosenbloom, Artificial Intel., Volume 68, Number 1, 1994. ---------------------------------------------------------------- Subject: [1-14] Interval Constraints and Newton's Approximation Michael Jampel asked: Would anyone like to comment on the integration of Newton's approximation method with interval constraint solvers? Pascal Van Hentenryck <pvh@cs.brown.edu> replied: You may want to look at our recent technical report CS-94-18: CLP(Intervals) Revisited F. Benhamou, D. McAllester, and P. Van Hentenryck which describes precisely a smooth integration of Newton method into a CLP(Intervals) language. The language, called Newton, was applied to some traditional benchmarks in this area and compared with specific tools. You may get a copy of the report by anonymous ftp from wilma.cs.brown.edu:/pub/techreports/94/cs94-18.ps.Z ---------------------------------------------------------------- Subject: [1-15] Dynamic CSPs (Constraint Satisfaction Problems) Thomas Schiex <schiex@saturne.cert.fr> writes: A definition: A dynamic constraint satisfaction problem P is a sequence P_0 ... P_alpha of static CSPs each one resulting from a change in the preceding one [1]. This change may be a _restriction_ (a new constraint is imposed on a subset of variables) or a _relaxation_ (a constraint is removed from the CSP). [2] and [3] contain many references to other papers in the field. [1] Rina Dechter and Avi Dechter, ``Belief Maintenance in Dynamic Constraint Networks'', Proceedings AAAI, 1988, pp 37-42. [2] Gerard Verfaillie and Thomas Schiex, ``Solution reuse in dynamic CSPS'', Proceedings AAAI, August 1994. [3] Christian Bessiere, ``Arc-Consistency in Dynamic CSPs'', Proceedings AAAI, 1991, pp 221-226. ---------------------------------------------------------------- Subject: [1-16] Glossary: definitions of some terms Thanks to Patrick Prosser, Thomas Schiex, Berthe Choueiry, Alan Borning, Warwick Harvey, Thom Fruehwirth. Please inform me of additions. AC Arc-Consistency: a method for reducing the amount of back-tracking in CSPs AC-n Different algorithms for enforcing arc consistency: AC-3, AC-4 (Mackworth), AC-5 (van Hentenryck), AC-6+, AC6++ (Bessiere and Regin), AC-7 (Freuder). Also Hierarchical AC: HAC (Mackworth) and HAC-6 (Kokeny) AKL Agent Kernel Language: object-oriented concurrent constraints (previously called Andorra Kernel Language) AND- AND-PARALLEL means doing all the atomic goals in one clause (or query) of a logic program in parallel (all the nodes of one branch of the search tree). OR-PARALLEL means doing all the clauses in parallel (all the branches of the search tree). ATMS Assumption-Based Truth-Maintenance System BJ Backjumping (*) BM Backmarking (*) BMJ Backmarking with backjumping (*) CBJ Conflict-Directed Back-Jumping (*) DB Dynamic Backtracking (*) CC(FD) Concurrent Constraint Programming over Finite Domains CCP Concurrent Constraint Programming CHR Constraint Handling Rules (Fruehwirth) CIP Constraint Imperative Programming CLP Constraint Logic Programming CLP(FD) Constraint Logic Programming over finite domains CLP(R) Constraint Logic Programming over the domain of Real numbers CLP(X) Constraint Logic Programming over some domain X COP Constrained Optimization Problem CSP Constraint Satisfaction Problem DBT Dynamic backtracking DCSP Dynamic CSP DnAC Dynamic arc-consistency DVO Dynamic Variable Ordering heuristic (*) FC Forward-checking (*) FF First Fail principle: choose the variable with the smallest domain as the next instantiation (*) FLA Full Look Ahead FOF Factor Out Failure FSL Full Shallow learning (*) GBJ Graph based Backjumping (*) GSAT Selman's GSAT HAC Hierarchical Arc Consistency. See AC-n. HCLP Hierarchical CLP IB Intelligent Backtracking (*) IDA* Iterative Deepening A* ILP Integer Linear Programming IP Integer Programming LC Local changes LP Logic Programming or Linear Programming MAC Maintaining Arc-Consistency NC Node consistency (see AC). Not much used NLP Non-Linear Programming. (Natural Language Processing elsewhere) NR Nogood recording (*) OR Operations Research. see newsgroup sci.op-research OR- See AND- PC Path-Consistency. Not much used PCSP Partial CSP PLA Partial Look Ahead RFLA Real Full Look Ahead SAT The problem of deciding if a given logical formula is SATisfiable. TMS Truth-Maintenance System TSP Travelling Salesman Problem; a typical very hard problem (*) All these are different techniques/heuristics for improving the efficiency of constraint satisfaction ---------------------------------------------------------------- Subject: [1-17] Explanation of value ordering heuristics > Can someone tell me what is the definition of VALUE ORDERING > and what is its purpose, and are there any rules to follow > when doing value ordering or is it domain dependent? In Constraint Satisfaction Problems, once you have decided which _variable_ to instantiate next, say V, if V has more than one possible value, you might ask which _value_ to choose first. The simplest is to go systematically through the domain of V from smallest to largest. But if V has domain [1,2,...10] and (by some magic) you know that some/all the solutions to your CSP have V=10, then it would be nice if you could try V=10 first, before wasting a lot of work on 1,2,... One well-known heuristic is to choose that value for V which is consistent with the _greatest_ number of the constraints on V. If V is only involved in constraints with X, and the possible values for (V,X) are (1,2), (1,3), (2,3), then you should choose V=1 before trying V=2. Unfortunately, it is quite expensive to keep on checking which is the most popular value in this sense. (And there is no point doing it if you want all solutions, as you will have to try V=1 and V=2 anyway.) It is so expensive that it is usually not worth doing. Of course, if you have problem-specific knowledge it might suggest a different heuristic, which might be good in your particular circumstances. In contrast, the first-fail heuristic for choosing which _variable_ to instantiate next by choosing the one with smallest domain size, is (a) very cheap (b) often gives good benefits. ---------------------------------------------------------------- Subject: [1-18] Explanation of constraint entailment > Could anybody give me the definition of constraint entailment? If we already have `X = 8' in the constraint store, we can ask three questions about some other constraint C: a) Is C entailed by the store? If C is, say, `X > 5' then the answer is `yes' -- X > 5 does not give you any extra information if you already know that X = 8. b) Is the negation of C entailed by the store? (Is C `disentailed') If C is `X > 5' the answer is `no', but if C was, say, X < 2, it would be false in the context provided by the store c) Is C neither entailed nor disentailed? The constraint `Y = 4' is consistent with the store, and so is its negation, but it is not entailed by it. In the language of Concurrent Constraints, we can `ask' if a constraint is entailed, and get `yes', `no' or `suspend' (i.e. the ask goes to sleep until enough extra information is added to the store to give a definite answer). If we want to add information to the store, we can do a `tell' which only works if the constraint to be told is not inconsistent with the store. ---------------------------------------------------------------- Subject: [1-19] Explanation of Don't Know / Don't Care nondeterminism > Could anybody give me the definitions of committed choice, don't > know, and don't care nondeterminism, please? Don't know/don't care nondeterminism: If I say to a class of students ``Write all your names on this piece of paper'' then I know that I want ALL the names, but I don't KNOW which ORDER they will be written in. If I say to a class of students ``One of you must clean the board before the lesson'' then I only want ONE of them to do it, and I don't CARE who. Or, in an operating system, when I save a file in the editor, I don't care which particular block of the disk the file is written on. But once the OS has started writing the file to one block, I don't want it to change its mind half-way through -- I want it to COMMIT to the CHOICE it has made. So don't know nondeterminism is what you get from Prolog's search rule whereas don't care nondeterminism (sometimes called `indeterminism') is what you would expect from an OS, or from ``Committed choice parallel logic languages'' such as Parlog or FGHC. Committed choice is linked to the idea of a `guard' or `commit' operator which is like the `cut' in Prolog (but imagine having to have a cut at the begining of every clause, so once you have selected it, you are committed to it and there is no back-tracking). Committed-choice and don't care --> you lose the link between declarative (model-theoretic) and operational semantics which is one of the nice things about Prolog. ---------------------------------------------------------------- Subject: [1-20] Survey of CLP with Non-Linear Constraints by Olga Caprotti <Olga.Caprotti@risc.uni-linz.ac.at> Systems (discussed individually in Part 2 of this FAQ): CAL CLP(F) GDCC ILOG Solver Newton QUAD-CLP(R) RISC-CLP(Real) Architectures (discussed here): Cooperative Constraint Solvers Symbolic Representation Scheme ---------------------------------------------------------------- Cooperative Constraint Solvers ------------------------------ Michel Rueher <rueher@essi.fr> For solving constraints over the reals, we have defined a cooperating architecture based on an asynchronous communication between heterogeneous solvers. It enables to put together both symbolic and numerical solvers for tackling systems of constraints that none of them could solve alone. Solutions provided by such a cooperating system are always at least as accurate than the one which could individually be computed by the different solvers. A prototype for a cooperative system including a solver of linear equations and inequalities, a solver of polynomial equalities, and a solver based on interval propagation is under development. References: [1] Michel Rueher. An Architecture for Cooperating Constraint Solvers on Reals. In "Constraint Programming: Basics and Trends". LNCS 910, 231-250, March 1995. [2] Philippe Marti and Michel Rueher. A Distributed Cooperating Constraints Solving System, Research Report I3S, Bat. 4, 250 av. A. Einstein, 06560 Valbonne, France, March 1995 ---------------------------------------------------------------- Symbolic Representation Scheme ------------------------------ Leon Sterling <leon@ces.cwru.edu> This paper describes experience in using constraint logic programming to reason about mechanical parts. A prototype program was written in the language CLP(R) which verified whether a part met specific tolerances in its dimensions. The program is interesting in that the same code can be used with any mixture of symbolic and numeric values. A symbolic representation scheme, underlying the program, which allows both symbolic and numeric values, is described. Examples are given of defining generic parts and toleranced parts, and checking whether a part meets its tolerances. Finally, a design rule checker is sketched to show how the logical representation of logic representation languages facilitates higher level reasoning. Reference: [1] L.S. Sterling. Of Using Constraint Logic Programming for Design of Mechanical Parts. Intelligent Systems - Concepts and Applications, (ed. L. Sterling), 107-116, Plenum Press, 1993 ---------------------------------------------------------------- Subject: [1-21] TOC: The management "Theory of Constraints" The "Theory of Constraints" has got nothing to do with CLP, CSP, or comp.constraints. However, for those who want to find out a little bit more about it, there is a file containing some email from Thomas McMullen <75564.310@compuserve.com> (also mentions the 1995 APICS Symposium): ftp://ftp.cs.city.ac.uk/pub/constraints/management-theory-of-constraints.Z There is also a WWW page at http://www.rudy.org.il/toc/index.html ---------------------------------------------------------------- Subject: [1-22] Global, specific, structural, continuous & symbolic constraints [questions and answers edited by MBJ; delimited by `>>>>>>'] From: Peter.Schotman@USERS.INFO.WAU.NL Newsgroups: comp.constraints Subject: Question: constraint terminology Date: Fri, 30 Jun 95 10:37:51 Organization: Wageningen Agricultural University Question: Could somebody explain the following terms: - Global constraints (the FAQ says: "constraints with maximum arity", does that mean that if the problem contains N variables only N-ary constraints are considered global?) - Specific and structural constraints (in: CHIC lessons on CLP methodology, ECRC-report) A lot of applications (I think) contain both a set of reasonably stable (permament) constraints as well as constraints that change from problem to problem instance, is that what is ment here? Also I would appriciate pointers to papers that explicitly deal with problem solving systems for a combination of continuous and symbolic constraints. Thanks in advance, Peter Schotman >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Newsgroups: comp.constraints From: leconte@ilog.fr (Michel Leconte) Subject: Re: Question: constraint terminology Organization: ILOG S.A., France Date: Mon, 3 Jul 95 12:44:52 GMT |> Question: Could somebody explain the following terms: |> - Global constraints The term "global constraint" is related with the level of consistency achieved by the propagation engine. A classical example is the "alldiff" constraint: alldiff(x1,...xi,...xn) setting that, in any solution, all the values of the xi must be pairwise distinct. The traditionnal (local) handling of this constraint ensures that, each time a variable is instantiated to a value, this value does not appear in the domains of the other variables. More formally, the following holds: forall xi, forall xj != xi, forall u belonging to the domain of xi, there exists a value v in the domain of xj such that u != v. The global handling of this constraint should maintain the following property: forall xi, forall u in the domain of xi, there exist values from domains of {x1,...,xj,...xn | xj != xi} such that u and these values are pairwise distinct. In other words, the global consistency of a constraint is: any value in the domain of a variable belongs to a solution. The global consistency of the alldiff constraint has been shown by J-C Regin in: "A filtering algorithm for constraint of difference in CSPs. Jean-Charles Regin, AAAI 94, Seattle, Washington". The paper "Beyond the Glass Box: Constraints as Objects. Jean-Francois Puget, Michel Leconte, ILPS'95", discusses what kind of constructs are needed to implement global constraints. Experimental results are also given, demonstrating significant speedups vs local propagation implementations. |> - Specific and structural constraints |> (in: CHIC lessons on CLP methodology, ECRC-report) The CHIC project (Constraint Handling in Industry and Commerce, Esprit project number 5291) was finished at the end of 1994. One of its result concerns the CLP methodology, with a big emphasis on the qualification phase: given a (instance of a) problem, (try to) predict if: - it is feasible, - it needs the coding of new constraints (e.g. the cooperation of OR [operations research] algorithms and propagations). One of the first phases of the methodology is to differentiate specific and structural constraints: Structural constraints deals with global properties of the problem and act on variables playing similar roles (the sub-problem is homogeneous). For example, you can easily encode a flow transportation problem in a CLP using elementary arithmetic constraint. Netherless, there is a more global structure (a graph) that represents the problem together with a _structural_ constraint (flow conservation) to express it. At the opposite, specific constraints depends on the instance of the application. |> Also I would appreciate pointers to papers that explicitly deal with |> problem solving systems for a combination of continuous and symbolic |> constraints. You could have a look at "H. Beringer and B. De Backer. Combinatorial Problem Solving in Constraint Logic Programming with cooperating Solvers. In C. Beierle and L. Plumers Editors, Logic Programming: Formal methods and Practical Applications, Elsevier Science B.V. 1995" ---------------------------------------------------------- Michel Leconte net : leconte@ilog.fr ILOG S.A. tel : +33 1 49 08 35 00 9, rue de Verdun - BP 85 fax : +33 1 49 08 35 10 F-94253 Gentilly Cedex url : http://www.ilog.com FRANCE url : http://www.ilog.fr ---------------------------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Newsgroups: comp.constraints From: micha@ecrc.de (Micha Meier) Subject: Re: Question: constraint terminology Organization: European Computer-Industry Research Centre Date: Tue, 4 Jul 1995 08:10:44 GMT The term 'global constraints' has been used in CHIP to actually denote constraints that subsume a set of other constraints. It does not necessarily mean that complete global consistency is being achieved, but just the fact that more consistency is being achieved than by considering each constraint in this set separately. This concerns mainly finite domain constraints where global consistency is hard to obtain. The term 'global constraints' is quite misleading, and it should be replaced by something more appropriate like e.g. 'composite constraints'. Note that you can have several global constraints with the same declarative reading, but with different algoritm being used and thus different levels of consistency being achieved. --- Micha Meier ------------------------------------------------ ECRC, Arabellastr. 17 The opinions expressed above are private D-81925 Munich 81 and may not reflect those of my employer. micha@ecrc.de, Tel. +49-89-92699-108, Fax +49-89-92699-170 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> From: walter@wolf.uni-koblenz.de (Walter Hower) Newsgroups: comp.constraints Subject: Re: Question: constraint terminology Date: 03 Jul 1995 09:27:39 GMT Organization: University Koblenz / Germany @Article{David:95, author = "Philippe David", title = "{Using Pivot Consistency to Decompose and Solve Functional CSPs}", journal = "Journal of Artificial Intelligence Research", year = 1995, volume = 2, pages = "447--474", month = "May", note = "AI Access Foundation and Morgan Kaufmann Publishers" } @InProceedings{Dechter:vanBeek:95, author = "Rina Dechter and Peter {van Beek}", title = "{Local and Global Relational Consistency---Summary of Recent Results}", editor = "Ugo Montanari", series = "Lecture Notes in Computer Science", booktitle = "Principles and Practice of Con\-straint Programming", year = "1995", publisher = "Proceedings, Springer-Verlag, Berlin/Heidel\-berg", month = "September 19-22,", note = "CP95, First International Conference, Cassis, France", } @InProceedings{Haroud:Faltings:PPCP94, author = "Djamila Haroud and Boi Faltings", title = "{Global Consistency for Continuous Constraints}", editor = "Alan Borning", volume = "874", series = "Lecture Notes in Computer Science", pages = "40--50", booktitle = "Principles and Practice of Con\-straint Programming", year = "1994", publisher = "Proceedings, Springer-Verlag, Berlin/Heidel\-berg", month = "May 2-4,", note = "Second International Workshop, PPCP '94, Rosario, Orcas Island, WA, USA", } @InProceedings{Jeavons:et:al:95, author = "Peter Jeavons and David Cohen and Marc Gyssens", title = "{A Unifying Framework for Tractable Constraints}", editor = "Ugo Montanari", series = "Lecture Notes in Computer Science", booktitle = "Principles and Practice of Con\-straint Programming", year = "1995", publisher = "Proceedings, Springer-Verlag, Berlin/Heidel\-berg", month = "September 19-22,", note = "CP95, First International Conference, Cassis, France", } @InProceedings{Liu:95, author = "Bing Liu", title = "{Increasing Functional Constraints Need to Be Checked Only Once}", booktitle = "{IJCAI-95, Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence}", year = "1995", editor = "Chris Mellish", organization = "IJCAII", address = "Montr{\'{e}}al, Qu{\'{e}}bec, Canada", month = "August 20--25,", note = "Distributed by Morgan Kaufmann Publishers, Inc., San Francisco, California, USA" } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Abderrahmane Aggoun (aggoun@cosytec.fr) sent the following references by email to Peter, concerning global constraints in CHIP: @Article{Aggoun:Beldiceanu:93, author = "Abderrahmane Aggoun and Nicolas Beldiceanu", title = "{Extending CHIP in order to solve complex scheduling and placement problems}", journal = "Mathl. Comput. Modelling", year = 1993, volume = 17, month = "no. 7", pages = "57--73", } @Article{Beldiceanu:Contejean:94, author = "N. Beldiceanu and E. Contejean", title = "{Introducing global constraints in CHIP}", journal = "Mathl. Comput. Modelling", year = 1994, volume = 20, month = "no. 12", pages = "97--123", } ---------------------------------------------------------------- Subject: [1-23] CLP(R) and analog circuit diagnosis Entry by Franc Novak, Jozef Stefan Institute, Ljubljana, Slovenia franc.novak@ijs.si http://martin.ijs.si/novak/novak.html F.Novak, I.Mozetic, M.Santo-Zarnik, A.Biasizzo. Enhancing design-for-test for active analog filters using CLP(R). Journal of Electronic Testing: Theory and Applications, Kluwer Ac. Publ. Vol.4, No. 4, 1993, pp.315-329. We describe a computer-aided approach to automatic fault isolation in active analog filters which enhances the design-for-test (DFT) methodology proposed by Soma (1990). His primary concern was in increased controllability and observability while the fault isolation procedure was sketched only in general terms. We operationalize and extend the DFT methodology by using CLP(R) to model analog circuits and by a model-based diagnosis approach to implement a diagnostic algorithm. CLP(R) is a logic programming language which combines symbolic and numeric computation. The diagnostic algorithm uses different DFT test modes and results of voltage measurements for different frequencies and computes a set of suspected components. Ranking of suspected components is based on a measure of (normalized) standard deviations from predicted mean values of component parameters. The diagnosis is performed incrementally, in each step reducing the set of potential candidates for the detected fault. Presented case studies show encouraging results in isolation of soft faults of a given low pass biquad filter. ---------------------------------------------------------------- ;;; *EOF* ---------------------------------------------------------------------- Path: news1.ucsd.edu!ihnp4.ucsd.edu!swrinde!newsfeed.internetmci.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv From: jampel@cs.city.ac.uk (Michael Jampel) Newsgroups: comp.constraints,comp.answers,news.answers Subject: comp.constraints FAQ 2/2 Frequently Asked Questions [Monthly posting] Supersedes: <constraints-faq/part2_813948566@rtfm.mit.edu> Followup-To: comp.constraints Date: 16 Nov 1995 23:23:49 GMT Organization: Department of Computer Science, City University Lines: 1092 Approved: news-answers-request@MIT.Edu Expires: 30 Dec 1995 23:20:30 GMT Message-ID: <constraints-faq/part2_816564030@rtfm.mit.edu> References: <constraints-faq/part1_816564030@rtfm.mit.edu> Reply-To: jampel@cs.city.ac.uk (Michael Jampel) NNTP-Posting-Host: bloom-picayune.mit.edu Summary: Free and Commercial Constraint Systems X-Last-Updated: 1995/10/12 Originator: faqserv@bloom-picayune.MIT.EDU Xref: news1.ucsd.edu comp.constraints:735 comp.answers:12789 news.answers:49469 Archive-name: constraints-faq/part2 Last-Modified: Thu Oct 12 11:50:00 1995 by Michael Jampel Version: 2.21 Important Changes (since last posting): Ilog France address change. QUAD CLP(R) ftp address change. Contributions and corrections should be sent to Michael Jampel <jampel@cs.city.ac.uk>. This is a list of Frequently Asked Questions (and answers) for the area of constraints, including books, journal articles, ftp archives, and systems & products. It is posted once a month to the newsgroups comp.constraints, comp.answers, and news.answers. NOTE: the WWW page associated with this FAQ now contains far more information than the FAQ does, including meta-information, i.e. pointers to other WWW pages and ftp sites. I strongly suggest you have a look at it: http://web.cs.city.ac.uk/archive/constraints/constraints.html People who helped with this FAQ include Philippe Blache <pb@llaor.unice.fr>, Mark Kantrowitz <mkant@cs.cmu.edu>, Wm Leler <wm@ithaca.com>, Manfred Meyer <meyer@dfki.uni-kl.de>, Milind Tambe <tambe@isi.edu>, Thomas Schiex <schiex@cert.fr>, and Tad Hogg <hogg@parc.xerox.com>. Thanks to Mark Kantrowitz for allowing me to use large parts of his FAQs and Resource Guides for comp.lang.prolog and comp.ai. ---------------------------------------------------------------- Table of Contents: In this part of the FAQ: [2-1] Introduction (same as in part 1) [2-2] Introduction to Systems for Non-Linear Constraints [2-3] Free and Commercial Constraint Systems In the other (first) part of this FAQ there are definitions, glossaries, explanations, a short bibliography, pointers to FTP and WWW archives and other resources, reviews and surveys of constraint systems, and basically everything else which is not in this part. Search for [#] to get to topic number # quickly. In newsreaders which support digests (such as rn), [CTRL]-G will page through the answers. ---------------------------------------------------------------- Subject: [2-1] Introduction This guide lists constraint-related resources: compilers and interpreters (in this part), archives, newsgroups, books, magazines, and anything else you can think of (all in part 1). Also included is a list of suppliers of products and a list of publishers. This guide is regularly posted in two parts to comp.constraints, usually on the 17th or 18th of each month. It may also be obtained by anonymous ftp from City University: ftp.cs.city.ac.uk [138.40.91.9], using username "anonymous" and password "name@host". The files part1 and part2 are located in the directory pub/constraints/constraints-faq/ [The ftp site will also contain other items on constraints.] WWW (World Wide Web) address: http://web.cs.city.ac.uk/archive/constraints/constraints.html This is also a jumping-off point giving access to most of the ftp sites mentioned in section [1-5]. The articles posted to the newsgroup are archived by month in the same location as this FAQ, in subdirectory ftp.cs.city.ac.uk:/pub/constraints/archive/comp.constraints The FAQ postings are also archived in the periodic posting archive on rtfm.mit.edu. Look in the anonymous ftp directory /pub/usenet/news.answers/constraints-faq in the files part1 and part2. If you do not have anonymous ftp access, you can access the archive by mail server as well. Send an E-mail message to mail-server@rtfm.mit.edu with "help" and "index" in the body on separate lines for more information. FAQs and Resource Guides for other newsgroups will usually be available on rtfm.mit.edu too. Disclaimer: We are not responsible for anything at all. Ever. So there. Copyright Michael Jampel 1994. Permission to do reasonable things not for profit is given to anyone. Anything else, ask me. ---------------------------------------------------------------- Subject: [2-2] Introduction to Systems for Non-Linear Constraints A survey by Olga Caprotti <Olga.Caprotti@risc.uni-linz.ac.at> Systems (discussed individually in this part): CAL CLP(F) GDCC ILOG Solver Newton QUAD-CLP(R) RISC-CLP(Real) The information has been added to the end of the entry for each individual system. Search for the phrase NON-LINEAR. Architectures (discussed in Part 1 of the FAQ): Cooperative Constraint Solvers Symbolic Representation Scheme ---------------------------------------------------------------- Subject: [2-3] Free and Commercial Constraint Systems See the comp.lang.prolog, comp.lang.lisp, comp.ai and comp.lang.scheme FAQs and Resource Guides for possibly more up-to-date and complete information. Note on costs: there is a difference between FREE software (which may have restrictions attached), Public Domain software (FREE-PD), CHEAP software (arbitrarily and approximately: less than 100 pounds or 200 dollars or 300 deutschmarks), shareware (CHEAP-SH), and software which is COMMERCIAL [to avoid calling it non-cheap or expensive]. Some software may not be available for commercial use, although commercial enterprises may be able to use it for their own research. These are labelled C=N/A. Costs may also vary depending on whether the customer is (A) academic, (E) Eastern European, or (C) a commercial enterprise. So each section here will have a header of the following form: [COST A=CHEAP,E=FREE,C=PRICE]. If something has the same cost for all groups, I abbreviate the entry to e.g. [COST FREE-PD]. Warning: there is no guarantee that this information is correct and it should not be treated as implying some kind of contract either on my part (FAQ maintainer) or on the part of the supplier. Please notify me of errors. AKL: [COST A=E=FREE,C=N/A] AKL (previously Andorra Kernel Language, now Agent Kernel Language) is a concurrent constraint programming language that supports both Prolog-style programming and committed choice programming. Its control of don't-know nondeterminism is based on the Andorra model, which has been generalised to also deal with nondeterminism encapsulated in guards and aggregates (such as bagof) in a concurrent setting. See, for example, Sverker Janson and Seif Haridi, "Programming Paradigms of the Andorra Kernel Language", in Proceedings of ILPS'91. MIT Press, 1991. Torkel Franzen, "Logical Aspects of the Andorra Kernel Language", SICS Research Report R91:12, Swedish Institute of Computer Science, 1991. Torkel Franzen, Seif Haridi, and Sverker Janson, "An Overview of the Andorra Kernel Language", In LNAI (LNCS) 596, Springer-Verlag, 1992. Sverker Janson, Johan Montelius, and Seif Haridi, "Ports for Objects in Concurrent Logic Programs", in Research Directions in Concurrent Object-Oriented Programming, MIT Press, 1993 (forthcoming). The above papers on AKL are available from <ftp://sics.se:/pub/ccp/papers>. An (as yet non-released) prototype implementation of AKL is available for research purposes (contact sverker@sics.se). ALE: [COST FREE-PD] ALE (Attribute Logic Engine), a public domain system written in Prolog, integrates phrase structure parsing and constraint logic programming with typed feature structures as terms. Types are arranged in an inheritance hierarchy and specified for the features and value types for which they are appropriate. Grammars may also interleave unification steps with logic program goal calls (as can be done in DCGs), thus allowing parsing to be interleaved with other system components. While ALE was developed to handle HPSG grammars, it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II, and LOGIN programs, etc. Grammars and programs are specified with a version of Rounds-Kasper Attribute Value Logic with macros and variables. ALE supports lexical rules and empty categories for grammars, using a bottom-up, breadth-first dynamic chart parser. ALE supports last call optimization, negation by failure and cuts in definite clauses, which may be used independently or integrated into grammars. The system is available free for research purposes, from Bob Carpenter <carp@lcl.cmu.edu>. BERTRAND: [COST CHEAP-SH] Bertrand is the language described by Leler in his book (see section [1-6]). See [1-5] PTF for more details. BULL SOLVER: [COST COMMERCIAL] See ILOG SOLVER. CFSQP: [COST A=E=FREE,C=FREEish] See FSQP. CHARME: [COST COMMERCIAL] CHARME was a commercial product from Bull. The latest version is called BULL SOLVER, but see also ILOG SOLVER. CHIP: [COST COMMERCIAL] CHIP V4 (Constraint Handling In Prolog) is designed as an extension to Prolog offering three constraint solving domains: Integers, Rationals and Booleans. The system was originally developed at ECRC in Munich and now extended by the same team at COSYTEC in Paris. CHIP V4 includes extensions to the three domains: symbolic constraints, update demons and cumulative constraints. The system is available with optional interfaces for X11 and DOS graphics (XGIP), Oracle or Ingres database connection (QUIC), C language interface (CLIC) and embedded application interface (EMC). CHIP V4 is written completely in C, and is available on a range of workstations including SunSparc IBM RS6000, HP 9000/700, Decstations and PC386/486 (Dos 5.0). An academic discount is offered for educational and research purposes. For more information contact COSYTEC, Parc Club Orsay Universite 4 rue Jean Rostand, 91893 Orsay Cedex, France, phone +33-1-60-19-37-38, fax +33-1-60-19-36-20 or email <cosytec@cosytec.fr>. CHR: [COST FREE with ECLIPSE] Constraint Handling Rules (CHRs) is a library of ECLiPSe [see separate entry] for writing custom constraint systems in a high-level language. CHRs is essentially a committed-choice language consisting of guarded rules that rewrite constraints into simpler ones until they are solved. The usual formalisms to describe a constraint theory, i.e. inference rules, rewrite rules, sequents, first-order axioms, can be expressed as CHR programs in a straightforward way. The CHR release includes a full colour demo involving geometric constraints, a compiler (into ECLiPSe), two debuggers, a runtime system and 18 constraint solvers. There are solvers for lists, sets, trees, terms, finite and infinite domains, booleans, linear polynomials over reals and rationals, for incremental path consistency, and for terminological and temporal reasoning. CHR documentation is available by anonymous ftp from ftp.ecrc.de:/pub/eclipse/doc in the extensions-manual. You can also ftp a technical report describing constraint handling rules (file ECRC-92-18.ps.Z in directory pub/ECRC_tech_reports/reports) and their application to temporal and terminological reasoning (files ECRC-94-05.ps.Z and ECRC-94-06.ps.Z). For more information on CHRs contact Thom Fruehwirth (thom@ecrc.de). CIAL 1.0 (Beta) [COST FREE] CIAL is an interval constraint logic programming language. The main difference between CIAL and other CLP(Interval) languages is that a linear constraint solver, which is based on preconditioned interval Gauss-Seidel method, is embedded in CIAL in addition to the interval narrowing solver. The main motivations for a linear solver are: * Pure interval narrowing fails to narrow the intervals to any useful width even for such simple systems as {X+Y=5, X-Y=6}. Interval splitting may help but is costly. * Pure interval narrowing cannot always detect inconsistency or halt (in a reasonable time). A simple example is {A+1=D, A+B=D, A>0, B<0}. * Efficient linear constraint solver is also important to the study of efficient non-linear constraint-solving. Recent results show that interval Newton method works better than pure interval narrowing for solving non-linear constraints, but may require to solve many linear constraints in order to give the best results. This version of CIAL prototype is implemented as an extension to CLP(R) v1.2 and tested on Sun Sparc machines. You should have obtained CLP(R) from IBM prior to installing CIAL. Our distribution is in the form of patches to the CLP(R) sources. [See entry on CLP(R) below]. E-mail cial@cs.cuhk.hk to request CIAL, and for more details. [FAQ maintainer's note: I have deleted most of the references provided, for space reasons, if they are in well-known journals and conferences; the CIAL team have not simply cited only their own work. MBJ.] C.K. Chiu and J.H.M. Lee. Towards practical interval constraint solving in logic programming. (To appear) In Proceedings of the Eleventh International Logic Programming Symposium, Ithaca, USA, Nov.1994. J.H.M. Lee and T.W. Lee. A WAM-based abstract machine for interval constraint logic programming and the multiple-trailing problem. Proceedings Sixth IEEE International Conference on Tools with Artificial Intelligence, New Orleans, Nov 1994. CLP(BNR): [COST ???] CLP(BNR) [Constraint Logic Programming with Booleans Naturals and Reals] is an experimental CLP Language developed at the Bell-Northern Research Computing Research Lab. CLP(BNR) is a Prolog-based language that incorporates an arc-consistency propagation algorithm on interval-bounded constraints which handles general algebraic constraints over continuous, integer and boolean variables. This allows programmers to express systems of non-linear equations on real intervals that can be arbitrarily mixed with integer and boolean constraints equations. For more information on CLP(BNR) contact Andre' Vellino <vellino@bnr.ca> (613)763-7513, fax (613)763-4222 Bell-Northern Research, Box 3511, Station C, Ottawa, CANADA K1Y 4H7 See also section [1-6] for papers by Benhamou/ Older/ Vellino. CLP(F): NON-LINEAR [unavailable] This extension of CLP(Intervals) has an underlying domain that consists of boolean, integers, reals, real-valued functions of one variable, and vectors of domain elements. Function variables are constrained by functional equations and by putting interval constraints on the values of their derivatives at points and intervals. The system can be used to solve constraint problems involving ordinary differential equations. Contact Tim Hickey <tim@cs.brandeis.edu> Reference: [1] T. Hickey. CLP(F) and Constrained ODE's, T. Proceedings of the 1994 Workshop on Constraints and Modelling, Ithica, NY, November, 1994. Available at: ftp://ftp.ecrc.de/pub/faculty/tim/Papers/islp94.ps CLP(FD): [COST FREE] CLP(FD) 2.2 is a constraint logic programming language over Finite Domains. It is based on the wamcc Prolog compiler which translates Prolog to C. It provides several constraints "a la CHIP" on Finite Domains and Booleans and some facilities to build new constraints. clp(FD) is 4 times faster than CHIP v3.2 on average. Available from ftp.inria.fr:/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd Requires GNU C (gcc) version 2.4.5 or higher. Ported to Sparc workstations, PC under linux, sony mews, dec ultrix, portable generally to 32-bit machines with gcc. See also under WAMCC, below. For more details, contact the author Daniel Diaz <Daniel.Diaz@inria.fr> INRIA Rocquencourt, FRANCE. CLP(R): [COST A=FREE,E=FREE,C=N/A] [Commercial users: see next section] CLP(R) is a constraint logic programming language with real-arithmetic constraints. The implementation contains a built-in constraint solver which deals with linear arithmetic and contains a mechanism for delaying nonlinear constraints until they become linear. Since CLP(R) subsumes PROLOG, the system is also usable as a general-purpose logic programming language. It includes facilities for meta-programming with constraints. The system consists of a compiler, byte-code emulator, and constraint solver. CLP(R) is written entirely in C and runs on Suns, Vaxen, MIPS-based machines (Decstations, Silicon Graphics), IBM RS6000s and PS2s. Includes MS-DOS support. It is available free from IBM for academic and research purposes only. For more information, write to Joxan Jaffar, H1-D48, IBM Thomas J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598, or send email to joxan@watson.ibm.com or joxan@yktvmh.bitnet. Current version 1.2. CLP(R): [COST CHEAP] CLP(R) is a constraint system from Monash University for VAX, Sun, and Pyramid (Unix). Costs $150. For more information, write to Monash University, CLP(R) Distribution, Department of Computer Science, Clayton, Victoria 3168, Australia, or send email to clp@moncsbruce.oz.au. [Although the system is still available, it has not been maintained or supported for about 5 years, and it will remain that way.] COOLDRAW: [COST FREE-PD] A constraint-based drawing package from the same stable as ThingLabII. See information on the Seattle ftp site in section [1-5]. CONTAX: [COST FREE-PD] Public domain constraint system written by Manfred Meyer <meyer@dfki.uni-kl.de>. [More details soon.] CU-PROLOG: [COST FREE] cu-Prolog is an experimental constraint logic programming language available free from Japan's Institute for New Generation Computer Technology (ICOT). Unlike most conventional CLP systems, cu-Prolog allows user-defined predicates as constraints and is suitable for implementing a natural language processing system based on the unification-based grammar. For example, the cu-Prolog developers implemented a JPSG (Japanese Phrase Structure Grammar) parser in cu-Prolog with the JPSG Working Group (the chairman is Prof. GUNJI, Takao of Osaka University) at ICOT. cu-Prolog is a complete implementation of Constraint Unification (cu), hence the name. cu-Prolog is implemented in C for BSD UNIX 4.2/3. Professor Sirai of Chukyo-University has also implemented cu-Prolog for the Apple Macintosh and DJ's GPP (80386/486 MS-DOS machine with the DOS extender). Available free by anonymous ftp: see section [1-5]. DELTABLUE: [COST FREE-PD] A constraint-solving algorithm. See information on the Seattle ftp site in section [1-5]. See paper by Freeman-Benson et al in section [1-6]. ECHIDNA: [COST FREE] Echidna is an object oriented constraint logic programming language developed by the Intelligent Systems Lab at Simon Fraser University between 1990 and 1993. Constraints in Echidna include finite domain constraints (as in CHIP) and disjoint real interval domain constraints. Real domains are implemented by interval hierarchies which allow for the representation of domains with disjoint sets of intervals. Hierarchical domains also allow control of the precision of constraint processing. Since complete search procedures exist for all levels of precision, it is possible to quickly search through regions with no solutions at low precision. Where low precision constraint processing indicates a possible solution, precision can be increased to ensure convergence on a real solution. Echidna supports a form of incremental intelligent backtracking for multiple user queries which provides an effective interactive mixed-initiative control regime. Users can issue and selectively retract queries to arrive at a solution to their problem. Development and support for Echidna v1.0 were halted in 1993. For more information, go to <http://fas.sfu.ca/cs/research/groups/ISL/> or <ftp://ftp.fas.sfu.ca/pub/css/esl/echidna> or contact Bill Havens <havens@cs.sfu.ca>. See: [1] W.S. Havens: Intelligent Backtracking in the Echidna CLP Reasoning System, International Journal of Expert Systems: Research and Applications 5(4), 1992, M. Harandi (ed.), Jai Press, London, 21-45. [2] Greg Sidebottom and W.S. Havens: Hierarchical Arc Consistency for Disjoint Real Intervals in Constraint Logic Programming. Computational Intelligence 8(4), 1992. 601-623. Also available as <ftp://ftp.fas.sfu.ca/pub/cs/theses/1993/GregSidebottomMSc.ps>. ECLIPSE: [COST A=CHEAP,E=FREE,C=see below] ECLiPSe (ECRC Logic Programming System) combines the functionalities of several ECRC systems, including Sepia, MegaLog and CHIP. ECLiPSe includes a Prolog compiler with extended functionality that is Quintus and SICStus compatible, a tightly connected database system based on the BANG file system, a CLP system, and an interface to the Tcl/Tk X11 toolkit. The BANG database can store not only relations, but also any Prolog structures and programs. The CLP system contains several libraries with various types of constraint handling schemes, including atomic finite domains, linear rational constraints, CHR (constraint handling rules) and Propia (generalised propagation). See also the separate entry for CHR.] It also supports writing further extensions like new user-defined constraints or complete new constraint solvers. ECLiPSe also includes a profiler, user-definable syntax, metaterms as first-class citizens, coroutining, and unlimited precision integer and rational numbers. ECLiPSe is available for a nominal fee of DM 300 (~$200) to all academic and government-sponsored organizations. Commercial users may obtain ECliPSe for DM 7000, but for research purposes only. It is distributed in binary form for Sun-3, Sparc, and many other types of machine. Send orders or requests for further information to eclipse_request@ecrc.de or write to ECRC, Arabellastrasse 17, 81925 Munich, Germany. The ECLiPSe documentation (ASCII and dvi) and some shareware packages ported to ECliPSe are now available by anonymous ftp from ecrc.de:/pub/eclipse. To subscribe to the eclipse_users@ecrc.de mailing list, send mail to eclipse_request@ecrc.de. ECRC SEPIA: [COST FREE with ECLIPSE] See ECLIPSE. SEPIA is no longer delivered as a stand-alone system, but as a part of ECLiPSe. FSQP/CFSQP: [COST A=E=FREE,C=FREEish] FSQP (Feasible SQP; FORTRAN; developed by J.L. Zhou and A.L. Tits) and CFSQP (C version of same, with enhancements; port and enhancements due to C.T. Lawrence) are software packages aimed at solving constrained optimization problems, including constrained minimax problems (where the max is taken over a finite number of smooth functions). (C)FSQP's main distinguishing feature is that all the iterates it generates satisfy the constraints, except for nonlinear equality constraints, for which mere "semi-feasibility" is maintained (given a scalar constraint h(x)=0, if h(x0)<=0 (resp. >=0), then h(xk)<=0 (resp. >=0) for all k.) This is of value in many engineering related problems. Extensive numerical tests show that FSQP's efficiency is comparable to that of the most popular (non-"feasible") codes. Detailed User's Manuals are available. (C)FSQP is available free of charge to academic and other non-profit organizations (as well as, for an evaluation period, to for-profit organizations) but may not be redistributed without the authors' approval. To obtain FSQP or CFSQP, please contact Andre Tits (andre@eng.umd.edu). GARNET: [COST FREE] The Garnet system is a fully functional user interface development environment and toolkit implemented on top of a comprehensive one-way constraint system. It is in CommonLisp for X/11. All widgets and other user interface elements are implemented using the constraint. The constraints are implemented as part of the object system, and the object system with constraints can be used independently of the user-interface components, if desired. Garnet is available for free by anonymous FTP from a.gp.cs.cmu.edu (128.2.242.7). Retrieve /usr/garnet/garnet/README. More information on Garnet is available from http://www.cs.cmu.edu:8001/Web/Groups/garnet/garnet-home.html or in the newsgroup comp.windows.garnet or e-mail garnet@cs.cmu.edu. See also [1-5] PTF for more details. See also Multi-GArnet, below. GOEDEL: [COST FREE] Goedel is intended to be a declarative successor to Prolog. It is defined as supporting certain constraint domains, but these are not yet implemented. See the comp.lang.prolog FAQ for more details. ICOT language CU-PROLOG: See entry CU-PROLOG. ICOT language CAL in ESP: [COST FREE] To execute this system, SIMPOS Ver.7 must be running on your PSI. CAL is a sequential constraint logic programming language which can deal with various constraints including non-linear polynomial equations. In the CAL system, you can use Context. A context is a constraint set. A new context is created whenever the constraint set is changed. The history of changing contexts is manipulated by the Context Tree, and Current Context is the target of the context manipulation. You can set a context on the context tree arbitrarily as the current context. Functions include finding real roots: The query "find" computes real roots of the univariate equations and returns one solution. The user can obtain other solutions by backtrack, and branches of the context tree are created. The CAL system has 4 constraint solvers, (1) Algebraic constraint solver (2) Boolean constraint solver (3) Linear constraint solver (4) Set constraint solver Available free by anonymous ftp: see section [1-5]. A. Aiba, K. Sakai, Y. Sato, D. J. Hawley, and R. Hasegawa: Constraint Logic Programming Language CAL. In Proceedings of the International Conference on Fifth Generation Computer Systems 1988, November 1988. Contrainte Avec Logique version 2.12 User's manual Institute for New Generation Computer Technology, in preparation. ICOT language CAL Common ESP version written in CESP: [COST FREE] Same as CAL in ESP, but can run on Unix, needing: UNIX machine, Emacs CESP, C language compiler, GNU MP, 50Mbyte disk, 16Mbyte memory Available free by anonymous ftp: see section [1-5]. CAL: NON-LINEAR CAL was developed at ICOT (Institute for New Generation Computer Technology) in a Japanese national project, Fifth Generation Computer Project. CAL utilizes Buchberger algorithm to deal with linear and non-linear algebraic equation constraints. See previous entries for more details or contact Akira Aiba <aiba@icot.or.jp> References: [1] Ko Sakai, Akira Aiba. CAL : A Theoretical Background of Constraint Logic Programming and Its Application. Journal of Symbolic Computation (1989) 8, pp. 589 -- 603 ICOT language Hierarchical CLP Language CHAL: [COST FREE] You need the SIMPOS/ESP environment to run CHAL. Hierarchical Constraint Logic Programming Language: CHAL A hierarchical constraint logic programming language processor which introduces hierarchy in terms of strength of constraints. Hierarchical constraint logic programming language CHAL consists of constraint hierarchy solver which manipulates various strength of constraints in various domains and constraint language processor. An Extension of Constraint Logic Programming Language Usual constraint logic programming languages output nothing if there is no solution for given constraints. On the other hand, by introducing hierarchy of strength in constraints, CHAL ignores some weak constraints in order to output some better solutions. This function is important in planning and design problems. Available free by anonymous ftp: see section [1-5]. ICOT language PCHAL: [COST FREE] Hierarchical Constraint Parallel Solver: P-CHAL Similar to CHAL, above. Parallel Solving of Constraint Hierarchy: P-CHAL reduces computational costs by a bottom-up calculation of maximal consistent sets and parallel processing of GDCC. Available free by anonymous ftp: see section [1-5]. ICOT language Knowledge Representation Language Quixote: [COST FREE] Main documentation in Japanese. Quixote is a DOOD (Deductive Object-Oriented Database) system developed at ICOT. The following are outstanding Quixote features. 1. Object identity defined over extended terms (object terms). 2. Constraints in terms of subsumption relation among object terms. 3. Property inheritance among objects. 4. Modularized and hierarchical knowledge bases defined by modules and rule inheritance between them. 5. Queries having additional assertions to knowledge bases, and answers with assumed constraints. Available free by anonymous ftp: see section [1-5]. Kazumasa Yokota, Deductive Object-Oriented Databases, Computer Software, Vol.9, No.4, pp3--18, 1992 (in Japanese). Hideki Yasukawa, Hiroshi Tsuda, and Kazumasa Yokota, Object, Properties, and Modules in QUIXOTE, Proc. of FGCS92, pp257--268, 1992. Quixote Ver.III consists of (1) Quixote client on UNIX with C, X-Window(X11R5), and GNU-Emacs, and (2) Quixote server on PIM/PIMOS with KL1. Both UNIX workstation (such as SS2) and PIM/PSI are required to run this version of Quixote. ICOT language Micro Quixote (Version 0.5): [COST FREE] Micro Quixote is another implementation of the language Quixote. It is implemented with C. It eliminates many features of Quixote, and only implements core feature of Quixote. However, it's small, and easy to install. And more, it is expected that Micro Quixote could run on other operating systems apart from Unix. Available free by anonymous ftp: see section [1-5]. ICOT language GDCC (Guarded Definite Clauses with Constraints): [COST FREE] GDCC is the parallel constraint logic programming experimental system. GDCC has been developed on PIMOS and runs only on PIMOS. Therefore, PIMOS needs to be installed on your machine before GDCC is installed. Includes linear constraints, boolean constraints, and the find utility (Algebraic constraint solver) which is used to find approximate real roots from the results of solving algebraic constraints. Available free by anonymous ftp: see section [1-5]. GDCC: NON-LINEAR GDCC was developed at ICOT in a Japanese national project, Fifth Generation Computer Project. GDCC utilizes Buchberger algorithm to deal with linear and non-linear algebraic equation constraints. Different from CAL, GDCC is a parallel CLP language based on cc paradigm. There are two versions of GDCC, one is a system written in KL1, a parallel logic programming language, that runs on a parallel inference machine called PIM developed in the project, and the other is a system written in KLIC that is a KL1 language processor for UNIX workstations. See previous entry or contact Akira Aiba <aiba@icot.or.jp> References: [1] Satoshi Terasaki, David J. Hawley, Hiroyuki Sawada, Ken Satoh, Satoshi Menju, Tarou Kawagishi, Noboru Iwayama, and Akira Aiba. Parallel Constraint Logic Programming Language GDCC and Its Parallel Constraint Solvers. International Conference on Fifth Generation Computer Systems 1922, Tokyo [2] Hiroyuki Sawada, Satoshi Terasaki, and Akira Aiba. Parallel Computation of Groebner Bases on Distributed Memory Machines. Journal of Symbolic Computation, Vol.18, No.3, pp.207--222, September 1994. IF/Prolog 5.0 [COST COMMERCIAL] IF/Prolog 5.0 is a full ISO-compliant Prolog which incorporates constraint solving technology. IF/Prolog is available on ALL UNIX systems, VMS, OSF/1, MS-Windows and Mainframes. Constraint domains include Boolean constraints, Rational terms, Linear terms, Equations and Inequations, Finite Domain Constraints and Co-routines. Interfaces to standard software packages and other programming languages including C, C++ and FORTRAN, SQL (Ingres, Oracle and Informix) and X11 (Motif and Athena widgetsets). IF/Prolog has full screen X11 and Windows based debuggers and online hypertext help and quick reference guide. IF/Prolog 5.0 is available on ALL UNIX, OSF/1, VMS and MS-Windows, OS/2 platforms. There is a 50% accademic discount and demo licences are avilaible. Further information contact: Annette Kolb (marketing) or Dr. Andrew Verden (technical) at IF Computer GmbH, Ludwig-Thoma-Weg 11a, D-82065 Baierbrunn, tel +49 89 7936 0037, fax +49 89 7936 0039. E-mail prolog@mch.sni.de ILOG SCHEDULE: [COST COMMERCIAL] ILOG SCHEDULE is an add-on to ILOG SOLVER, used to develop finite capacity scheduling applications. ILOG SCHEDULE includes a natural object model for representing schedules in terms of activities and resources used and shared by these activities. Three categories of constraints are predefined: - TEMPORAL CONSTRAINTS. Users may link any two activities together by any type of precedence constraint. Minimum and maximum delays between activities can be imposed. - CAPACITY CONSTRAINTS. Unary resources represent resources of capacity one. Volumetric resources represent resource pools of non-differentiated resources. State resources represent situations where an activity uses a resource only under specific conditions. The capacity of a resource can be constrained either at each time unit or over given time periods. - RESOURCE UTILIZATION CONSTRAINTS. An activity may require, consume, provide and produce resources, in an amount represented either as a constant or as an ILOG SOLVER variable. This allows the representation of the case where the duration of the activity varies with the amount of resources assigned to the activity. ILOG SCHEDULE is available on the same platforms as ILOG SOLVER. For further information and contact addresses, see entry on ILOG SOLVER. ILOG SOLVER: [COST COMMERCIAL] [Ilog and Bull have agreed to sell the same thing under different names. Charme Object and Ilog Solver have been merged. M Jampel.] ILOG SOLVER (formerly called PECOS) is a highly efficient C++ class library that implements constraint programming. SOLVER has been used to develop fielded applications handling large problems in areas such as job shop scheduling, timetabling, configuration, transport, logistic planning, network routing, and frequency allocation. SOLVER implements integer variables, floating point variables, Boolean variables, and set variables. Constraints include =, <=, >=, <, >, +, -, *, /, subset, superset, union, intersection, member, Boolean or, Boolean and, Boolean not, Boolean xor, cardinality, element, generic constraints, and meta constraints (conjunction and disjunction of constraints, order among constraints). Non-linear constraints can be solver by interval approximation methods. You can add new constraints to SOLVER by deriving new C++ classes. SOLVER provides a backtracking search and a branch-and-bound algorithm together with a large number of search strategies. SOLVER also provides C++ classes and functions that implement non-deterministic programming. SOLVER is available on most Unix platforms and on MS-Windows. For further information, please contact: - In the USA and Canada: - Outside the USA: ILOG, Inc. ILOG SA 2005 Landings Drive 9, rue de Verdun, BP 85, Mountain View, CA 94303. 94253 Gentilly Cedex, France Phone: +415 390-9000 Phone: +33 1 4908 3500 e-mail: info@ilog.com e-mail: info@ilog.fr URL: http://www.ilog.com URL: http://www.ilog.fr LIFE: [COST FREE] LIFE (Logic, Inheritance, Functions, and Equations) is an experimental programming language with a powerful facility for structured type inheritance. It reconciles styles from functional programming, logic programming, and object-oriented programming. It subsumes the functionality of its precursor languages LOGIN and Le_Fun, and may be seen as an extension of Prolog. The syntax of Wild_LIFE has been kept as close as possible to that of the Edinburgh standard for Prolog. LIFE offers natively high-level abstraction facilities and convenient data and control structures particularly well-suited for AI programming. LIFE implements a constraint logic programming language with equality (unification) and entailment (matching) constraints over order-sorted feature terms. The interplay of unification and matching provides an implicit coroutining facility thanks to an automatic suspension mechanism. This allows interleaving interpretation of relational and functional expressions which specify structural dependencies on objects. The Wild_LIFE interpreter is the first implementation of the LIFE language available to the general public. It is a product of the Paradise project at Digital Equipment Corporation's Paris Research Laboratory (DEC PRL). Wild_LIFE runs on DECstations (Ultrix), SparcStations and RS/6000 systems and should be portable to other Unix workstations. It is implemented in C, and includes an interface to X Windows. Wild_LIFE is available by anonymous ftp from gatekeeper.dec.com:/pub/plan as the file Life.tar.Z. To be added to the mailing list (life-users@prl.dec.com), send mail to life-request@prl.dec.com. Send bug reports to life-bugs@prl.dec.com. See also [1-5] PTF for more details. NEWTON: NON-LINEAR [unavailable] The constraint group at Brown University has developed a CLP language called Newton to solve - systems of nonlinear equations and inequalities - unconstrained optimization - constrained optimization The language uses interval arithmetic and is based on a box-consistency on various interval extensions. It is competitive with continuation methods on their benchmarks, outperforms all interval methods we know of, and has solved traditional benchmarks from numerical analysis containing hundreds of variables. Contact Pascal Van Hentenryck <pvh@cs.brown.edu> References: [1] F. Benhamou, D. McAllister, P. Van Hentenryck. CLP(Interval) Revisited, in ILPS'94, Ithaca, NY, November 1994. [2] P. Van Hentenryck, D. McAllister, D. Kapur. Solving Polynomial System using A branch and Prune Approach. Forthcoming. [3] P. Van Hentenryck, L. Michel. The Design and Implementation of Newton. In CCP'95, Venice, Italy, May 1995. NICOLOG: [COST FREE] Nicolog is a CLP language with the capabilities of CLP(BNR) and most of the capabilities of cc(FD). Constraints in Nicolog are compiled into a generalization the indexical constraints found in cc(FD) and clp(FD). This generalization of indexical constraints is called projection constraints. Projection constraints add conditional operators which allow the implementation of the cardinality, blocking implication, and constructive disjunction constraints found in cc(FD). Nicolog has a very simple implementation (5000 lines of Prolog for the compiler and 5000 lines of C++ for the extended WAM emulator) and yet runs as fast as emulator based CLP languages such as cc(FD) and CLP(BNR). Moreover, the possibility of programming directly in projection constraints makes Nicolog more flexible than other CLP systems. For more information, go to <http://fas.sfu.ca/cs/research/groups/ISL/> or <ftp://ftp.fas.sfu.ca/pub/css/esl/nicolog> or contact Greg Sidebottom <gsidebot@mprgate.mpr.ca> or see <ftp://ftp.fas.sfu.ca/pub/cs/theses/1993/GregSidebottomPhD.ps>. OPBDP: [COST FREE] opbdp is an implicit enumeration algorithm for solving linear 0-1 optimization problems, including a bunch of heuristics for selecting a branching literal. Several preprocessing techniques (coefficient reduction, fixing, equation detection). Preprocessed problem can written to a file readable by CPLEX and lp_solve. Technical report included. If your favorite linear-programming based solver fails on your problem you might give opbdp a chance. Needs a C++ compiler which supports templates. Contact Peter Barth (barth@mpi-sb.mpg.de). ftp://ftp.mpi-sb.mpg.de/pub/guide/staff/barth/opbdp/ http://www.mpi-sb.mpg.de/~barth OMEGA: [COST FREE] Version 0.90 of the Omega Calculator and Omega Library is now available, including source code. The Omega library/calculator manipulates sets of integer tuples and relations between integer tuples. Some examples include: { [i,j] : 1 <= i,j <= 10}; { [i] ->[i,j] : 1 <= i < j <= 10}; { [i,j] ->[j,j'] : 1 <= i < j < j' <= n}; The conditions describing a set or tuple can be an formulas can described by an arbitrary Presburger formula. Relations and sets can be combined using functions such as composition, intersection, union and difference. It also provides routines to generate code to iterate over the points in an integer tuple set. The Omega library provides a high-level, C++ interface to our routines. The Omega calculator is a text-based interface to the Omega library. Omega is available for anonymous ftp from ftp.cs.umd.edu:pub/omega/omega_library. More information is available by email from omega@cs.umd.edu on the www at http://www.cs.umd.edu/projects/omega/. OZ: [COST FREE] Oz is a concurrent constraint programming language designed for applications that require complex symbolic computations, organization into multiple agents, and soft real-time control. It is based on a new computation model providing a uniform foundation for higher-order functional programming, constraint logic programming, and concurrent objects with multiple inheritance. From functional languages Oz inherits full compositionality, and from logic languages Oz inherits logic variables and constraints (including feature and finite domain constraints). Search in Oz is encapsulated (no backtracking) and includes one, best and all solution strategies. DFKI Oz is an interactive implementation of Oz featuring a programming interface based on GNU Emacs, a concurrent browser, an object-oriented interface to Tcl/Tk, powerful interoperability features (sockets, C, C++), an incremental compiler, a garbage collector, and support for stand-alone applications. Performance is competitive with commercial Prolog and Lisp systems. DFKI Oz is available for many platforms running Unix/X, including Sparcs and 486 PCs. Applications DFKI Oz has already been used for include simulations, multi-agent systems, natural language processing, virtual reality, graphical user interfaces, scheduling, placement problems, and configuration. Version 1.0 of DFKI Oz (January 23, 1995) is available by anonymous ftp from ps-ftp.dfki.uni-sb.de:/pub/oz, or through the WWW from http://ps-www.dfki.uni-sb.de/ Tutorials, reference manuals, and research papers are available from the same sources. You may start with "A Survey of Oz" (8 pages) and continue with "An Oz Primer" (110 pages). For specific questions mail oz@dfki.uni-sb.de. To join the Oz users mailing list, contact oz-users-request@dfki.uni-sb.de. PROFIT: [COST FREE] ProFIT (Prolog with Features Inheritance and Templates) is an extension of Prolog with sorted feature structures (including multi-dimensional inheritance), finite domains, feature search, cyclic terms, and templates. ProFIT works as a pre-processor, which takes a file containing a ProFIT program as input, and gives a file with a Prolog program as output. Sorted feature terms and finite domains are compiled into a Prolog term representation, and the usual Prolog term unification is used at runtime, so that there is no slowdown through a unification algorithm, and no meta-interpreter is needed. ProFIT uses the same techniques for compiling sorted feature terms and finite domains into Prolog terms as the Core Langauge Engine of SRI Cambridge and the Advanced Linguistic Engineering Platform (ALEP 2.2) by the European Community, BIM, and Cray Systems. ProFIT is not a grammar formalism (although it is motivated by NLP), although it provides some ingredients that are considered typical of grammar formalisms. The goal of ProFIT is to provide these datatypes without enforcing any particular theory of grammar, parsing or generation. ProFIT can be used to extend your favourite Prolog-based grammar formalism, parser and generator with the expressive power of sorted feature terms. Cyclic terms can be printed out and a user-configurable pretty-printer for feature terms is provided. ProFIT is available free of charge by anonymous ftp from coli.uni-sb.de:/pub/profit Implemented in Sicstus Prolog (2.1 #9) by Gregor Erbach, Univ. Saarlandes, Saarbruecken, Germany <erbach@coli.uni-sb.de> <http://coli.uni-sb.de/~erbach> PROLOG III: [COST COMMERCIAL] Prolog III was the first commercial Constraint Logic Programming language. It incorporates all the main features of PROLOG II+, but also gives the user the ability to express constraints over various different domains. In particular the fundamental concept of constraint resolution allows for numerical processing and also a complete treatment of Boolean algebra, in a logic programming style. Version 1.5 of PROLOG III is available on wide range of platforms including PC, MAC, UNIX, ULTRIX, VMS, NeXTSTEP, ALPHA OSF1. For more information, write to PrologIA, Luminy - case 919 - 13288 MARSEILLE cedex 09 - FRANCE or contact Fabienne LELEU : ph (33) 91 26 86 36 fax (33) 91 41 96 37 e-mail prologia@prologianet.univ-mrs.fr PROLOG IV: NON-LINEAR ? [COST COMMERCIAL] Prolog IV is an ISO-compliant replacement for the Prolog III language. It incorporates all the main features of Prolog III with some important changes. Prolog IV allows programmers to express a wide variety of constraints over real and rationnal numbers, integers (finite domains), booleans and lists. In addition to expressing classical linear programming problems on discrete and continuous quantities this permits among other things the adressing of mixed real/integers problems and the use of boolean operations to formalize constraint disjunctions. The algorithms include a non-optimised algorithm for lists (different from Prolog III), Gauss and Simplex algorithms for equations and linear inequalities over rationals, and an interval method for approximate solving of non-linear constraints over reals. The compiler is integrated into a complete graphic programming environnment featuring the following tools: project editor, multi-window text editor, grapher, debugger, and on-line help. Prolog IV is available on Unix Platforms (for about $11400) and PC's with Windows (about $6400). These prices include two days of training. For sales, contact Fabienne LELEU, Case 919 - Luminy 13288 Marseille cedex 09, France. Phone +33 91 26 86 36 - Fax +33 91 41 96 37. Email: prologia@prologianet.univ-mrs.fr For more information, you can contact Andre Touraivane, Prologia Director of Research at the same address, or email touraivane@prologianet.univ-mrs.fr QUAD-CLP(R): NON-LINEAR [COST FREE] QUAD-CLP(R) is an experimental constraint logic programming system developed in the course of PhD research by Gilles Pesant. The CLP(R) version 1.1 source code was used as a platform for the implementation. The system provides a further treatment of non-linear _arithmetic_ constraints over the reals as opposed to delaying them unconditionally. It concentrates on quadratic constraints, rewriting them so that they can actually be decided upon or generating a conservative approximation of them (while still delaying them), potentially improving control over the computation. In both cases the idea is to fall back on linear constraints, more easily handled. QUAD-CLP(R)'s incomplete solver for non-linear constraints caters for problems of respectable size which require a certain amount of reasoning on these constraints but cannot afford the prohibitive cost of a complete treatment. Contact Gilles Pesant <pesant@IRO.UMontreal.CA> ftp://ftp.iro.umontreal.ca/pub/incognito/Logiciels/QUAD_CLP_R/ The file "qclpr_tar.Z" contains the whole package: executable file (for Sparc/SunOS and Sparc/Solaris platforms), some rudimentary pages information and a directory containing examples. Reference: [1] G. Pesant, M. Boyer. QUAD-CLP(R): Adding the Power of Quadratic Constraints. Principles and Practice of Constraint Programming: Proceedings of the Second International Workshop (Rosario, Orcas Island, Washington, USA) (Alan Borning, ed.), Lecture Notes in Computer Science, vol. 874, Springer-Verlag, Rosario, Orcas Island, Washington, USA, 1994, pp. 95--108. QUANTUM LEAP: [COST COMMERCIAL or CHEAP] [See last paragraph] The Quantum Leap Problem Solving Engine (PSE) works like a community of competing and cooperating experts - each one using a different methodology to obtain the best solution to a problem. Users employ the Problem Representation Facility (PRF), an object based, graphical interface, to build statements of their problems. Quantum Leap employs a coordinated team of optimization methods, including: Linear Programming, Quadratic Programming, Generalized Reduced Gradient, Conjugate Direction, Evolutionary Programming, Simulated Annealing, Zoomed Enumeration, Logical Reduction, Pseudo Boltzman, and Heuristic Search. It also offers an object-oriented, tabular, multidimensional representation, with inheritance and self-reference, both numeric and symbolic constructs, an English-like language, internal and external (C) user defined functions, and many built-in aggregates and numeric functions. It has a Client-Server Architecture, with the PSE implemented locally, on another LAN node, or remotely. A multi-PSE version finds faster solutions to many problems via parallel processing. Users can define multiple objectives, and priorities among goals. The system finds "Best Balanced" points for infeasible problems, and multiple solutions to some problems. APIs are available that allow a compiled model to be used as a stand-alone application. Quantum Development wants you to solve your problem, then grant the right to publish your approach! In return, you become a member of the LEAPER program, use Quantum Leap for only shipping and materials cost. Leapers will receive the LEAPER LETTER, a moderated news-list for exchange of technical information. To receive more information, send email to leapers@qdc.com. The body of the note should contain, as the first line: GET <offer>. Or contact Joseph Elad (President) jelad@qdc.com or Wenming Kuai wkuai@qdc.com. Phone USA (302) 798-0899, fax (302) 798-6813. RISC-CLP(REAL): NON-LINEAR [unavailable] RISC-CLP(Real) is a logic programming language with constraints over the real numbers and exact arithmetic. The core-solver of the language is the partial Quantifier Elimination Algorithm for real closed fields. This is an improvement of the original quantifier elimination algorithm due to Collins'. RISC-CLP also employs the Groebner Basis algorithm of Buchberger. The system was intended as a study of a CLP solver based on purely algebraic methods, generally too slow for such an application, and is not meant for distribution. The interpreter and the solver are implemented on top of the computer algebra system SACLIB in C language. Contact Hoon Hong <Hoon.Hong@risc.uni-linz.ac.at> (SACLIB and GROEBNER are available at ftp://ftp.risc.uni-linz.ac.at and http://www.risc.uni-linz.ac.at) References: [1] H. Hong. Non-linear real Constrains in Constraint Logic Programming. International Conference on Algebraic and Logic Programming, Springer Lecture Notes in Computer Science 632, 201-212. 1992. [2] H. Hong. RISC-CLP(Real): Constraint Logic Programming over Real Numbers. Constraint Logic Programming: Selected Research. Eds. F. Benhamou and A. Colmerauer. MIT Press. 1993. SCREAMER: [COST FREE] Screamer is an extension of Common Lisp that adds support for nondeterministic programming. Screamer consists of two levels. The basic nondeterministic level adds support for backtracking and undoable side effects. On top of this nondeterministic substrate, Screamer provides a comprehensive constraint programming language in which one can formulate and solve mixed systems of numeric and symbolic constraints. Together, these two levels augment Common Lisp with practically all of the functionality of both Prolog and constraint logic programming languages such as CHiP and CLP(R). Furthermore, Screamer is fully integrated with Common Lisp. Screamer programs can coexist and interoperate with other extensions to Common Lisp such as CLOS, CLIM and Iterate. In several ways Screamer is more efficient than other implementations of backtracking languages. The overhead to support backtracking is only paid for those portions of the program which use the backtracking primitives. Deterministic portions of user programs pass through the Screamer to Common Lisp transformation unchanged. If only small portions of your programs utilize the backtracking primitives, Screamer can produce more efficient code than compilers for languages in which backtracking is more pervasive. Screamer is fairly portable across most Common Lisp implementations. Screamer is available from ftp.ai.mit.edu:/pub/screamer.tar.Z. Contact Jeffrey Mark Siskind <qobi@ai.mit.edu> for further information. SCREAMER TOOL REPOSITORY [COST FREE] There is a tools repository (ftp site) for user-contributed Screamer code: ftp.cis.upenn.edu:/pub/screamer-tools. The repository is also accessible at http://www.cis.upenn.edu/~screamer-tools/home.html Questions about the repository to screamer-repository@cis.upenn.edu. SEL: [COST FREE] SEL is a declarative set processing language. Its main features are subset and equational program clauses, pattern matching over sets, support for efficient iteration and point-wise/incremental computation over sets, the ability to define transitive closures through circular constraints, meta-programming and simple higher-order programming, and a modest user-interface including tracing. The language seems well-suited to a number of problems in graph theory, program analysis, and discrete mathematics. The SEL compiler is written in Quintus Prolog and the run-time system is written in C. It generates WAM-like code, extended to deal with set-matching, memoization, and the novel control structure of the language. SEL is available by anonymous FTP from ftp.cs.buffalo.edu:/users/bharat/SEL2/. The FTP release comes with a user manual, bibliography of papers (including .dvi files), several sample programs, and source code. For further information, write to Bharat Jayaraman <bharat@cs.buffalo.edu>. SEPIA: [COST FREE with ECLIPSE] See ECLIPSE (also see 'ECRC SEPIA'). SICSTUS PROLOG: [COST A=CHEAP,E=??,C=COMMERCIAL] SICStus Prolog is a Unix prolog by SICS. It is portable to most UNIX machines (Berkeley UNIX is preferred over System V). SICS Aurora and Echo is a parallel emulator for Sequent Balance, Sequent Symmetry, Encore Multimax, and BBN Butterfly (Unix). For more information, write to SICS, Swedish Institute of Computer Science, P.O. Box 1263, S-164 28 KISTA, Sweden, call +46 8 752 15 02, fax +46 8 751 72 30, or send email to sicstus-request@sics.se or sicstus@sics.se. Bug reports and tech support questions should be sent to sicstus-bug@sics.se. To subscribe to the users group and implementors mailing list, send email to sicstus-users-request@sics.se. SKYBLUE: [COST FREE-PD] A constraint-solving algorithm. See information on the Seattle ftp site in section [1-5]. See paper by Freeman-Benson et al in section [1-6]. STEELE'S CONSTRAINT SYSTEM: [COST FREE] Chris Hanson's implementation of Steele's constraint system is available by ftp from martigny.ai.mit.edu:/archive/cph/constraint.tar or nexus.yorku.ca:/pub/scheme/new/constraint.tar.Z. A compressed version is also stored there. The software is source code for MIT Scheme. It should run in release 7.1.3. Most of the MIT Scheme dependencies could be eliminated, but it also uses the following procedures which aren't in standard Scheme: error, bkpt, macros, dynamic binding, and string output ports. The code corresponds pretty closely to Guy Steele's PhD thesis implementation, which you can obtain in printed form from the MIT AI Lab publications office as AI-TR-595 for $15.00 (email publications@ai.mit.edu for more information). For more information, send email to Chris Hanson <cph@martigny.ai.mit.edu>. THINGLABII [COST FREE-PD] ThingLabII is a constraint-based package. See information on the Seattle ftp site in section [1-5]. TOUPIE: [COST FREE] Toupie is a finite domain $\mu$-calculus interpreter designed by A. Rauzy <rauzy@labri.u-bordeaux.fr>. It uses Decision Diagrams to represent relations and formulas. Decision Diagrams are an extension of the BDD first introduced by Bryant. The original propositional $\mu$-calculus interpreter was designed to express properties of finite states machines. In addition to classical connectives of the propositional calculus, it provides the two quantifications and the possibility to define relations as least or greatest fixpoints of equations. Toupie is a $\mu(\cal FD)$ interpreter, i.e. an extension to finite domains handling numerical linear constraints. This language has been successfuly used for abstract interpretation of Prolog, analysis of mutual exclusion algorithms, classical logic puzzles and model-checking a recent presentation can be found in ESOP'94 "Symbolic Model Checking and Constraint Logic Programming: a Cross- Fertilization". [Information kindly supplied by Marc-Michel Corsini <Marc.Corsini@labri.u-bordeaux.fr>.] TRILOGY: [COST CHEAP] Trilogy is a constraint system developed by Complete Logic Systems. It costs $100. For more information, write to Complete Logic Systems, Inc, 741 Blueridge Avenue, V7R 2J5, North Vancouver BC, Canada, or call 604-986-3234. [Does the company still exist?] VS TRILOGY: [COST COMMERCIAL] VS Trilogy is a Prolog compiler available from Vertical Software for $395. For more information, write to Vertical Software Ltd., 14-636 Clyde Ave, W. Vancouver, BC, V7T 1E1, Canada, call 604-925-0321, or fax 604-688-8479. WAMCC: [COST FREE] WAMCC 2.2 is a WAM-based Prolog to C compiler. It conforms more or less to the Edinburgh standard, and includes most of the usual built-in predicates, a top-level, a Prolog debugger and a WAM debugger. It is designed to be easily extended (for example see clp(FD)). WAMCC's speed is halfway between SICStus emulated and SICStus native code on a Sparc (1.5 times faster and 1.5 times slower, respectively). It requires GCC 2.4.5 or higher and has been tested on Sparc workstations. It should be easily ported to 32-bit machines with GCC. WAMCC is available free by anonymous ftp from ftp.inria.fr:/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/wamcc/ For more information, write to Daniel Diaz <Daniel.Diaz@inria.fr>, INRIA Rocquencourt, FRANCE. ---------------------------------------------------------------- ;;; *EOF*