I'm about to start an academic project and I need to create syntetic networks, that is graphs with special properties.
The kinds of graphs (network topologies) I need to generate are:
- Random regular
- Watts-Strogatz (optional)
I may take 2 of the graphs generated using the above models and link them together, for example connecting an Erdos-Renyi graph with a Random regular graph.
I need a tool or a library capable of generating and exporting graphs. Acceptable export formats are: CSV, JSON, XML and gml files. The simpler the export format, the better.
Arcs in the graph can be directed or undirected, weighted or unweighted, and nodes should be able to contain basic information (e.g. a "consumption" parameter). The latter may be done through inheritance and is not crucial.
I do not need to visualize the generated graphs right now, I could use another tool for that. It would be nice to have, but what I care the most for is the quality of generated network.
My preference is for tools with a good documentation and quality tutorials.
I know Java and C++, with a preference for the former. I could use Python as well (if that's the best option), but I'm not really familiar with it.
Some of the libraries I'm considering are:
Boost Graph Library is a famous C++ library, has a comprehensive documentation, but I can't find any tutorials for it and I'm not sure it has all the generators I need.
Your advise is welcome.