Your ad can be shown here!
 
  Help
AI links
  :: main hierarchy ::
• Agent Software
• Artificial Life
• Cellular Automata
• Cognitive Science
• Companies
• Computer Vision
• Data Mining
• Decision Support
• Expert Systems
• Fuzzy Logic
• Game AI
• General Resources
• Genetic Algorithms
• Handwriting Recognition
• Information Retrieval
• Intelligent Agents
• Intelligent Interfaces
• Knowledge Management
• LISP
• Machine Learning
• Mobile Agents
• Nanotechnology
• Natural Language Understanding
• Neural Networks
• Online Books
• Philosophy
• Programming
• Prolog
• Robot Builders
• Robotics
• Speech Recognition
• Virtual Pets
• Web Agents
 
aboutAI.net Weekly Features
    OpenAI
OpenAI
An open source approach to creating advanced tools for Artificial Intelligence development.
  Related Resources
• Past issues of weekly features
• AI in Computer Games
• AI Sourcebook, Part I: Neural Networks
 
 Elsewhere on the Web
• Nevrax.org
• <Sluggish Downloads
 
 

Open source philosophy is slowly entering the AI world. Proprietary, closed software solutions ruled this area for a long time, but the success of Linux and other similar projects convinced people that the open source approach is the way to go. I already described some really unique and interesting AI related projects that you can join. What follows is a description of the <OpenAI project (mirror site on Sourceforge), focused on creating configuration and communication standards for both new and traditional AI tools, some of which are described below. The implementations created by the OpenAI team will be done in both Java and C++. The project is in its infancy stages and the team is looking for core developers, application developers who can make use of the OpenAI Engine and those who are just interested and would like to contribute.

Now for a description of the tools that (so far) make up the OpenAI Engine:

Neural Network

The OpenAI neural network architecture is very abstract. It's essentially just a way of allowing modular learning algorithms, input functions, transfer functions, etc. to be assigned to the network and layers. The primary goal was to not constrain the user/programmer in any way. However, it's still being tested and improved: your feedback will help further development.

The following items are completely modular with an example in parentheses:

  • Architecture (MultiLayerFeedForward)
  • Error Function (MeanSquareError)
  • Input Function (DotProduct)
  • Learning Algorithm (Back Propagation)
  • Transfer Function (Sigmoid)

    Other features:

  • Both configuration and persistence of the Neural Network will be realized through the use of XML.
  • The Neural Network has a CORBA interface that allows creation, configuration, iteration and retrieval of results.

    Finite State Machine

    While the Finite State Machine may be a simple concept, it is a pretty powerful and useful one. OpenAI implementation allows developers to extend the States and Transitions to suit their needs. In addition, and event-based notification system gives the ability to track changes in State and changes to the FSM's configuration.

    Applications for this package would include creating parsers for formal languages, itineraries for mobile agents, or wizard-like user interfaces that advance according to the user's input. One of the commercial products already makes use of this wizard capability.

    Core Functionality:

  • Machine - The FSM itself. You set the start state for the Machine and give it inputs to determine the next State.
  • State - A literal state for the Machine. The API provides a method to add transitions to other States given that a particular Condition is met.
  • Condition - A condition that must be met to transition the Machine from one State to another.

    Extensions:

    In addition to the Core, the API gives the developer the ability to monitor both Machine- and State-level events. These events include the entering and exiting of a state, the changing of the start state, and the changing of the flag that indicates that an end state has been reached.
    The FSM API also provides some common Conditions:

  • AnyCondition - Will match any input into the machine.
  • BooleanCondition - Will match a boolean passed into the machine if the desired value of true of false is met.
  • ComparableCondition & EqualsCondition - Two flavors of testing to see if a particular input into the machine is equal to the desired object.

    Genetic Algorithm

    The Genetic Algorithm library is intended to be an easily extensible object-oriented implementation requiring as little programming for the algorithm as possible yet still providing flexibility, power, and performance.
    The Genetic Algorithm allows for multiple 'Worlds' to be created and evolved. Each world is a solution model and houses the population objects that make up the current solution to the problem. The population objects can be constrained with different population criteria to choose which groups are chosen for survival.

    Intelligent Mobile Agent System

    The agent system is still in development but the specifications are available for most of the system.
    The agents are threads, and will be mobile. The agents allow for different decision mechanisms (finite state machine, neural network, Bayesian network, etc.). The system will support encryption of different levels: SSL and possibly kerberos authentication will be used. The agents will have the ability to "find each other" and communicate either directly or through a shared messaging system.
    The system will allow for survival of agents across reboots and network difficulties. Persistence will be done through XML or an agent specific markup language.

    That's about it for our first look at the OpenAI project. For more information, several mailing lists/IRC channels listed at the project's home page are bringing developers together: join them for a productive discussion and exchange of fresh ideas. The development team can be contacted via e-mail at [email protected]

    Talk about AI-related topics at Artificial Intelligence Bulletin Board.

    Want more timely information and resources related to AI? Subscribe to our FREE newsletter!

    Got some specific AI related questions or need consulting services? Contact your webmaster, Denis Susac.

    Talk with people who share your interests...

    Previous Features

    S p o n s o r e d    b y...

    Buy the ER1 Robot!

  •