Notes on how matching works in this code 19-06-2007
---------------------------------------------------

UCS.java contains the match and correct set calculations.
These sets are stored as ArrayLists.
The methods used are only size() and add().

matchSet is also passed to systemPredictor.predict().
The SystemPredictor class uses only the iterator() method.

To precompute match sets
------------------------

- extend Population.java so that insertion and deletion of rules
precompute match sets
  - we need to override ArrayList's add() and remove() to do this
    and then call the superclass versions
  - extending class is called PopulationPrecomputedMatchSet
  - note that ArrayList's iterator() is also used.

- extend UCS.java and override getMatchAndCorrectSets() so that it
accesses the pre-computed matchsets instead of generating new ones


problem: UCS.java constructs a Population object outside any method rather
than using the UCSconfig object system
  - need to add it to this system and have Gav make this official.
