NetEvo

Tools for Complex Dynamical Network Evolution

Complex Networks, Dynamics and Evolution

NetEvo is a computing framework and collection of end-user tools designed to allow researchers to investigate evolutionary aspects of dynamical complex networks. By providing tools to easily integrate each of these factors in a coherent way, it is hoped a greater understanding can be gained of key attributes and features displayed by complex systems. To promote widespread use and input from the complex systems community, all tools are free to use and released under the open-source Non-Profit OSL 3.0 licence.

 
NetEvo Framework
  • C-Based Development Kit (Cross platform) - Gives access to the internals of the toolkit to allow for the creation of new extensions or customisation of existing features.
NetEvoX
  • Evolving Network Visualisation (Mac OS X) - Interactive 2D/3D layout, analysis of simulation and evolution results. Built using Cocoa and the openFrameworks library.
 
How does it work?

To be able to study the behaviour of complex systems NetEvo provides two main functions, simulation and evolution of dynamical networks. To make use of these features, end-users must provide the following to customise the framework for the problem of interest:

  • Set of component dynamics for nodes and edges,
  • An initial topology, unless the network can grow,
  • The evolutionary process that searches for improved system configurations,
  • The performance measure Q to guide evolution.
By default NetEvo includes several standard types for each of these categories, however, the option always exists to define fully custom implementations that are better suited.

To bring together simulation and evolution in a coherent way, the framework uses the idea of a supervisor, illustrated below. Simulation is carried out by taking the component dynamics and network topology, and then numerically solving the system for a specified period of time. The solvers are a central part of NetEvo and currently focus on systems that can be described using ordinary differential equations (ODEs) or discrete time mappings.


Figure 1: Flowchart of a supervised network

Evolution of the system is performed by the supervisor which can be viewed as a form of optimiser. This takes as input an initial topology, simulated output from the system and user defined constraints, and aims to return an optimal or enhanced topology and parameter set. Changes to the system are assessed by using the performance measure, with smaller values representing an improved performance. Optimisation is performed by using a simulated annealing meta-heruistic to search for near optimal configurations. This method was chosen because it has been shown to perform well for a wide range of problems with an unknown prior structure. As with all of NetEvo, if an alternative optimiser is required it is possible to define a custom type and still make use of all other build-in modules. The ability to piece together various modules for a specific need is important in allowing the framework to be widely used.

NetEvo in action

The following movies have been generated from NetEvo data, visualised using Processing and Traer.Physics. These illustrate both the idea of a dynamical network (nodes and edges are fixed with dynamics taking place on this structure) and an evolutionary network (nodes and edges are created and destroyed). To see more examples of NetEvo in action head over to The NetEvo Gallery.

     

Finding out more

For latest news on the project see our new feed and if you are interested in helping out contact us directly at develop@netevo.org. Further information can also be found on our Sourceforge page or within the introductory paper in arXiv.