Mark Watson's "Practical Artificial Intelligence Programming with Java"
Read Chapter 2 on the search problem. One way to solve a problem is by searching for a solution in a set, called the search space. This approach assumes that a search can be done in an acceptable amount of time at an acceptable cost.
Click https://s3.amazonaws.com/saylordotorg-resources/wwwresources/site/wp-content/uploads/2011/11/CS405-1.1-WATSON.pdf link to open resource.