Design and Implementation of a Flexible Simulation Tool for Hybrid Problem Solving
H. Geiger ^{1}, J. Pfalzgraf ^{2}, A. Bücherl ^{3}, K. Frank ^{2}, T. Neuböck ^{2}, J. Weichenberger ^{2}
Abstract
This contribution presents a new simulation tool which incorporates several modules, for simulation of artificial neural networks (ANN), fuzzy reasoning (FR), genetic algorithms (GA), robotics and computer algebra (CA)  or more general symbolic computation  for hybrid problem solving tasks.Keywords: ANN, GA, fuzzy reasoning, robotics, hybrid simulation tool
1 Introduction and Motivation
This contribution presents a new simulation tool which should be capable to allow flexible applications in the context of hybrid problem solving. The title might suggest ``yet another simulator'', but we try to explain why we decided to work on a simulation tool as described below. The starting point has been the long lasting cooperation contact between H.Geiger and J.Pfalzgraf (formerly at RISCLinz, University of Linz) and their working groups, respectively. This cooperation is now being continued with the new group of the second author at the Salzburg computer science department. The artificial neural network group at RISCLinz (established by the second author) used the connectionist network simulator ``NEUROtools'', an extended and modified version of ``NETUSE'' which goes back to original work of H. Geiger and his group at the company KRATZER Automatisierung. In the course of many discussions a diploma student at RISCLinz, J.Sixt, who used the NEUROtools extensively, made a list of drawbacks of that simulator and he proposed possible improvements of the tool  all this has been approved and partially inspired by H.Geiger. The result was a diploma thesis in which a new command language has been developed which forms the basis of the flexible simulation tool as discussed in this article. We think that it is a real improvement of the existing NEUROtools (nevertheless, we are aware of the fact that NEUROtools showed and still shows its power in industrial problem solving). Besides the new language features of our new tool the idea is to have an ``open system'' that means for real hybrid approaches we need interfaces to other systems which have proven to be useful for problem solving. Thus, we want to integrate simulation of Artificial Neural Networks (ANN) (the core of the tool) in a very flexible way (``arbitrary'' networks should be possible to simulate).
In addition to that we design interfaces to Fuzzy Reasoning (FR), Genetic Algorithms (GA), Computer Algebra (CA)  or more general symbolic computation  and last but not least to robotics simulation. Actually, ``historically'' the combination of an ANN simulator and a robotics simulator was our original goal, as mentioned and discussed in the diploma thesis of J.Sixt. With this working area the RISCLinz group became a former associated member of the ANN section of the European project JESSI.
A general principle in our work will be to incorporate as many existing software packages (from NEUROtools) as possible in the sense of a ``library''. Of course, the new tool will have the option to simulate time coded neurons (single spike models), based on work of H.Geiger and his group. We also refer to [Ede95], KRATZER Automatisierung.
Another new aspect is given by cooperation work of the first and second author [GP95], [GP]. It turned out after many fruitful discussions that certain mathematical modeling methods lead to a simplified mathematical description of Geiger's ANN paradigm. This can be exploited in the simulation of the networks and results in a considerable ``economy'' in concrete applications. That is to say, by the mathematical model it is possible to reduce storage capacity, to enhance speedup, and even to save costs in hardware application  for more details we refer to the cited references.
We would like to underline that a major goal of our project should be the capability to perform hybrid problem solving approaches with a felxible simulation tool.
Until now the command language (i.e. kernel) is completely implemented. Currently we are implementing the ANN module.
2 Existing Work
In this section a short schedule of existing work will be presented:
 Th. Waschulzik implemented the first release of an ANN simulator called NETUSE, which goes back to the ideas of H. Geiger and his ANN paradigm [Was87].
 K. Eder implemented a new neuron model, called Single Spike Model (SSM), for NETUSE in his doctoral thesis [Ede95].
 A. Bücherl implemented an extension of NETUSE, which combines fuzzy systems and ANNs [Büc94].
 J. Sixt designed a new version of NETUSE, which provides more flexibility (objectoriented modelling principle, simple programming language) and the possibility to integrate a set of external modules (integration of ANN, fuzzy reasoning, genetic algorithms, symbolic computation, robotics) [Six94].
 Th. Hainzl implemented a fuzzy reasoning tool especially for fuzzy control with an interface to ANN [Hai95].
 M. Meisinger used genetic algorithms for generating ``optimal'' ANN topologies [Mei95].
3 Specification of the New Tool
In practice ANN's often consist of many neurons (especially Geiger's paradigm of locally regularly structured networks). Furthermore, the integration of different problem solving methods (both subsymbolic and symbolic approaches) are of great interest. Therefore two requirements for a new simulation tool can be stated:
 Flexibility: The work with ANNs is characterized by three main steps which are usually repeated many times until one receives an appropriate solution: network definition, training, recall (applying a trained network). Especially for big networks it is useful to carry out these steps in a flexible way. Both a graphical user interface and a simple (line oriented) command interpreter, which only supports builtin commands, restrict the work. A command language, which provides all important elements of a ``usual'' programming language (loops, ifconditions, function definitions etc.) seems most suitable.
 Integrational aspect: To combine different solution methods and application areas (ANN, fuzzy reasoning, genetic algorithms, symbolic computation, robotics etc.) problem specific modules and the problem independent command language (kernel) must be linked in an appropriate way. For this reason some interface conventions are necessary when implementing these problem specific modules.
