Introduction
Few years ago I already saw reports about some long checkmates in 7-men endings. Clearly some generators and tablebases exist already, but they are not freely available. Also there is a number of skillful developers who can do this, but are currently not motivated enough to invest time and efforts necessary to create such generator. The idea is to motivate creation and open release of the 7-men generator. So I propose to create a prize fund that will be paid to the winner - the first successful creator of the complete 7-men EGTB solution.
We need to set requirement to such solution. A "solution" should probably include a generator, verification and probing code (free, open source and portable), and some basic set of tablebases. We will need to select a few people who will perform the verification of submitted solutions. We will also need a person who will collect the money and then send it to the winner.
Requirements to a 7-men EGTB Solution (under construction and review)
A successful 7-men EGTB solution should include 1. Generator. 2. Probing code. 3. A set of pre-computed tablebases.
Requirements to the tablebase format:
- Four kinds of metrics must be fully supported: DTZ50, WDL50, DTZ, WDL.
- En-passant should be taken into account. (It's OK to not store the EP positions in the tables as long as the tables are EP-correct and the probing code performs the necessary search automatically.)
- A metric used must be recorded in the file name or in the file itself (preferably in both).
- A compression method used should be recorded in the file (allowing future update of the compression method).
- Every tablebase file should contain a checksum or a signature for integrity checking. (Preferably of at least MD5 strength).
- Open source, released under an OSI-approved license
- Does not depend on non-free code (like Nalimov's code).
- Can generate all 3-to-7 piece tablebases (except 6-1 which is not required), without depending on any other tablebases.
- Handles dependencies automatically.
- Is able to convert a DTZ* table into a corresponding WDL* table.
- Does not require lesser DTZ* tables for generating the next DTZ* table (can use WDL* instead).
- Open source, released under an OSI-approved non-viral license (allowing commercial closed source use).
- Does not depend on non-free code (like Nalimov's code)
- Written in standard C
- Does not take forewer to initialize
- Can return WDL50, DTZ50, WDL or DTZ, depending on request and on tablebase files present.
- Includes API for verifying the tablebases integrity (using a checksum embedded in every file).
- Includes API for probing a position by FEN string
- At least one pre-computed tablebase from each category: 52 52p 43 43p.
These features are not required, but will be appreciated. Also used in a tie situation.
- Speed of probing WDL and WDL50.
- Size of the tables. The smaller the better.
- Generation speed. (Including the ability to generate WDL and WDL50 directly without generating DTZ or DTZ50 first).
- Support for 6 vs 1 tables.
- Castling (tables for positions with castling rights).
- Support for any metric WDL(k) and DTZ(k), in addition to the required WDL50 and DTZ50.
- An example engine adopted to use the new tablebases in search. (Any open source WB or UCI engine should be OK).
Competition format: prize (several complete solutions may compete in performance and features) vs bounty (the first successful solution wins)
Should we require a set of generated tablebases to accompany eash solution? If so, which set of the tablebases? (The rest will be generated by the community).
Should we require that a generator can work on certain hardware, particularly RAM and disk space?
Should we require that a generator can complete generation in some reasonable time?
Should we set any standard for a probing API?
Who will verify the solutions and who will manage the funds?
Should we require an example engine to be adopted to use the probing code? (Any open source engine will be fine).
Should all the prize money be paid to the winner immediately, or should a part of it be saved to keep him motivated to maintain the generator. For example, half is paid immediately, another half one year later assuming he fixed any issues discovered in this one year.
There are many details to consider, so please post your ideas, concerns, suggestions, etc... I will update the first post with the relevant information.