
Generative Creativity - lecture 16:
Copycat
Introduction
Melanie Mitchell and Douglas Hofstadter are developers of the Copycat
system.
This solves solves problems such as
- if `abc' is changed to `abd', how should `ijk' be changed
in the same way?.
by finding analogies between letter sequences.
At least three good answers
For the analogy problem abc -> abd, ijk -> ?, common answers are
- ijl - replace the rightmost letter by its successor,
- ijd - replace the rightmost letter by d,
- and ijk, replace c with d.
Copycat tends to produce all three types of solution reinforcing
Hofstadter's claim that it models creative analogy in humans.
Overview of Copycat
Hofstadter's approach relies on the use of a database of built-in
rules rather than examples. (Hofstadter calls them `codelets').
In order to discover an answer to an analogy problem such as abc
: abd; iijjkk : ?, codelets work to build up a mapping between
the initial string abc and the target string iijjkk, and also
between the initial string abc and the modified string abd.
Codelets can also build hierarchical groups within strings.
For example, in the string iijjkk, codelets might build the
groups ii, jj, and kk, and then a higher-level 'successorship'
group comprised of these three groups encompassing the entire
string.
Bridges
A mapping for Copycat consists of a set of bridges between
corresponding letters or groups that play respectively similar
roles in different strings.
For example, a bridge might be built between a in abc and the
group ii in iijjkk, supported by the concept-mappings leftmost
=> leftmost and letter => group.
Once a mapping has been built between the initial string and the
modified string (i.e., between abc and abd), a rule based on
this mapping must be created that captures the way in which the
initial string changes.
Copycat in action
See applet version at http://www.itee.uq.edu.au/~scottb/_Copycat/
Local version at crs/gc/copycat/index.html
http://www.christhornton.eu/crs/gc/copycat/index.html
Try abc -> zyx as ace goes to ?
The abc->abd problem should load up automatically. Use the Step
button to step through the sequence. The stop button returns to
the start.
Copycat screenshot (if applet fails)
Another way of viewing the analogy
Summary
Exercises
- Find one or more solutions for each of the following analogy
problems. For each solution, say how the analogy works, i.e.,
give a description of its structure and show what the
significant mappings are.
abc -> bbbcccddd, bca -> ?
abc -> abd, iijjkk -> ?
abc -> abd, kji -> ?
abc -> abd, jffwww -> ?
abced -> abcde, ppqqrrss -> ?
abcdfeg -> abcdefg, onmlkij -> ?
abc -> axc, nnn -> ?
aqc -> abc, pqc -> ?
abcc -> abcd, xyzz -> ?
pgzlrb -> pgzmrb, sizcq -> ?
pgzlrb -> pgzmrb, sicjz -> ?
pqr -> rqp, a -> ?
a -> pqr, z -> ?
a -> z, pqr -> ?
eqe -> qeq, abbbc -> ?
- Similar to the sequence-analogy problem is the Bongard
problem, e.g.,
Solving a Bongard problem involves finding a rule which fits all six
images on the left page, but none of the images on the right page. Go to
http://www.cs.indiana.edu/~hfoundal/res/bps/bpidx.htm and work through
at least 10 such problems. Then write a list of the similarities and
differences between Bongard problems and sequence-analogy problems.
Resources
Page created on: Wed Mar 3 11:01:35 GMT 2010
Feedback to Chris Thornton