Rybka, Rybka, Rybka... volume 3. - Proč je vlastně tak dobrá?

22.08.2008 08:00 | Šachový program Rybka

Problémy Rybce, jako každému „mladému“ motoru, chybí znalosti z koncovek. Neumí například správně zhodnotit tak elementární věc, jako je falešný střelec. Námitka, že záležitost spraví nasazení tablebasí, neobstojí. ...

Problémy
Rybce, jako každému „mladému“ motoru, chybí znalosti z koncovek. Neumí například správně zhodnotit tak elementární věc, jako je falešný střelec.
Námitka, že záležitost spraví nasazení tablebasí, neobstojí. Když například přibudou bezvýznamní pěšci, remíza nebude rozeznána.
Zcela naivní jsou představy Rybky o bezpěšcových koncovkách. Rybka neshledává rozdíl mezi SSJxV a SJJxV, ačkoliv první konstelace je teoreticky vyhraná a druhá remízová.
Vašík po četné kritice sice dodělal do programu možnost slabých proměn, ale nevzal v úvahu střelce.
Proto je nasazení Rybky ve studiích problematické a já sám raději stále používám dvojici Hiarcs a Shredder, v odůvodněných případech doplněnou Fritzem.

Jak je to s „klonováním“?
Otázka klonu Fruita, kterou jsem s Vašíkem řešil hned v prvních dnech, není dosud zcela uzavřená. Začátkem roku 2008 se objevil velmi silný ruský program Strelka 2.0 Jurije Osipova, ke kterému jsou k dispozici zdrojové texty. Strelku a další volné motory najdete na adrese http://sdchess.ru/download_engines.htm
Vašík ji smetl ze stolu tvrzením, že jde téměř o stoprocentní disassemblovaný klon Rybky 1.0. Gian-Carlo Pascutto (DeepSjeng) však píše, že v kódu Strelky jsou evidentně vidět tři styly – Fruit, Beowulf a Rybka. Takže pokud je Strelka stoprocentním klonem Rybky a přitom ve Strelce jsou pasáže z Fruitu, těžko může být Rybka „čistá“.
Záležitost zpochybnil také Orlando de la Vega publikováním výsledku Strelka 2.0 B - Rybka 1.0 Beta 32-bit 29.5 - 20.5 (+ 21,= 17,- 12).
Více o celé věci najdete česky na http://www.vlasak.biz/evcnews.htm#Strelka_080113
Pravda je jako obvykle někde uprostřed. Zatímco pionýři šachového programování museli v potu tváře ladit generátory tahů a hledací algoritmy, aby vůbec fungovaly; dnešní začínající programátor si napřed všechno prohlédne funkční a hotové. Nejen ve zmíněném Fruitu, ale i v několika dalších programech. A pak pouze vybírá a zdokonaluje. To samo o sobě ho katapultuje o několik let dopředu, i když se nedá říci, že by něco přímo opsal.
Vašík v roce 2003 už také určitě věděl, že 64bitové systémy stojí přede dveřmi. Proto neměl problém rozhodnout se pro poměrně nezvyklou bitboardovou koncepci programu. V důsledku toho Rybka běží na 64bitových systémech prakticky „zadarmo“ o 40 procent rychleji, zatímco takový Hiarcs nebo Fritz bude muset být od základu přepsán, pokud k tomu autoři vůbec najdou sílu.
Těsně před uvedením Rybky 3 se Larry Kaufman pustil do SMK a veřejně ho obvinil, že vylepšuje Shreddera zkoumáním Fruitu a Rybky. Tím docela popudil veřejné mínění, zejména ve vlivném Německu. SMK, mimo jiné autor celého UCI standardu, k tomu trefně a decentně napsal: Rybka není jediné centrum počítačového šachu a jsou i jiné cesty zlepšování než kopírovat Fruit/Strelku/Rybku.

