Logic-Based Methods For Optimization by John Hooker