Lab 9: Does Niching Help?
=========================

Time to get creative and fix a problem with PSO and DE.

Both are interesting algorithms but, as we've coded
them, they tend to be single objective
optimizers. So we'll fix that using a general trick.

Any single objective optimizer can be made multi-obj
by:

+ Clustering on decision space, 
+ Then running our single-obj optimizers on each
  cluster.

So that's lab9. When you build new generations,
every so often (e.g.  once every era), pause to
cluster the instances on decision space. 

For this work, you can use my
[niching algorithm](http://menzies.us/cs472/?niching)
which is available on-line in
[where.py](http://unbox.org/open/trunk/472/14/spring/src/where.py).

### What to hand-in

All source code.  Era diagrams, piped through _cat
-n_ (so you get line numbers).

One page of ascii text that makes an argument
for/against the value of PSO,DE with,without
niching.