Proč je vlastně tak dobrá?
Kruh se uzavírá a vracíme se k úvodnímu problému, jak může být Rybka tak dobrá. Už jsme si ujasnili super-kvalifikaci autora i problém převzetí zkušeností ze starších programů. To samo o sobě ale prostě stačit nemohlo. Za necelé tři roky panování Rybky jsem viděl různé teorie o její síle, ale žádná není dostatečně jasná a průkazná. Nicméně určité indicie se nashromáždily.
Vašík musel narazit na nějaký „kámen mudrců“, který umožňuje programu bez velkých šachových znalostí dosáhnout neuvěřitelně efektivního a hlubokého propočtu.
Posledním takovým objevem byla nultahová heuristika, která posunula programy o 200-300 ELO bodů. V devadesátých letech minulého století měli ovšem šachoví programátoři hlavní společný cíl posunout nevalnou úroveň tehdejších programů, proto si nápady předávali. Nultahovou heuristiku popsal Dr. Donninger v ICCA Sept1993 a tak mohla být využita podle uvážení všemi konkurenčními programy. Zato Vašíkovi se zatím výborně daří svůj nápad před konkurencí utajit.
Zajímavým námětem k přemýšlení je délka spustitelného souboru. 32bitová Rybka má kolem 2.5 Megabajtu, zatímco programům prokazatelně nabitým šachovými znalostmi stačí polovina až třetina této velikosti; taktiku Junioru dokonce desetina. Co se skrývá v tak velkém prostoru? Geniální urychlovací index nebo jen „vata“, znesnadňující zpětnou analýzu?
Vyskytl se názor, že Rybka v sobě skrývá několik konkurenčních motorů. Podobnou ideu ale zkoušel SMK veřejně (pod názvem Tripple Brain) a nijak zvlášť se neosvědčila.
Postavte si základní pozici a zahrajte 1.a4 a5. To je stará osvědčená metoda jak rychle a bez námahy dostat pozici mimo knihovnu zahájení. Spusťte nekonečnou analýzu různých motorů a sledujte jejich indikovanou rychlost v kN/s (tisíce propočtených pozic za sekundu).

Na mém počítači Intel Core2Duo 6320 dostávám

Junior 1580 kN/s
Fritz 1290 kN/s
Shredder 420 kN/s
Hiarcs 330 kN/s
Rybka 2.3 110 kN/s
Rybka 3.0 30 kN/s

Pochopitelný a legitimní je rozdíl mezi „taktiky“ Juniorem a Fritzem a „znalostními“ programy Shredderem a Hiarcsem. Údaje Rybek jsou ovšem evidentně nereálné.
Vašík prostě švindluje, aby ztížil krokování a zpětnou analýzu kódu. Podobně se zdá, že skutečnosti neodpovídá ani Rybkou indikovaná hloubka propočtu.
Analyzujete-li často interaktivně s různými programy, všímejte si, jak ten-který motor mění názor. Vypadá to, že Rybka zdaleka nejčastěji setrvává na prvním dojmu, jakoby už od počátku správný tah znala.
Podobně se odlišují někteří silní lidští hráči od průměrných. Zatímco v lidském šachu takový dar šetří především čas a síly, u programů umožňuje pomocí tzv. alfa-beta odseknutí výrazně prohloubit propočet a vidět tak dál, než konkurence.
Jak to ovšem Vašík opravdu dělá, nezjistil zatím nikdo. Záhadou zůstává i proč, vždyť Rybky nepochybně leží od samého začátku na „pitevním stole“ konkurence. Snad jde o nějakou složitější metodu třídění tahů, založenou na matematické statistice, která je sama o sobě špatně pochopitelná.

Emil Vlasák www.vlasak.biz
57x 1710x
Fotogalerie
Komentáře (57) Aktualizovat
28.08.2008 16:59 | Autor neznámý

Počet uzlů není podstatný, protože ho každý motor počítá jinak. Podstatná je vždy hloubka. A zde se motory liší selektivitou, takže třeba Zappa má sice jednu z nejnižších ve stejném čase, ale v některých variantách se selektivním výběrem může dostat dál, než třeba Junior. A hraje roli i pozice. Loop má např. nějakou chybu v generátoru tahů. Zatímco po zmiňovaném 1.a4 a5 se do hloubky 16 dostane daleko dříve, jak Zappa, v nepravděpodobné pozici B: Kh8,Dg8,Pe7,f7,g7,h7 - Č:Ka1, Db1, Pa2,b2,c2,d2 je najednou třikrát pomalejší než Zappa. Má potíže, pokud se v pozici objeví více dam stejné barvy. Dlouho jsem si lámal hlavu, proč Loop občas někdy záhadně na několik minut zatuhne a dospěl jsem právě k problému s více dámami.

28.08.2008 16:51 | Autor neznámý

