The University of Texas at Austin

UTCS Artificial Intelligence

Labs Projects People Publications Talks Software Courses Demos

Intelligent Robotics

Algernon
Access-Limited Logic is a language for representing knowledge in the computer, and a method for drawing conclusions and answering questions from that knowledge. Previous languages and methods faced an apparently unsolvable conflict between three important values: (1) having a clear and precise meaning; (2) being computationally efficient; and (3) being able to draw all correct conclusions even...
QSIM
The world is infinite, continuous, and continually changing over time. Human knowledge and human inference abilities are finite, apparently symbolic, and therefore incomplete. Nonetheless, people normally reason quite effectively about the physical world. Models of particular systems or mechanisms play an important role in this capability. In service of a task such as diagnosis or design, simula...
QPC: Qualitative Process Compiler
The latest release includes Algernon 1.3.3 but not QSIM. QPC requires QSIM

Knowledge Representation & Reasoning

Component Library
The cornerstone of our approach to building Knowledge Systems is the assembly of knowledge bases from reusable components. Each component represents an entity, event, role or property. By instantiating and combining these components, complex representations can be built simply. For an overview of the approach, see our AAAI-97 paper ("Building Concept Representations from Reusable Components") and ...
KM: The Knowledge Machine
To encode our knowledge bases, we use the KM knowledge representation and reasoning system. KM is a powerful, frame-based language with clear first-order logic semantics. It contains sophisticated machinery for reasoning, including selection by description, unification, classification, and reasoning about actions using a situations mechanism. KM is implemented in highly portable common Lisp. Peter...

Machine Learning

ACCEL
ACCEL is a general purpose system that uses abductive reasoning to construct explanations for observed intelligent phenomena. These explanations are then used to avoid redundant work in future problem solving episodes. We define an abductive explanation as a consistent set of assumptions which when combined with background knowledge, logically entails a set of observations. ACCEL has been constru...
NEITHER
NEITHER is a propositional theory refinement system that will modify a incomplete or incorrect rule base so as to make it consistent with a set of input training examples. NEITHER has been extended to revise both Horn clauses and M-of-N rules. An iterative greedy method is used to efficiently compute repairs. NEITHER has also been used as part of separate system, ASSERT, which performs student m...
FORTE
FORTE (First Order Revision of Theories from Examples) is a machine learning system for modifiying a first-order Horn-clause domain theory to fit a set of training examples. FORTE uses a hill-climbing approach to revise theories. It identifies possible errors in an input theory and calls on a library of operators to develop possible revisions. These operators are constructed from methods such as p...
CHILLIN
CHILLIN is an ILP system which integrates top-down search (a la FOIL), bottom-up search (a la GOLEM) and predicate invention (a la CHAMP). It has been used as the induction algorithm underlying the CHILL natural-language parser learning system. For more information and to download the system, click here.
CHILL
CHILL (Constructive Heuristics Induction for Language Learning) is a general approach to the problem of inducing natural language parsers. Given a suitably annotated corpus, CHILL produces a parser for mapping subsequent sentences into representations. It treats parser induction as the problem of learning rules to control the actions of a shift-reduce parser expressed as a Prolog program. Control ...
FOIDL
FOIDL is an ILP system for learning first-order decision lists (ordered lists of clauses each ending in a cut). It has been used to obtain the current best results on learning the past-tense of English. For more information, and to download both Prolog and Common Lisp code, click here.
DOLPHIN
DOLPHIN is a system which combines Inductive Logic Programming (i.e. FOIL) and Explanation-Based Learning (i.e. EBG) to learn search-control rules for eliminating backtracking in Prolog programs. For more information and to download the system, click here.
RAPIER
RAPIER is a bottom-up inductive learning system for learning information extract rules. It has been tested on several domains and performs comparably to or slightly better than other recent learning system for this task. Code in C++ can be downloaded from here.
BETH
An ILP system that integrates traditional top-down and bottom-up approaches to combine the strengths of each and eliminate the weaknesses of both. For more information, on downloading and using the system, see the Beth Manual.
ML Programs
A set of standard inductive classification algorithms and software for automated experimentation and system comparison written in Common Lisp. Download from here
ELIXIR
A library for writing wrappers in Java. Download from here.

Neural Networks

