How to think about algorithms - Edmonds, Jeff (Cambridge University Press, 2008)