How do researchers carry out computational experiments in Graph Theory? - MathOverflow most recent 30 from http://mathoverflow.net 2013-05-22T17:00:51Z http://mathoverflow.net/feeds/question/26231 http://www.creativecommons.org/licenses/by-nc/2.5/rdf http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory How do researchers carry out computational experiments in Graph Theory? Sazzad 2010-05-28T05:51:23Z 2010-09-24T19:36:42Z <p>There are packages like, Combinatorica in Mathematica, GA, SA, PSO can be comparatively easily done in MATLAB, C++ has boost, Java has JGraphT and so on and on. My question is,</p> <ol> <li>How do Graph Theorists carry out large computational experiments?</li> <li>What languages or packages or libraries do they usually use? Is their any general preferences?</li> <li>Do they use a combination of many sporadic resources? Like use something that is good at plotting, then use some other thing that is good for numerical solutions etc?</li> <li>Where from you get <em>Hard-Instances</em> ?</li> </ol> <p>Background: I'm assigned to work on a GT problem named 'Degree Constrained Minimum Spanning Tree'. I want to study, implement and compare current algorithms. As I've been studying, I come to observe most of the algorithms are : Heuristics, Distributed Algorithms, Genetic Algorithms, Linear Programming (Narula-Ho) etc. Some uses methods called 'Particle Swarm Optimization', 'Simulated Annealing' and 'Ant Colony Optimization'. As far as I know MATLAB has built in routines for GA, SA, PSO, ACO etc but don't have any graph theory package. Combinatorica seems very good package but I don't have any access to it's accompanying book 'Computational Discrete Mathematics'. I don't know MATLAB or Mathematica.</p> <p><strong>Update:</strong> A comprehensive list on GT packages/systems can be found here: <a href="http://wiki.sagemath.org/graph_survey" rel="nofollow">http://wiki.sagemath.org/graph_survey</a></p> <p><strong>Update</strong> It seems Mathematica 7 has all the above, mostly as built in functions/Commands.</p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/26239#26239 Answer by supercooldave for How do researchers carry out computational experiments in Graph Theory? supercooldave 2010-05-28T07:31:52Z 2010-05-28T07:31:52Z <p><a href="http://jung.sourceforge.net/" rel="nofollow">JUNG</a> is quite extensive, though I wouldn't claim that it's complete.</p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/28339#28339 Answer by Adrien Friggeri for How do researchers carry out computational experiments in Graph Theory? Adrien Friggeri 2010-06-16T03:00:34Z 2010-06-16T03:00:34Z <p>If you are not limited to java/c++/matlab and know python, you should take a look at <a href="http://networkx.lanl.gov/" rel="nofollow">networkx</a>, it's pretty complete.</p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/28349#28349 Answer by Suresh Venkat for How do researchers carry out computational experiments in Graph Theory? Suresh Venkat 2010-06-16T04:43:10Z 2010-06-16T04:43:10Z <p>Boost has an extensive <a href="http://www.boost.org/doc/libs/1_43_0/libs/graph/doc/index.html" rel="nofollow">graph library</a>. If you're more of a python maven, then David Eppstein's <a href="http://www.ics.uci.edu/~eppstein/PADS/" rel="nofollow">PADS library</a> is quite extensive. But from your description, and the choice of heuristics you're looking at, not clear why you want a graph theory package, as opposed to a general set of heuristics and some adjacency list representation. </p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/28414#28414 Answer by Noldorin for How do researchers carry out computational experiments in Graph Theory? Noldorin 2010-06-16T17:16:50Z 2010-06-16T17:16:50Z <p>I wouldn't claim that it's complete, as I've only used parts of it, but <a href="http://quickgraph.codeplex.com/" rel="nofollow"><strong>QuickGraph</strong></a> is an excellent package for .NET/C#. Besides a wide range of mathematical/algorithmic tools, it also has layout algorithms and imports/exporters for various formats.</p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/30262#30262 Answer by baudolino for How do researchers carry out computational experiments in Graph Theory? baudolino 2010-07-02T03:13:57Z 2010-07-02T03:23:37Z <p>I've used <a href="http://www.algorithmic-solutions.com/leda/" rel="nofollow">LEDA</a> with really good results. There's also a pretty good book on LEDA and combinatorial geometry in general (available for free download now) from the linked website.</p> <p>For a good open-source alternative, see <a href="http://goblin2.sourceforge.net/" rel="nofollow">GOBLIN</a>.</p> http://mathoverflow.net/questions/26231/how-do-researchers-carry-out-computational-experiments-in-graph-theory/39891#39891 Answer by Nathann Cohen for How do researchers carry out computational experiments in Graph Theory? Nathann Cohen 2010-09-24T19:36:42Z 2010-09-24T19:36:42Z <p>As TheMadman mentionned in a comment, Sagemath has an impressive Graph library. I have been working on it for quite a while, and I expect you wouldn't find anywhere else the list of methods it has.</p> <p>I don't think I already wrote a solver for a degree-constrained spanning tree, but I definitely implemented a degree-constrained subgraph there. As Mixed Integer Linear Programming is easily available, something like 20 lines of code are enough to get an exact solver for the min degree spanning tree problem anyway.</p> <p>You will find help of its methods (and so the list of them) at this address :</p> <p><a href="http://www.sagemath.org/doc/reference/graphs.html" rel="nofollow">http://www.sagemath.org/doc/reference/graphs.html</a></p> <p>be sure to check both "generic graphs" and "Graph" :-)</p> <p>Nathann</p>