opět pro Thomas: V podstatě platí, že nejlepším způsobem analýzy je vždy rozvětvená korespondenční (nebo hluboká poziční v jiném překladu analýza. V anglické verzi menu je to Deep position analysis. Vše ostatní je nespolehlivé, i když se to někdy může trefit. Jak IDeA v Akváriu, tak Monte Carlo u ChessBase, nebo obyčejný infinite(nekonečný běh) kdekoliv. Platí, že posun ve variantě po určitém čase, třeba po 1h, dává lepší výsledek, než celonoční běh. Problém je v tom, že pokud se ta korespondenční analýza dost rozvětví a ještě se nastaví dlouhý čas na tah, zabere to klidně třeba týden.

28.08.2008 16:43 | Autor neznámý

pro Tomas: Nejsem si jistý, zda ta Noomenova knihovna stojí za vyhazování peněz :). Docela slušné knihy se dají stáhnout zdarma, např. Sedatův Perfect13. A asi bude brzy verze 14 (www.sedatchess.com). Podle mně tohle CB přehnala. Ostatně, mám koupenou Deep Rybku 3 a tam nějaká Noomenova kniha je, prý asi o 2/5 menší, jak ta komerční. V testech knihoven u Sedata mají nejlepší výsledek Playchessové speciály, ale tam je problém v tom, že stáhneš obrovskou knihovnu, která pak např. proti 1.e4 hraje jen Caro-Kann (myslím, že Compmaster).

27.08.2008 07:32 | Autor neznámý

Základ Noomenovy knihovny jsou partie z Playchess - takze zahajeni jsou poplatne tam hranym partiim, takze celkem logicky vedlejsi varianty a nepopularni zahajeni nemaji v knihovne misto. Noomenova knihovna ma priblizit Playchessovske varianty okolnimu svetu (a neco malo zinkasovat)

26.08.2008 21:09 | Autor neznámý

Nevím, doufal jsem, že to bude něco nového a dobrého, mám v plánu si ji koupit k rybce 3, nikoli pro hru, ale pro přípravu, analýzu. Na jednu stranu velká škoda, jestli podceňuje málo hraná zahájení, ale hlavně aby byla spolehlivá alespoň v kritických variantách. Sidelajny už se vyřeší přinejhorším až "na místě". Navíc motor taky něco vymyslí, když už se dostane ven z teorie... Zvažoval jsem i Fritz powerbook, ale neznám, a tak jsem věřil víc Noomenovi. Nejzrádnější na přípravu asi stejně zůstane klíč a statistiky v megadatabázi :))

26.08.2008 18:16 | Autor neznámý

Já si ověřuju varianty v zahájení hlavně po taktické stránce, strategie už je čistě na mě a k tomu stačí jakýkoliv dobrý motor s permanentní analýzou (asi 30 sec na pozici)

26.08.2008 18:10 | Autor neznámý

Rybka 3 book od Noomena je zajimava jen pro par konkretnich variant ci zahajeni (najdorf, meranska), pro vedlejsi varianty a zahajeni se dockate jen zklamani

26.08.2008 17:05 | Autor neznámý

Pořídit si rybka 3 book, ta bude špičková. Jinak k zahození není funkce deep analysis, ale pozor, ty motory bez knihoven hrají občas pěkně divný šachy...

25.08.2008 14:24 | Autor neznámý

Existuje navod jakym zpusobem je nejlepsi analyzovat pozice v zahajeni pomoci Rybky (nebo jineho motory)? Diky

23.08.2008 19:57 | Autor neznámý

Alice: Dobrá poznámka ohledně vícejádrových/víceprocesorových systémů. Šachový program se na nem chová v podstatě nedeterministicky. Průběh a tím pádem i výsledek hledání je ovlivněn interakcí mezi jednotlivými výpočetnímy vlákny a jejich časovým souběhěm. Ten je však určen operačním systémem, který vláknům přiděluje procesorový čas, a může být proto pokaždé jiný. Takže třeba při testování, za jak dlouho "vyřeší" program danou posici, by se měl spustit vícekrát. PJ: To je, myslím, popsáno dobře. Už jste začal kódovat?

23.08.2008 18:51 | Autor neznámý

