One of the saddest consequences of Steven Wolfram’s descent into megalomaniacal insanity (vis his decision to save science from itself by reinventing it in the image of a popular science book from the 1980s) is the continuing decline of *Mathematica*, his greatest (and, he seems intent upon forgetting, only) accomplishment.

Why the return to bitter posts? The week of my life I’ll never get back trying to get *Mathematica*‘s pitifully bad graph theory functions to yield correct results. I never thought I’d see the day when I considered MATLAB a superior product to *Mathematica* for doing something like network theory, but that day has come. I could go into great detail on the poor design of *Mathematica*‘s Graph object, but I’ll just leave the reader with the following object lesson on the perils of letting one’s ego interfere with one’s day job:

Another nice bug is the fact that WeightedAdjacencyGraph[WeightedAdjacencyMatrix[g]] often returns an error, despite the obvious fact that it should return the original graph (at least topologically).

Seriously, Wolfram. Are there many more important mathematical topics today than graph theory? You can’t throw a copy of *Mathematica* these days (and I plan to) without hitting somebody working on a topic for which graph theory plays a central role. The fact that the interface to Graph[] is an embarassment is nothing compared to the fact that it doesn’t even return correct results when things like GraphDistance[] are applied to a graph which has been manipulated. When *Mathematica* starts returning mathematically incorrect results, something is wrong with the world. That thing, I believe, is Stephen Wolfram himself. It’s time for him to move on from Wolfram and let somebody else run the show.

*For the few still reading and interested: the bug shown in the picture appears randomly. Most of the time you run that code it yields a plausible, maybe even correct, answer. The oddness of the “road network” graph shown is intentional. The application I was working on was an algorithm to generate a statistical family of road networks. My plan was to create a nearly fully connected (not even planar) graph and then prune the edges which were economically infeasible (didn’t yield a change in the shortest path sufficient justifying their existence relative to some parameter). It was in the process of trying to implement the pruning algorithm that I discovered this bug.)*

I think Wolfram is perpetually in the “kid genius” mode – he had great expectations for himself, as did everyone around him. Mathematica was cool. But he’s been ruined by his own “potential” and mainly serves as a cautionary tale to the rest of us now.

Sorry for the late reply. Mucked up the whole “e-mail me when comments happen setting”. I think you’re right about him being in kid genius mode well into his senility. And you are also right on to use the past tense with Mathematica and “cool”. I don’t know what the hell happened, but Mathematica went completely off the rails with 8.0. Now with 9.0 the big innovation is prompts for what next to do with your computation. Perfect for when you can’t decide when to factor or just start plotting! Maybe the big feature with 10.0 will be a return to mathematically correct results…

Actually there aren’t many tools out there that offer a comparable breadth of graph-related functionality. I really doubt that you can use MATLAB for this (!!).

I agree that unfortunately Mathematica’s graph related functionality has some serious quality issues … I’ve complained about this many times before. I also noticed that when using EdgeDelete on (weighted) graphs, things tend to get broken, and a silent wrong result is really unforgivable, and should warrant an imminent bugfix release.

(If you haven’t done so yet, please report this bug to Wolfram support, the more voices complain, the higher the chance that something can be done.)

You can also try my package IGraphR which makes it very easy to call igraph from Mathematica. Since I don’t fully trust graph-related results form Mathematica, and since these results are usually hard to verify, I usually compare them to igraph. My package doesn’t support weighted graphs yet, but there are usually workarounds such as sending weights explicitly to igraph.

https://github.com/szhorvat/IGraphR

RandomRoadGraph is not a Mathematica function in either version 9 or 10. I can’t tell if the problem is in your code or Mathematica’s. I don’t do graph theory much, but the bits I use seem to be OK.

that function is my code, but that’s not the point. it simply produces a starting graph. everything after that is mathematica code, and it’s clearly operating incorrectly. the post was written a while back, so it may have been fixed.