Logic-Based Methods for Optimization by John Hooker