Děkuji mnohokrát panu Vlasákovi za inspiraci. Rozhodl jsem se prozkoumat střeva šachového motoru hlouběji, popsat principy těm věci neznalým a tak vznikl článek: www.deskoliberec.cz/napiste-si-svuj-vlastni-sachovy-motor.html

23.08.2008 11:31 | Autor neznámý

Já jsem teda WinFinder v akci neviděl, ale předpokládám, že je to čistě taktický engine na hledání vítězných kombinací. Tam je technika propočtu pochopitelně úplně jiná než při strategickém propočtu, kde každý tah má potenciální smysl (u taktického propočtu se počítají pouze "hlasité" tahy). Každý engine pro praktickou hru se snaží oba tyto principy optimálně spojit (já jsem v tomhle zatím v začátcích). Jinými slovy ELO pro čistě taktický engine opravdu nemá význam.

23.08.2008 10:07 | Autor neznámý

2pepa: velmi spravne, proto Winfinder nikdy nebude mit "ELO" lepsi nez Rybka (mala technicka - Winfinder je poplatny Rybe 2.x), ale bude resit vetsinu pozic s "hadanim" tahu rychleji nez Ryba, z tohoto duvodu rychlost nalezeni nejlepsiho tahu nema zadnou primou souvislost s ELEm (v ramci sachovych enginu i vcetne vzeti do uvahy pouziteho HW je pojem ELO stejne ponekud problematicky definovany a jedna se o dost problematicke cislo - napr. diky moznosti pouziti ruznych knihoven, tempa, ponder on/off atd.). 2james: ani dnes nelze zcela tvrdit, ze PC provadi sled linearnich instrukci - jednak dochazi k paralelnimu zpracovavani a jednak napriklad u MP enginu jsou nektere vysledky nekonstanti - tj. pri pouziti MP muze byt cas na vyreseni pozice v rozmezi 10-30s, kdezto pri pouzit jednojadroveho systemu tento cas bude prakticky vzdy reprodukovatelny (rekneme treba 15s).

22.08.2008 23:16 | Autor neznámý

A proč myslíte že Vašík nabízí speciální WinFinder? Protože program zaměřený na to aby rychle našel řešení takovýchto posic bude prostě poněkud nevyvážený a celkově slabší při normální hře. Tak to prostě je a WinFinder to potvrzuje. Nemůžete mít všechno v jednom. Pomůžu si možná trochu stupidní ale celkem platnou analogií ze sportu. Nejlepší program musí být takový desetibojař - Šebrle, zatímco WinFinder je třeba oštěpař Železný. Nemůžete po něm chtít aby skákal o tyči a běhal přes překážky + 7 dalších věcí na úrovni Šebrleho. Ale stejně tak nemůže být Šebrle top vrhačem, běžcem, skokanem. V tom všem je z hlediska špičkových specialistů jen průměr i když lepší než 99.99% normální populace. Pro program je důležitější aby zahrál 10 dobrých byť ne nejlepších tahů ale bez chyby než 2 geniální, 7 dobrých a 1 špatný. Ostaně to věděl už Capablanka ... :-).

22.08.2008 23:15 | Autor neznámý

Náš mozek je vlastně neobyčejně výkonný na to, že má takt pouze 7Hz, ale je to tím, že má skvělou neuronovou infrastrukturu až takhle budem dělat počítače, tak to bude skvělý. Ale jen to vymyslet, jak to udělat :-)))

22.08.2008 23:00 | Autor neznámý

Myšlení člověka a počítače je diametrálně odlišné - počítač provádí lineární sled instrukcí a pracuje s exaktními informacemi, zatímco mozek zpracuje neurčitou informaci jejím porovnáním s relacemi všech informací, uložených v paměti. Jakákoliv další infomace přitom mění stav celého systému (jen velmi nepatrným způsobem, větší dopad mají pouze informace, které se často opakují - proces získávání zkušeností). Každá informace je analogová a tedy defakto "nekonečná". Fraktální analýzou pomocí holografické projekce (každá část je zároveň celkem - jinými slovy, jednotlivé informace nejsou v mozku uloženy zvlášť ale jakoby jedna přes druhou) dosahuje mozek téměř nekonečného výkonu a výsledkem je okamžité pochopení pozice, aniž bychom tušili, jak jsme k němu vlastně došli (neboť tyto operace se provádějí na podvědomé úrovni).

22.08.2008 22:42 | Autor neznámý

