|Home MadLab FAQ|
|FAQ (Frequently Asked Questions)|
How did this start? It started with an interest in neural networks and games, and afterwards it just couldn't stop...
What is your background?
regards my professional life, I have a degree in economics, and
almost another one in philosophy. Work experience is mostly related to
economic modelling. Programming is an old passion of mine,
probably due to the fact that my father is a programmer. At
the moment I am developing open-source software for solving large-scale
economic models (Gekko).
What is your motivation to release
The software used to be commercial, but I simply do not have the time
to develop it at the moment. Hence, until more time becomes available,
I offer the software for free for the Go community. As I use the
software for analyzing my own games, I thought others could
benefit from it too. I am aware that the monte-carlo based Go
programs are getting stronger, but in contrast to these, my software is a solver and provides strict answers
as to whether some stones can be captured or not (and how).
Do you use the program yourself? Yes: every time I play a game, I run "analyze" on it afterwards. I'm a single-digit kyu-player, and the program invariably finds some stuff I had overlooked. For critical positions, I may verify things aided by the solver. I may even use the connection- or eye-finding tools to confirm things, even though these are relatively weak at the present stage. I believe the program has improved my tactical ability quite a bit.
Are you content with the strength of the program? Well, in general: yes. I am consoled by the fact that the program performs well on problems from a well-known tesuji book (Davies' Tesuji). But the program is very specialized, and it simply gets lost regarding some kinds of problems (not least problems that need to be decomposed into into sub-problems). Some of these problems can be solved at a glance by a human being, using knowledge about connectivity, eye-spaces etc. When MadLab does not solve such problems, I do feel disappointment. On the other hand, I keep reminding myself that MadLab is a specialized solver just like, e.g., GoTools. And you wouldn't expect GoTools to solve open-space tesuji's... (Oh yes, and I am disappointed that MadLab does not solve the first problem in Davies' Tesuji in reasonable time (it takes more than one hour on a fast pc, unless you help it)).
How stable is the program? The engine itself is very stable -- it has been running for thousands of hours without causing problems. The graphical user interface is less stable, partly because I spent much less time on it, and partly because I never made a GUI before. So while there may still be af few glitches in the GUI (including reading and writing sgf files), as soon as the engine runs (solving or analyzing), there should be no problems regarding stability. Well, that is, if MadLab does not runs out of memory while searching...
Why the name MadLab? MadLab is an anagram of lambda, the name of the search algorithm MadLab is based upon. I also liked the allusion to MATLAB (a math environment for analyzing data and developing algorithms). The name MadLab is far from unique: among other things, there seems to be a couple of robot labs also called MadLab (see here and here), and even a theater group. However: the full name "MadLab Tesuji Solver" is indeed unique.
Isn't Java slow? MadLab is written in Java because I like the language and the fact that it runs on all kinds of platforms. And no: Java is not slow (except at startup). On a fast single-processor pc MadLab can search around 100.000 nodes/positions per second, which I consider pretty good considering all the algorithmic stuff going on while searching. When some care is taken about the data structures (e.g., reusing large objects), Java programs can be very fast. A while ago I tested the speed of Java by converting my program to a native Windows executable by means of the Excelsior JET compiler, and the converted program ran slower.
Does MadLab run properly on Linux or Mac OS X? It should, but it is no secret that the program has been developed on a Windows system. Installation on Linux should be relatively easy since there is a Linux installer available (with or without Java integrated). Installing on Mac OS X may be a little more tricky, but maybe not that hard since Mac OS X usually has Java 1.4.2 pre-installed. For Mac OS X and other systems you will need to use a cross-platform installer. If in doubt about whether MadLab will run on your system (not least if you are a non-Windows user), please try out the demo version first. If the demo version works, the full version should run, too.
Which is the preferred Java version? MadLab should run on any Java 1.4.x (including 1.4.0), but I have had a few problems with 1.4.1. So it is highly recommended to use Java 1.4.2 or better if possible. (And on Windows XP, the 1.4.2 version surely looks more XP-like than 1.4.1 or 1.4.0). Regarding speed of solving, all 1.4.x versions seem to run at about the same speed. MadLab has not been tested on Java 1.5.0 yet.