Supplemental reading: AIMA 17.2.1-17.2.2, 22.0-22.3.