Copyright © 2016
by Christoph Gerlach

Attention, this is the old 2.xx version, use the new MacMahon 3 instead!

MacMahon 2.50

A pairing program for Go tournaments by Christoph Gerlach.

This page contains information about the pairing program for Go tournaments that I wrote. It is also possible to download the current version of my program from here.




My program helps you to handle a Go tournament running the MacMahon or the Swiss System (which is a special case of the MacMahon-System). It lets you register players, do pairings, enter results, print lists and so on. I promise you my program can do more than any other pairing program can. Almost everything of the MacMahon specification (is there a definitive?) is supported as various tie breakers (SOS, SOSOS, SODOS, CUSS, ...) and a super-macmahon-group. I cannot list all the features here. Download the current version and try yourself.

The program can also be used with other board games that are played one-on-one like Chess, Shogi, Abalone, ...

Pairing algorithm:

As far as I know my program is the only one which has an exact algorithm for the optimization. The pairings are generated in two steps. The first evaluates the matches between each pair of players. The evaluation-function (cost-function) is equivalent to the MacMahon-System (not exact in any case; e.g. the seeding of players within one group is a heuristic - not in all situations this part of the cost-functions will have it's minimum where it should be according to the MacMahon-System, but this is more or less a theoretical result - I didn't find many examples for this in reality). This first step is more or less the same as in most of the other pairing programs. The second step is the optimization. And here the "maximum weight perfect matching algorithm" by Edmonds (invented at the end of the sixties) guarantees the optimum pairing according to the evaluation in the first step. This is a big advantage compared with other pairing programs. What is a good evaluation function worth if the optimization part has it's own mind of what a good pairing is like?

Almost all parameters of the evaluation function can be influenced by you. This will not be necessary in most cases but if you are running tournaments for special purposes the default parameters may not fit well. If you want to run a strict MacMahon-System (not looking at club or countries of the participants and some other things) you will have to change some parameters. For more information take a look at the "algorithm options"-dialog in my program.

System requirements:

"MacMahon" runs on Windows 95 and higher (95, 98, NT 4.0, Windows 2000 or XP; Windows 7 32bit; "MacMahon" will probably still run under Windows 3.1 but I couldn't test this...). The CPU has to be a 386 at least. RAM should be 4 MB at least and 8 MB recommended.

"MacMahon" does not run on Windows Vista or Windows 7 64bit natively. But it is possible to use this workaround:

  1. Install Microsoft Virtual PC.
  2. Install an older Microsoft operating system to this virtual PC.
  3. Run "MacMahon" inside the virtual PC.

"MacMahon" does not run on MacOS or Linux natively. But it is possible to run the program with WINE. Printing can be an issue but it's allways possible to workaround by saving the walllist or pairing to a file and print from there.

Using conditions:

The use of my program in Go tournaments is free (worldwide, if the message in my program tells something else it's because I didn't release a new version recently). I expect not to have to pay an entry fee if I attend your tournament and you are using my program.

It would be nice if you could send me the tournament file of your tournament after you used my program.

Anyway I cannot take any warranty for anything. If your tournament crashes (or anything else) because of my program you cannot charge me. You have to accept this before using my program.


"MacMahon" is used in most of the important tournaments in Europe (and many others): Paris (2001), Amsterdam (2001), Hamburg (2002), European Championships in Abano/Italy (1996), Luminy/France (1997), Mamaia/Romania (1998), Podbanske/Slowakia (1999), Strausberg/Germany (2000) and Zagreb/Croatia (2002). I stopped to add newer tournaments to the list here.


Version 2.50 (Zip-Archive, released 2009-05-13, ca. 158 KByte)

My thesis:

Unfortunately my thesis is only availlable in German language. My thesis in PDF-Format (ca. 270 KByte). You will need Acrobat Reader to view/print the file.

In my thesis you will find a description of the MacMahon-System and a detailed explanation of the optimization algorithm.

Next Versions:

I will keep releasing 2.xx-Versions to maintain the program. It is not likely that there will be a redesigned 3.0-Version.

Known Problems:

Long Filenames are not supported with Windows 2000 or XP. (Annoying)

At least in one case the usage of seeding by rating in round 2 resulted in an unacceptable pairing.

The "Algorithm Progress Window" does not work on all machines. Sometimes just strange things happens, sometimes the program crashes. If you want this window (turn on the switch in the "Other Options..."-Dialog), you should save your data before running a pairing.

On some Windows XP-Systems the program seems to crash during the making of a pairing. You can test this by invoking this function. If it does not crash in this test, your system does not have this problem. If it does crash you can workaround by running MacMahon in Windows-98-Mode.

"MacMahon" does not operate on Windows Vista. See above for a workaround.

Contact me:

Christoph Gerlach

In der Steinriede 3

30161 Hannover


Tel.: +49-511-7000552


Last modified: 15.09.2011