SuperMemo is the only application I know of that tries to improve ones memory. The problem is that it is not free, and only works in Windows.

The idea is to write an application similar to supermemo called donofo (= do not forget), but written in a platform independent language (Ruby or XUL), and with mathematical based optimizer. Although the SuperMemo developer has done a lot of research, he seems to have not much of programming experience. The optimizer should be based on mathematical sound methods (bayesian networks?), I am pretty sure this can be done without stuff like neural networks or lots of parameters gathered through trial and error.