Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.rwth-aachen.de!newsserver.rrzn.uni-hannover.de!news.dkrz.de!news.uni-hamburg.de!news.uni-mainz.de!news.th-darmstadt.de!fu-berlin.de!news.apfel.de!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Fluid Analogies
Message-ID: <erkyrathE3CtsM.KHs@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Thu, 2 Jan 1997 00:09:58 GMT
Lines: 49
Sender: erkyrath@netcom20.netcom.com

A note of Very Little Context:

One of the books I found myself suddenly in possession of this season...

(Isn't Winterfair a great holiday? My grandmother told me to buy a nice 
sweater with the check she gave me. Ha indeed.)

...was _Fluid Concepts and Creative Analogies_, by Douglas Hofstadter et 
al. (Basic Books, ISBN 0-465-02475-0.) It's pretty much a collection of 
papers he's written, co-written, or gotten his grad students to write 
over the last 15 years. 

I mention it because most of the work revolves around a rather nifty 
programming architecture for performing tasks that involve many possible 
subtasks. It's rather along the lines of using Prolog to control an NPC: 
a high-level goal can be achieved through many possible approaches, each 
of which is a different subgoals, and the program plans the best approach 
using what it knows about the universe.

The nice thing about Hofstadter's "codelet" approach is that it's 
parallel, trivial to break up into small chunks of processing, and 
very efficient -- it avoids both too-wide processing (looking at a 
combinatorial explosion of possible actions) and too-deep processing 
(exploring long sequences of actions that don't get anywhere.) The price 
is that it is fallible -- it can miss good solutions, and it's 
non-deterministic, so different runs can get different results. 

This may or may not be what people want out of NPCs. I just want to 
mention it as a contrast to logical-deduction approaches of NPC control. 
I thought it was cool.

(For those of you that have read the book, I'm just talking about the 
simplest kind of coderack/codelet system, as in the Jumbo program, 
chapter 2.) (Later chapters get into systems that don't just plan tasks 
based on knowledge, but invent new knowledge -- theories or analogies -- 
to assist in their plans. I'm sure this is also applicable to IF, but I 
don't think we can understand how until we've spent a few years exploring 
the previous step!)

Those of you that think Hofstadter is a poser, forget it.

--Z



-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."
