MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


I know next to nothing about graph theory, but in my work I have encountered an application for which I would like to do the following: Given a connected graph $G$ and integer $k > 0$, add a set of $k$ edges ("shortcuts") to $G$ to minimize the average "travel" distance on $G$ between vertices. Here, every edge has equal weight. I do not desire a provably minimal solution, but I would rather accept a slightly sub-optimal set of shortcuts if it meant that I could greatly lower the computation time.

A quick Google search yields two interesting papers, and, one of which addresses my problem directly and another that tackles a related problem (minimizing diameter).

However, because I know little about graph theory, I was wondering if there might be other papers that I might find, or even textbook references, if there are any special cases for which this problem is significantly easier (as the graph I have is far from typical, and I suspect it has some nice properties).

share|cite|improve this question
How big is $k$ compared to $|G|$ and $|E(G)|$? (I won't be able to help, but that part seems very important.) – Ricky Demer Sep 30 '11 at 7:05
Much, much smaller, by an order of maybe 10^3. – Christopher A. Wong Sep 30 '11 at 7:30
In particular, even adding a single shortcut should, in theory, greatly decrease the average distance, since the graph is so "large". – Christopher A. Wong Sep 30 '11 at 7:31

Let's look at what happens when you add an edge to a connected (simple, undirected and incomplete) graph G.

Let $N_d(v)$ denote that subset of the vertices of G that are a distance precisely $d$ (i.e. shortest path in G has $d$ edges) from the vertex $v$ belonging to G. If $v$ and $w$ are a distance $c$ apart, then for suitably small $d$ and $f$, say each less than $c/4$, the distance between a point in $N_d(w)$ and one in $N_f(v)$ will (upon adding an edge between $v$ and $w$, and say $c>4$) go down from some number larger than $c/2$ to $1+d+f$. The reduction in total distances will be greater not only as $c$ increases but also from judicious selection of $v$ and $w$ so that the sets involved ($N_d(w)$ and $N_f(v)$ for small values of $f$ and $d$) are made larger.

It may be computationally intensive to compute sizes of the sets $N_d(v)$, so as a rough measure, try instead $d=1$, which gives the degree of $v$, which may be reasonable to compute for a fraction of the vertices. If your graph is nicely sparse, you may get away with adding k edges to the k most remote pairs among a set of 2k vertices with high and preferably maximal degree. This heuristic can perform badly on graphs with one or two large cliques, depending on their placement. Also, you might have as a side constraint to keep the maximal degree low, so don't add too many edges to the same vertex in this case.

Gerhard "Ask Me About System Design" Paseman, 2011.09.30

share|cite|improve this answer

Connect the two vertices that correspond to the largest (most positive) and the smallest (most negative) values of the Fiedler vector.

share|cite|improve this answer
And how would I go about computing this? I don't know much about graphs, sorry. – Christopher A. Wong Sep 30 '11 at 18:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.