Ještě jednu rejpavou poznámku před spaním :)) Co je dobré v jedné posici, nemusí být dobré v druhé, ok. Ale mat je dobrej vždycky :)) Já bych tu úlohu vyřešil z hlavy, celkem rychle. S šachovnicí bleskově. Tak jestli má ta potvora mít o sedum stovek vyšší elo, pak by to měla vidět taky, ne? No ale viděla to...

22.08.2008 22:08 | Autor neznámý

To koukám: U velmistrů bude jejich NPS v řádu jednotek za vteřinu a taky se jim při hraní většinou nikdo nesměje, takže 30 tisíc ...

22.08.2008 22:05 | Autor neznámý

Vyřešení jedné konkrétní posice v určitém čase může být často jisté štěstí. Co je dobré v jedné posici nemusí být dobré v jiné. Otázka celkové síly je vždy statisika velkého množství posic či lépe partií. Proto se pro testování programů při vývoji nedoporučuje používat řešení nějaké sady zkušebních posic, ale radši hraní co největšího počtu partií třeba i bleskových (Vašík používá partie s CELKOVÝM limitem 1 vteřina). Proto vám vysoké ELO programu nezaručí, že nějakou posici vyřeší dříve než program s nižším Elem. Ovšem v případě Rybky je to celkem pravděpodobné :-).

22.08.2008 22:00 | Autor neznámý

Jsem si chtěl odzkoušet Rybku 3, tak jsem jí stáhl a když jsem viděl 30 kN/s , tak jsem si myslel, že si někdo vystřelil, ale pak jsem uvědomil že Rybka má normálně rychlosti počítání menší :-) , tak sjem dal zápas proti Shredder 11 a vyhrála 2:0

22.08.2008 21:58 | Autor neznámý

2Alice - pořádně jsem tě s tím hádáním tahů nepochopil, ale nalezení matu bych do souvislosti s ELO určitě dal...

22.08.2008 21:51 | Autor neznámý

pepa: Mohla vzniknout i tahem Kb6xa6, ale Martin nám ukázal daleko přesvědčivější řešení :)) Alice: Představa, že v přípravě analyzuju stejnou pozici jako můj soupeř, mě motor ukazuje -0.31 a soupeři #12 mě poněkud děsí :)))) Bond(James): Ano, já vím že na silnějším stroji to jde rychlej :)) Ten poměr je ale zajímavej. Pepova rybka tu úlohu vyřešila za 1:19, moje ne ani za 10min. Tak že co je to rating motoru?! Některé motory budou na rozdílných HW skákat výkonem víc, některý míň.

22.08.2008 21:45 | Autor neznámý

2James-Tam preci nebylo nic o HW. Ten kdo ma vyssi IQ tak mu pri Clovece nezlob se taky porad nepadaji 6. Neboli neexistuje zadny vzorec ktery dava do souvislosti "hadani tahu" a ELO

22.08.2008 20:51 | Autor neznámý

Prece se nebudeme hadat o takove elementarni pravde, ze cim vic pozic motor spocita (neboli na cim vykonnejsim HW bezi), tim je silnejsi (samozrejme umera neni prima ale kazdopadne to jde nahoru)

22.08.2008 20:15 | Autor neznámý

vsem strelcomilum - zkuste B: Kd3, pg5, h6, C: Kb3, pa3, b4, g6 (BNT+-)

22.08.2008 19:43 | Autor neznámý

Taky díky. Ale ta posice mohla vzniknout jedině tahem Kb6a6 a pak je otázka, proč radši nevzít Pb7 :-))))). Takže z praktického hlediska mě to nějak nepřesvědčuje, že by to bylo nutné. Ohledně toho matu myslím, že jednak mohl být podstatný rozdíl ve velikosti hashe, specielně v této dlouhé variantě, a druhak že nalezení nebo spíše dopočítání takového matu nesvěčí o celkové hrací síle programu

22.08.2008 19:38 | Autor neznámý

sila motoru (vyjadreno pomoci ELA) nema zadny vliv na vyhledani matu v 19 v konkretni pozici

22.08.2008 19:27 | Autor neznámý

Tak dobře, Bílý Ka4,Pb7,d6 Černý Ka6,Pa7,d7 :-) Dík za test, ten mat 19 tahem mi to nenašlo ani za 10 minut, dost svědčí o tom, jak obrovský je rozdíl mezi sílou motorů na odlišných HW.

