Ai Algorithms, Data Structures, And Idioms In Prolog, Lisp, And Java by George F. Luger & William A. Stubblefield