Worms, brains and “graphes expanseurs”

Two days ago, I was in Paris and visited the École Polytechnique there (for the first time, as it turns out), in order to give the traditional introductory lecture presenting various aspects of mathematics that is given each year to the incoming class of students. (Many people would wonder how a new class can be incoming in April; this is because the students of École Polytechnique, which is a military school, begin their studies with a military/civil service from September to April).

I had selected expander graphs as the topic of my talk, as being simultaneously a very modern subject, that can be presented with very basic definitions (most students, coming from the French “Classes préparatoires” have had two very solid years of mathematical studies, but of a rather traditional kind), and that has links to many different areas, including more applied ones.

The slides of my presentation can be found here, in French, and I prepared an English translation there (up to the handwritten bits of information on certain pictures, which will remain in French…) Actually, the slides by themselves are not particularly interesting, since there are many remarks and details that I only described during the talk.

The talk begins with a discussion of graphs, continues with basic notions of expansion, and then defines expander graphs, with a bit of the history (especially the paper of Barzdin and Kolmogorov that I like very much), and concludes with two applications (among many…): Apollonian circle packings, and the Gromov-Guth knot-distorsion theorem. If this looks like a lot of ground to cover, this is because the talk was 1h30 long…

While preparing the first part of the talk, I researched some examples of graphs with more care than I had done before. Some of the things I found are extremely interesting, and since they might not be so well-known among my readers, I will present them quickly.

(1) The worm is Caenorhabditis elegans, more chummily known as C. elegans, one of the stars of neurosciences, as being the only animal whose entire nervous system has been mapped at the level of all individual neurons and connections between them. This was done in 1986 by White, Southgate, Thomson and Brenner, with minor corrections since then, and an important update and representation in 2011 by Varshney, Chen, Paniagua and Chklovskii. The resulting graph has 302 neurons (this number is apparently constant over all individuals), and about 8000 edges. (Interestingly, it is naturally a mix of directed and un-directed edges, depending on the type of biological connection). The paper of Varshney, Chen, Paniagua and Chklovskii is quite fascinating, as it investigates many mathematical invariants of the graph, and for instance compares the number of small subgraphs of various types with the expected number for random graphs with comparable parameters (certain subgraphs arise with higher frequency…)

Much more about C. elegans is found on dedicated websites, including Openworm, which seems to have as a goal to recreate the animal virtually…

(2) The brain is the humain brain; it can’t be mapped at the level of C. elegans (there are about 10^{11} neurons and 10^{15} synapses, from what I’ve seen), but I read a very interesting survey by Valiant about attempts to understand the computational model underpinning the reasoning capacities of the brain. He presents four basic tasks that must be among those that the brain performs, and explains how he succeeded in earlier work (from 1994 to 2005) in finding realistic algorithms and models for these problems. He comments:

In [5,14] it is shown that algorithms for the four random
access tasks described above can be performed on the
neuroidal model with realistic values of the numerical
parameters. The algorithms used are all of the vicinal
style. Their basic steps are all local in that they only
change synaptic strengths between pairs of neurons that
are directly connected. Yet they need to achieve the more
global objectives of random access. In order that they be
able to do this certain graph theoretic connectivity prop-
erties are required of the network. The property of
expansion [15], that any set of a certain number of
neurons have between them substantially more neighbors
than their own number, is an archetypal such property.
(This property, widely studied in computer science, was
apparently first discussed in a neuroscience setting [16].)
The vicinal algorithms for the four tasks considered here
need some such connectivity properties. In each case
random graphs with appropriate realistic parameters have
it, but pure randomness is not necessarily essential.

Here reference [16] is to the Barzdin-Kolmogorov paper.

(3) Lastly, I was wondering what is the size (number of vertices) of the largest graphs for which the first non-zero Laplace eigenvalue has been computed, approximately. The best I found is a paper of Kang, Breed, Papalexakis, and Faloutsos, which describes an algorithm that they have applied successfully to real-world graphs with about a billion vertices. This is rather impressive…


One of the nicest things about Linux (and Open Source software in general) is that new versions often offer clear measurable improvements on the previous ones. And another is that this does not usually require abandoning whatever might have been worth keeping from other computer-ages. In particular, if one has very old software, there’s a good chance that one can still keep them working, even if they are written for a completely different operating system, through the wonders of emulation. In my case, this applies to Windows 3.1-era dictionary cdroms, and to Motorola 68000-era Mac software.
Recently, I had somewhat lapsed in performing the necessary tweaks to make these old programs work on my laptop (a decidedly modern 4-core Lenovo), but on upgrading Fedora, I decided to try again. It’s quite amazing that, through the wonders of Wine, I can enjoy again the Grand Robert de la Langue Française


(originally available for MS-DOS and Windows 3.1) as well as the American Heritage Dictionary

(though I use the O.E.D instead when I’m connected to the ETH network). The Grand Robert is the best anti-pedant tool I know against so-called défenseurs de la langue française; it usually reveals that their favorite anglicisms are perfectly French (e.g., opportunité, in the sense of “occasion, circumstance”, which goes back to 1355 in French, and is at least as French as Baudelaire…)

I’m even more impressed to be able to boot the equivalent of my old Mac SE30,

and thereby play with, or recover, the old files I used to work with during my PhD thesis and before. (In fact, the emulator boots in something like 1.5 seconds on my laptop, which is about a hundred times faster than it ever did in real life…) Afficionados will note the realistic 512 x 384 resolution of the screen.


I have a weakness for programming languages. Given the time and opportunity, I would gladly learn a new one every few months, and apart from TeX (in its programming language guise) and Perl, which I both abhor because of their atrocious syntax, I usually find something to like in all languages. I have even composed what may be the only illustrated children story ever written in pure Postscript (“The story of the triangle that grew”.) But my favorite language remains Lisp, especially in its Common Lisp variant, which is the one I know best (with Emacs Lisp a close second). I was therefore saddened to learn today of that the creator of Lisp, John McCarthy, recently passed away.

(Interestingly, according to Wikipedia, McCarthy had a PhD in math under Lefschetz…)

Inkscape and LaTeX

I’m a great fan of the open-source vector-drawing software Inkscape. Although I don’t have that many figures in my papers (or notes), I’ve found it quite accessible and easy to use to produce high-quality results. And just yesterday, as I wanted to add a picture to my notes on expander graphs, I learnt of a very nice new feature: from version 0.48 onward, one can select a special option when saving a drawing as PDF that creates an auxiliary LaTeX file, which can then be incorporated in the source file (using the standard \input command) and which contains (and processes) all the text found in the drawing. This makes it very easy to add arbitrary LaTeX (math) formulas with Inkscape.

For example, the SVG file

produces a PDF file

and a LaTeX file, and when the latter is inserted, the document reveals the beautiful picture