KHE diary for 2012
------------------

17 January 2012

  Revised the specification of when two Id's clash, and made
  the one change required by the revision (ensuring that two
  resources must have distinct Id's, even if their resource
  types differ).

3 July 2012

  Have just completed quite a lot of work directed towards making
  KHE faster and less memory-hungry when evaluating solutions.  It
  can now read archives incrementally, replacing solutions by
  placeholders which contain the cost but nothing else.  Matchings
  and evenness monitoring are optional.

20 Sep 2012

  Promised Gerhard I would see if I could make suggestions about
  which instances from ITC2011 would be best for XHSTT-2013.  So
  I'm currently working on making KHE solves the ITC2011 instances.
  I've fixed one bug, and now I'm writing a solver to find solutions
  to multiple instances in parallel.  Seems to be working.

21 Sep 2012

  Today's problem is that the HSEval planning timetables function
  is producing an incomplete result.  I'm guessing that that's
  because it is running out of memory, so I've rewritten it to
  write its timetables incrementally.  This included changing
  KheArchiveReadIncremental so that it calls back at the
  beginning and end of the archive, and at the beginning and
  end of each solution group, as well as after each solution.
  All written and compiling, but the first test didn't go
  very well:  it took an inordinately long time to put up
  the first solution's planning timetables, and then the
  run ended without any others being printed at all.
  Fixed one bug in timetable.c, but the run is still very
  slow, not sure why.  When I do it non-webly, i.e.

     ./run > op

  it comes back quite quickly with an apparently complete
  HTML output file.

25 Nov 2012.

  Begun work on adding the new OrderEventsConstraint to KHE
  and HSEval.  I did the HSEval documentation a few days ago,
  and the KHE documentation today.  Also began work on the
  implementation; I've more or less finished the boilerplate
  (khe_order_events_constraint.c and khe_order_events_monitor.c
  files, new entries in khe.h, etc.).

29 Nov 2012

  Finished khe_order_events_constraint.c with a clean compile,
  and also khe_order_events_monitor.c except none of the logic
  is done yet.  Still, that logic is all that is left to do.
  At present I have followed the structure of link events
  constraints, but that seems to be wrong, the logic needs
  to follow a different pattern, more like two spread events
  monitors, keeping track of the max time of first_event and
  the min time of second_event.  Also check attachment.

30 Nov 2012

  Got side-tracked into pushing constraint density down from
  HSEval to KHE, which I've finished now, except have to do
  density count and total of order events constraint.  Should
  probably audit all the density calculations.  Then return
  to jobs of 29 Nov.

9 Dec 2012

  Back at work today after a week off.  Have documented constraint
  density and audited it, including the order events constraint.
  Have implemented order events constraints except for the helper
  function for AttachCheck (KheOrderEventsMonitorMustHaveZeroCost),
  but the evaluation logic needs a check.

10 Dec 2012

  Finished implementing order events constraints today, now I
  need to test the code I've written, but it should be OK.
  Also added INHERIT_CONSTRAINT and INHERIT_MONITOR macros.

11 Dec 2012

  Lightly tested and seems to work, publishing it now.

