GUSTAV - nejrychlejší program na ortodoxní samomaty a vícetažky

(recenzi napsal Václav Kotěšovec, 6.10.2009)

GUSTAV - fastest program for orthodox selfmates and moremovers

(review by Vaclav Kotesovec, 6.10.2009, updated 21.10.2009)


Při síle současného hardwaru rozšiřuje program GUSTAV obzor plně testovatelných ortodoxních samomatů až někam za 9-10 tahů! Vedlejší řešení lze navíc hledat (podobně jako v ALYBADIXu) s pomocí různých doplňujících podmínek. Program je pravý "windowsovský" a má příjemné uživatelské rozhraní. GUSTAV je řádově rychlejší než ALYBADIX na ortodoxní samomaty a vícetažky.
With power of current hardware GUSTAV open new space for testing of long orthodox selfmates. Full test is now possible up to 9-10 moves! Gustav 3.1 is for Windows and is very convenient to use. In case of long orthodox selfmates and moremovers is GUSTAV unbelievably 10-40 times faster than ALYBADIX!

O programu GUSTAV

About GUSTAV

Olaf Jenkner se řadu let zabývá vývojem svého programu GUSTAV na řešení šachových úloh. Původní verze 2.2 z roku 1992 pracovala pod DOSem a měla jen semigrafické rozhraní. Program byl sice celkem rychlý (i když tehdy pomalejší než Alybadix), ale nebyl uživatelsky příliš přívětivý. Proto jsem ho po několika testech odložil a nepoužíval. O to víc mě překvapila jeho nová verze 3.1 z roku 2009, která je neskutečně rychlá a navíc má i příjemné uživatelské rozhraní.



GUSTAV umí řešit ortodoxní #n, s#n a h#n (resp. =n, s=n, h=n), ale neumí exokameny ani exopodmínky. Manuál i ovládání je v němčině, ale je poměrně snadné tomu rychle porozumět.
Gustav solves orthodox mates, stalemates, helpmates, helpstalemates, selfmates and selfstalemates. Fairy pieces or fairy conditions are not allowed. Program and manual is only in German. The program is easy to use, so we should be able to let it run although all commands and controls are in German.

Program má svůj specifický formát dat GST, existují však konverzní programy, pomocí kterých je možný import a export pozic z jiných formátů (sám jsem si napsal konverzi ze souboru INP/OUT a v několika krocích tak umím do Gustava převést úlohy z WinChloe). V jednom vstupním souboru je možné mít více pozic (listování v něm je velmi rychlé), výstup řešení úloh je však realizován systémem jeden textový soubor pro jedno řešení.
GUSTAV has his special format of files GST. In one file can be more chess problems, but output text files generated always one file for each problem. Conversions programs between formats already exists (one by Olaf Jenkner, one by Vaclav Kotesovec).

Možný je také přímý import / export z a do různých formátů, tyto formáty jsou však (aspoň pro mě) dost "exotické".
Direct import / export from and to other formats is also possible. But these formats are (for me) too unusual.

Součástí programu je grafický editor pozic. Je třeba si dát pozor na to, že rošádu (obecně) i braní mimochodem (v prvním tahu) je třeba povolit.
Set up of new position is also possible with help of inbuilt editor. Attention: please check if castle (Rochade) is allowed (else such moves are not possible)

Podobně jako v Alybadixu je zde možné rychlé nalezení řešení za zvolených doplňujících podmínek. Tyto podmínky je možné zvolit automaticky ("automatische Parameter") nebo ručně ("eigene Parameter"). Např. parametr "maximale Zugzahl" (analogie "Y" v Alybadixu) vyžaduje takovou bílou hru, že černý má vždy jen maximálně zvolený počet tahů. Subparametr "Ausnahmen" potom určuje počet vyjímek (analogie parametru "Z" v Alybadixu). Dále je možno volit matové(á) pole, maximální počet volných polí, omezení hodnot proměn bílých pěšců nebo hodnoty černých kamenů které nesmí být brány (analogie wC- v Alybadixu). Tyto parametry je možno volit automaticky nebo je zadat ručně. Kompletní test (kdy je možno úlohu označit jako "C+") se provádí v režimu "Brute Force".
Special quick mode for testing exists (like Y1 in Alybadix). Possible set automatically ("automatische Parameter") or by hand ("eigene Parameter"). Such partially tests (with miscellaneous conditions) find solution of selfmates extremely fast (see right column in table below), but for marking as "C+" is full test in "Brute Force" mode necessary.

Dobrou možností programu je parametr "Zugzahl unbekannt", kdy se úloha řeší postupným přidáváním počtu tahů. Obvykle počet tahů známe, ale významy toto má dva. Za prvé pokud má úloha vedlejší řešení kratším počtem tahů, najde se takto mnohem rychleji. Za druhé, je možný odhad celkové doby řešení podle dílčích časů (v programu se zobrazuje i (n+1)/n factor!). Toto jsem při používání ALYBADIXu musel dělat vždy ručně, GUSTAV v tomto odhad celkového času velmi ulehčuje.
Short cooks can be found better with option "Zugzahl unbekannt" (number of moves unknown). This mode also enable comfortable estimate of full time necessary for complete solving from partial times.

GUSTAV umí také přehrávat řešení kliknutím na tah v řešení.
Gustav plays the solution after clicking onto the solution move.

Program nemá svoji internetovou stránku (jak mi psal jeho autor, raději svůj čas věnuje vylepšování programu). Více informací o programu (i to jak ho koupit) lze získat od autora e-mailem.
GUSTAV hasn't his own website, more info about GUSTAV is available by author via e-mail Olaf Jenkner (postal address: Beckerstrasse 20c, 09120 Chemnitz, Germany).



Porovnání s ALYBADIXem

Compare with ALYBADIX

Testoval jsem znovu prvních 20 korektních samomatů, uvedených jako příklady v mém článku Testing of long selfmates from the WinChloe database (od str.17) a zjistil jsem, že na tyto ortodoxní samomaty je GUSTAV v průměru 37x rychlejší než Alybadix! Testování jsem prováděl na stejném počítači (AMD64) pod Windows XP a s přidělením zhruba shodné paměti 1200 MB RAM oběma programům (pod Windows 7 je možné až s 1600 MB RAM). Výsledky testování shrnuje následující tabulka.
I tested again first 20 (C+) selfmates from my article Testing of long selfmates from the WinChloe database. I tested these problems under Windows XP with 1200 MB RAM for hash tables (on same computer, operating system and memory as with ALYBADIX earlier). (Note that GUSTAV working also under Windows 7 with 1600 MB). For orthodox selfmates is GUSTAV average 10-40 times faster than ALYBADIX! (dependent on number of moves). Results of testing are in the following table.

 authorstipulationALYBADIXGUSTAVtimes fasterGUSTAV in "On Click" mode
   brute force "automatische Parameter"
1Bunkas#836 h 17 m  0 h 28 m 52 s75,4less than 1 s
2Fitchs#815 h 16 m0 h 23 m 35 s38,84 minutes
3Kirtleys#810 h 19 m0 h 20 m 08 s30,7less than 1 s
4Petkovs#8 7 h 03 m0 h 22 m 22 s18,96 s
5Zanders#920 h 38 m0 h 31 m 34 s39,22 s
6Weisskopfs#946 h 54 m0 h 29 m 11 s96,4less than 1 s
7Bunkas#918 h 13 m0 h 38 m 10 s28,62 s
8Böttgers#915 h 01 m0 h 54 m 35 s16,5less than 1 s
9Mosers#936 h 06 m0 h 43 m 26 s49,9less than 1 s
10Buchwalds#910 h 04 m0 h 25 m 10 s24,09 s
11Backers#922 h 21 m0 h 29 m 26 s45,6less than 1 s
12Zerengiss#941 h 38 m7 h 14 m 23 s 5,822 hours
13Selivanovs#929 h 21 m2 h 09 m 37 s13,658 s
14Zanders#941 h 58 m1 h 16 m 18 s33,0less than 1 s
15Lindners#917 h 37 m1 h 50 m 28 s 9,62 s
16Turas#910 h 43 m1 h 24 m 23 s 7,6less than 1 s
17Csaks#915 h 17 m0 h 12 m 54 s71,1less than 1 s
18Libiss#833 h 19 m0 h 32 m 17 s61,94 s
19Pradignants#985 h 43 m7 h 19 m 55 s11,7less than 1 s
20Dikusarovs#1017 h 03 m0 h 15 m 49 s64,7less than 1 s
All these times are for full test! (C+)average faster
37,2
in this column are times for
partial test (not C+,
but solution found!)

Je zajímavé, že poměr zrchylení mezi Gustavem a Alybadixem se zvyšuje s narůstajícím počtem tahů, dost často je to až s faktorem 2 na každé úrovni! Můžeme se o tom přesvědčit v následující tabulce a grafech. Při dosažení určitého počtu tahů (odhadem 8) je sice stále ještě GUSTAV výrazně rychlejší než ALYBADIX, ale jako by mu začal "docházet dech". Dalo by se odhadnout, že tato situace nastává při zaplnění hashovací paměti. Zřejmě má ALYBADIX efektivněji vyřešenu situaci, kdy musí většinu této paměti uvolnit (tzv. pruning) a ponechat v ní jen část nejcennějších hodnot.
Jak uvidíme dále, pro pomocné maty (řešené metodou hrubé síly) je rychlejší Alybadix. Z toho usuzuji, že ALYBADIX má lépe udělané jádro (řešení jednotažky), ale síla programu GUSTAV je v tom, že v úlohách, kde mají obě strany protichůdné cíle, dokáže mnohem lépe selektovat bílé tahy, resp. nachází efektivněji silná vyvrácení černého, čímž výrazně eliminuje počet tahů bílého, kterými je třeba se v každé úrovni zabývat (na rozdíl od pomocných matů, kde obě strany spolupracují, tahy bílého a černého jsou v tomto smyslu rovnocenné a taková optimalizace není možná).
It's interesting, that ratio between solving times ALYBADIX / GUSTAV accelerate with number of moves. This situation is only in chess problems in which both sides not cooperate (like selfmates and moremovers). GUSTAV probably better analyse refutations and select less white moves in each level than ALYBADIX. In helpmates is such optimalization not possible (and faster is ALYBADIX). Since some number of moves (usually 8) is GUSTAV still much faster than ALYBADIX, but acceleration is not too high. Reason is probably in situation if hash memory is full.

 s#6s#7s#8s#9
121,944,4 75,4 
222,132,0 38,8 
321,235,8 30,7 
414,926,8 18,9 
5 7,913,2 21,039,2
6 5,4 9,7 23,596,4
7 3,2 6,2 12,528,6
8 6,4 7,7 11,516,5
9 8,016,3 27,949,9
10 6,714,6 30,524,0
11 6,014,5 32,945,6
12 1,8 2,4 4,4 5,8
13 7,711,6 19,313,6
14 6,6 9,8 16,133,0
15 9,311,6 11,8 9,6
16 4,6 8,7 20,5 7,6
1724,667,0161,671,1
1834,746,1 61,9 
19 4,4 5,5 8,011,7
20 4,3 7,7 18,138,0
     
average11,119,6 32,332,7






Porovnání s dalšími programy

Compare with other programs

GUSTAV je mnohem rychlejší než ALYBADIX také v případě ortodoxních vícetažek. Na pomocné maty je však stále rychlejší Alybadix a to i při použití metody hrubé síly (brute force). Také ostatní programy jsou na vícetahové pomocné maty mnohem rychlejší než GUSTAV, který nemá inteligentní mód (řešení hledáním matových obrazců).
GUSTAV is much faster than ALYBADIX also in case of orthodox moremovers (in case of tested #11 was faster 19 times!) But for orthodox helpmates in brute force mode is ALYBADIX 2 times faster than GUSTAV. For longer helpmates are much faster POPEYE, CHLOE or VKSACH in intelligent mode, which is not possible in GUSTAV. Good results for orthodox moremovers and selfmates (not for helpmates) has also program CHEST, but this program is very not userfriendly. GUSTAV is faster also than CHEST.

Kromě programu GUSTAV se na pouze ortodoxní úlohy specializuje také program CHEST, který má ale velmi nepříjemné uživatelské rozhraní (příkazovou řádku s mnoha parametry), ale ani jeho verze ChestUCI, která se spouští pod programem ARENA není pro problemisty zrovna tím pravým. Pracuje se zde ve stylu Chessbase a to je program na praktický šach, který je na šachové úlohy naprosto nevhodný a práce s ním je těžkopádná. Přesto vlastní jádro (motor) programu CHEST je velmi rychlý, proto jsem ho zařadil do porovnávacích tabulek a grafů.
ALYBADIX na ortodoxní samomaty a přímé úlohy sice dnes už hodně zaostává, ale stále je nejrychlejší na ortodoxní pomocné maty (řešené metodou "hrubé síly" = "brute force"). Udržuje si však bezkonkurenční primát v oblasti exoúloh. Programy POPEYE, WINCHLOE nebo VKSACH jsou co se týče rychlosti řešení úplně v jiné kategorii. Jejich použití má samozřejmě opodstatnění u úloh, jejichž řešení nezabere moc času a kde jejich relativní pomalost většinou nevadí. Program WinChloe je uživatelsky nejpříjemnější a v jeho obrovské databázi je možno vyhledávat předchůdce.
Je třeba vždy zvážit, zda se vyplatí transformovat úlohu do formátu pro jiný program nebo ji raději (sice pomaleji) vyřešit přímo v jeho prostředí. Osobně všechny nové úlohy zadávám nejprve do WINCHLOE a v případě časově velmi náročných úloh takové pozice pak testuji pod jinými programy. Platí tyto zásady:

  • Na všechny úlohy, jejichž řešení se dá zvládnout v čase několika minut, použiji WINCHLOE (90% všech úloh)
  • Na dlouhé ortodoxní samomaty a vícetažky je nejrychlejší GUSTAV
  • Na delší ortodoxní pomocné paty a sériovotahové pomocné paty jsou nejrychlejší POPEYE v inteligentním módu
  • Na exoúlohy všeho druhu je nejrychlejší ALYBADIX
  • Občas použiji POPEYE na úlohy s neobvyklými exopomínkami

    Viz též tabulky porovnání programů v sekci "Programs" na mojí internetové stránce.


    Časy řešení pro jeden vybraný (ortodoxní!) samomat, vícetažku a pomocný mat (čas je ve formátu h:mm:ss)
    Solving times for one selected (orthodox!) selfmate, direct mate and helpmate (time in format h:mm:ss)
     s#8 (Buňka)#11 (Zipf)h#4 (Adrian)
    programs#5s#6s#7s#8 #8#9#10#11h#3h#4
    GUSTAV 3.10:00:010:00:120:02:0900:28:52 0:00:200:01:370:07:1700:32:210:00:020:10:01
    ALYBADIX 20050:00:100:04:271:35:3236:17:00 0:00:430:06:581:11:3610:18:000:00:010:04:54
    CHEST 3.190:00:020:00:170:05:0401:11:11 0:00:110:00:560:06:1000:55:020:00:422:24:48
    POPEYE 4.510:00:210:07:233:04:37  0:45:234:17:37  0:02:05>10 hours
    WINCHLOE 3.040:02:140:32:54   2:17:53   0:06:19 
    CHLOE (DOS)0:00:170:12:06   0:07:111:33:38  0:00:56>10 hours


    Kolikrát je GUSTAV rychlejší než jiné programy (GUSTAV = 1,0)
    How much is GUSTAV faster than other programs (GUSTAV = 1,0)
     s#8 (Buňka)#11 (Zipf)h#4 (Adrian)
    programs#5s#6s#7s#8 #8#9#10#11h#3h#4
    GUSTAV 3.11111111111
    ALYBADIX 2005102244752,24,310190,50,5
    CHEST 3.1921,42,42,50,60,60,81,72114
    POPEYE 4.51213786 136159  62 
    WINCHLOE 3.04134164  413   189 
    CHLOE (DOS)1760  2158  28 


    Grafy vztažené k ALYBADIXu
    Relations to ALYBADIX

    Modrá čára znamená kolikrát je GUSTAV rychlejší než ALYBADIX
    Červená čára znamená kolikrát je CHEST rychlejší než ALYBADIX
    (podle typu úlohy a počtu tahů)
    Blue line = how much is GUSTAV faster than ALYBADIX
    Red line = how much is CHEST faster than ALYBADIX
    (by type of problem and number of moves)






    Všechny ortodoxní samomaty 8. tahem jsou nyní testovatelné!

    All orthodox selfmates in 8 moves from WinChloe database now tested!


    Systematicky jsem testoval programem GUSTAV všechny ortodoxní samomaty 8. tahem, které nebylo dříve možné přezkoušet ALYBADIXem. Testoval jsem nyní celkem 63 s#8, které GUSTAV kompletně otestoval za 209 hodin 33 minut. Z toho vychází průměrný čas 3 hodiny 19 minut na jeden samomat 8. tahem. Tato hodnota má však obrovský rozptyl od několika vteřin do 28 hodin (u jedné úlohy s řadou proměn bílých pěšců).
    With help of program GUSTAV I tested all remaining 63 orthodox selfmates in 8 moves from WinChloe database. This took 209 hours 33 minutes, average time for one s#8 was 3 hours 13 minut (but this value has huge volatility, between few seconds to 28 hours for one s#8 with many white promotions). (updated 21.10.2009)
    Zde je možné nalézt několik příkladů časově náročnějších korektních samomatů 8. tahem: examples of tested s#8, C+ (PDF)


    Další příklady nově testovaných samomatů programem GUSTAV (i delší než 8 tahů) je možno nalézt zde: GUSTAV - examples of tested selfmates (updated 11.12.2009)