MIR Sentence Processing Package
The MIR Sentence Processing package contains the C source code for the MIR system, as well as a selection of scripts with the relevant training and testing data. MIR has been designed for rapid prototyping of typical architectures used in NLP research such as SRN and SOM which depend heavily on (one or more) lexicons, and can be easily extended to handle any other algorithms the user may be i...
SPEC
The SPEC package contains the C-code and data for training and testing the SPEC system for processing complex sentences with embedded clauses. The full SPEC system consists of an SRN parser, RAAM stack, and feed-forward Segmenter networks (the software also supports experiments with a single SRN parser alone). It includes a "real-time" X11(R5) graphics display for visualization and debugging and r...
NEAT C++ Original
The NEAT package contains source code implementing the NeuroEvolution of Augmenting Topologies method. The source code is written in C++. NEAT is a method for evolving speciated neural networks of arbitrary structures and sizes. NEAT leverages the evolution of structure to make neuroevolution more efficient. For more information on NEAT, see our paper on NEAT or the Neuroevolution page. Th...
NEAT Java (JNEAT)
The JNEAT package contains Java source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT C++ package). It includes a nice GUI (see screenshots ), and implementations of experiments for XOR and 3-bit parity. For answers to common questions, refer to our FAQ . JNEAT was written by Ugo Vierucci based on the original C++ package by Kenneth Stanley. Please direct b...
NEAT C++ for Microsoft Windows
The Windows NEAT package contains C++ source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT package above). It includes an animated demo task and a precompiled executable that runs under Windows. The included task is a minesweeper problem in which sweepers have to cover as much area as possible in a finite amount of time (see screenshot ). For answers to ...
TEAM
The TEAM package contains C++ implementations of both EuA (The Eugenic Algorithm) and TEAM (The Eugenic Algorithm with Modeling), two algorithms for evolving binary chromosomes. For details of the TEAM algorithm, please read our paper on TEAM. Included are several sample experiments, as well as instructions for writing new chromosome evaluation functions. Please direct questions, comments, etc. ...
DISLEX
This package contains the C-code and data for training and testing the DISLEX model of the lexicon, which is also part of the DISCERN story processing system. DISLEX consists feature maps for lexical symbols and of word meanings, and associative connections between them that translate between symbols and meanings. DISLEX includes a "real-time" X11 graphics display for visualization and debugging a...
DISCERN
DISCERN is a large, modular neural network system for reading, paraphrasing and answering questions about stereotypical (script-based) stories. A precis of this book and a short summary paper should give you a quick overview of this research. To get an idea what the DISCERN programs are like (without having to first port them), take a look at the on-line demo. It runs remotely on cascais.cs.ut...
PROC
The PROC package contains the C-code and data for training and testing the story processing modules of the DISCERN system. PROC is trained to read and paraphrase script-based stories and answer questions about them. It includes a "real-time" X11(R5) graphics display for visualization and debugging and routines for collecting performance statistics throughout training and testing. For more details...
HFM
The HFM package contains the C-code and data for training and testing the HFM memory organization and hierarchical classification model. HFM consists of a pyramid of feature maps that self-organize according to the hierarchical taxonomy of the data. It was developed as the episodic memory organization for the DISCERN story processing system but could be used in other domains as well. HFM includes ...
FGREPNET
The FGREPNET package contains the C-code and data for training and testing an FGREP network in developing distributed representations for words in the sentence case-role assignment task. It includes a "real-time" X11(R5) graphics display for visualization and debugging and routines for collecting performance statistics throughout training and testing. For more details, see the Subsymbolic NLP boo...
LISSOM
The LISSOM package contains the C++, Python, and Scheme source code and examples for training and testing firing-rate LISSOM models, specifically RF-LISSOM, CRF-LISSOM, and HLISSOM. These self-organizing models support detailed simulations of the development and function of the mammalian visual system. The simulator includes a graphical user interface (GUI), a command language for scripts,...
SOFM
The SOFM package contains C- and TK/TCL-code (integrated through SWIG) for the standard feature map algorithm for forming a map of a set of n-dimensional vectors. Its primary use is to allow visualization of the clusters formed by the self-organizing process by labeling the map units with the labels for the vectors. Versions: v1.0 10/3/91 risto - HP Starbase graphics version (called ...
JavaSANE
The JavaSANE package contains the source code for the Hierarchical SANE system, based on SANE-C, but rewritten extensively in Java. The JavaSANE version is designed especially to make it possible to apply SANE to new tasks with minimal effort. It is also intended to be platform-independent and reasonably efficient implementation of SANE. Other revisions (from SANE-C) include more documentation a...
SANE-C
The SANE-C package contains the source code for the Hierarchical SANE system, written in C. This package has been rewritten in Java and extensively revised as the JavaSANE package; it is recommended that JavaSANE is used instead of SANE-C, which is mostly research code. SANE is designed as an efficient method for forming neuro-control networks in reinforcement learning tasks. For more details o...
Polebalancing
This simulator contains the code used to compare (neuron-level) SANE to one- and two-layer adaptive heuristic critics in the inverted pendulum problem. The code for the single-layer Adaptive Heuristic Critic was adapted from Rich Sutton's pole-balancing simulator. The code for the two-layer AHC was adapted from Charles Anderson's pole simulator. Codes for all three methods are included in th...
ESP C++
The ESP package contains the source code for the Enforced Sup-Populations system written in C++. ESP is an extension to the SANE algorithm that segregates the neurons into sub-populations, one for each hidden unit in the networks being evolved. This allows neuron specializations to form more rapidly through constrained mating and enables the system to evolve recurrent networks. This packa...
SIGNALSIM
The SignalSim Spiking Neuron package is a Tcl/Tk GUI built on top of an event-driven simulator of an interconnected network of spiking neurons. The current implementation uses the TCL8.3 and TK8.3 libraries (for more information on the release of TCL/TK8.3, see the Scriptics home page).
PGLISSOM
This package is a simulator for the PGLISSOM model of perceptual grouping and self-organization in the visual cortex. The PGLISSOM package is mainly written in C++, but it also contains C, Tcl/Tk, Perl, shell scripts, and octave (matrix language) code for data analysis and visualization. The README file included in the package describes the package in detail. For a formal description of the PG...
ESP JAVA 1.1
The ESP package contains the source code for the Enforced Sup-Populations system written in Java. This package is a nearly a direct port of the ESP C++ package available on this page. It should be easily portable although C++ is approximately 2.5 times faster. Version 1.1 fixes some bugs with recurrent networks and adds some command line options.
NEAT Matlab
The Matlab NEAT package contains Matlab source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT C++ package). It includes an implementation of the XOR experiment. For answers to common questions, refer to our FAQ . Matlab NEAT was written by Christian Mayr based on the original C++ package by Kenneth Stanley. Please direct bug reports to matlab_neat@web.de. Pl...
NEAT Delphi
The Delphi NEAT package contains Delphi source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT C++ package). It includes implementations of experiments for XOR, pole balancing, artificial ant, obstacle avoidance, and symbolic regression. Windows executables are included with animated demos for each experiment. For more information and screenshots of Delphi NEAT,...
NEAT C#
The SharpNEAT package contains C# source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT C++ package). It includes implementations of experiments for XOR and predator/prey. A Windows executable is included. For more information please visit Colin Green's SharpNEAT Page. For answers to common questions about the NEAT method, refer to our NEAT Users Page . Sha...
NEAT: ANJI (Another NEAT Java Implementation)
The ANJI package contains Java source code for the NeuroEvolution of Augmenting Topologies method (see the original NEAT C++ package). Note that ANJI is not based direcly on Kenneth Stanley's original source code so it may differ in some respects. It includes implementations of experiments for XOR and Tic Tac Toe. For answers to common questions, refer to our FAQ . ANJI was written by Derek Ja...
OpenNERO
OpenNERO is a general research and education platform for artificial intelligence. The platform is based on a simulation and graphical display of a 3-D physical world that includes multiple agents with embedded sensors and effectors and multiple objects. The software also includes tools for defining and manipulating the environment, the task, and the agent algorithms. The OpenNERO software envir...

Learning Agents

Keepaway player framework source code, version 0.6
The Keepaway player framework is an implementation of all the low- and mid-level keepaway behaviors described in the publications above. The intended purpose of this code is to allow other researchers to compare different machine learning techniques on a common benchmark platform. More details about the framework, along with current benchmark results, can be found in the following paper: Ke...
2005 TacTex agent binary
Our agent from the 2005 TAC SCM competition is available for download. The current download is a binary-only version of the complete agent that ran in the finals. Source code and the tools used to adapt the agent based on past games are not included, but may be released in the future. For agent parameters based on analyzing past games, the values resulting from the final day of the 2005 competitio...
2004 TacTex agent binary
This is the binary version of our 2004 TAC SCM agent.