An Introduction to Computational Learning Theory by Michael J. Kearns & Umesh V. Vazirani