home *** CD-ROM | disk | FTP | other *** search
/ BURKS 2 / BURKS_AUG97.ISO / BURKS / LINUX / HOWTO / mini / aialife.txt < prev    next >
Text File  |  1997-07-07  |  71KB  |  1,374 lines

  1.  
  2.                        [Linux & AI/Alife mini-HOWTO]
  3.  
  4.                                 Version 1.2
  5.  
  6.              This document is maintained by John A. Eikenberry
  7.                     The master page for this document is
  8.                  http://www.ai.uga.edu/students/jae/ai.html
  9.                 Last modified: Mon May 19 00:26:49 EDT 1997
  10.  
  11. [Image]
  12.  
  13. Table of Contents
  14.  
  15.    * What's New
  16.    * Introduction
  17.         o Purpose
  18.         o Where to find this software
  19.         o Updates and comments
  20.         o Basics of AI & Alife
  21.    * Programming languages
  22.    * AI
  23.         o AI class/code libraries
  24.         o AI software kits, applications, etc.
  25.    * Connectionism (neural nets)
  26.         o Connectionist Class/Code Libraries
  27.         o Connectionist Applications
  28.    * Evolutionary Computing (EC) (genetic algorithms/programming)
  29.         o EC Class/Code Libraries
  30.         o EC Applications
  31.    * Alife
  32.         o Alife class/code libraries
  33.         o Alife software kits, applications, etc.
  34.    * Autonomous Agents
  35.    * AI & Alife related newsgroups
  36.    * AI & Alife resource links
  37.  
  38. [border]
  39.  
  40. What's New
  41.  
  42. (5.18.97)I've done a bit of cleaning in the links section. I've also added a
  43. genetic programming library (GP kernel), the ADATE system, the Sugal (GA)
  44. system, Geco (GA), Grammer Work Bench (NLP), Screamer (lisp library), SNePS,
  45. Ara, JATlite, Fuf and SURGE, and finally TIN (alife). I've also begun a
  46. reorganization of this page. This will end up with two versions of this
  47. page. One, like this one, containing the whole howto, the second will be
  48. broken up into parts to allow for troublesome connections.
  49.  
  50. (5.8.97)I've updated some dead or outdated links. I've collected a ton of
  51. material to add over the last couple months, but have been incredibly busy.
  52. I'm going to try to find the time to update this page soon.
  53.  
  54. (3.4.97)I removed Scsh and put it on my linux page. The more I thought about
  55. it, the less Scsh seemed an AI application. I also added Soar, a general
  56. coginitive architecture development system. It looks pretty cool and should
  57. work on linux (any info to the contrary would be appreciated, I don't have
  58. time right now t o mess with it). Last but not least, I've added a couple
  59. more Scheme implementations to the list (can you tell I really like scheme).
  60.  
  61. (2.16.97) A new robot simulator, another neural net simulator, a cellular
  62. automata simulation system, and a new (optimizable) version of prolog.
  63.  
  64. (1.24.97) A couple of more agent kits. Including another perl module and the
  65. Tocoma project. CMU lisp, a new neural net simulator, a parallel genetic
  66. algorithm library, and a few links. Plus I've redone the links to show their
  67. destinations (for the benefit of those seeing this as a plain text
  68. document).
  69.  
  70. (11.14.96) I've added a new neural net simulator and a new perl agent
  71. system.
  72.  
  73. (I forget) I got some good tips on some new stuff. Three interesting new
  74. programming languages, plus a few applications. Thanks to Holger Schauer for
  75. the tips.
  76.  
  77. If you know of any AI/Alife applications, class libraries, etc. Please email
  78. me about them. Include your name, ftp and/or http sites where they can be
  79. found, plus a brief overview/commentary on the software (this info would
  80. make things a lot easier on me... but don't feel obligated ;).
  81.  
  82. Introduction
  83.  
  84. Purpose
  85.  
  86. The Linux OS has evolved from its origins in hackerdom to a full blown UNIX,
  87. capable of rivaling any commercial UNIX. It now provides an inexpensive base
  88. to build a great workstation. It currently is shedding its hardware
  89. dependencies, being ported to DEC Alphas, Sparcs, mk86 (PowerPC/Amiga/etc.),
  90. and many others. This potential speed boost along with its networking
  91. support will make it great for workstation clusters. As a workstation it
  92. allows for all sorts of research and development, including artifical
  93. intelligence and artificial life.
  94.  
  95. The purpose of this Mini-Howto is to provide a source to find out about
  96. various software packages, code libraries, and anything else that will help
  97. someone get started working with (and find resources for) artifical
  98. intelligence and artificial life. All done with Linux specifically in mind.
  99.  
  100. Where to find this software
  101.  
  102. All this software should be available via the net (ftp || http). The links
  103. to where to find it will be provided in the description of each package.
  104. There will also be plenty of software not covered on these pages (which is
  105. usually platform independent) located on one of the locations listed in the
  106. resource links section.
  107.  
  108. Updates and comments
  109.  
  110. If you find any mistakes, know of updates to one of the items below, or have
  111. problems compiling and of the applications, please mail me at:
  112. jae@ai.uga.edu and I'll see what I can do.
  113.  
  114. I know that keeping this list up to date, not to mention developing it in
  115. the first place will take a lot of work. So please be patient. I hope you
  116. will find this document helpful.
  117.  
  118. [border]
  119.  
  120. Basics of AI & Alife
  121.  
  122. AI and Alife can be broken down into many subfields. I try to give a *very*
  123. brief introduction to these here. Though it would better serve you (if you
  124. are interested) to look at some of the sites linked to below for more info
  125. on these facinating subjects.
  126.  
  127. Artifical Intelligence [AI]
  128.      The rational model (AI) is based around the ideas of logic,
  129.      linguistics, and the concept of rationality. It is centered around the
  130.      idea of logical rule construction. At its roots are programming
  131.      languages such as lisp and prolog. Expert systems are the largest
  132.      success of this paradigm. An expert system being a detailed knowledge
  133.      base and a complex rule system to utilize it. Such systems have been
  134.      used for such things as medical diagnosis support and credit checking
  135.      systems.
  136. Evolutionary Computing [EC]
  137.      Evolutionary computing is really a broad term for a vast array of
  138.      programming techniques (genetic algorithms, complex adaptive systems,
  139.      evolutionary programming, etc.). The main thrust of all these
  140.      techniques is the idea of evolution. The idea that a program can be
  141.      written that will evolve toward a certain goal. This goal can be
  142.      anything from solving some engineering problem to winning a game.
  143. Connectionism
  144.      Connectionism is a techinical term for a group of related techniques.
  145.      These include areas such as Artificial Neural Networks, Symantic
  146.      Networks and a few other similar ideas. My present focus is on nerual
  147.      networks (though I am looking for stuff using the other techniques).
  148.      Neural networks are programs designed to simulate the workings of the
  149.      brain. They consist of a network of small mathematical-based nodes,
  150.      which work together to form patterns of information. They have
  151.      tremendous potential and currently seem to be having a great deal of
  152.      success with image processing and robot control.
  153. Alife
  154.      Alife takes yet another approach to the misteries of intelligence. It
  155.      has many aspects similar to EC and connectionism, but takes these ideas
  156.      and gives them a metalevel twist. Alife stresses the development of
  157.      intelligence through emergent behaviour of complex adaptive systems.
  158.      Alife stresses the social or group based aspects of intelligence. It
  159.      seeks to understand life and survival. By studying the behaviours of
  160.      groups of 'beings' it seeks to discover the way intelligence or higher
  161.      order activity emerges from seemingly simple individuals. Cellular
  162.      Automata and Conway's Game of Life are probably the most commonly known
  163.      applications of this field.
  164. Autonomous Agents
  165.      Also known as intelligent software agents or just agents, this area of
  166.      AI research deals with simple applications of small programs that aid
  167.      the user in his/her work. They can be mobile (able to stop their
  168.      execution on one machine and resume it on another) or static (live in
  169.      one machine). They are usually specific to the task (and therefore
  170.      fairly simple) and meant to help the user much as an assistant would.
  171.      The most popular (ie. widely known) use of this type of application to
  172.      date are the web robots that many of the indexing engines (eg.
  173.      webcrawler) use.
  174.  
  175. Programming languages
  176.  
  177. While any programming language can be used for artificial intelligence/life
  178. research, these are programming languages which are used extensively for, if
  179. not specifically made for, artificial intelligence programming.
  180.  
  181. G÷del [New]
  182. Web page: www.cs.bris.ac.uk/~bowers/goedel.html
  183.      G÷del is a declarative, general-purpose programming language in the
  184.      family of logic programming languages. It is a strongly typed language,
  185.      the type system being based on many-sorted logic with parametric
  186.      polymorphism. It has a module system. G÷del supports infinite precision
  187.      integers, infinite precision rationals, and also floating-point
  188.      numbers. It can solve constraints over finite domains of integers and
  189.      also linear rational constraints. It supports processing of finite
  190.      sets. It also has a flexible computation rule and a pruning operator
  191.      which generalises the commit of the concurrent logic programming
  192.      languages. Considerable emphasis is placed on G÷del's meta- logical
  193.      facilities which provide significant support for meta-programs that do
  194.      analysis, transformation, compilation, verification, debugging, and so
  195.      on.
  196.  
  197. LIFE [New]
  198. Web page: www.isg.sfu.ca/life
  199.      LIFE (Logic, Inheritance, Functions, and Equations) is an experimental
  200.      programming language proposing to integrate three orthogonal
  201.      programming paradigms proven useful for symbolic computation. From the
  202.      programmer's standpoint, it may be perceived as a language taking after
  203.      logic programming, functional programming, and object-oriented
  204.      programming. From a formal perspective, it may be seen as an instance
  205.      (or rather, a composition of three instances) of a Constraint Logic
  206.      Programming scheme due to Hoehfeld and Smolka refining that of Jaffar
  207.      and Lassez.
  208.  
  209. CLisp (Lisp)
  210. FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  211.      CLISP is a Common Lisp implementation by Bruno Haible and Michael
  212.      Stoll. It mostly supports the Lisp described by 'Common LISP:
  213.      TheLanguage (2nd edition)' and the ANSI Common Lisp standard. CLISP
  214.      includes an interpreter, a byte-compiler, a large subset of CLOS
  215.      (Object-Oriented Lisp) , a foreign language interface and, for some
  216.      machines, a screen editor.
  217.  
  218.      The user interface language (English, German, French) is chooseable at
  219.      run time. Major packages that run in CLISP include CLX & Garnet. CLISP
  220.      needs only 2 MB of memory.
  221.  
  222. CMU Common Lisp [New]
  223. Web page: www.mv.com/users/pw/lisp/index.html
  224. FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  225.      CMU Common Lisp is a public domain "industrial strength" Common Lisp
  226.      programming environment. Many of the X3j13 changes have been
  227.      incorporated into CMU CL. Whereever possible, this has been done so as
  228.      to transparently allow the use of either CLtL1 or proposed ANSI CL.
  229.      Probably the new features most interesting to users are SETF functions,
  230.      LOOP and the WITH-COMPILATION-UNIT macro.
  231.  
  232. GCL (Lisp)
  233. FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  234.      GNU Common Lisp (GCL) has a compiler and interpreter for Common Lisp.
  235.      It used to be known as Kyoto Common Lisp. It is very portable and
  236.      extremely efficient on a wide class of applications. It compares
  237.      favorably in performance with commercial Lisps on several large
  238.      theorem-prover and symbolic algebra systems. It supports the CLtL1
  239.      specification but is moving towards the proposed ANSI definition. GCL
  240.      compiles to C and then uses the native optimizing C compilers (e.g.,
  241.      GCC). A function with a fixed number of args and one value turns into a
  242.      C function of the same number of args, returning one value, so GCL is
  243.      maximally efficient on such calls. It has a conservative garbage
  244.      collector which allows great freedom for the C compiler to put Lisp
  245.      values in arbitrary registers.
  246.  
  247.      It has a source level Lisp debugger for interpreted code, with display
  248.      of source code in an Emacs window. Its profiling tools (based on the C
  249.      profiling tools) count function calls and the time spent in each
  250.      function.
  251.  
  252. Mercury [New]
  253. Web page: www.cs.mu.oz.au/research/mercury/
  254.      Mercury is a new, purely declarative logic programming language. Like
  255.      Prolog and other existing logic programming languages, it is a very
  256.      high-level language that allows programmers to concentrate on the
  257.      problem rather than the low-level details such as memory management.
  258.      Unlike Prolog, which is oriented towards exploratory programming,
  259.      Mercury is designed for the construction of large, reliable, efficient
  260.      software systems by teams of programmers. As a consequence, programming
  261.      in Mercury has a different flavor than programming in Prolog.
  262.  
  263. DFKI OZ
  264. Web page: www.ps.uni-sb.de/oz/
  265. FTP site: ps-ftp.dfki.uni-sb.de/pub/oz2/
  266.      Oz is a high-level programming language designed for concurrent
  267.      symbolic computation. It is based on a new computation model providing
  268.      a uniform and simple foundation for several programming paradigms,
  269.      including higher-order functional, constraint logic, and concurrent
  270.      object-oriented programming. Oz is designed as a successor to languages
  271.      such as Lisp, Prolog and Smalltalk, which fail to support applications
  272.      that require concurrency, reactivity, and real-time control.
  273.  
  274.      DFKI Oz is an interactive implementation of Oz featuring a programming
  275.      interface based on GNU Emacs, a concurrent browser, an object-oriented
  276.      interface to Tcl/Tk, powerful interoperability features (sockets, C,
  277.      C++), an incremental compiler, a garbage collector, and support for
  278.      stand-alone applications. Performance is competitive with commercial
  279.      Prolog and Lisp systems.
  280.  
  281. BinProlog [New]
  282. Web site(documentation):
  283. clement.info.umoncton.ca/BinProlog/UNCOMPRESSED/doc/html/art.html
  284. FTP site(source): clement.info.umoncton.ca/BinProlog
  285. FTP site(binary): clement.info.umoncton.ca/BinProlog/UNCOMPRESSED/bin
  286.      BinProlog is a fast and compact Prolog compiler, based on the
  287.      transformation of Prolog to binary clauses. The compilation technique
  288.      is similar to the Continuation Passing Style transformation used in
  289.      some ML implementations. BinProlog 5.00 is also probably the first
  290.      Prolog system featuring dynamic recompilation of asserted predicates (a
  291.      technique similar to the one used in some object oriented languages
  292.      like SELF 4.0), and a very efficient segment preserving copying heap
  293.      garbage collector.
  294.  
  295.      Although it (used to) incorporate some last minute research
  296.      experiments, which might look adventurous at the first sight, BinProlog
  297.      is a fairly robust and complete Prolog implementation featuring both
  298.      C-emulated execution and generation of standalone applications by
  299.      compilation to C.
  300.  
  301. SWI Prolog
  302. Web page: swi.psy.uva.nl/projects/xpce/SWI-Prolog.html
  303. FTP site: swi.psy.uva.nl/pub/SWI-Prolog/
  304.      SWI is a free version of prolog in the Edinburgh Prolog family (thus
  305.      making it very similar to Quintus and many other versions). With: a
  306.      large library of built in predicates, a module system, garbage
  307.      collectionm, a two-way interface with the C language, plus many other
  308.      features. It is meant as a educational language, so it's compiled code
  309.      isn't the fastest. Although it similarity to Quintus allows for easy
  310.      porting.
  311.  
  312.      XPCE is freely available in binary form for the linux version of
  313.      SWI-prolog. XPCE is an object oriented X-windows GUI development
  314.      package/environment.
  315.  
  316. BIGLOO Scheme
  317. FTP site: ftp.inria.fr:/INRIA/Projects/icsla/Implementations/
  318.      BIGLOO is a Scheme interpreter and compiler. It conforms to the
  319.      IEEE-Scheme standard (IEEE P1178) with some extensions, such as regular
  320.      expression parsing (RGC), a lexical analyzer generator, a full foreign
  321.      function interface, and a pattern matching compiler. Bigloo can also
  322.      compile modules written in Caml (an ML dialect), letting you mix
  323.      Scheme, ML, and C. Object-oriented programming is provided by Meroon
  324.      v3. The main goal of Bigloo is to deliver small and fast stand alone
  325.      applications. Bigloo produces ANSI C and hence should be easy to port.
  326.  
  327. ELK Scheme
  328. Web site: www.informatik.uni-bremen.de/~net/elk
  329. US FTP site: ftp.x.org/contrib/devel_tools/
  330. EU FTP site: ftp.tzi.uni-bremen.de/tzi/dmn/elk/
  331.      Elk (Extension Language Kit) has been designed specifically as an
  332.      embeddable, reusable extension language subsystem for applications
  333.      written in C or C++. Elk is also useful as a stand-alone Scheme
  334.      implementation, in particular as a platform for rapid prototyping of
  335.      X11-based Scheme programs. Elk was first published in 1989; the current
  336.      version is Elk 3.0. The Elk distribution includes a Scheme interpreter
  337.      (embeddable and stand-alone versions), several dynamically loadable
  338.      extensions, run-time support (including a top-level implemented in
  339.      Scheme and a debugger), and 230+ pages of documentation (troff and
  340.      PostScript format).
  341.  
  342.      Major features of Elk are incremental, dynamic loading of compiled
  343.      extensions (supported on many platforms); freezing of the interpreter
  344.      or application into a new executable file; a C/C++ programmer's
  345.      interface for language interoperability; Scheme bindings for X11 Xlib,
  346.      Xt, Athena and Motif Widgets; a UNIX interface (not restricted to
  347.      POSIX); bitstrings, records, and regular expressions; a stop-and-copy
  348.      and an incremental, generational garbage collector.
  349.  
  350. Gambit-C Scheme [New]
  351. Web site: www.iro.umontreal.ca/~gambit/
  352. FTP site: ftp.iro.umontreal.ca/pub/parallele/gambit
  353.      In this variant of Gambit, the compiler generates highly portable C
  354.      code that is reasonably efficient. The primary goals of Gambit-C are
  355.      portability and correctness (in particular it correctly implements
  356.      tail-recursion across modules and uses a precise garbage-collector).
  357.      Gambit-C runs on a wide range of Unix workstations, on Macintosh, and
  358.      DOS/Windows. It also supports these features: dynamic-loading of
  359.      compiled files, C-interface (FFI), and a memory management system that
  360.      expands and contracts the heap based on the program's needs.
  361.  
  362. MIT Scheme
  363. Web site: www-swiss.ai.mit.edu/scheme-home.html
  364. FTP site: swiss-ftp.ai.mit.edu:/archive/sheme-7.4/
  365.      MIT Scheme includes Edwin (Scheme's Emacs-like editor) and Liar (the
  366.      Scheme compiler). Does not have a convenient foreign function interface
  367.      yet. FTP distribution includes MIT C-Scheme Reference and User manuals,
  368.      as well as the Revised^4 Report on Scheme.
  369.  
  370. MzScheme [New]
  371. Web site: www.cs.rice.edu/CS/PLT/packages/mzscheme
  372. FTP site: cs.rice.edu/public/mflatt/mzscheme
  373.      MzScheme is fully R4RS-compilant (including the full numerical tower),
  374.      and also provides:
  375.         o Pre-emptive threads for all platforms
  376.         o Generative structures (a.k.a. record datatypes)
  377.         o A system for exceptions, where all primitive errors raise a
  378.           specific exception
  379.         o First-class compilation units for organizing program components
  380.         o A class-based object system reminiscent of C++
  381.         o Built-in regular expression matching tools
  382.         o Simple TCP communication support on all platforms
  383.         o Portable filesystem access and process control commands
  384.  
  385. RScheme [New]
  386. Web site:www.rosette.com/~donovan/rs/rscheme.html
  387. FTP site: ftp.rosette.com/pub/rscheme
  388.      RScheme is an object-oriented, extended version of the Scheme dialect
  389.      of Lisp. RScheme is freely redistributable, and offers reasonable
  390.      performance despite being extraordinarily portable. RScheme can be
  391.      compiled to C, and the C can then compiled with a normal C compiler to
  392.      generate machine code. By default, however, RScheme compiles to
  393.      bytecodes which are interpreted by a (runtime) virtual machine. This
  394.      ensures that compilation is fast and keeps code size down. In general,
  395.      we recommend using the (default) bytecode code generation system, and
  396.      only compiling your time-critical code to machine code. This allows a
  397.      nice adjustment of space/time tradeoffs. (see web site for details)
  398.  
  399. Scheme->C
  400. FTP site: gatekeeper.dec.com:/pub/DEC/Scheme-to-C/
  401.      Scheme->C is an R4RS compliant Scheme system that is centered around a
  402.      compiler that compiles Scheme to C. Besides the base language, the
  403.      system includes "expansion passing style" macros, a foreign function
  404.      call capability, records, weak pointers, 3 X11 interfaces, call/cc, and
  405.      a generational, conservative, copying garbage collector. The result is
  406.      a system that is portable, efficient, and able to build applications
  407.      that contain a mix of compiled and interpreted Scheme, and compiled
  408.      code from C, C++ and other languages.
  409.  
  410. Scheme 48
  411. Web site: www-swiss.ai.mit.edu/~jar/s48.html (download from ftp site)
  412. FTP site: swiss-ftp.ai.mit.edu:/archive/s48/
  413.      Scheme 48 is a Scheme implementation based on a virtual machine
  414.      architecture. Scheme 48 is designed to be straightforward, flexible,
  415.      reliable, and fast. It should be easily portable to 32-bit
  416.      byte-addressed machines that have POSIX and ANSI C support. In addition
  417.      to the usual Scheme built-in procedures and a development environment,
  418.      library software includes support for hygienic macros (as described in
  419.      the Revised^4 Scheme report), multitasking, records, exception
  420.      handling, hash tables, arrays, weak pointers, and FORMAT. Scheme 48
  421.      implements and exploits an experimental module system loosely derived
  422.      from Standard ML and Scheme Xerox. The development environment supports
  423.      interactive changes to modules and interfaces.
  424.  
  425. SCM (Scheme)
  426. FTP site: swiss-ftp.ai.mit.edu:/archive/scm/
  427.      SCM conforms to the Revised^4 Report on the Algorithmic Language Scheme
  428.      and the IEEE P1178 specification. Scm is written in C. It uses the
  429.      following utilities (all available at the ftp site).
  430.         o SLIB (Standard Scheme Library) is a portable Scheme library which
  431.           is intended to provide compatability and utility functions for all
  432.           standard Scheme implementations, including SCM, Chez, Elk, Gambit,
  433.           MacScheme, MITScheme, scheme->C, Scheme48, T3.1, and VSCM, and is
  434.           available as the file slib2a0.tar.gz. Written by Aubrey Jaffer.
  435.         o JACAL is a symbolic math system written in Scheme, and is
  436.           available as the file jacal1a4.tar.gz.
  437.         o SCMCONFIG contains additional files for the SCM distribution to
  438.           build SCM on Unix machines using GNU autoconf.
  439.         o SLIB-PSD is a portable debugger for Scheme (requires emacs
  440.           editor).
  441.         o TURTLSCM is a turtle graphics package which works with SCM on
  442.           MSDOS or X11 machines. Written by Mkinen Sami and Jarkko Leppanen
  443.           , it is available as the file turtlegr.tar.Z.
  444.         o XSCM is an X Windows interface to Xlib and the Motif and OpenLook
  445.           toolkits for the SCM interpreter. It requires scm4a10 or later. It
  446.           should be available as xscm1.05.tar.Z. Contact
  447.           campbell@redsox.bsw.com for more information.
  448.  
  449. AI
  450.  
  451. AI class/code libraries
  452.  
  453. These are libraries of code or classes for use in programming within the
  454. artificial intelligence field. They are not meant as stand alone
  455. applications, but rather as tools for building your own applications.
  456.  
  457. AI Search
  458. FTP site: ftp.icce.rug.nl/pub/peter/
  459. Submitted by: Peter M. Bouthoorn
  460.      Basically, the library offers the programmer a set of search algorithms
  461.      that may be used to solve all kind of different problems. The idea is
  462.      that when developing problem solving software the programmer should be
  463.      able to concentrate on the representation of the problem to be solved
  464.      and should not need to bother with the implementation of the search
  465.      algorithm that will be used to actually conduct the search. This idea
  466.      has been realized by the implementation of a set of search classes that
  467.      may be incorporated in other software through C++'s features of
  468.      derivation and inheritance. The following search algorithms have been
  469.      implemented:
  470.  
  471.      - depth-first tree and graph search.
  472.      - breadth-first tree and graph search.
  473.      - uniform-cost tree and graph search.
  474.      - best-first search.
  475.      - bidirectional depth-first tree and graph search.
  476.      - bidirectional breadth-first tree and graph search.
  477.      - AND/OR depth tree search.
  478.      - AND/OR breadth tree search.
  479.  
  480.      Peter plans to release a new verision of the library soon, which will
  481.      also be featured in a book about C++ and AI to appear this year.
  482. Screamer [New]
  483. Web site: www.cis.upenn.edu/~screamer-tools/home.html
  484.      Screamer is an extension of Common Lisp that adds support for
  485.      nondeterministic programming. Screamer consists of two levels. The
  486.      basic nondeterministic level adds support for backtracking and undoable
  487.      side effects. On top of this nondeterministic substrate, Screamer
  488.      provides a comprehensive constraint programming language in which one
  489.      can formulate and solve mixed systems of numeric and symbolic
  490.      constraints. Together, these two levels augment Common Lisp with
  491.      practically all of the functionality of both Prolog and constraint
  492.      logic programming languages such as CHiP and CLP(R). Furthermore,
  493.      Screamer is fully integrated with Common Lisp. Screamer programs can
  494.      coexist and interoperate with other extensions to Common Lisp such as
  495.      CLOS, CLIM and Iterate.
  496.  
  497. AI software kits, applications, etc.
  498.  
  499. These are various applications, software kits, etc. meant for research in
  500. the field of artificial intelligence. Their ease of use will vary, as they
  501. were designed to meet some particular research interest more than as an easy
  502. to use commercial package.
  503.  
  504. ASA - Adaptive Simulated Annealing
  505. Web site: www.ingber.com/#ASA-CODE
  506. FTP site: ftp.ingber.com/
  507.      ASA (Adaptive Simulated Annealing) is a powerful global optimization
  508.      C-code algorithm especially useful for nonlinear and/or stochastic
  509.      systems.
  510.  
  511.      ASA is developed to statistically find the best global fit of a
  512.      nonlinear non-convex cost-function over a D-dimensional space. This
  513.      algorithm permits an annealing schedule for 'temperature' T decreasing
  514.      exponentially in annealing-time k, T = T_0 exp(-c k^1/D). The
  515.      introduction of re-annealing also permits adaptation to changing
  516.      sensitivities in the multi-dimensional parameter-space. This annealing
  517.      schedule is faster than fast Cauchy annealing, where T = T_0/k, and
  518.      much faster than Boltzmann annealing, where T = T_0/ln k.
  519.  
  520. Babylon
  521. FTP site: ftp.gmd.de/gmd/ai-research/Software/Babylon/
  522.      BABYLON is a modular, configurable, hybrid environment for developing
  523.      expert systems. Its features include objects, rules with forward and
  524.      backward chaining, logic (Prolog) and constraints. BABYLON is
  525.      implemented and embedded in Common Lisp.
  526.  
  527. CLEARS
  528. Web site: www.coli.uni-sb.de/~clears/
  529.      The CLEARS system is an interactive graphical environment for
  530.      computational semantics. The tool allows exploration and comparison of
  531.      different semantic formalisms, and their interaction with syntax. This
  532.      enables the user to get an i dea of the range of possibilities of
  533.      semantic construction, and also where there is real convergence between
  534.      theories.
  535.  
  536. CLIPS
  537. Web site: www.jsc.nasa.gov/~clips/CLIPS.html
  538. FTP site:
  539. cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/areas/expert/systems/clips
  540. Submitted by: Oori Hasson
  541.      CLIPS is a productive development and delivery expert system tool which
  542.      provides a complete environment for the construction of rule and/or
  543.      object based expert systems.
  544.  
  545.      CLIPS provides a cohesive tool for handling a wide variety of knowledge
  546.      with support for three different programming paradigms: rule-based,
  547.      object-oriented and procedural. Rule-based programming allows knowledge
  548.      to be represented as heuristics, or "rules of thumb," which specify a
  549.      set of actions to be performed for a given situation. Object-oriented
  550.      programming allows complex systems to be modeled as modular components
  551.      (which can be easily reused to model other systems or to create new
  552.      components). The procedural programming capabilities provided by CLIPS
  553.      are similar to capabilities found in languages such as C, Pascal, Ada,
  554.      and LISP.
  555.  
  556. EMA-XPS - A Hybrid Graphic Expert System Shell
  557. Web site: wmwap1.math.uni-wuppertal.de:80/EMA-XPS/
  558.      EMA-XPS is a hybrid graphic expert system shell based on the
  559.      ASCII-oriented shell Babylon 2.3 of the German National Research Center
  560.      for Computer Sciences (GMD). In addition to Babylon's AI-power (object
  561.      oriented data representation, forward and backward chained rules -
  562.      collectable into sets, horn clauses, and constraint networks) a graphic
  563.      interface based on the X11 Window System and the OSF/Motif Widget
  564.      Library has been provided.
  565.  
  566. FOOL & FOX
  567. FTP site: ntia.its.bldrdoc.gov/pub/fuzzy/prog/
  568.      FOOL stands for the Fuzzy Organizer OLdenburg. It is a result from a
  569.      project at the University of Oldenburg. FOOL is a graphical user
  570.      interface to develop fuzzy rulebases. FOOL will help you to invent and
  571.      maintain a database that specifies the behaviour of a fuzzy-controller
  572.      or something like that.
  573.  
  574.      FOX is a small but powerful fuzzy engine which reads this database,
  575.      reads some input values and calculates the new control value.
  576.  
  577. FUF and SURGE [New]
  578. Web site: www.dfki.de/lt/registry/generation/fuf.html
  579. FTP site: ftp.cs.columbia.edu/pub/fuf/
  580.      FUF is an extended implementation of the formalism of functional
  581.      unification grammars (FUGs) introduced by Martin Kay specialized to the
  582.      task of natural language generation. It adds the following features to
  583.      the base formalism:
  584.         o Types and inheritance.
  585.         o Extended control facilities (goal freezing, intelligent
  586.           backtracking).
  587.         o Modular syntax.
  588.      These extensions allow the development of large grammars which can be
  589.      processed efficiently and can be maintained and understood more easily.
  590.      SURGE is a large syntactic realization grammar of English written in
  591.      FUF. SURGE is developed to serve as a black box syntactic generation
  592.      component in a larger generation system that encapsulates a rich
  593.      knowledge of English syntax. SURGE can also be used as a platform for
  594.      exploration of grammar writing with a generation perspective.
  595.  
  596. The Grammar Workbench [New]
  597. Web site: www.cs.kun.nl/agfl/GWB.html
  598.      The Grammar Workbench, or GWB for short, is an environment for the
  599.      comfortable development of Affix Grammars in the AGFL-formalism. Its
  600.      purposes are:
  601.         o to allow the user to input, inspect and modify a grammar;
  602.         o to perform consistency checks on the grammar;
  603.         o to compute grammar properties;
  604.         o to generate example sentences;
  605.         o to assist in performing grammar transformations.
  606.  
  607. Otter: An Automated Deduction System
  608. Web site: www.mcs.anl.gov/home/mccune/ar/otter
  609.      Our current automated deduction system Otter is designed to prove
  610.      theorems stated in first-order logic with equality. Otter's inference
  611.      rules are based on resolution and paramodulation, and it includes
  612.      facilities for term rewriting, term orderings, Knuth-Bendix completion,
  613.      weighting, and strategies for directing and restricting searches for
  614.      proofs. Otter can also be used as a symbolic calculator and has an
  615.      embedded equational programming system.
  616.  
  617. SNePS [New]
  618. Web site: www.cs.buffalo.edu/pub/sneps/WWW/
  619. FTP site: ftp.cs.buffalo.edu/pub/sneps/
  620.      The long-term goal of The SNePS Research Group is the design and
  621.      construction of a natural-language-using computerized cognitive agent,
  622.      and carrying out the research in artificial intelligence, computational
  623.      linguistics, and cognitive science necessary for that endeavor. The
  624.      three-part focus of the group is on knowledge representation,
  625.      reasoning, and natural-language understanding and generation. The group
  626.      is widely known for its development of the SNePS knowledge
  627.      representation/reasoning system, and Cassie, its computerized cognitive
  628.      agent.
  629.  
  630. Soar [New]
  631. Web site: www.isi.edu/soar/soar.html
  632. FTP site: cs.cmu.edu/afs/cs/project/soar/public/Soar6/
  633.      Soar has been developed to be a general cognitive architecture. We
  634.      intend ultimately to enable the Soar architecture to:
  635.         o work on the full range of tasks expected of an intelligent agent,
  636.           from highly routine to extremely difficult, open-ended problems
  637.         o represent and use appropriate forms of knowledge, such as
  638.           procedural, declarative, episodic, and possibly iconic
  639.         o employ the full range of problem solving methods
  640.         o interact with the outside world and
  641.         o learn about all aspects of the tasks and its performance on them.
  642.      In other words, our intention is for Soar to support all the
  643.      capabilities required of a general intelligent agent.
  644.  
  645. Connectionism
  646.  
  647. Connectionist class/code libraries
  648.  
  649. These are libraries of code or classes for use in programming within the
  650. connectionist field. They are not meant as stand alone applications, but
  651. rather as tools for building your own applications.
  652.  
  653. Various Neural Networks
  654. Web site: www.mcs.com/~drt/svbp.html
  655. Submitted by: Don Tveter
  656.      Example neural net codes from the book, The Basis of Artificial
  657.      Intelligence. These are simple example codes of these various neural
  658.      nets. They work well as a good starting point for simple
  659.      experimentation and for learning what the code is like behind the
  660.      simulators. The types of networks available on this site are:
  661.      (implemented in C++)
  662.  
  663.         o The Backprop Package
  664.         o The Nearest Neighbor Algorithms
  665.         o The Interactive Activation Algorithm
  666.         o The Hopfield and Boltzman machine Algorithms
  667.         o The Linear Pattern Classifier
  668.         o ART I
  669.         o Bi-Directional Associative Memory
  670.         o The Feedforward Counter-Propagation Network
  671.  
  672. Connectionish software kits/applications
  673.  
  674. These are various applications, software kits, etc. meant for research in
  675. the field of connectionism. Their ease of use will vary, as they were
  676. designed to meet some particular research interest more than as an easy to
  677. use commercial package.
  678.  
  679. Aspirin/MIGRAINES (am6.tar.Z on ftp site) [New]
  680. FTP site:
  681. sunsite.unc.edu/pub/academic/computer-science/neural-networks/programs/Aspirin/
  682.      The software that we are releasing now is for creating, and evaluating,
  683.      feed-forward networks such as those used with the backpropagation
  684.      learning algorithm. The software is aimed both at the expert
  685.      programmer/neural network researcher who may wish to tailor significant
  686.      portions of the system to his/her precise needs, as well as at casual
  687.      users who will wish to use the system with an absolute minimum of
  688.      effort.
  689.  
  690. Neureka ANS (nn/xnn) [New]
  691. Web site: www.bgif.no/neureka/
  692. FTP site: ftp.ii.uib.no/pub/neureka/linux/
  693.      nn is a high-level neural network specification language. The current
  694.      version is best suited for feed-forward nets, but recurrent models can
  695.      and have been implemented, e.g. Hopfield nets, Jordan/Elman nets, etc.
  696.      In nn, it is easy to change network dynamics. The nn compiler can
  697.      generate C code or executable programs (so there must be a C compiler
  698.      available), with a powerful command line interface (but everything may
  699.      also be controlled via the graphical interface, xnn). It is possible
  700.      for the user to write C routines that can be called from inside the nn
  701.      specification, and to use the nn specification as a function that is
  702.      called from a C program. Please note that no programming is necessary
  703.      in order to use the network models that come with the system
  704.      (`netpack').
  705.  
  706.      xnn is a graphical front end to networks generated by the nn compiler,
  707.      and to the compiler itself. The xnn graphical interface is intuitive
  708.      and easy to use for beginners, yet powerful, with many possibilities
  709.      for visualizing network data.
  710.  
  711.      NOTE: You have to run the install program that comes with this to get
  712.      the licence key installed. It gets put (by default) in /usr/lib. If you
  713.      (like myself) want to install the package somewhere other than in the
  714.      /usr directory structure (the install program gives you this option)
  715.      you will have to set up some environmental variables (NNLIBDIR &
  716.      NNINCLUDEDIR are required). You can read about these (and a few other
  717.      optional variables) in appendix A of the documentation (pg 113).
  718.  
  719. PDP++
  720. Web site: www.cnbc.cmu.edu/PDP++/
  721. FTP site (US): cnbc.cmu.edu/pub/pdp++/
  722. FTP site (Europe): unix.hensa.ac.uk/mirrors/pdp++/
  723.      As the field of connectionist modeling has grown, so has the need for a
  724.      comprehensive simulation environment for the development and testing of
  725.      connectionist models. Our goal in developing PDP++ has been to
  726.      integrate several powerful software development and user interface
  727.      tools into a general purpose simulation environment that is both user
  728.      friendly and user extensible. The simulator is built in the C++
  729.      programming language, and incorporates a state of the art script
  730.      interpreter with the full expressive power of C++. The graphical user
  731.      interface is built with the Interviews toolkit, and allows full access
  732.      to the data structures and processing modules out of which the
  733.      simulator is built. We have constructed several useful graphical
  734.      modules for easy interaction with the structure and the contents of
  735.      neural networks, and we've made it possible to change and adapt many
  736.      things. At the programming level, we have set things up in such a way
  737.      as to make user extensions as painless as possible. The programmer
  738.      creates new C++ objects, which might be new kinds of units or new kinds
  739.      of processes; once compiled and linked into the simulator, these new
  740.      objects can then be accessed and used like any other.
  741.  
  742. SNNS
  743. Web site: www.informatik.uni-stuttgart.de/ipvr/bv/projekte/snns/snns.html
  744. FTP site: ftp.informatik.uni-stuttgart.de/pub/SNNS/
  745.      Stuttgart Neural Net Simulator (version 4.1). An awsome neural net
  746.      simulator. Better than any commercial simulator I've seen. The
  747.      simulator kernel is written in C (it's fast!). It supports over 20
  748.      different network architectures, has 2D and 3D X-based graphical
  749.      representations, the 2D GUI has an integrated network editor, and can
  750.      generate a separate NN program in C.
  751.      SNNS is very powerful, though a bit difficult to learn at first. To
  752.      help with this it comes with example networks and tutorials for many of
  753.      the architectures.
  754.      ENZO, a supplimentary system allows you to evolve your networks with
  755.      genetic algorithms.
  756.  
  757.      The Readme.linux file that comes with this package must be old. It's
  758.      instructions for building the package are wrong. I've edited it to
  759.      reflect what I had to do to get the package to compile. Please download
  760.      SNNS.Readme.linux and use it instead of the Readme.linux file that
  761.      comes with the distribution.
  762.  
  763. Evolutionary Computing
  764.  
  765. EC class/code libraries
  766.  
  767. These are libraries of code or classes for use in programming within the
  768. evolutionary computation field. They are not meant as stand alone
  769. applications, but rather as tools for building your own applications.
  770.  
  771. GAGS
  772. Web site: kal-el.ugr.es/gags.html
  773. FTP site: kal-el.ugr.es/GAGS/
  774.      Genetic Algorithm application generator and class library written
  775.      mainly in C++.
  776.      As a class library, and among other thing, GAGS includes:
  777.         o A chromosome hierarchy with variable length chromosomes. Genetic
  778.           operators: 2-point crossover, uniform crossover, bit-flip
  779.           mutation, transposition (gene interchange between 2 parts of the
  780.           chromosome), and variable-length operators: duplication,
  781.           elimination, and random addition.
  782.         o Population level operators include steady state, roulette wheel
  783.           and tournament selection.
  784.         o Gnuplot wrapper: turns gnuplot into a iostreams-like class.
  785.         o Easy sample file loading and configuration file parsing.
  786.      As an application generator (written in PERL), you only need to supply
  787.      it with an ANSI-C or C++ fitness function, and it creates a C++ program
  788.      that uses the above library to 90% capacity, compiles it, and runs it,
  789.      saving results and presenting fitness thru gnuplot.
  790.  
  791.      Last version released has been 0.92; 0.94e is in beta stage, but seems
  792.      to be stable. This version includes a TCL/TK GUI (soon, or at least
  793.      some day, to be changed to tkPERL), as well as many improvements on the
  794.      code.
  795.  
  796. GAlib: Matthew's Genetic Algorithms Library
  797. Web Site: lancet.mit.edu/ga/
  798. FTP site: lancet.mit.edu/pub/ga/
  799. Register GAlib at: http://lancet.mit.edu/ga/Register.html
  800.      GAlib contains a set of C++ genetic algorithm objects. The library
  801.      includes tools for using genetic algorithms to do optimization in any
  802.      C++ program using any representation and genetic operators. The
  803.      documentation includes an extensive overview of how to implement a
  804.      genetic algorithm as well as examples illustrating customizations to
  805.      the GAlib classes.
  806.  
  807. GALOPPS
  808. Web site: isl.msu.edu/GA/software/galopps/index.html
  809. FTP site: isl.cps.msu.edu/pub/GA/galopps/
  810.      GALOPPS is a flexible, generic GA, in 'C'. It was based upon Goldberg's
  811.      Simple Genetic Algorithm (SGA) architecture, in order to make it easier
  812.      for users to learn to use and extend.
  813.  
  814.      GALOPPS extends the SGA capabilities several fold:
  815.         o (optional) A new Graphical User Interface, based on TCL/TK, for
  816.           Unix users, allowing easy running of GALOPPS 3.2 (single or
  817.           multiple subpopulations) on one or more processors. GUI
  818.           writes/reads "standard" GALOPPS input and master files, and
  819.           displays graphical output (during or after run) of user-selected
  820.           variables.
  821.         o 5 selection methods: roulette wheel, stochastic remainder
  822.           sampling, tournament selection, stochastic universal sampling,
  823.           linear-ranking-then-SUS.
  824.         o Random or superuniform initialization of "ordinary"
  825.           (non-permutation) binary or non-binary chromosomes; random
  826.           initialization of permutation-based chromosomes; or user-supplied
  827.           initialization of arbitrary types of chromosomes.
  828.         o Binary or non-binary alphabetic fields on value-based chromosomes,
  829.           including different user-definable field sizes.
  830.         o 3 crossovers for value-based representations: 1-pt, 2-pt, and
  831.           uniform, all of which operate at field boundaries if a non-binary
  832.           alphabet is used.
  833.         o 4 crossovers for order-based reps: PMX, order-based, uniform
  834.           order-based, and cycle.
  835.         o 4 mutations: fast bitwise, multiple-field, swap and random sublist
  836.           scramble.
  837.         o Fitness scaling: linear scaling, Boltzmann scaling, sigma
  838.           truncation, window scaling, ranking.
  839.         o Plus a whole lot more....
  840.  
  841. GECO [New]
  842. FTP site: ftp://ftp.aic.nrl.navy.mil/pub/galist/src/
  843.      GECO (Genetic Evolution through Combination of Objects), an extendible
  844.      object-oriented toolbox for constructing genetic algorithms (in Lisp).
  845.      It provides a set of extensible classes and methods designed for
  846.      generality. Some simple examples are also provided to illustrate the
  847.      intended use.
  848.  
  849. GP Kernel [New]
  850. Web site: www.emk.e-technik.th-darmstadt.de/~thomasw/gp.html
  851.      The GP kernel is a C++ class library that can be used to apply genetic
  852.      programming techniques to all kinds of problems. The library defines a
  853.      class hierarchy. An integral component is the ability to produce
  854.      automatically defined functions as found in Koza's "Genetic Programming
  855.      II".
  856.  
  857.      Functionality includes; Automatically defined functions (ADFs),
  858.      tournament and fitness proportionate selection, demetic grouping,
  859.      optional steady state genetic programming kernel, subtree crossover,
  860.      swap and shrink mutation, a way of changing every parameter of the
  861.      system without recompilation, capacity for multiple populations,
  862.      loading and saving of populations and genetic programs, standard random
  863.      number generator, internal parameter checks.
  864.  
  865. lil-gp
  866. Web site: isl.msu.edu/GA/software/lil-gp/index.html
  867. FTP site: isl.cps.msu.edu/pub/GA/lilgp/
  868.      lil-gp is a generic 'C' genetic programming tool. It was written with a
  869.      number of goals in mind: speed, ease of use and support for a number of
  870.      options including:
  871.         o Generic 'C' program that runs on UNIX workstations
  872.         o Support for multiple population experiments, using arbitrary and
  873.           user settable topologies for exchange, for a single processor
  874.           (i.e., you can do multiple population gp experiments on your PC).
  875.         o lil-gp manipulates trees of function pointers which are allocated
  876.           in single, large memory blocks for speed and to avoid swapping.
  877.  
  878. PGAPack Parallel Genetic Algorithm Library [New]
  879. Web site: www.mcs.anl.gov/home/levine/PGAPACK/index.html
  880. FTP site: ftp.mcs.anl.gov/pub/pgapack/
  881.      PGAPack is a general-purpose, data-structure-neutral, parallel genetic
  882.      algorithm library. It is intended to provide most capabilities desired
  883.      in a genetic algorithm library, in an integrated, seamless, and
  884.      portable manner. Key features are in PGAPack V1.0 include:
  885.         o Callable from Fortran or C.
  886.         o Runs on uniprocessors, parallel computers, and workstation
  887.           networks.
  888.         o Binary-, integer-, real-, and character-valued native data types.
  889.         o Full extensibility to support custom operators and new data types.
  890.         o Easy-to-use interface for novice and application users.
  891.         o Multiple levels of access for expert users.
  892.         o Parameterized population replacement.
  893.         o Multiple crossover, mutation, and selection operators.
  894.         o Easy integration of hill-climbing heuristics.
  895.         o Extensive debugging facilities.
  896.         o Large set of example problems.
  897.         o Detailed users guide.
  898.  
  899. Sugal [New]
  900. Web site: www.trajan-software.demon.co.uk/sugal.htm
  901.      Sugal [soo-gall] is the SUnderland Genetic ALgorithm system. The aim of
  902.      Sugal is to support research and implementation in Genetic Algorithms
  903.      on a common software platform. As such, Sugal supports a large number
  904.      of variants of Genetic Algorithms, and has extensive features to
  905.      support customisation and extension.
  906.  
  907. EC software kits/applications
  908.  
  909. These are various applications, software kits, etc. meant for research in
  910. the field of evolutionary computing. Their ease of use will vary, as they
  911. were designed to meet some particular research interest more than as an easy
  912. to use commercial package.
  913.  
  914. ADATE(Automatic Design of Algorithms Through Evolution) [New]
  915. Web site: www-ia.hiof.no/~rolando/adate_intro.html
  916.      ADATE is a system for automatic programming i.e., inductive inference
  917.      of algorithms, which may be the best way to develop artificial and
  918.      general intelligence.
  919.  
  920.      The ADATE system can automatically generate non-trivial and novel
  921.      algorithms. Algorithms are generated through large scale combinatorial
  922.      search that employs sophisticated program transformations and
  923.      heuristics. The ADATE system is particularly good at synthesizing
  924.      symbolic, functional programs and has several unique qualities.
  925.  
  926. Alife
  927.  
  928. Alife class/code libraries
  929.  
  930. These are libraries of code or classes for use in programming within the
  931. artificial life field. They are not meant as stand alone applications, but
  932. rather as tools for building your own applications.
  933.  
  934. John von Neumann Universal Constructor
  935. Web site: alife.santafe.edu/alife/software/jvn.html
  936. FTP site: alife.santafe.edu/pub/SOFTWARE/jvn/
  937.      The universal constructor of John von Neumann is an extension of the
  938.      logical concept of universal computing machine. In the cellular
  939.      environment proposed by von Neumann both computing and constructive
  940.      universality can be achieved. Von Neumann proved that in his cellular
  941.      lattice both a Turing machine and a machine capable of producing any
  942.      other cell assembly, when fed with a suitable program, can be embedded.
  943.      He called the latter machine a "universal constructor" and showed that,
  944.      when provided with a program containing its own description, this is
  945.      capable of self-reproducing.
  946.  
  947. Swarm
  948. Web site: www.santafe.edu/projects/swarm
  949. FTP site: ftp.santafe.edu/pub/swarm
  950.      The swarm alife simulation kit. Swarm is a simulation environment which
  951.      facilitates development and experimentation with simulations involving
  952.      a large number of agents behaving and interacting within a dynamic
  953.      environment. It consists of a collection of classes and libraries
  954.      written in Objective-C and allows great flexibility in creating
  955.      simulations and analyzing their results. It comes with three (3) demos
  956.      and good documentation.
  957.  
  958.      Swarm 1.0 is out. It requires libtclobjc and BLT 2.1 (both available at
  959.      the swarm site).
  960.  
  961. Alife software kits, applications, etc.
  962.  
  963. These are various applications, software kits, etc. meant for research in
  964. the field of artificial life. Their ease of use will vary, as they were
  965. designed to meet some particular research interest more than as an easy to
  966. use commercial package.
  967.  
  968. BugsX
  969. FTP site: ftp.Germany.EU.net/pub/research/softcomp/Alife/packages/bugsx/
  970.      Display and evolve biomorphs. It is a program which draws the biomorphs
  971.      based on parametric plots of Fourier sine and cosine series and let's
  972.      you play with them using the genetic algorithm.
  973.  
  974. The Cellular Automata Simulation System [New]
  975. Web site: www.cs.runet.edu/~dana/ca/cellular.html
  976.      The system consists of a compiler for the Cellang cellular automata
  977.      programming language, along with the corresponding documentation,
  978.      viewer, and various tools. Cellang has been undergoing refinement for
  979.      the last several years (1991-1995), with corresponding upgrades to the
  980.      compiler. Postscript versions of the tutorial and language reference
  981.      manual are available for those wanting more detailed information. The
  982.      most important distinguishing features of Cellang, include support for:
  983.         o any number of dimensions;
  984.         o compile time specification of each dimension's size; cell
  985.           neighborhoods of any size (though bounded at compile time) and
  986.           shape;
  987.         o positional and time dependent neighborhoods;
  988.         o associating multiple values (fields), including arrays, with each
  989.           cell;
  990.         o associating a potentially unbounded number of mobile agents [
  991.           Agents are mobile entities based on a mechanism of the same name
  992.           in the Creatures system, developed by Ian Stephenson
  993.           (ian@ohm.york.ac.uk).] with each cell; and
  994.         o local interactions only, since it is impossible to construct
  995.           automata that contain any global control or references to global
  996.           variables.
  997.  
  998. dblife & dblifelib
  999. FTP site: ftp.cc.gatech.edu/ac121/linux/games/amusements/life/
  1000.      dblife: Sources for a fancy Game of Life program for X11 (and curses).
  1001.      It is not meant to be incredibly fast (use xlife for that:-). But it IS
  1002.      meant to allow the easy editing and viewing of Life objects and has
  1003.      some powerful features. The related dblifelib package is a library of
  1004.      Life objects to use with the program.
  1005.  
  1006.      dblifelib: This is a library of interesting Life objects, including
  1007.      oscillators, spaceships, puffers, and other weird things. The related
  1008.      dblife package contains a Life program which can read the objects in
  1009.      the Library.
  1010.  
  1011. Drone
  1012. Web site: pscs.physics.lsa.umich.edu/Software/Drone/
  1013.      Drone is a tool for automatically running batch jobs of a simulation
  1014.      program. It allows sweeps over arbitrary sets of parameters, as well as
  1015.      multiple runs for each parameter set, with a separate random seed for
  1016.      each run. The runs may be executed either on a single computer or over
  1017.      the Internet on a set of remote hosts. Drone is written in Expect (an
  1018.      extension to the Tcl scripting language) and runs under Unix. It was
  1019.      originally designed for use with the Swarm agent-based simulation
  1020.      framework, but Drone can be used with any simulation program that reads
  1021.      parameters from the command line or from an input file.
  1022.  
  1023. LEE
  1024. Web site: www-cse.ucsd.edu/users/fil/lee/lee.html
  1025. FTP site: cs.ucsd.edu/pub/LEE/
  1026.      LEE (Latent Energy Environments) is both an Alife model and a software
  1027.      tool to be used for simulations within the framework of that model. We
  1028.      hope that LEE will help understand a broad range of issues in
  1029.      theoretical, behavioral, and evolutionary biology. The LEE tool
  1030.      described here consists of approximately 7,000 lines of C code and runs
  1031.      in both Unix and Macintosh platforms.
  1032.  
  1033. Net-Life & ZooLife
  1034. Web site:www.geocities.com/SiliconValley/Heights/1051**
  1035. FTP site: ftp.coe.uga.edu/users/jae/alife/
  1036. *(netlife-2.0.tar.gz contains both Net-Life and ZooLife)
  1037.      Net-Life is a simulation of artificial-life, with neural "brains"
  1038.      generated via slightly random techniques. Net-Life uses artificial
  1039.      neural nets and evolutionary algorithms to breed artificial organisms
  1040.      that are similar to single cell organisms. Net-life uses asexual
  1041.      reproduction of its fittest individuals with a chance of mutation after
  1042.      each round to eventually evolve successful life-forms.
  1043.  
  1044.      ZooLife is a simulation of artificial-life. ZooLife uses probablistic
  1045.      methods and evolutionary algorithms to breed artificial organisms that
  1046.      are similar to plant/animal zoo organisms. ZooLife uses asexual
  1047.      reproduction with a chance of mutation.
  1048.  
  1049. Tierra
  1050. Web site: www.hip.atr.co.jp/~ray/tierra/tierra.html
  1051. FTP site:alife.santafe.edu/pub/SOFTWARE/Tierra/
  1052. Alternate FTP site: ftp.cc.gatech.edu/ac121/linux/science/biology/
  1053.      Tierra's written in the C programming language. This source code
  1054.      creates a virtual computer and its operating system, whose architecture
  1055.      has been designed in such a way that the executable machine codes are
  1056.      evolvable. This means that the machine code can be mutated (by flipping
  1057.      bits at random) or recombined (by swapping segments of code between
  1058.      algorithms), and the resulting code remains functional enough of the
  1059.      time for natural (or presumably artificial) selection to be able to
  1060.      improve the code over time.
  1061.  
  1062. TIN [New]
  1063. FTP site: ftp.coe.uga.edu/users/jae/alife/
  1064.      This program simulates primitive life-forms, equipped with some basic
  1065.      instincts and abilities, in a 2D environment consisting of cells. By
  1066.      mutation new generations can prove their success, and thus passing on
  1067.      "good family values".
  1068.  
  1069.      The brain of a TIN can be seen as a collection of processes, each
  1070.      representing drives or impulses to behave a certain way, depending on
  1071.      the state/perception of the environment ( e.g. presence of food, walls,
  1072.      neighbours, scent traces) These behaviour process currently are :
  1073.      eating, moving, mating, relaxing, tracing others, gathering food and
  1074.      killing. The process with the highest impulse value takes control, or
  1075.      in other words: the tin will act according to its most urgent need.
  1076.  
  1077. XLIFE
  1078. FTP site: ftp.cc.gatech.edu/ac121/linux/games/amusements/life/
  1079.      This program will evolve patterns for John Horton Conway's game of
  1080.      Life. It will also handle general cellular automata with the orthogonal
  1081.      neighborhood and up to 8 states (it's possible to recompile for more
  1082.      states, but very expensive in memory). Transition rules and sample
  1083.      patterns are provided for the 8-state automaton of E. F. Codd, the
  1084.      Wireworld automaton, and a whole class of `Prisoner's Dilemma' games.
  1085.  
  1086. Autonomous Agents
  1087.  
  1088. This is a collection of software meant for the developement of software
  1089. agents of various sorts. I have given them their own section sense they
  1090. didn't seem to quite make sense in any of the above.
  1091.  
  1092. AgentK
  1093. FTP site: ftp.csd.abdn.ac.uk/pub/wdavies/agentk
  1094.      This package synthesizes two well-known agent paradigms: Agent-Oriented
  1095.      Programming, Shoham (1990), and the Knowledge Query & Manipulation
  1096.      Language, Finin (1993). The initial implementation of AOP, Agent-0, is
  1097.      a simple language for specifying agent behaviour. KQML provides a
  1098.      standard language for inter-agent communication. Our integration (which
  1099.      we have called Agent-K) demonstrates that Agent-0 and KQML are highly
  1100.      compatible. Agent-K provides the possibility of inter-operable (or
  1101.      open) software agents, that can communicate via KQML and which are
  1102.      programmed using the AOP approach.
  1103.  
  1104. Agent, the Perl5 Module [New]
  1105. FTP site: ftp.hawk.igs.net/pub/users/jduncan/modules/Agent/
  1106.      The Agent is a prototype for an Information Agent system. It is both
  1107.      platform and language independent, as it stores contained information
  1108.      in simple packed strings. It can be packed and shipped across any
  1109.      network with any format, as it freezes itself in its current state.
  1110.  
  1111. AGENT TCL
  1112. Web site: www.cs.dartmouth.edu/~agent/
  1113. FTP site: ftp.cs.dartmouth.edu/pub/agents/
  1114.      A transportable agent is a program that can migrate from machine to
  1115.      machine in a heterogeneous network. The program chooses when and where
  1116.      to migrate. It can suspend its execution at an arbitary point,
  1117.      transport to another machine and resume execution on the new machine.
  1118.      For example, an agent carrying a mail message migrates first to a
  1119.      router and then to the recipient's mailbox. The agent can perform
  1120.      arbitrarily complex processing at each machine in order to ensure that
  1121.      the message reaches the intended recipient.
  1122.  
  1123. Aglets Workbench [New]
  1124. Web site: www.trl.ibm.co.jp/aglets/
  1125.      An aglet is a Java object that can move from one host on the Internet
  1126.      to another. That is, an aglet that executes on one host can suddenly
  1127.      halt execution, dispatch to a remote host, and resume execution there.
  1128.      When the aglet moves, it takes along its program code as well as its
  1129.      state (data). A built-in security mechanism makes it safe for a
  1130.      computer to host untrusted aglets. The Java Aglet API (J-AAPI) is a
  1131.      proposed public standard for interfacing aglets and their environment.
  1132.      J-AAPI contains methods for initializing an aglet, message handling,
  1133.      and dispatching, retracting, deactivating/activating, cloning, and
  1134.      disposing of the aglet. J-AAPI is simple, flexible, and stable.
  1135.      Application developers can write platform-independent aglets and expect
  1136.      them to run on any host that supports J-AAPI.
  1137.  
  1138. Ara [New]
  1139. Web site: www.uni-kl.de/AG-Nehmer/Ara/
  1140.      Ara is a platform for the portable and secure execution of mobile
  1141.      agents in heterogeneous networks. Mobile agents in this sense are
  1142.      programs with the ability to change their host machine during execution
  1143.      while preserving their internal state. This enables them to handle
  1144.      interactions locally which otherwise had to be performed remotely.
  1145.      Ara's specific aim in comparison to similar platforms is to provide
  1146.      full mobile agent functionality while retaining as much as possible of
  1147.      established programming models and languages.
  1148.  
  1149. JATLite [New]
  1150. Web site: java.stanford.edu/java_agent/html/
  1151.      ATLite is providing a set of java packages which makes easy to build
  1152.      multi-agent systems using Java. JATLite provides only light-weight,
  1153.      small set of packages so that the developers can handle all the
  1154.      packages with little efforts. For flexibility JATLite provides four
  1155.      different layers from abstract to Router implementation. A user can
  1156.      access any layer we are providing. Each layer has a different set of
  1157.      assumptions. The user can choose an appropriate layer according to the
  1158.      assumptions on the layer and user's application. The introduction page
  1159.      contains JATLite features and the set of assumptions for each layer.
  1160.  
  1161. Java(tm) Agent Template
  1162. Web site: cdr.stanford.edu/ABE/JavaAgent.html
  1163.      The JAT provides a fully functional template, written entirely in the
  1164.      Java language, for constructing software agents which communicate
  1165.      peer-to-peer with a community of other agents distributed over the
  1166.      Internet. Although portions of the code which define each agent are
  1167.      portable, JAT agents are not migratory but rather have a static
  1168.      existance on a single host. This behavior is in contrast to many other
  1169.      "agent" technologies. (However, using the Java RMI, JAT agents could
  1170.      dynamically migrate to a foriegn host via an agent resident on that
  1171.      host). Currently, all agent messages use KQML as a top-level protocol
  1172.      or message wrapper. The JAT includes functionality for dynamically
  1173.      exchanging "Resources", which can include Java classes (e.g. new
  1174.      languages and interpreters, remote services, etc.), data files and
  1175.      information inlined into the KQML messages.
  1176.  
  1177. Khepera Simulator
  1178. Web site: wwwi3s.unice.fr/~om/khep-sim.html
  1179.      Khepera Simulator is a public domain software package written by
  1180.      Olivier MICHEL during the preparation of his Ph.D. thesis, at the
  1181.      Laboratoire I3S, URA 1376 of CNRS and University of Nice-Sophia
  1182.      Antipolis, France. It allows to write your own controller for the
  1183.      mobile robot Khepera using C or C++ languages, to test them in a
  1184.      simulated environment and features a nice colorful X11 graphical
  1185.      interface. Moreover, if you own a Khepera robot, it can drive the real
  1186.      robot using the same control algorithm. It is mainly destinated to
  1187.      researchers studying autonomous agents.
  1188.  
  1189. Penguin!
  1190.  
  1191. FTP site:
  1192. www.perl.org/CPAN/modules/by-category/23_Miscellaneous_Modules/Penguin/FSG/
  1193.      Penguin is a Perl 5 module. It provides you with a set of functions
  1194.      which allow you to:
  1195.         o send encrypted, digitally signed perl code to a remote machine to
  1196.           be executed.
  1197.         o receive code and, depending on who signed it, execute it in an
  1198.           arbitrarily secure, limited compartment.
  1199.      The combination of these functions enable direct perl coding of
  1200.      algorithms to handle safe internet commerce, mobile
  1201.      information-gathering agents, "live content" web browser helper apps,
  1202.      distributed load-balanced computation, remote software update, distance
  1203.      machine administration, content-based information propagation,
  1204.      Internet-wide shared-data applications, network application builders,
  1205.      and so on.
  1206.  
  1207. SimRobot [New]
  1208. Web site: www.informatik.uni-bremen.de/~simrobot/
  1209. FTP site: ftp.uni-bremen.de/pub/ZKW/INFORM/simrobot/
  1210.      SimRobot is a program for simulation of sensor based robots in a 3D
  1211.      environment. It is written in C++, runs under UNIX and X11 and needs
  1212.      the graphics toolkit XView.
  1213.         o Simulation of robot kinematics
  1214.         o Hierarchically built scene definition via a simple definition
  1215.           language
  1216.         o Various sensors built in: camera, facette eye, distance
  1217.           measurement, light sensor, etc.
  1218.         o Objects defined as polyeders
  1219.         o Emitter abstractly defined; can be interpreted e.g. as light or
  1220.           sound
  1221.         o Camera images computed according to the raytracing or Z-buffer
  1222.           algorithms known from computer graphics
  1223.         o Specific sensor/motor software interface for communicating with
  1224.           the simulation
  1225.         o Texture mapping onto the object surfaces: bitmaps in various
  1226.           formats
  1227.         o Comprehensive visualization of the scene: wire frame w/o hidden
  1228.           lines, sensor and actor values
  1229.         o Interactive as well as batch driven control of the agents and
  1230.           operation in the environment
  1231.         o Collision detection
  1232.         o Extendability with user defined object types
  1233.         o Possible socket communication to e.g. the Khoros image processing
  1234.           software
  1235.  
  1236. TclRobots
  1237. FTP site: ftp.neosoft.com/pub/tcl/alcatel/code/
  1238.      TclRobots is a programming game, similar to 'Core War'. To play
  1239.      TclRobots, you must write a Tcl program that con- trols a robot. The
  1240.      robot's mission is to survive a battle with other robots. Two, three,
  1241.      or four robots compete during a battle, each running different programs
  1242.      (or pos- sibly the same program in different robots.) Each robot is
  1243.      equipped with a scanner, cannon, drive mechanism. A single match
  1244.      continues until one robot is left running. Robots may compete
  1245.      individually, or combine in a team ori- ented battle. A tournament can
  1246.      be run with any number of robot programs, each robot playing every
  1247.      other in a round- robin fashion, one-on-one. A battle simulator is
  1248.      avail- able to help debug robot programs.
  1249.  
  1250.      The TclRobots program provides a physical environment, imposing certain
  1251.      game parameters to which all robots must adhere. TclRobots also
  1252.      provides a view on a battle, and a controlling user interface.
  1253.      TclRobots requirements: a wish interpreter built from Tcl 7.4 and Tk
  1254.      4.0.
  1255.  
  1256. The Tocoma Project [New]
  1257. Web site: www.cs.uit.no/DOS/Tacoma/index.html
  1258.      An agent is a process that may migrate through a computer network in
  1259.      order to satisfy requests made by clients. Agents are an attractive way
  1260.      to describe network-wide computations.
  1261.  
  1262.      The TACOMA project focuses on operating system support for agents and
  1263.      how agents can be used to solve problems traditionally addressed by
  1264.      operating systems. We have implemented a series of prototype systems to
  1265.      support agents.
  1266.  
  1267.      TACOMA Version 1.2 is based on UNIX and TCP. The system supports agents
  1268.      written in C, Tcl/Tk, Perl, Python, and Scheme (Elk). It is implemented
  1269.      in C. This TACOMA version has been in public domain since April 1996.
  1270.  
  1271.      We are currently focusing on heterogeneity, fault-tolerance, security
  1272.      and management issues. Also, several TACOMA applications are under
  1273.      construction. We implemented StormCast 4.0, a wide-area network weather
  1274.      monitoring system accessible over the internet, using TACOMA and Java.
  1275.      We are now in the process of evaluating this application, and plan to
  1276.      build a new StormCast version to be completed by June 1997.
  1277.  
  1278. VWORLD
  1279. Web site: www.ai.uga.edu/students/jae/projects.html#vworld
  1280.      Vworld is a simulated environment for research with autonomous agents
  1281.      written in prolog. It is currently in something of an beta stage. It
  1282.      works well with SWI-prolog, but should work with Quitnus-prolog with
  1283.      only a few changes. It is being designed to serve as an educational
  1284.      tool for class projects dealing with prolog and autonomous agents. It
  1285.      comes with three demo worlds or environements, along with sample agents
  1286.      for them.
  1287.      There are two versions now. One written for SWI-prolog and one written
  1288.      for LPR-prolog. Documentation is roughly done (with a student/professor
  1289.      framework in mind), and a graphical interface is planned.
  1290.  
  1291. AI & Alife related newsgroups
  1292.  
  1293. These newgroups are not Linux specific. But they are good resources for
  1294. anyone working in artificial intelligence or artficial life. If you can't
  1295. access these newsgroups, many of their FAQs are available at:
  1296. http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/ai/top.html
  1297.  
  1298.    * comp.ai
  1299.    * comp.ai.edu
  1300.    * comp.ai.genetic
  1301.    * comp.ai.neural-nets
  1302.    * comp.ai.vision
  1303.    * comp.ai.fuzzy
  1304.    * comp.ai.games
  1305.    * comp.ai.jair.announce
  1306.    * comp.ai.jair.papers
  1307.    * comp.ai.nat-lang
  1308.    * comp.ai.nlang-know-rep
  1309.    * comp.ai.philosophy
  1310.    * comp.ai.shells
  1311.    * comp.ai.alife
  1312.    * comp.ai.doc-analysis.misc
  1313.    * comp.ai.doc-analysis.ocr
  1314.    * comp.lang.prolog
  1315.    * comp.lang.lisp
  1316.    * alt.irc.bots
  1317.  
  1318. AI & Alife resource links
  1319.  
  1320. These are a few of the many AI and Alife sites out there. These sites are
  1321. good places to start hunting for more information or for finding software.
  1322. I'll be adding more links to this list soon, as well as organizing it
  1323. better. These links are not Linux specific, but I wanted to include them to
  1324. provide a jump off point to the huge amount of info related to these topics
  1325. located on the web.
  1326.  
  1327. AI & Alife archives, software resources, etc.
  1328.  
  1329.    * alife.santafe.edu/~joke/zooland/-ZooLand Artificial Life Resources
  1330.    * www.neuronet.ph.kcl.ac.uk/neuronet/software/software.html-NEuroNet -
  1331.      ANN software
  1332.    * www.cs.cmu.edu/Web/Groups/AI/html/repository.html-CMU Artificial
  1333.      Intelligence Repository
  1334.    * ftp.io.com/pub/genetic-programming/-John Koza's Genetic Programming
  1335.      archive.
  1336.  
  1337. AI/Alife Research, Bibliographies, Books, etc.
  1338.  
  1339.    * www.mcs.net/~jorn/html/ai.html-Outsider's Guide to AI [New]
  1340.    * www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/clm.html-Common
  1341.      Lisp Book
  1342.    * www.elwoodcorp.com/alu/table/contents.htm-The Association of Lisp Users
  1343.      [New]
  1344.    * www.cs.indiana.edu/scheme-repository/home.html-Scheme repository
  1345.    * agents.www.media.mit.edu/groups/agents/-MIT Media Lab, Autonomous
  1346.      Agents Group
  1347.    * www.aic.nrl.navy.mil/-Navy Center for Applied Research in Artificial
  1348.      Intelligence
  1349.    * intranet.ca/~sshah/waste/waste.html-WASTE (AI Contest)
  1350.    * www.cs.washington.edu/research/jair/home.html-Journal of Artificial
  1351.      Intelligence Research
  1352.    * www.cs.ucl.ac.uk/misc/ai/-University of London's AI Resource Page
  1353.    * www.cris.com/~swoodcoc/ai.html -Artificial Intelligence in Games
  1354.    * www.cs.umbc.edu/agents/agentnews/-AgentNews Webletter
  1355.    * www.agent.org-Agent Society Home Page [New]
  1356.    * drogo.cselt.stet.it/fipa/-FIPA Foundation for Intelligent Physical
  1357.      Agents [New]
  1358.    * www.robotmag.com/-Robot Magazine [New]
  1359.    * alife.santafe.edu/~joke/encore/-ENCORE-The Hitch-Hikers Guide to
  1360.      Evolutionary Computation
  1361.    * alife.santafe.edu-Santafe's Alife page
  1362.    * www.krl.caltech.edu/~brown/alife/-Alife FAQ
  1363.    * www.cogs.susx.ac.uk/users/ezequiel/alife-page/alife.html-ALife
  1364.      Bibliography
  1365.    * complex.csu.edu.au/complex/-Complex Systems Information Network
  1366.    * www.geneticprogramming.com/-The Genetic Programming Notebook [New]
  1367.    * gracco.irmkant.rm.cnr.it/luigi/lupa_algames.html-The Artificial Life
  1368.      Games Homepage
  1369.    * www.krl.caltech.edu/~charles/alife-game/-Project: Von Neumann
  1370.    * gal4.ge.uiuc.edu/illigal.home.html-IlliGAL Home Page (GA's)
  1371.    * isl.msu.edu/GA/-MSU GARAGe Home Page (GA's)
  1372.    * www.aracnet.com/~wwir/NovaGenetica/-Nova Genetica (GA's)
  1373.  
  1374.