AndroMeta
Category Cross-Omics>Agent-Based Modeling/Simulation/Tools; Intelligent Software>Neural Network Systems/Tools; Intelligent Software>Genetic Algorithm Systems/Tools; Intelligent Software>Genetic Programming Systems/Tools
Abstract AndroMeta is a software platform for technical and scientific computing which spans a diverse range of fields:
From machine learning and artificial intelligence (AI) in general, distributed and concurrent computing, language design, to ‘modeling and simulation’ -- all of which are unified into an advanced yet easy-to- use C++ framework.
The constructs that make up AndroMeta’s specialized higher-level functionality are all made available as general-purpose classes. In this way, while AndroMeta’s focuses on technical computing, it may prove to be a valuable tool for ‘general programming’ situations as well.
The AndroMeta framework is intended to be accessible to C++ users of all levels -- one does Not have to be a C++ expert to make nearly full use of the framework, while at the same time it provides enough flexibility for advanced applications.
Users may choose to use a multitude of its features or just a few in isolation.
AndroMeta is a multi-purpose software system. Some of its intended uses include:
1) ‘Agent-based modeling’, discrete-event simulation, and ‘hybrid simulation’. Coding may be done in C++ or in MML (Meta Modeling Language) -- an easy-to-use language designed specifically for ‘modeling and simulation’.
2) Advanced, yet easy-to-use ‘network constructs’ for building client/server applications, distributed objects, and peer-to-peer systems.
3) Simplified 3D visualization (underlying implementation uses OpenGL and the OGRE graphics engine).
4) High-precision numeric’s (implemented with the GMP and MPFR libraries).
5) Language design: AndroMeta eases some of the difficulties associated with implementing a ‘domain-specific language’.
6) Dynamic code: AndroMeta includes an ‘advanced system’ for creating and executing/interpreting code at run-time.
7) AndroMeta uses ‘advanced artificial intelligence’ (AI) techniques to provide the ability to evolve code based on supplied ‘training data’ or as part of larger program which judges its running performance. Similarly, ‘parameter optimization’ is also supported.
8) AndroMeta features an advanced ‘graph-based concurrency’ system which allows an application to easily take advantage of the processing power of multiple cores/CPUs.
AndroMeta Machine Learning and General AI --
‘Machine learning’ and artificial intelligence (AI) in general are major drivers in AndroMeta’s development.
Building on AndroMeta’s core foundation, MAgent provides the functional backbone for much of AndroMeta’s AI capabilities, adding sophisticated algorithms based on ‘neural networks’ (NN), ‘genetic algorithms’ including ‘genetic programming’, and more.
Central to this effort, is AndroMeta’s ability to “evolve” M code. Using ‘supervised learning’, MAgent is supplied a training set of data, a grammar which restricts and characterizes the ‘evolved code’, and a number of parameters which control the ‘evolutionary process’.
MAgent also supports code evolution via ‘unsupervised learning’. Usually in this context, the code to be evolved is part of a larger M program.
In each iteration, the program is passed the generated code “module”, which it executes in the context of the larger program.
Here the program judges its performance in any way appropriate then passes back to MAgent a ‘metric measuring’ the generated module’s “error.”
The evolutionary process may be configured such that it halts upon achieving a desired ‘target error’ or after a timeout is reached.
Similar to ‘code evolution’, AndroMeta provides ‘parameter optimization’ facilities through MOptRun or as integrated into MML.
An optimization run seeks to minimize or maximize a metric, which like unsupervised code evolution, is an ‘application-specific judgement’ of its running performance given the iteration’s input parameters.
MAgent provides a number of other features, some of which are yet to be fully developed, including:
1) The ability to reduce ‘mathematical functions’ to simpler form.
2) Knowledge-base (KB) support.
3) MAgent may be optionally configured so that some of its processing runs through a local AndroMeta peer-to-peer network.
AndroMeta includes a variety of additional features, including:
1) A mechanism for storing/restoring objects to MVar (MVar is a recursive variant type for holding numeric’s, strings, and more.
Each Mvar has a specific dynamic type (its "head") and may hold other Mvar's recursively through its map and vector/list. MVar is used throughout the framework for a large variety of purposes).
2) Precise/exact math routines; 3) Extensive ‘exception classes’, exception handling, and exception safe code.
4) Message buffer and message handling classes; 5) A Mathematica interface;
6) Random number generation and probability distributions;
7) MProc’s as an advanced means to perform ‘parallel AI search’; and
8) An experimental application “Metamodel” with included source code that uses the MAgent in ‘supervised learning’ mode to derive relationships and functions from visual data as part of a larger interpreted MML program.
Many of the framework classes were designed from the beginning to be used in the context of threading while finer-grained operations such as operations on types, for performance reasons, do Not have thread- safety built in.
Operations such as submitting a message to a MMessageBuffer (in conjunction with MMessageHandler) or queueing an MProc to a task are inherently thread-friendly -- in fact all methods on MMessageBuffer and MProc are completely thread-safe so that users need Not worry about wrapping calls to such classes with Mutexes.
Another aspect in which the framework is thread-friendly is with calls which are required to be executed on the main thread, e.g.: GUI / OpenGL functions. The framework uses events to ‘transparently defer’, as needed, such calls to the main thread.
MML (Meta Modeling Language) --
Though Not described in detail in this abstract, MML is a substantial feature of AndroMeta. MMLEntity and other MML-prefixed classes provide a sort of ‘sub-framework’ that draws upon the larger AndroMeta framework.
MML is best learned by reading the ‘AndroMeta User’s Guide’ (located on the manufacturer's web-site) and exploring and interactively experimenting with the numerous examples included in the AndroMeta distribution.
MML provides a number of specialized and general-purpose scenes. Some are implemented in OpenGL directly but the more visually impressive ones use the ‘OGRE 3D Graphics Engine’ for visualization.
Scene animation may be captured and encoded to MPEG. The scenes provide an easy-to-use interface for specifying/manipulating objects, configuring scene details, dynamic plotting, event-based GUI controls, and keyboard/mouse events.
System Requirements
AndroMeta (pronounced like Andromeda) is available for Mac OS X, 64- bit (x86_64) Linux, and 32-bit (x86) Linux.
Manufacturer
- AndroMeta LLC
- P.O. Box 615
- Los Alamos, NM 87544
- USA
- aminfo@andrometa.net
Manufacturer Web Site AndroMeta
Price Contact manufacturer.
G6G Abstract Number 20451
G6G Manufacturer Number 104085




