###############################################################################
#                                                                             #
# PEBBL Release 1.2 Changelog                                                 #
#                                                                             #
###############################################################################

-------------------------------------------------------------------------------
PEBBL 1.2 (2007/09/30)
-------------------------------------------------------------------------------

- Got rid of the pesky "incHeuristicExists" flag, and just call the
  virtual function haveIncumbentHeuristic().  This gets rid of some
  annoying initialization sequencing problems.

- Added Boolean haltOnIncumbent parameter to PEBBL, which does what
  it indicates when set to "true". Facilitates some experimential
  analyses, and is in-line with what ILOG and DASH provide. Intend
  to generalize to "haltOnNIncumbents".

- Added some more forms of the "relGap" function (to be used, for
  example, in PICO heuristics).

- Recategorized some parameters, and merged the "Incumbent Management"
  category into the "Incumbent" category.

- Made the new relGap() function work properly during ramp-up.

- Removed a possible inaccuracy in ramp-up status printouts (in which a
  loaded current subproblem might not be counted).

- Added a parameter noIncumbentMinBias that sets an alternate minimum
  bias for the incumbent search thread to be used when no incumbent has
  been found yet.

- Added "./" to each executable tag so that tests will run in
  environments without "." in the path.

- Reworked initialization of the PEBBL parallel layer.  Moved as much code
  as possible from the constructor and the searchFramework method to the
  reset() method.  To support this, added a reset() method and supporting
  code to the Scheduler class.

- Reorganized initializations in serial layer so as much stuff as
  possible happens in branching::reset(), and there is at least a prayer
  that reset() could put an already-run problem back in a state to be
  run again.  This required a little restructuring of how the pointer to
  the subproblem handler is managed.

- Changed "updateIncumbent" to "foundSolution" everywhere.

- Created rudimentary solution class for PEBBL.  Does not contain hash
  values etc. yet.  Converted PEBBL example applications to use this class.

- Partial fix to enable the --randomSeed option to be processed correctly.
  As it stood, the "randomSeed" member of the pebblParams class was being
  set, but not used anywhere. I changed this to correctly reference the
  randomSeed member in pebbl/gRandom. The next commit will complete the
  fix.

-------------------------------------------------------------------------------
PEBBL 1.1
-------------------------------------------------------------------------------

- Resolved memory issues in BestIncumbentRepository by using a SimpleSplayTree
  rather than a GenericSplayTree.

- Rework of BestIncumbentRepository to avoid memory errors.

- Added valgrind tests.

- Changes in pseudorandom behavior to depend on a single random number
  generator.

- Renamed QSS example to QSA.  Revised this example to standardize the output.

- Rework of tests to be compatible with new EXACT test driver. Fixes to 
  make testing more robust.


-------------------------------------------------------------------------------
PEBBL 1.0
-------------------------------------------------------------------------------

- Initial release.
