next up previous
Next: Implementation Up: Artificial neural network library Previous: Artificial neural network library

Considerations on Network Representation

With the design of a proper set of data structures for neural network simulation, a large number of aspects appear to be crucial for the success of the environment. Among these are elements such as the consistency of the data structures, implementation aspects like the memory usage and the speed of algorithms, the robustness, etc. A (non-complete) list of such aspects is the following:

Flexibility
A difficult issue in the design is that there is a need to anticipate to network paradigms that do not even exist yet. It should certainly be prevented that a slight modification of an existing algorithm or paradigm imposes a change in a key data structure, since that will imply a major programming effort. On the other hand, too much flexibility may lead to over-complex data structures that are difficult to understand. The key data structures should therefore be powerful enough to implement standard network algorithms and paradigms, i.e. the requirements of a large number of paradigms should be taken into account. Additional complexity and/or flexibility can then be added by the incorporation of pointers that the user can use to point at any user defined structure. Also pointers to functions within the data structure should allow the use of algorithms that are specific for a certain context. A change of context, then only requires the change of these pointers, instead of the complete data structures.
Clarity, consistency and intuitiveness
Clear, consistent and intuitive data structures make a large part of the available algorithms self-explanatory. This largely helps the user in obtaining the understanding that is required to work with the library.
Implementation issues
As is well known, good data structures can prevent heavy computations and may largely influence the memory requirements of the software. The potential non-regular topology of a network here advocates the choice for linked lists of structures instead of arrays. This has also the advantage that large amounts of address computations are avoided.
Robustness
A certain amount of redundancy in the data helps the user and the software to detect inconsistencies in the data. Therefore, some variables that are implicit in the data structures (e.g. the number of units in a network), should also be stored explicitly, to increase the robustness of the software.
User convenience
Unique identification numbers and the availability of fields in which the user can store verbal descriptions of the role or functionality of the data structures helps the user to interact with the software. Also, standard ASCII file formats largely increase the accessibility of the data in file format. The disadvantage of large requirements regarding to disk space can then be solved with standard compression facilities.


next up previous
Next: Implementation Up: Artificial neural network library Previous: Artificial neural network library

Created by LaTeX2HTML on Thu Mar 5 16:02:50 MET 1998