22.08.2008 19:17 | Autor neznámý

Jo a k té divoké posici s matem v 19 tazích: zkoušel jsem Rybku 2.2n2 a Glaurung 2.1, oboje na Core2 Pentiu 1.6GHz s 1GB hashe a oba dva našli mat 19. tahem za 1m 19s.

22.08.2008 19:09 | Autor neznámý

Díky, proměna v jezdce je zřejmá (i když mě napadla spíš z taktického hlediska kvůli vidličce), ale pro střelce může být jediným důvodem pat. Takže jestli máte tu posici, tak sem s ní!

22.08.2008 18:58 | Autor neznámý

No našel jsem i pozici, ve které je nasazení střelce jediný vyhrávající tah... :))

22.08.2008 18:47 | Autor neznámý

pepa: koukal jsem že v 1. části článku o rybce tak trochu pochybuješ o nutnosti proměny pěšce ve střelce :)) Tak třeba Kh4,Jh5,Pf7;Kg6,Ph7,h6? Nasazení jezdce je mate in 57, to s table možná vyreklamuju, i když při přesné hře (maje na mysli ostražitost na 50tahové pravidlo) spíš asi ne. Nasazení střelce každopádně mate in 32 - nejlepší tah. Ostatní remis :))

22.08.2008 18:35 | Autor neznámý

Asi máte pravdu, já to sleduju spíš tak zpovzdálí přes diskuse na Computer Chess Clubu a papouškuju co se tam objevilo. Mimochodem zrovna teď se tam docela tvrdě diskutuje o tom, co zmínil pan Vlasák, že Rybka je přepsaný Fruit. Těžko říct. S tou Monte Carlo metodou jsem se vskutku špatně vyjádřil, ale každopádně ji využívali právě při testování a ladění. Rybky mám jen dvě free - starou 1 nevím kolik a teď tu "novou" 2n2. Ohledně velikosti souboru je otázka, jestli je to (prováděcí) kód, data, nebo jen další vrstva maskování :-)))))

22.08.2008 18:13 | Autor neznámý

MonteCarlo analyza neni v "Rybce 3". Je to pouze nastroj GUI (at od Convekty ci Chessbase) vyuzivajici funkce "randomizer" Rybky - ta jiz byla ve verzi 2.32a. Nyni dostala jen praktictejsi obal. Zjevne tabulky neobsahuji jen pomery materialu - pri vsi bohatosti by to bylo preci jen par materialnich vztahu, naopak se da celkem dobre na pribuznych pozicich predvest, jak Ryba tvrdosijne trva na urcitych tazich- pak lze celkem predpokladat, ze ony "tabulky", ktere nebyly zmineny v clanku obsahuji preci jen mnohem vice. Mmch jestli se divam dobre - narust velikosti exe mezi verzi 1.0 preview a 1.01 Beta 11 cini asi 60% (z 2.5 na 4MB) - tezko Vasik i pri sve pili od stolu za 6 tydnu napsal 1.5MB zkompilovaneho kodu. Do hlavy se vkrada pak uz jen myslenka, ze tento pridany kod byl spise "vygenerovan" nez jennapsan.

22.08.2008 18:02 | Autor neznámý

Ad Alice: Pokud vím, tak ty tabulky se netýkají umístění figur, ale různých poměrů materiálu na šachovnici a korekce běžného oceňování materiálu. Kaufman na to téma dělal už předtím nějaké výzkumy pomocí statistiky výsledků partií při daném materiálu a Vašík jeho výsledky patrně využil. Jde o to, že běžný program má hodnoty figur jako konstantu a prostě spočítá jednotlivé figury, sečte, vynásobí a hotovo. Rybka zřejmě má v té tabulce pro různé poměry materiálu uložené přinejmenším korigované ocenění materiálu, případně další věci potřebné při oceňování. Takže ví lépe, které figury kdy a jak měnit atp. Možná na to využili i tu Monte Carlo analýzu, která je teď v Rybce 3. Ono může být tajemství úspěchu Rybky nejenom v nějakém jednom převratném vyhledávacím triku, ale také třeba v nové metodice testování a ladění programu.

22.08.2008 17:39 | Autor neznámý

