
                   Random Binary Csp Generator - CHANGELOG
                             J.I. van Hemert

Version 1.8.0
- Added: Model RB, an improvement over Model B by Xu and Li that overcomes the problem of flawed variables in Model B. For this model the prediction of the number of solutions is extremely accurate <HIGHLY EXPERIMENTAL>
- Changed: Default output format from List to Matrix.
- Fixed: all source now works under GCC-3.3.2 according to the new include file conventions.

Version 1.7.0
- Added: Model F, an improvement over Model E by MacIntyre et al. See the readme for the citation.

Version 1.6.1
- Fixed bug: incorrect display of number of conflicts after using RemoveConflict(). Especially noticeable after loading a file in listformat.
- Changes: small corrections and additions to the readme.

Version 1.6
- Added new file format to store CSPs. Result is two save functions to save in either list or matrix format. Load procedure determines format automatically and does not need changing.
- Old files cannot be read in using this library except when adding the following two lines to the top of the file:
CSP generated with RandomCsp 1.5.0
matrixformat
- Bug fix in counting conflict checks

Version 1.5
- Added new application to analyze csp instances.
- Updated documentation to comply with new features, filled in some missing information.
- Added ability to generate bincsps with a new model, called G. It creates deceptive instances that are always solvable, but will be very difficult to solve by evolutionary algorithms.

Version 1.4
- Changed names of prosser and dozier classes to corresponding model A and B names.
- Changed names of default filenames to include model and less rubbish characters (- and =).
- Brushed up documentation.

Version 1.3
- Added a member function to CspC that makes it possible to ask if the instance has at least on solution.

Version 1.2
- Changed the inheritance structure because the new model (model E) uses only three parameters. See the documentation (generated with Doc++) for the whole inheritance tree.

Version 1.1
- Fixed a bug that caused the library to output problems harder then expected, i.e. more conflicts were produced then expected.
- Added the documentation. The 'doc' directory contains a Makefile that produces the postscript files. For documentation of the implementation the program Doc++ is used.
- Added an option to the randomcsp program to output a serie of generated problem files. The option is called '-p'.

Version 1.0
- Fixed a nasty bug that caused the program to output less constraints then expected.

Version 0.6.1

- Fixed a bug that caused garbage output in the error-message, when a invalid number of variables was given on the command line.
- Changed Makefiles, they all use common makefiles now.
- Removed version.h, is now in Makefile.

Version 0.6

- Changed the CspC class, such that it now correctly does everythin symmetric. Things could go wrong if things like AddConstraint(v1, v2) and IsConstrain(v2, v1) were used.

Version 0.5

- Added the function CspC::GetNumberOfConflicts (int []), return the number of violated conflicts given a solution.
- Added the function CspC::IsValid (int []), checks if a solution to the csp problem violates conflicts.
- Added the function CspC::LoadFromFile (char *), loads a previously saved CSP problem from a file.
- Changed some basic 'int' types to 'unsigned int' in csp.h, for better error finding.
- Changed directory structure of the package, there are threee subdirectories now: 'lib', contains the RandomCsp library; 'randomcsp', contains the RandomCsp program; 'checkcsp' contains the program to check solutions on CSPs.
- Fixed the CspC::IsConstraint and CspC::IsConflict functions, they now handle v_i and v_j correctly when i > j, previously they would default to no constraint resp. no conflict.

Version 0.4

- Fixed problem with the incorrect filename when using -c.
- Changed Makefile, installation can now be done with 'make all'.
- Added the function CspC::GetNumberOfVariables.
- Added the function CspC::RemoveConstraint.
- Added the function CspC::RemoveConflict.
- Added the function CspC::IsDirty.
- Added the function CspC::Reset.
- Added the pure virtual function CspC::ProduceFilename.
- Added the function RandomCsp::ProduceFilename.
- Remove the iSeed1 and iSeed2 arguments from the constructor of RandomCspC.
- Added the function RandomCspC::InitRandomGenerator.
- Changed the random generator so it is static, if you initialise it with InitRandomGenerator, it stays so between the creation and destruction of RandomCspC objects.
- Tested with Egcs (1.0.1) works fine, but it needed some alternations to the Makefile.

Version 0.3

- Changed generated output filenames, see README for details.
- Changed program arguments to switch arguments.

Version 0.2

- Fixed a bug in number of constrains to create (variable 'c') in RandomCsp::ProduceProblem.
- Added a copyconstructor for CspC.
- Added the overloaded operator = to CspC.
- Added some consts on the right places.
- Added a pointerstructure to remove some extra variables.
- Added owner string to ErrorC.

Version 0.1

- First release.

$Id: CHANGELOG,v 1.11 2004/02/16 16:06:51 jvhemert Exp $
