<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] SfD: AI and muds; several approaches --> <!--X-From-R13: @nguna T Kbfcr <lbfcrNunjnvv.rqh> --> <!--X-Date: Tue, 21 Apr 1998 15:12:12 -0700 --> <!--X-Message-Id: Pine.GSO.3.95q.980401145947.24017A-100000@uhunix1 --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] SfD: AI and muds; several approaches</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:yospe#hawaii,edu"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00325.html">Previous</a> | <a href="msg00489.html">Next</a> ] Thread: [ <a href="msg00715.html">Previous</a> | <a href="msg00325.html">Next</a> ] Index: [ <A HREF="author.html#00412">Author</A> | <A HREF="#00412">Date</A> | <A HREF="thread.html#00412">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] SfD: AI and muds; several approaches</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: Mud Design Mailing List <<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>></LI> <LI><em>Subject</em>: [MUD-Dev] SfD: AI and muds; several approaches</LI> <LI><em>From</em>: Nathan F Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> <LI><em>Date</em>: Tue, 21 Apr 1998 12:10:51 -1000</LI> <LI><em>Delivery-date</em>: Tue Apr 21 15:12:13 1998</LI> <LI><em>Delivery-date</em>: Tue, 21 Apr 1998 15:12:13 -0700</LI> <LI><em>Envelope-to</em>: claw#kanga,nu</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Sender</em>: "Petidomo List Agent,,,," <<A HREF="mailto:petidomo#kanga,nu">petidomo#kanga,nu</A>></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> 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 <<A HREF="http://www.cs.cmu.edu/Groups/AI/html/faqs/top.html">http://www.cs.cmu.edu/Groups/AI/html/faqs/top.html</A>> 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: <<A HREF="ftp://ftp.sas.com/pub/neural/FAQ.html">ftp://ftp.sas.com/pub/neural/FAQ.html</A>> 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: <<A HREF="http://www.cis.ohio-state.edu/hypertext/">http://www.cis.ohio-state.edu/hypertext/</A> 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 <A HREF="http://www2.hawaii.edu/~yospe/">http://www2.hawaii.edu/~yospe/</A> -- MUD-Dev: Advancing an unrealised future. </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00325.html">[MUD-Dev] (fwd) Mudlib Design</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00489.html">[MUD-Dev] Re: Character development [was Re: ]</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00715.html">[MUD-Dev] Re: (fwd) SERVER: Re: New Code Base in VB Started</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00325.html">[MUD-Dev] (fwd) Mudlib Design</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00412"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00412"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: Systems you use</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00475" HREF="msg00475.html">[MUD-Dev] Re: Systems you use</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 23 Apr 1998, 21:22 GMT <UL> <LI><strong><A NAME="00468" HREF="msg00468.html">[MUD-Dev] Re: Systems you use</A></strong>, Katrina McClelan <a href="mailto:kitkat#the486,bradley.edu">kitkat#the486,bradley.edu</a>, Thu 23 Apr 1998, 22:31 GMT </LI> </UL> </LI> </ul> </ul> </ul> </LI> <LI><strong><A NAME="00227" HREF="msg00227.html">[MUD-Dev] (fwd) SERVER: Re: New Code Base in VB Started</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 22 Apr 1998, 19:16 GMT <UL> <LI><strong><A NAME="00715" HREF="msg00715.html">[MUD-Dev] Re: (fwd) SERVER: Re: New Code Base in VB Started</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 25 Apr 1998, 13:14 GMT </LI> </UL> </LI> <LI><strong><A NAME="00412" HREF="msg00412.html">[MUD-Dev] SfD: AI and muds; several approaches</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 21 Apr 1998, 22:12 GMT <LI><strong><A NAME="00325" HREF="msg00325.html">[MUD-Dev] (fwd) Mudlib Design</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 21 Apr 1998, 21:54 GMT <LI><strong><A NAME="00215" HREF="msg00215.html">[MUD-Dev] META: We have moved.</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 21 Apr 1998, 19:19 GMT <LI><strong><A NAME="00209" HREF="msg00209.html">[Fwd: Re: Grids and curvature of a sphere]</A></strong>, Richard Woolcock <a href="mailto:KaVir#dial,pipex.com">KaVir#dial,pipex.com</a>, Sun 19 Apr 1998, 05:50 GMT <UL> <LI><strong><A NAME="00210" HREF="msg00210.html">Re: [MUD-Dev] [Fwd: Re: Grids and curvature of a sphere]</A></strong>, Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Sun 19 Apr 1998, 06:39 GMT </LI> </UL> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>