2James - takhle "fungoval" jediny sachovy engine - Botvinnikuv Pioner - nakonec podle všeho jen na papíru. Ryba samozrejme prochazi vsechny tahy - nedochazi k zadnemu jednoduchemu vyberu. K orezavani stromu dochazi ve vsech enginech. Autor nezahrnul do clanku informaci od Osipova - autora Strelky, ktery z casti dekompiloval Rybku 1 a upozornil na tabulky umisteni figur (pametnici vedi, ze Fritz 3 mel moznost definovat a zavadet tabulky umisteni figur) ktere ve Strelce castecne vyuzil. Stejne tak vykazovani poctu pozic/sek je umele snizeno - Kaufmann tvrdi, ze x10 je celkem objektivni cislo.

22.08.2008 17:14 | Autor neznámý

Podle mého názoru funguje Rybka tak, jak by si všichni autoři šachových motorů představovali - v každé pozici zkoumá jen několik nejsilnějších tahů a díky tomu dosahuje daleko větších hloubek při menším počtu variant Př: 4 polotahy plošně = cca 2,5 mil. pozic zatímco při 8 nejlepších tazích = 4 tisíce pozic. Jediný problém je, jak dopředu určit nejlepší tahy - a v tom bude zřejmě tajemství Rybky, tady optimální oceňovací fce.

22.08.2008 17:09 | Autor neznámý

Pěkný a hluboký článek, pan Vlasák je borec počítačového šachu!

22.08.2008 15:52 | Autor neznámý

vozovna: To jsem přece já :)) Nevýhoda tahu.

22.08.2008 15:50 | Autor neznámý

Jestli je tu nějaký zájemce udělat malý testík propočítávacího algoritmu s konkurenčním motorem: Docela by mě zajímalo, jak taktici (Fritz, Junior,...) vyřeší tuto pozici: Bílý: Kg1;Dc1;Sg6;Pb2,d6,f2,h4,h7; Černý: Kg7;Sa4,e8,d4;Ja3,c6,c7;Pa7,c2,d3,e4,f5 Rybka 2.3.2 32bit 64MB, celeron 1.5GHz našla mat ve 23tazích za 46s, ve 21tazích za 65s, nejrychlejší mat (19 tahem) nenašla ani po desítiminutovém hledání. Její systém propočtu je velmi podobný tomu lidskému, hledá ty nejvynucenější varianty, které se příliš nevětví. Nejkratší mat v sobě nese 1 tichý tah, s kterým si rybka z dálky neví moc rady a najde jej až po odtahání několika prvních tahů...

22.08.2008 15:42 | Autor neznámý

Mohl by někdo popsat obecně co je to zugzwang

22.08.2008 15:40 | Autor neznámý

:)))))))))) Tak to já musel zahrabat v knihovně, odfouknout prach a nalistovat rejstřík ....

22.08.2008 15:37 | Autor neznámý

No co je to profylaxe vím až moc dobře, Můj systém bych zvládl odrecitovat na jedničku :)) Je pravda že se asi bude jednat o dvě odlišné věci, i když jejich podobnost mi nikdo nevymluví ;-)

22.08.2008 15:19 | Autor neznámý

Snad tím nebudu únavný, ale ještě jednou se vrátím k nultahu. Ona to není věc, která by nějak souvisela se "šachovým" obsahem hry, ale je to čistě věc obecná, kterou můžete stejně tak uplatnit třeba v piškvorkách či jiné hře s nulovým součtem (hráči se střídají v tazích, moje výhoda=nevýhoda soupeře). Jediný výchozí předpoklad je opravdu ten, že jsem-li na tahu, pak můžu svou posici vždy buď ne-li zlepšit tedy alespoň nezhoršit. Víc není k jejímu fungování potřeba. Nimcovičova profylaxe je věc šachové strategie. Podle jeho definice: "Profylaxe jsou opatření mající za cíl zabránit některým jevům nežádoucím z posičního hlediska." A dál to rozvádí do čistě šachových pojmů. Jak ale správně poznamenává pan Vlasák, šachisté tuto vlastnost intuitivně využívají také, i když poněkud jiným způsobem.

22.08.2008 14:25 | Autor neznámý

Ad Zugzwang & Nimcovič: Opravdu? Můj systém jsem kdysi, ač coby šachista jsem beznadejně zamrznul na úrovni klubový packal, tak trochu studoval, a nějakou souvislost profylaxe s nultahovou heuristikou nevidím. Řekl bych, že jde o dvě zcela různé věci.

