This book by
Douglas Hofstadter goes into more detail about his
research into
Artificial Intelligence than his other books. It
describes some of the programming projects he has worked on with his
students.
One project described is Copycat, a program to solve analogy
problems like "If abc goes to abd, what does xyz
go to?" It works by looking for correspondences between the sequences
of letters. The transformation of abc to abd could be
interpreted as replacing the last letter by its successor or as
replacing it by d. Replacing the last letter by its successor
is more elegant and is given a higher "structure-value" by the
program, but since there is no successor of z, 90% of the time
Copycat will answer xyd. (It can't think of the alphabet as
circular and come up with xya.). 10% of the time, however,
it hits on the idea of mapping z onto a, y onto
b and x onto c. In this structure, successor
relationships are mapped onto predecessors and the first letter into
the sequence onto the last, leading to the answer wyz. Since
so many high-level correspondences are involved in this answer, it
has a much better structure-value, so Copycat is practically certain
to stop running once it finds this answer.
Other projects discussed are Seek-Whence, a program to understand
the patterns behind number sequences and hence continue them, and
Tabletop, which is based on the idea that if we are sitting across a
table from each other, and I touch my cup and say "Do this!", you
will probably touch your own cup rather than mine. With different
arrangements of cutlery, however, the best response to "Do this!" is
less obvious.