Configuration covers the creation of a final product or system by adding and/or adjusting components. Finding the right set of components and their adjustments define the configuration of a system. At Daxtron Labs, we have developed a modular system development algorithm called CEMA.
In
CEMA systems are defined by three elements: resources, modules, and problems.
CEMA constructs systems to solve problems by using a model called "consuming producers." The pieces it uses are called "modules." Modules consume some set of products and produce some other set of products. CEMA's goal is to produce a set of products from an initial set of resources using an available set of modules. To achieve this goal CEMA rapidly searches the space of possible solutions, focusing on resources that are needed and modules that can produce them. The key to this process is that it is very generic in nature; resources can be anything, including:
Information
Features, attributes, or states
Signals
Chemicals
Physical
forces
Modules
can be any conceptual objects, such as:
Persons Systems Software
Processes Hardware Specifications
Databases Departments
CEMA
is able to work at mixed levels of abstraction. A module can encapsulate how
lower-level events satisfy higher-level goals. It is also able to integrate
multiple relation types. Since the core of CEMA is the development of complete
plan definitions, the system automatically generalizes and makes plausible
substitutions in a completely flexible and natural manner.
Part
of CEMA is the ability to quickly recognize and evaluate a potential
solution. This ability is the key for exploiting any search driven process like
genetic algorithms or heuristic search. Daxtron Labs has developed such just
such a quick Solution Coherence evaluation function/method of the CEMA
representation. This function allows CEMA to quickly detect promising paths.
CEMA
is able to define a list or sequence of modules that can transform what is
available into what is desired with no unmet requirements by modules or problem
statements. Once a problem is solved, they can in turn be used as modules,
since module specification and problem specification use the same language. So
as CEMA solves problems, it can build up a library of new modules from the
solved problems, and thus can solve bigger problems.
The
CEMA representation can utilize either deterministic search processes like
traditional heuristic search methods, or it can use non-deterministic methods
like genetic programming. One of our ongoing projects is to integrate CEMA with
the PANDOR
machine language genetic programming system.
EURISKO by Doug Lenat is
a program that showed impressive performance in numerous domains using
"learning by discovery."
EURISKO not only learned new domain-specific definitions of concepts but
also new heuristics that guided its search for new concepts. EURISKO learns about solving specific
problems and also about learning in general.
EURISKO has access to information about itself and modifies itself to
perform better over time. EURISKO explores possible configurations of concepts
and ranks them as to "interestingness." The program was the champion of a naval war game tournament for
two years, designed several innovative 3-D very large-scale integrated
circuits, and was applied successfully to several other domains.
EURISKO showed it was
possible for Artificial Intelligence systems to:
EURISKO relied on a
representation where syntax mirrors semantics, and therefore achieved a great
deal by syntactic exploration and mutation.
However, not being limited by common sense ultimately became its biggest
weakness. Other problems with EURISKO
included its large size, long running time, and its lack of specific
direction. EURISKO no longer exists in
usable form. The early success of
Eurisko helped inspire the development of both genetic programming and CEMA.
Lenat went to work for the Microelectronics Computing
Consortium to head the Cyc (pronounced “psych”) project, the world’s largest and most
complete general knowledge base and commonsense reasoning engine. MCC’s
Cyc project has now become Cycorp, and has announced both the intent to release
an open access version of Cyc called OpenCyc, and to support the semantic web
initiative. If made available, OpenCyc can be used to improve the CEMA module
definition and compilation process.
Daimler-Benz
independently developed a resource-centric configuration tool called
COSMOS. The COSMOS system focuses on a
description of modules that detail the quantities of different resources
required or consumed. The system various algorithms determine how to create a
complete system: one where all resources have positive values. (See: Using Resource Balancing to Configure Modular Systems )
Elements that differentiate CEMA from COSMOS:
Some other groups interested in configuration research:
Papers on the Web about Resource-based Configuration: