Usenet.com

www.Usenet.com

Group Index

Rec Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Re: An AI question and a UI question



"Fu, Ren-Li" <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>...
> > Step 0 :
> > Buy the book Blondie24, it gives insight to neural networks and deals
> > with neural networks analying a grid of checkers, which ( with some
> > fantasy ) can be used for analyzing a dungeon floor.
> >
> > > Thanks in advance.
> 
> Always remember, a bee's brain contains about 100 neurons, and enough for
> it's complex behaviour.

???

Where do you get that figure?  A quick google suggests that 800,000 is
the current estimate of the number of neurons that control a bees
nervous system.  (Counting just the "brain" is somewhat meaningless in
insects that have highly distributed systems)

> Plus, bees make great monsters :)

I liked the ADOM touch of the bees that die after stinging you.

To return to the question of neural networks, I'm rather skeptical as
to their applicability to Roguelike AI.

For neural networks to work, you have to be able to provide feedback. 
To do this, you need to simulate the mobs environment.  Questions like
"How much do I weigh blindness?" is irrelevant - that is the job of
the neural network to determine.  Whether you are currently blind is
certainly state information that should be fed to the network.  The
"success" of the neural network must be defined.  One definition may
be: "The number of XP the mob earns before dying."  (This prevents
suicidal or pacifistic solutions).

One thought may be to have the neural network takes as inputs the
current state information of the mob (number hit points, % hit points,
is blind, contents of each square in XxY neighbourhood, inventory) and
outputs a weighting for each possible action.  This is problematic,
however.  To train the network, given a particular response (In this
case do Y) one would have to determine if action Y was actually
desireable.  As there is no local way to do that, one would have to
record all the input/output states through one life, determine the
success of the life, and thus determine each result was good or bad
accordingly.  For example, if one run resulted in 0 XP, all of the
input/output pairs of that run should be inhibitted.  If a run
resulted in ascension by the mob, all input/output pairs should be
encouraged.

This would be a very time consuming and memory hungry process.  But
computation power and memory are cheap.

The next problem, however, is the chicken and egg.  In order to
evaluate the neural net, we need to to have it in a realistic
environment.  If the other mobs in the environment sit passively by,
we won't end up with a very useful training set.  This, you will note,
implies that we have already written a good AI!  The other option may
be to use the neural net to train itself, which I'd be afraid of
converging on locally sane, but to the end player insane, behaviour. 
The final possibility is to train it against a human.  This can be
done in two ways:

1) When the human plays, record success of each mob and adjust the
nets accordingly.  (I suspect you'll get mobs that run from the avatar
pretty quickly  :>)

2) Decree that the human always plays right - record games and use the
human's behaviour to train the network (The optimal output of the
network given a set of inputs is the humans output).  You'll get mobs
that always climb stairs :>

So what is my answer?  This is a fun technical exercise, and, if your
interest is AI more than roguelikes, is a worthwhile project.  If your
goal is good AI, however, I'd strongly discourage it.  The best
approach, IMO, is to write a Borg.  Write an AI that does what YOU
would do in each situation.  From there, you can disable pieces
according to monster intelligence.

For a playable game, AI is highly overrated.  The pizazz it adds (The
slug zaps the wand of digging!) is best achieved through special case
code.  The neural network which leads the slug to zapping the wand of
digging is long and tortuous  compared to the code.  On the other
hand, the slug is probably more likely to zap it in the right
direction. :>

More esoteric phenomonen are entirely unnoticed by the player.  When
the AI in POWDER was:
If see someone who last hit me
   Move toward them
else
   Move randomly
it was a fun game.

- Jeff Lait
(POWDER: http://www.zincland.com/powder)



<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.