22.08.2008 14:06 | Autor neznámý

Emil Vlasák: Nultahová heuristika byla poprvé popsána v knize Můj systém (1925) pod názvem profylaxe, i když to tu už pepa tak trochu naznačil... To rozhodně nevymysleli programátoři.

22.08.2008 13:51 | Autor neznámý

Ad Emil Vlasák: ona je ta myšlenka, jak to často bývá, v zásadě úžasně prostá, takové to Kolumbovo vejce. Je spíš s podivem, že se začala používat až po 20-30 letech (první šachové programy řekněme v šedesátých letech, nultah začátek devadesátých). I když asi to bylo také tím, že malé hloubky prohledávání, které byly tehdy dosažitelné, by stejně nedávaly k jeímu uplatnění prostor. Zajímalo by mě, co má v rukávu Vašík. Jestli je to taky nějaká jedna zásadní myšlenka, nebo spíš spousty drobných, ale perfektně vyladěných triků.

22.08.2008 13:25 | Autor neznámý

Ad Zugzwang: ano, samozřejmě. Posice po provedení nultahu se zkoumá s redukovanou hloubkou hledání proti normálu (obvykle o dva až tři půltahy), takže provedení té práce navíc (nultahu) něco stojí, ale velice málo s možným ziskem. Prostě mnohem (řádově) více se získá než ztratí. Riziko hrozí v posicích zugzwangu, kde neplatí nutný předpoklad fungování nultahu, totiž že pokud jsem na tahu, můžu vždy svým tahem posici alespoň nezhoršit. Pokud to není v programu nějak ošetřeno, je program někdy v posicích, kde se zugzwang vyskytuje, totálně "slepý".

22.08.2008 12:59 | Autor neznámý

Sisoji, o listinách motorů jsem psal v minulém pokračování. SSDF už není, co bývala.

22.08.2008 12:57 | Autor neznámý

Pepo, díky, pěkně popsáno. Kdysi ještě před počítači, jsem analyzoval s velmi silným hráčem a vyslovil názor, že moje pozice je velmi výhodná. On řekl dobře, hraj dva nebo tři tahy za sebou a ukaž, co chceš. Zjistil jsem, že ani po plánovaném převodu figur ho nemohu moc ohrozit. Nultahová heuristika tedy nevznikla vyloženě v hlavách programátorů.

22.08.2008 12:47 | Autor neznámý

Díky mě ale i null-move metoda potřebuje určitou dobu na zkoumání těchto "slepých větví", jen se tím motor nezabývá až tak do detailu a nějaký čas tam motor opravdu získá.

22.08.2008 12:11 | Autor neznámý

Nullmove v kostce: drive, nez zacnu zkoumat v posici sve vlastni tahy, predam "na zkousku" pravo tahu souperi. Ten tak vlastne muze udelat dva tahy za sebou. Pokud mu tato výhoda nestaci k získání převahy, usoudím, že už ten jeho první tah nebyl dost dobrý a nebudu se zatěžovat zkoumáním svých vlastní tahů. V průměru se tak dají získat zhruba dva půltahy v hledání navíc. Hloubka propočtu: přesně tak, to číslo závisí na algoritmu každého programu, takže jeho význam může být různý.

22.08.2008 11:37 | Autor neznámý

sisoj: listina SSDF

22.08.2008 11:13 | Autor neznámý

Existuje nějaký přehled Elo tabulky motorů, obdoba žebříčku ratingu pro motory?

22.08.2008 10:27 | Autor neznámý

A co že vlastně ta hloubka propočtu udává? Délku nejkratší varianty, nebo nejdelší, nebo dokonce průměr? Vzhledem k ořezávání nesmyslných větví toto číslo nemůže být jednotné.

22.08.2008 10:10 | Autor neznámý

Nejsem si tou nultahovou heurestikou 100% jistý, ale snad by se mohlo jednat o způsob profylaktického myšlení stroje -kdyby byl soupeř na tahu..., tak já mu to překazím... :)) Souhlasím s autorem článku, že rybka často správný tah vidí už od začátku a zřídka svůj první dojem mění. A to i u složitých taktických variant.

22.08.2008 08:04 | Autor neznámý

Mohl by někdo popsat obecně princip nultahové heuristiky?