To-do list, ideas, and notes:

- Investigate other prediction and search algorithms to improve learning performance:

  - The Context Tree Switching algorithm seen here:

    http://arxiv.org/abs/1111.3182

    which has a C++ implementation here:

    http://jveness.info/software/cts-v1.zip

    is meant to be better performing than CTW.

    - Implement this in Python for comparison's sake.


  - This is a good reference for tree search algorithms in general:

    http://www.doc.ic.ac.uk/~sgc/papers/browne_ieee12.pdf

    perhaps some of the other algorithms here would make good candidates for implementation?


  - Look at extending context tree algorithms to accept non-binary alphabets as a way of trying to
    improve learning performance.

    - According to 'Begleiter; El-Yaniv; Yona (2004),
                    On Prediction Using Variable Order Markov Models 22,
                    Journal of Artificial Intelligence Research:
                    Journal of Artificial Intelligence Research, pp. 385-421'

      (PDF here: http://www.jair.org/media/1491/live-1491-2335-jair.pdf)

      this does not perform well.


  - Would a high-compression-factor compression algorithm, like decomp8, PAQ, PPMC, or PPMD

    (e.g. http://prize.hutter1.net/ http://en.wikipedia.org/wiki/PAQ)

    prove to be a better predictor?

    - Try implementing whichever of these looks to be easiest adapted to the existing code base.