netopt is a network topology optimization tool written in Python. It provides tools to monitor a network topology via MySQL database, runs optimizaiton algorithm and output the resulting streaming structure back to the same database.
MySQL
Python 2.7
SQLAlchemy
NetworkX
Data access objects are put under ./model directory, which manages the database operations for nodes, edges, and topologies.
Algorithms are put under ./algorithm directory, which runs different optimization algorithms. Now only Kruskal's minimum spanning tree and a power-based heuristic algorithm (Fast-Mesh) is provided.
In model/init.py, modify the database url, and then simply run
python main.py
It is a simple example that generates a random network topology, optimize it, and then store the resulting structure together with the origion topology in the database.
The current model only supports single tree topology, which can be extended to multi-source, multi-tree(channel).