MITIE the multi-layer network simulator

Jump to: [ What? ] [ How? ] [ Getting MITIE ] [ Building MITIE ] [ MITIE documentation ] [ CHANGELOG ] [ Help with MITIE ]

On these pages you'll find the most up-to-date information about MITIE, including source, binaries and documentation.
This page can always be reached from the URL References to the old address, should be replaced by this address.

November 2011: MITIE has been around for four years now and publicly in some form since 2008 and it is time to retire support for it. It is considered stable and any improvements would be mostly to the process library (and also a few things on the TODO list). If someone would like to continue development then please contact me at the e-mail address on this page.

What is it?

MITIE is a network topology evolution simulation tool that allows for the examination of the emergent properties of multiple co-adapting network layers.
It was originally created as part of my PhD research which was in part an investigation into the feedback between telecommunication network layers and how it can influence the emergent design. MITIE does not specifically make use of any telecom specific concepts, though - it only understands concepts like flows, edge weights, link capacities and so on.., so could therefore be used in many transport network scenarios, such as road transport networks, or ecological and biological networks.
A simple example of a two-layer network erosion be found here. In it an input topology is gradually eroded by removing a randomly chosen link, preferring the links with the least number of routes traversing them, and the largest eigenvalue of the combinatorial Laplacian adjacency matrix is plotted against the number of remaining links.

How does it work?

MITIE is built around a carefully designed framework, at the center of which is the concept of a network layer which has properties such as edge weight and capacity - there is also an offered traffic matrix which is either a static demand, or the link capacities from another network layer. A series of user-specified processes are then performed on each layer until a given termination condition occurs. There is a library of processes included with MITIE which include growth, erosion and re-wiring algorithms among others. They are a either stochastic (e.g. connect to node preferring those with high load) or deterministic (e.g. connect to the most loaded node) in nature. There are also a number of processes that will output details of the layers, including a weights matrix, eigenvalues of the adjacency matrix or shortest distances matrix, amongst others. It is also possible for advanced users to add their own network processes. Full details are available in the doxygen docs.

Where can I get it?

The latest C++ source tar ball is available here.
An executable for 32-bit Windows is available here.

You should also check the hashes: MD5 SHA1 SHA256 SHA512

How do I compile it from source?

Once you've satisfied the requirements (really only the Boost C++ library) for your system then have a look at the compiling section of the docs.

I need more details..

Check out the doxgyen docs that are included in the source and also available on-line HERE.
The main sections in the documentation include:

The source can be browsed here.


A history of releases can be found here.

I need help!

If the help you need is related to MITIE (!) then please contact me at mitie [at) jasonspencer•org. If you have a question, then someone else probably has the same question. Drop me a line and I will update the docs.
Please see notice about the discontinuation of support at the top of this page.

Version history:

Thu 17 July 2008 10:45 UTCinitial version
Wed 15 June 2011 22:47 UTCadded Windows binary
Sun 27 November 2011 21:23 UTCadded End-of-Support notice