A Review of Pseudo-Boolean Methods with Applications to Digital Filter Design