July 15, 2013

Algorithms & heuristics

I collect algorithms as I make my journey through a career as a Computational Cognitive Neuroscientist /Computer Programmer/Quantitive Analyst/Data Scientist. An algorithm is a rigorous method to solve a problem. The best ones are simple and elegant. My all-time favorite is the linear algebra behind the General Linear Model (GLM), which includes ANOVA and regression. A recent project was helped with modular arithmetic. It was a computational hot knife through programming butter.

I also collect heuristics, less rigorous methods to solve problems. The best ones are simple and elegant. My all time favorite heuristic is “past, present, and future.”“ Describe the past. Capture the present as it is (to the best of your ability). Envision a future. Thanks to Charlie Munger’s tome I started to use ”Always Invert." If you only have access to the properties that don’t work, you can invert them to find the properties that do work. For example if a project failed because of scope creep, try to limit the next project to the smallest meaningful, shippable unit.

Algorithms and heuristics are “force multipliers.” They can solve problems more quickly with less effort. They are tricks, ways to make the complex simpler. They free limited cognitive resources so the same problem doesn’t have to be solved twice.

Algorithms are powerful, but narrow and brittle. Heuristics are weaker, but wider and more robust. The art is knowing whether the problem should be solved with a algorithm or heuristic (or even an unique solution).

No comments:

Post a Comment