J. Sixt, in his diploma thesis, specified the structure of a new simulation tool which satisfies these requirements: Neural Command Interpreter (NCI6t). Originally, the objective of his work was to integrate ANN (especially Geiger's paradigm) and robotics simulation [Six94].
3.1 The System Architecture
The new simulation tool is based on an open system structure. The core is made up by NCI6t. This module represents the problem/method independent part of the simulation environment. The problem specific functionalities and the various problem solving methods are kept in different modules (Fig. 1): ANN, fuzzy reasoning, genetic algorithms, computer algebra, robotics.

The whole simulation tool is/will be implemented in C++. The application program combines the modules:
int main(int, char *[]) { ... NciRegisterClass( &rcmLayerClassSE ); NciRegisterClass( &rcmNeuronTypeClassSE ); ... NciRegisterFunction( ... ); ... NciRegisterVariable( ... ); ... NciInterpret(stdin); ... return 0; }
First, the problem specific parts (classes, functions, global variables) are made known to the symbol table of the kernel NCI6t. This is done by the functions NciRegisterClass, NciRegisterFunction and NciRegisterVariable. Then the control is transfered to the interpreter NCI6t (NciInterpret) which waits for the user's input (keyboard or input file).
3.2 The Kernel Language
The kernel language (which is already completely implemented) is a simple Clike programming language, which supports
 control structures (if, for, whilestatements etc.),
 definition of functions, variables and constants (strictly typed language),
 some builtin commands like exit, ?? (printing command), include (including another command file) etc. and
 the use of instances of classes which are implemented in C++ (the definition of new classes is not possible).
Although no classes can be defined by the command language one can use instances of classes at the interpreter level, e.g. [Six94]:
NeuronType nt_input = new BPNeuronType(0.0, 0.0); NeuronType nt_output = new BPNeuronType(0.2, 0.3); Layer input = new BPLayer(nt_input, 20, 20, 1); Layer output = new BPLayer(nt_output, 15, 15, 15); ... output.Learn(); ...
These classes are defined in the problem dependent modules (in C++) and are made known to the interpreter (NciRegisterClass). Functions can also be implemented in C++ and registered in the symbol table of the interpreter, but they can also be defined at the interpreter level.
3.3 The ANN Module
One main objective for the design of the ANN module is to facilitate the definition of networks in the sense of Geiger's paradigm where the following constituents are of importance (for description see e.g. [Was87] or [Six94]):
 View
 Distribution
 Projection
According to these components an appropriate class structure was designed (Fig. 2). This structure also allows to create simulations of ``traditional'' networks like multilayer perceptrons easily.

The base classes (NeuronType, Layer) provide common funcitonality of all neuron models. Specific models are concretized by derived classes (RCMNeuronType, RCMLayer etc.). The data classes (Data, ByteData, FloatData) handle the input and output of network data. The classes View, Distribution and Projection are used for all neuron models. They allow to build up connections at an ``abstract'' level (e.g. take each neuron n of the postsynaptic layer within a ``cube'', transform it to a neuron o of the presynaptic layer, take all presynaptic neurons within a ``square'' with origin o into a set pre and connect n with all neurons in pre). The class Network contains some supervisor functionality (e.g. load/save the network state from/to a file, register a new layer etc.). NciObject is only used for technical purpose. All classes which should be used at the interpreter level must be direct or indirect subclasses of NciObject.
The model independent classes of the ANN module are already implemented. Now we are going to realize the model specific parts (e.g. Single Spike Model).
4 The Single Spike Model (SSM)
Most neural network models use model neurons that describe the neurons' state by one single number usually designated äctivity" (either binary, i.e. 0,1, 1,+1 or continuous, i.e. [0...1.0], [0,255]). This number represents the number of action potentials (APs per time unit) for a given neuron. All information about the exact time of single action potentials is thus lost. Since triggering of postsynaptic APs critically depends on the superpositon in time of incoming APs, an additional dimension is added for the information flow between neurons by using this time dependency. "Real" neurons therefore should be represented by: their average activity and the exact time for each AP. As has been pointed out by von der Malsburg, (cf. [vdM85]) using this additional channel yields virtually ``natural'' solutions for difficult problems such as figuregroundproblems in pattern recognition, but also time sequence storage, improved associative memories etc.. Of course, the SSM will be a substantial part of our new simulation tool.
5 A Simplifying Mathematical Model
In order to save space we are keeping this section very short (as we did in the previous section) and we refer to the references [GP95], [GP]. A few words about a mathematical modeling approach of H. Geiger's ANN paradigm (cooperation work of the first and second author). It turned out that we were able to apply geometric and categorical methods to develop a mathematical description of the ANN model which resulted in a considerable ``economy'' of the formal model representation. It has been an unusual experience that it has been even possible to measure this simplification economically, that means in terms of saved production costs in an industrial project performed by H. Geiger. Shortly spoken, by applying the mathematical model the whole simulation could be really simplified which led to a considerable performance improvement. This fact will be an important aspect for ANN simulation in our new tool.
A remark about the role of categories. In category theory ``objects'' and ``morphisms'' are basic notions. Actually, in our joint work it turned out that the objects can be interpreted as ``geometric nets'' and a morphism is a ``learning step'' and all this can be done in a natural way. It would not be necessary at all to resort to categorical notions, but it helped a lot to obtain a transparent ``linguistic modeling framework''.
6 Aims of the Project
The intention of this project is to implement a flexible simulation environment having the goal to integrate
 a module for ANNSimulation in an ``unlimited way'',
 a fuzzy reasoning module,
 a genetic algorithm module,
 a robotic simulation module and
 symbolic computation (computer algebra system).
An ultimate goal will be to work with these combined modules in an interactive way. Original motivations come from ANNapplications to robotic kinematic problems (``learning the kinematic model of a robot arm''). To reduce limitations of a pure symbolic approach for simulating a robot kinematic chain we plan to establish a hybrid symbolicconnectionist network modelling approach. That means one part of a robot arm will be modelled purely symbolically (e.g. exploiting the DenavitHartenberg transformations to implement a closed symbolic solution of the inverse kinematics) the other part will be represented by a suitably trained connectionist network. We expect an overall reduction of complexity by using such hybrid approaches in robotics simulation. Furthermore we keep in mind that in concrete (industrial) robotics applications sensors are used to manage the ``fine path tracking control problem''.
Fuzzy reasoning will be represented by a separate module for pure fuzzy control and fuzzy logic applications [Hai95] and in combination with ANN. For the latter aspect we resort to ``NeuroFuzzy System'' [Büc94]. Such a combined neurofuzzy system has been developed and implemented separately by A. Bücherl. In this implementation fuzzy rules are translated into neural networks which are trained to modify the membership functions of the fuzzy system. By the last step the trained network will be transformed back to the improved fuzzy rules by means of a modified center of gravity method.
M. Meisinger designed a simulation tool which combines Neural Networks and Genetic Algorithms [Mei95]. In his approach ``optimal'' network topologies can be generated by application of genetic algorithms.
The new tool is constructed in such a way that it allows to integrate as good as possible already existing modules (as previously mentioned). Moreover we intend to integrate existing software components as already available in NEUROtools, robotics simulation, computer algebra, etc.. We are aware of the fact that this cannot be done in a smooth straight forward way and we know about the limitations of this intention.
7 Concluding Remarks
The design and implementation of a flexible simulation tool based on a newly developed specification language has been presented in this contribution. Besides the technical facts we tried to motivate the origins and the development of our project. It is hoped that in the end all our intentions and wishes will be practicable in that simulation environment. It is in the spirit of our joint work to be flexible enough to integrate further tools for hybrid problem solving.
References
 [Büc94]

Angela Bücherl.
Reversible Übertragung von regelbasierten Systemen in adaptive
Form durch Implementierung als neuronale Netze.
Master's thesis, Technische Universität München, 1994.
 [Ede95]

Klaus Eder.
Repräsentation temporaler Information in künstlichen
neuronalen Netzen (Doctoral Thesis).
VDI Verlag, Reihe 10, Nr.402, 1995.
 [GP]

Hans Geiger and Jochen Pfalzgraf.
Modeling a connectionist network paradigm: Geometric and categorical
perspectives.
In preparation.
 [GP95]

Hans Geiger and Jochen Pfalzgraf.
Quality control connectionst networks supported by a mathematical
model.
In A.B.Bulsari and S.Kallio, editors, Proceedings Engineering
Applications of Artificial Neural Networks (EANN'95), Ontaniemi, Finland,
2123 August, 1995, pages 5760. Finnish AI Society, 1995.
 [Hai95]

Thomas Hainzl.
A Simulation System for Applied Fuzzy Control with an
Interface to Connectionism.
Master's thesis, RISCInstitut, JohannesKeplerUniversität Linz,
Austria, 1995.
 [Mei95]

Markus Meisinger.
Evolving Artificial Neural Networks by Genetic Algorithms.
Master's thesis, RISCInstitut, JohannesKeplerUniversität Linz,
Austria, 1995.
 [Six94]

Johannes Sixt.
Design of an Artificial Neural Network Simulator and its
Integration with a Robot Simulation Environment.
Master's thesis, RISCInstitut, JohannesKeplerUniversität Linz,
Austria, 1994.
 [vdM85]

C. von der Malsburg.
Am I thinking assemblies ?
Proceedings of the Trieste Meeting on Brain Theory, 1985.
 [Was87]

Thomas Waschulzik.
Optische Mustererkennung in neuronalen Architekturen.
Master's thesis, Technische Universität München, 1987.
File translated from T_{E}X by T_{T}H, version 2.79.
On 25 Nov 2000, 12:39.