Copyright © 2018
by Christoph Gerlach


MacMahon 3.9

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.

Requires Java 8 or Java 9 to be installed on your system.



Key features:

  • Running tournaments in the MacMahon or Swiss System.
  • Support mainly for Go but the program is useful for many other games as well that are played one-on-one like Chess, Shogi, Abalone, even table tennis, ...
  • Best pairing algorithm. Fast and mathematically proven to be correct.
  • Easy creation of forced pairings.
  • Unlimited number of participants.
  • Unlimited number of rounds.
  • Any operating system supported that has Java available on it (Windows, Linux, Mac, ...).
  • Full support of east asian characters/unicode.
  • Wide range of options to adjust the program to the needs of your tournament.
    • Placement criteria
    • Adjustment of the walllist
  • Live connection to the European Go Database to select player data (Internet connection required).
  • Importing player data from plain textfile.
  • Querying participants by name.
  • Opening tur-files from MacMahon 1.2 to MacMahon 2.50.
  • Exporting pairings and walllist to textfiles.
  • Exporting tournament results for the European Go Database.
  • Tournament data is saved as XML.
  • Translated user interface (English, Italian), ready to support further languages.
  • Very flexible operation: You can jump to any round you like and change whatever parameters you like. The program will immediately reflect this by recalculating all necessary values.
  • Good printing support allowing to select font, fontsize, margins, ...
  • Super MacMahon group above the upper MacMahon bar.
  • Playing levels 35 Kyu - 8 Dan and 1 Pro - 10 Pro supported.
  • ... and many more.

Download the current version and try yourself.

System requirements:

"MacMahon" requires Java 8 or Java 9 (latest Java version is recommended) and will run on any computer that has Java, like Windows, Linux, Mac, ... I strongly recommend to only use the Oracle Java implementation with my program.


Version 3.9 (Zip-Archive, released 2020-01-01, ~496 KByte)

Using conditions/Licence:

This software is provided as is with no warranty. Licence is granted to use MacMahon at tournaments of all kinds without charge. Anyway, if I attend your tournament you have to let me participate without charging me an entry fee for the tournament itself (not including costs for food, accomodation, ...).

If you find my program usefull, you are welcome to make a donation to my Paypal account --> with an amount chosen by you.

Running MacMahon:

If you have Java installed properly, it's enough to double-click/execute the macmahon.jar-File after extracting it from the downloaded zip-File. If your operation system does not support this or jar-Files are not yet registered with Java, consider to register jar-Files with the installed javaw.exe or run MacMahon from a command line similar to:

javaw.exe -jar "macmahon-3.9.jar"



MacMahon is the most spread pairing program for Go tournaments in the world. It has a long history of being used in Europe and the new 3.x version was also be used by the Korean Baduk Association from 2011-09.

Pairing algorithm:

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. The optimization algorithm is mathematically proved to be correct in any case.

My thesis:

The first version of MacMahon was part of my thesis in computer science at the University of Hildesheim/Germany.

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:

There will be 3.x versions adding more functions that are useful running Go tournaments. There will also be maintainance releases fixing bugs.

Known Problems:


Old 2.xx program:

You can find the old program here.

Contact me if you have questions/remarks about my program:

Christoph Gerlach

In der Steinriede 3

30161 Hannover


Tel.: +49-511-7000552


Last modified: 01.01.2020