YACS version 0.1.1 ================== Copyright (C) 2005 by Wolfgang Runte (woru@users.sourceforge.net) YACS is licensed under the GNU LGPL (Lesser General Public License), see copyright notice below. What is YACS? ------------- YACS ("Yet Another Constraint Solver") is a Java library and an object-oriented framework for constraint solvers. It supports propagating and solving of constraint satisfaction problems with finite and infinite domains (discrete values and real intervals). Features: --------- YACS is a Java library for propagating and solving constraint satisfaction problems (CSPs). The name "YACS" is an abbreviation for "Yet Another Constraint Solver". In artificial intelligence a CSP is the formal description of a constraint problem. YACS is an object-oriented framework for so called constraint solvers. A constraint solver contains algorithms for propagating and solving CSPs. The YACS framework includes already a small library of constraint solving algorithms for establishing consistency and the searching for solutions in CSPs. The choice which constraint solvers has to be adopted to deal with a specific CSP is done in YACS within a strategy based approach: Every CSP is associated with a 3-phase constraint solving strategy. The three phases of a constraint solving strategy are "preprocessing", "consistency" and "search". During every phase multiple constraint solvers may be called to process the CSP. YACS is a hybrid constraint solving system. It includes the environment and constraint solvers for classical finite domain CSPs with discrete values, as well as for real interval CSPs with infinite domains. YACS comes with a text interface allowing the convenient specification of constraint problems. Files: ------ This archive contains the following content: dist/ contains a JAR with the Java bytecode of YACS doc/ Javadoc API documentation lib/ required libraries licenses/ licenses of YACS and other components src/ source code of YACS CHANGELOG.TXT version history of YACS makeJavadoc.bat generates the Javadoc documentation (Windows) makeJavadoc.sh same as the above for Linux README.TXT this readme file run.bat starts the test program "YacsTester" (Windows) run.sh same as the above for Linux TODO.TXT TODO list of YACS yacs_strategies.dtd XML DTD for constraint solving strategies yacs_strategies.xml some sample strategies YacsTester.class test/demonstration program Note: The API documentation and the comments in the source code are still in german language only! Running the Test Program: ------------------------- Running the test program "YacsTester" on Windows is done by simple double clicking on the icon of "run.bat" or by executing it in a DOS box. On Linux OSes maybe before starting the executable flag of "run.sh" has to be set, e.g. in a console: > chmod a+x run.sh The properly starting is done by executing "run.sh": > ./run.sh Requirements: ------------- - Java 2 Platform, Standard Edition, version 1.4.2 (J2SE 1.4.2) - YACS was developed and tested on Windows NT/2000 and Linux but should also run on any other OS supported by the Java platform. Project Homepage: ----------------- URL: http://sourceforge.net/projects/constraints Credits: -------- The YACS framework uses the following extern open source components developed by the respectively named authors: - JLex: A Lexical Analyzer Generator for Java Authors: Elliot Joel Berk and C. Scott Ananian URL: http://www.cs.princeton.edu/~appel/modern/java/JLex/ - CUP Parser Generator for Java Authors: Scott Hudson, Frank Flannery and C. Scott Ananian URL: http://www.cs.princeton.edu/~appel/modern/java/CUP/ - IAMath: a 100% Java, verifiable implementation of interval arithmetic operations Author: Timothy J. Hickey URL: http://interval.sourceforge.net/interval/index.html - Log4J: a fast and flexible framework for logging application debugging messages Authors: Ceki Gulcu and various other authors from the Log4J project URL: http://logging.apache.org/log4j/ Copyright Notice: ----------------- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA