Klonovací války v počítačovém šachu I.
19.01.2010 15:02 | PC šachZa cenné komentáře, podněty a doplňky děkuji Pavlu Hásemu (Praha) a panu X, který si nepřeje být jmenován.Dnes se klonuje všude... - Pokud napíšu, že „Na Staré Bělidlo přijela babička“ a opíšu od Božky i dalších pět set v
Dnes se klonuje všude... - Pokud napíšu, že „Na Staré Bělidlo přijela babička“ a opíšu od Božky i dalších pět set vět, určitě se zesměšním a u novějších děl se navíc vystavím i riziku stíhání. Mohu ovšem místo toho napsat, že „Babička dorazila na Staré Bělidlo“ a podobným „tvůrčím“ způsobem pojmout i zbytek. Vznikne sice dílo dosti podivné, mohu ale s klidným svědomím tvrdit, že jsem od Němcové „neopsal ani větu“.
Moc správné ani morální to sice není, ale v dnešní době, kdy už všechno bylo napsáno a vymyšleno, to dělá víceméně každý. Je možné složit originální písňový text o lásce? Těžko, těch pár slov s tím spojených se už omlelo tisíckrát. Opakují se detektivní zápletky, nápady ve sci-fi a to ani nemluvím o nekonečných televizních seriálech. Prostě je to tak a ustálilo se jakési status quo, že autor aspoň musí projevit snahu, aby to moc nebilo do očí.
Podobné problémy se řeší i na půdě akademické. Opíšu-li text z jednoho nebo dvou zdrojů (jako někteří primitivové v Plzni), jde o plagiát. Opíšu-li z dvaceti zdrojů, vytvořil jsem vědecké dílo.
Klon v softwaru
Nejprve pár slov o korektním klonování. Pan Thomas Gaksch (Německo) chce napsat šachový motor. Aby nemusel od píky v potu tváře vyvíjet základní rutiny (jako třeba generátor tahů, přístup k hash tabulkám nebo UCI rozhraní), vyjde ze silného motoru Fruit (Fabien Letouzey, Francie). To je možné proto, že Fruit poskytuje i zdrojové soubory; jde o tzv. „open source“ software. Veškerý svůj čas může pak Thomas velmi efektivně věnovat pouze vylepšování klíčových pasáží. Tuto skutečnost uvede a dá své úpravy k dispozici. Výsledný produkt jménem Toga je označen jako klon Fruitu. V takovém kontextu nemá nálepka klon hanlivý podtón. Naopak, motor se podařilo výrazně vylepšit, Thomas si udělal reputaci dobrého programátora a zůstal čestným mužem. Pokud by ovšem chtěl Togu prodávat, vzniknou problémy; i když v GPL variantě open-source to v principu vyloučeno není.
Ve skutečnosti i Thomas zprvu bojoval s problémy. Přiznání skutečného stavu mu chvíli trvalo a i pak mu kolegové vyčítali, že ve Fruitu přepsal pouhých 47 řádků. Tehdy neznámý Vašík Rajlich ho ale na fóru podpořil: Thomasi, jedinou cestou vyhnout se kritice je nedělat nic. Doufám, že budete na Toze pokračovat...
Prvním významným šachovým open-source programem byl Crafty Dr. Roberta Hyatta (USA). Pan profesor je za svou činnost placen univerzitou a není proto závislý na komerčním prodeji. Crafty je motorem solidní, ale ne špičkové třídy a jeho hlavní předností je právě otevřený a pečlivě vědecky dokumentovaný vývoj.
Taková věc je v oboru šachového softu jistě užitečná. V zákulisí se ale traduje, že mnohé amatérské i komerční šachové programy vznikly právě vylepšováním programu Crafty. Později převzal jeho úlohu zmíněný Fruit, který je výrazně silnější. Sám autor po čase napsal, že publikace zdrojů Fruitu byla asi chybou. Určitě se tím připravil o spoustu peněz, ale...
Pavel Háse: Na druhé straně, nebýt Fruitu, možná by šachovým programům dodnes vévodil Shredder s Elem 2900 a všichni by si pochvalovali, jaký skvělý je to program. Skutečný přínos Fruitu pro počítačový šach bude patrně doceněn, až se situace stabilizuje. Během pěti let se výkonnost programů posunula o 400 Elo bodů; to nelze svádět jen na lepší hardware. Kdo si pamatuje staré „Švédské“ listiny s Geniem, Rebelem, M-Chessem a dalšími, kde roční posuny byly většinou maximálně o 30 Elo, vidí znatelný rozdíl.
„Vykrádat“ open source programy je velmi snadné a špatně prokazatelné. Většina programů – a tedy i šachových motorů – open source není. Dodává se jen zkompilovaný EXE soubor, do kterého není vidět a kde se „schová“ téměř cokoli.
Starý bonmot říká, že kdyby byly domy „zfušované“ stejně jako software uvnitř, většina měst by se okamžitě rozvalila.
Dokázat panu AB, že v jeho komerčním motoru jsou pasáže z Crafty nebo Fruitu, je proto velmi obtížné.
První klonový skandál
Na mistrovství světa v Grazu (Rakousko) v roce 2003 došlo k politováníhodné události. Uprostřed soutěže byl vyloučen program List mladého německého autora Fritze Reula na základě anonymní stížnosti, že jde o klon programu Crafty. Reul se nenacházel v místě konání, protože kdesi v Německu skládal zkoušky z matematiky. Nebyl ani dostatečně rychle k zastižení, aby předložil zdrojový kód programu, a tak spadla klec. Později známý expert Dann Corbit toto podezření prakticky s jistotou vyvrátil (mimo jiné neměl List ani bitboardovou strukturu) a ICGA (International Computer Games Association) nikdy vyloučení nezopakovala.
Tato organizace nemá obecně dobrou pověst a co si páni bafuňáři dovolili na studentíka, k tomu později nenašli odvahu v případě Rybky, ač byla situace velmi podobná.
Rybka
Normální slovo klon ve smyslu Togy začíná dostávat hanlivý pejorativní podtón a hojně se skloňuje hlavně od doby, kdy se na scéně objevila Rybka. Připomeňme, že fenomenální šachový motor Vašíka Rajlicha skončil v roce 2004 na turnaji CCT6 předposlední z 54 programů a v roce 2005, bez jakékoli další turnajové praxe, už smetl celou špičku.
To pochopitelně připadalo divné každému. I já jsem na svém webu napsal, že jde zřejmě o další klon Fruitu. Obratem jsem dostal od Vašíka mail, kde klonování popírá. Přiklonil jsem se presumpci neviny; tvrzení jsem opravil a už nikdy jsem nic takového za svůj názor nevydával. Jako autor zpravodajského webu ovšem musím referovat o nekonečných tahanicích, které na toto téma vznikly. Rybka je totiž příliš dobrá, aby to Vašíkovi prošlo tak snadno. Profesor Hyatt otevřeně nazývá Vašíka lhářem a tvrdý úder založený na disassemblovaných částech kódu zasadil zejména Zach Wegner. Ale diskuse stejně končí do ztracena. Sám Vašík poskytl několik protichůdných informací. Zprvu tvrdil, že mu open source programy hodně pomohly, později ale upřesnil, že jejich studiem získal nejvýš 20 Elo bodů a nakonec doslova uvedl, že z Fruitu „neopsal ani řádku“.
To už jsme někde viděli, vzpomeňme na Boženu Němcovou. Nemá smysl debatovat o tom, zda Rybka 1 byla klon Fruitu, když nevíme, co to vlastně klon je. A „převyprávění“ softwaru je považováno za normální stav.
Když to trochu přeženu, tak Microsoft vedle nekonečných únavných záplat léta nic jiného nedělá. MS-DOS byl předělaný CP/M, Windows je napodobenina applovského Systemu a dále jen zkratkovitě: ActiveDirectory – Novel NDS, Excel – Lotus 1-2-3, Messenger – ICQ, IE – Netscape Navigator, .NET – Java, Silverlite – Flash...
Strelka
Vašík svůj zdrojový kód nikdy nikomu ke kontrole nepředložil a trval na presumpci neviny. Na jiné programy ovšem on a jeho spolupracovníci tvrdě používají přesně opačnou metodu presumpce viny.
První aféra propukla v roce 2008 s ruským programem Strelka 2.0 Juri Osipova. Osipov uvedl program jako open source se zdrojovými soubory. Vašík ovšem začal křičet, že jde o evidentní klon jeho Rybky 1. A jen na základě jeho slova (proti zdrojovému kódu!!) dosáhl toho, že třeba Convecta odmítla Strelku prodávat.
Ke své škodě; dávno mohla mít silný program pro PocketPC jako protiváhu k Pocket Fritzům konkurenční ChessBase. Slíbené Pocket Rybky se Convecta totiž asi už nedočká a vývoj rozhraní Pocket Champion bylo tak víceméně ztrátou času.
Později se objevilo několik informací, které Vašíkovo tvrzení zpochybnily. Gian-Carlo Pascutto (DeepSjeng) píše, že v kódu Strelky jsou evidentně vidět tři styly – Fruit, Beowulf a Rybka. Takže pokud je Strelka klonem Rybky a přitom ve Strelce jsou pasáže z Fruitu, co si o tom myslet? Kromě toho Strelka 2 Rybku 1 dost výrazně poráží.
Sám Osipov popsal vznik Strelky na ruském fóru. Nejdřív přepsal Fruit do bitboardové koncepce (podobně to podle něj udělal předtím Vašík) a teprve pak se inspiroval laděním s Rybkou. Zkoumal ale zhruba jen 20 procent jejího disassemblovaného kódu a převzal i pár tabulek.
Vašík měl ovšem v té době už k dispozici Rybku 2.3, která porazila všechno. A tak se uplatnila stará zásada, že pravdu má vítěz.
Těsně před uvedením Rybky 3 v létě 2008 se člen Vašíkova týmu Larry Kaufman (USA) pustil do Stefan Meyer-Kahlena (Německo) a veřejně ho obvinil, že vylepšuje Shreddera zkoumáním Fruitu a Rybky. To už pánové trochu přehnali a Stefan, který šachový motor vyvíjí dlouhá léta, vtipně odpověděl: Rybka není jediné centrum počítačového šachu a jsou i jiné cesty zlepšování než kopírovat Fruit/Strelku/Rybku.
Vypadá to, že někdy v té době vztahy Vašíka s Kaufmanem značně ochladly. Několik zákulisních informací bylo korunováno zprávou, že Kaufman začal spolupracovat se starým kamarádem Donem Dailey (USA, Rex, Socrates) na zajímavém projektu Doch. Tento silný motor je zatím ke stažení zdarma.
Larry je šachovým velmistrem. V pravém slova smyslu neprogramuje, ale specializuje se na oceňovací funkce. Především na vyladění hodnot figur v určitých pěšcových konstelacích a hodnocení nerovnováhy materiálu. Vzniká úsměvná otázka, jestli Doch je částečným klonem Rybky 3 nebo jestli naopak Rybka 4 bude částečným klonem Dochu.
Pokračování zítra.
S tim Botvinnikem je to "takrka" prokazane - zadny program Pioner neexistoval a strom generovali lide...
pavel hasse > diky, moc peknej prispevek :) ale s tim ze by to botvinik delal v ramci propagandy tomu neverim. prece jen to byl doktor ved takze neco asi udelal...ale jinak right ;)
Korespondenční šachisté přivítali, to ano. Nicméně ať už se jedná o klony, či ne, takový Robbolito se od Rybky navrženým tahem liší málokdy - takže se rozhodnout pro něco z toho - Iggorrit, Firebird, Robbolito, Ivanhoe, Rybka, ale nemá smysl jich používat víc. Snad jako taktickou kontrolu, pro koranalýzu je třeba Robbo nepoužitelný kvůli chybějící multivariant atd. Asi bych počkal na Firebird, pokud se ukáže jako stabilní a používal bych ten. A k němu buď StockFish, nebo Shredder (pro rané zahájení, nebo naopak pozice s málo pěšci a hrozící hromadnou výměnou, mohly by se uplatnit shredderbase).
Já mám radost spíše ze StockFish, ten má mnohem častěji úplně odlišný náhled na pozici a často se ukáže, že lepší, jak Rybka.
to Rubinus > javu mam ale nejde to...Partii jsem vyhral ale i bez pripravy ;-)
šachistaAleš ve vší zdvořilosti to nebol príspevok pre ŠT , ale pozdrav pre pána X
Btw. koršachisti, len privítali rodinku Ippolitov, pri dominancii Rybky to už bolo miestami nudné oproti časom pred jej príchodom, keď kráľovali Shredder 9, Fritz 8, Junior 9, Hiarcs 9 a ďalší
Chce to Javu.
No bohuzel chesslive.de u me nefunguje.. ale diky Rubinus
názor: V tomto směru určitě nebyli. Jejich počítače byly vždy o generaci zpět. Programátory měli samozřejmě výborné, ale když ti neměli přístup k modernímu hardwaru, byli samozřejmě také pozadu.
paffko: chesslive.de , knihovny pak a) chessok.com/ , b) www.shredderchess.com/online-chess/online-databases/opening-database.html
Samozřejmě známý velký antikomunista musel obvinit Botvinnika. Nemůže zkousnout, že rusové holt byli lepší.
Bond(James): Lze to vzít i jinak, kdyby nebyla klonem, tak rozhodně nebude hned nejlepší.
Neznate nekdo link na online sachovou databazi?
david brazina: Botvinnikův počítač byl asi propagandistický podvod, prý ty občasné zveřejněné analýzy produkoval nějaký velmistr :), stroj sám pak nebyl NIKDY veřejně předveden. Botvinnik sám byl zažraný komunista, který by se k tomu klidně propůjčil.
Co se starého zápasu mezi ruskou a americkou mašinou týká, potom americká mašina byla asi lepší, ale prohrála kvůli špatnému programu. Američané zkoušeli naprogramovat inteligentní přístup, zatímco Rusové jen výpočet hrubou silou. A jejich způsob je vlastně účinnější dodnes, jen hrají roli různé triky, jak omezit propočet špatných variant, nejznámější je nultahová heuristika, popsaná např. v knize "Šachy na PC".
Inteligentní přístup, o který se vlastně prý pokoušel i zmíněný Botvinnik, totiž v současné době programovat neumíme. Základní potíž je v tom, že počítač neumí "myslet" podobenstvích, takže když např. do oceňovací funkce zadám, že střelec a věžový pěšec s polem barvy proměny neovládaném tím střelcem je remis, potom to program bude znát. Ale pozici s tímž dvojpěšcem, nebo dokonce nepřátelským pěšcem (téměř) kdekoliv bude pokládat za vyhranou a podle toho se bude řídit jeho propočet.
No ať víme, že to ví, i když ve skutečnosti nevíme, jestli to ví
Ve vší zdvořilosti: naprosto netuším, jaký je smysl příspěvků typu předchozího.
Viem, kto je tajomný pán X :-)
Kvalitní rozborový materiál, zítra očekávám srozumitelné shrnutí pana ing. Emila Vlasáka, který problelmatice počítačového šachu dobře rozumí a o jeho názory je možné se opřít.
Můj názor na Rybku je neměnný - pokud by byla klonem jakéhokoliv jiného programu, tak by nemohla být o třídu lepší.
nevim no, prvni byl botvinnik. ten jako prvni vubec pouzil princip hashovani v sachovych programech. prvni strojovy zapas mezi ibm a cimsi z ruska vyhral pry rusky stroj. vim ze i fischer (ne robert), nemecky programator vychazel z botvinnikovi koncepci. ale cert vi jak to vsecko bylo a bude. pokud lidi budou platit tak se vykradat cizi idee budou vzdy.
trosku odbocim, mel jsem delat znalecky posudek ze jeden borec z vitkovic naprogramoval soft, a jinej z nhacka pry jej obslehl. zdrojak byl temer totozny, ale stejne se nic neprokazalo, vzhledem k ruznym platformam nebyl duvod domnivat se ze jde o plagiat (podle vykladu prava) takze, pokud nekdo neco napise ve wordu (treba zminovanou babicku) a jinej ji prepise do techu tak z hlediska prava pry jde o dve ruzne veci. divne ze?
Možná stojí za to zmínit, že Vašík umí velice dobře česky :-)
Zajímavý článek. Je fajn, když se tu objeví i něco z křemíkového světa. Jen tak dál.