[MUD-Dev] SfD: AI and muds; several approaches
Nathan F Yospe
yospe at hawaii.edu
Tue Apr 21 12:10:51 CEST 1998
I'm going to make this my first post to the new mud-dev. I hope it gets the
list off to a good start, though I suspect J C will submit something first.
Artifical Intelligence is a broad topic. It spans several diverse subjects,
from the simple case switch response of an early arcade game (and the types
most often found in mud NPCs) to the tight complexity of a protosapient AI.
Of course, at this point in time, the latter is more a pipe dream than some
achievable reality, but the former, while used extensively, is not all that
interesting. The stuff between the extremes, on the other hand, is of great
interest, at least to myself. Please discuss the topics that follow...
Approaches to AI:
There are several popular approaches to artificial intelligence. Some of
them are designed top down - they take the desired mind and try to build it
out of logic... others are bottom up - they try to simulate some portion of
the human mind at an atomic level. There are dozens of approaches that I am
familiar with, but of them, the ones that seem most applicable to muds are,
in order, (Artificial) Neural Nets, Fuzzy Logic, MAPs, Genetic (or Organic)
Algorithms, and Correlation Algorithms. I'll avoid discussing things that I
can't see in muds, like competitive drive analysis (robotics)... I will say
a few things on NLP, which is quite significant to muds, but really needs a
discussion of its own.
Several AI FAQs are at <http://www.cs.cmu.edu/Groups/AI/html/faqs/top.html>
Neural Nets:
The neural net is an effort to duplicate the human learning process in a
computer. It is impossibly large and slow at large numbers of items, but is
characterized by a nice feature: trainability. Neural nets can be "trained"
to a function, then deactivated, at which point they become a transform and
are no longer as slow. They are no longer capable of adapting to changes in
their environment, but in some cases this is advantagious. Neural nets have
a few consistant features: an input layer, an output layer, and generally a
hidden layer in between. The input layer and output layers are the treated,
visable component of the neural net. The hidden layer is where the training
is handled in a three tier neural net; there are other forms, but in my own
experience, three tiered hidden layers are the smoothest and most flexible.
I've found several ways to apply neural nets to muds. My skill nets/webs
are obvious; they are a pretrained neural net with variable inputs. There's
a requirement for periodic retraining, but it can be trained in a different
process. I have a partial neural net on the client's language order parser.
I call it a partial neural net because it has been given a subdivided layer
in place of the normal hidden layer, for fast retraining and a sort of time
and frequency weighted caching. I haven't completed client design, so there
is little I can say on this concept, save that it is untested. There are at
least three other applications that I have thought of for neural nets. With
respect to NPC AI: training neural nets (offline) to the behavior of admins
controlling those NPCs; this should be combined with a language parser. For
the control of ecosystems and economies: a neural net can be trained toward
a steady state. As a feedback (meaning the unseen sources) it can help as a
foil to destabilizing actions of players. For reactive NPCs in a Hack&Slash
style mud: A neural net can train NPC attributes to a "balanced" state. The
Hack&Slash definition of "balanced" is based on time to level for a player.
There is extensive literature on the web for neural nets. The newsgroup,
comp.ai.neural-nets, has FAQs at: <ftp://ftp.sas.com/pub/neural/FAQ.html>
Fuzzy Logic:
Fuzzy logic is a method for rule analysis and adherence, based on trends
and tendancies in a manner not unlike probabilistic analysis. It manages to
beat human intuition for the same purposes in optimized conditions. It can,
in fact, outguess large numbers of people. Fuzzy logic allows solutions for
nondiscreet systems, which means it can be used to handle a switch that has
intermediate states.
Someday, I would like to use the principals of fuzzy logic (often, fuzzy
systems engineering) to model environments. Certain state climates could be
defined, fuzzy logic tools could be used to handle intermediate states. The
survival of a species, the progression of decay and erosion, fit well in an
intermediate state analysis. Currently, I use simplified fuzzy logic as one
factor in modeling unresolved nodes. It isn't really fuzzy logic, but has a
lot of FL principals in its design. Aside from that, fuzzy logic can make a
simplified ray trace seem realistic in visability calculations (I'm working
on this one right now), and has several potential applications in predicted
collisions (a recent topic on this list). I'm far from expert, however, and
cannot offer predictions of efficiency.
Web literature for fuzzy logic is relatively limited, but in volume such
that a reader can be swamped. The Fuzzy Logic newsgroup, comp.ai.fuzzy, has
FAQs at: <ftp.cs.cmu.edu:/user/ai/pubs/faqs/fuzzy/>
MAPs:
Marginal Association Patterns are rather new, and I haven't seen much on
them outside of a few books. Nevertheless, they are significant. They are a
basis for software based intuition. A MAP traces information by associative
groupings, and contiguous information can generate associations not related
in any obvious manner to the original data. Strangely, this seems to be the
manner that the process we call "intuition" functions in. There is not much
that can be done, yet, with this approach, as the requisite database for an
approximated mind is tremendous, but it is quite possibly the key to the AI
of sci-fi: self aware.
So how can something this out there be useful for muds? Only in one way,
so far, but it's a biggie: NPC conversation engines. I've no intention of a
detailed explanation here, but if anyone queries this paragraph, I'll write
one.
There are no web resources for MAPs, to my knowledge. If anyone knows of
one, please let me know.
Genetic Algorithms:
The Genetic Algorithm is similar in one sense to the Neural Net: It is a
trainable computation. This one is not trained for accuracy, but for speed,
minimized resources, or other optimization issues. A genetic algorithm used
to feed a neural net can often produce suprisingly accurate renditions of a
complex organic (as in carbon based) system. Genetic algorithms can also be
used to generate algorithms. I've never had any luck with this, but there's
a rumor that certain experts exist that can milk mathematical algorithms to
any specification from a genetic algorithm. GAs have their roots in genetic
modeling... as in chromosomal DNA. They have, however, proven quite useable
in other situations.
In a mud, GAs might be able to handle character generation issues. I can
attest to their usefulness in similar conditions. I have used them for time
management of class schedules, work schedules, and exercise schedules. They
can take all inputs and produce the optimal schedule... after several hours
of computation. Maybe a little much for a mud?
The comp.ai.genetic FAQ is at: <http://www.cis.ohio-state.edu/hypertext/
faq/usenet/ai-faq/genetic/top.html>
Correlation Algorithms:
This is something almost of my own design. At this point, you won't find
anything about it, anywhere, save here. It is a synthesis of several fields
of interest to me. Much of it comes from Stochiastic Process algorithms, an
aspect of probability. Some of it comes from models of quantum mechanics. A
bit of it comes from superpositional transforms, with multivariable systems
applications. Actually, most of the hard math comes from the latter, which,
as should be obvious, has little to do with AIs. So where's the AI? I can't
compute this stuff, not in detail, with the hardware available to me. There
has to be a way to guess, accurately, what should be analyzed in depth, and
what is rendered insignificant. Hence the correlation algorithm. Trained in
a manner similar to a neural net, it is a mapping between several transform
matrices, to be applied to the superpositional transform algorithms. Within
this system, most variables have a time dependant significance. There is no
need to compute a local variance that is insignificant with respect to some
steady variance; this is similar to the situation of high precision and low
accuracy. It doesn't mean much. The systems are inevitably going to be more
chaotic than ordered, and a small random variance can be used in place of a
long series of precise variances. More importantly, a lot of variables have
been removed from the transform.
How this is used in a mud is obvious: this is the basis of my lazy model
simulations. I hope you will bear with me not posting the algorithms. While
they may not be worth much now, I intend to patent them if I ever manage to
iron out the rough edges. The general description should be enough to get a
few neurons popping in some of your heads.
Natural Language Parsing:
This is a favorite of the list, and deserves a thread of its own. I think
we might have some new thoughts on the matter by now? If no one else writes
on the topic in the next week or so, I'm going to post something. There are
several new applications that I have thought of, not the least of which is,
in essence, an output text generator that handles text and grammar using as
its brain a MAP...
--
Nathan F. Yospe - Aimed High, Crashed Hard, In the Hanger, Back Flying Soon
Jr Software Engineer, Textron Systems Division (On loan to Rocketdyne Tech)
(Temporarily on Hold) Student, University of Hawaii at Manoa, Physics Dept.
yospe#hawaii.edu nyospe#premier.mhpcc.af.mil http://www2.hawaii.edu/~yospe/
--
MUD-Dev: Advancing an unrealised future.
More information about the mud-dev-archive
mailing list