Tajemství Rybky odhaleno?
19.03.2011 05:43 | PC šachCo nového v roce 2011 - Vašík Rajlich po roce odkladů a příprav spustil komerčně Rybka cluster. Jde o pronájem komplexu výkonných počítačů, na kterých běží nejnovější Rybka, silnější než komerční čtyřka. Připojíte se sa...
Legální uživatelé Rybky 4 dostali zdarma verzi Rybka 4.1. Jde však jen o bugfix (opravu chyb) a síla nijak nevzrostla. V oblasti normálního PC-šachu proto sesadil Vašíka celkem jasně z trůnu bezplatný program Houdini 1.5 Roberta Houdarta. Houdini porazí Rybku nejen v bleskovém šachu (jako Ippoliti), ale i ve vážných partiích. Houdard pracuje tvrdě na verzi 2.0 a proslýchá se, že bude komerčně prodávána ChessBasí.
Otevřený dopis
Rajlich je léta terčem útoků ve věci využití zdrojového kódu Fruitu v Rybce 1. Zatím šlo o izolované články a příspěvky a vypadalo to, že situaci nakonec ustojí. Začátkem března se však jeho odpůrci spojili a zaslali otevřený dopis organizaci ICGA (International Computer Games Association http://www.icga.org), která pořádá mistrovství světa. Dopis pouze shrnuje známé argumenty, z nichž většina zazněla už v našich článcích o Rybce nebo v diskuzích pod nimi. Jeho síla je ale hlavně v signatářích, podepsali ho mimo jiných také mnohonásobní mistři světa Stefan Meyer-Kahlen a Amir Ban. Zde je celý text.
Signatář otevřeného dopisu Anthony Cozzie je také mistrem světa. Jeho program Zappa získal titul v Reykjavíku 2005 a je jediným motorem, který Rybku porazil v přímém oficiálním zápase v Mexiku 2007. Z důvodů, které budou uvedeny, se Anthony rozhodl doplnit otevřený dopis vlastním textem. Je méně diplomatický a rozhodně si nebere servítky.
Vašík Rajlich a Anthony Cozzie
Pro publikaci Cozziova textu jsme se ale rozhodli z jiného důvodu. Přináší totiž také absolutně novou informaci o tom, v čem spočívá síla Rybky.
Původní anglická stylistika není příliš vydařená; obsahuje vnořené myšlenky ve složitých souvětích a dokonce v i závorkách a také odborný žargon, často na hranici srozumitelnosti. Proto jsem text musel poněkud upravit. Rozhodně však bylo mým cílem zachovat původní smysl; pokud snad nějaký jazykovědec odhalí vážnější významový rozdíl, není to úmysl, ale má jazyková neznalost. Také zvýraznění textu je moje.
Cozziův dopis
Původně jsem chtěl zůstat stranou, protože jsem se šachovým programováním skončil. Ale Mark Uniacke a Zach Wegner mě přesvědčili, abych připojil svůj podpis pod otevřený dopis organizaci ICGA na téma Rybky jako klonu Fruitu. Můj postoj není stoprocentně identický s dopisem (a myslím, že podobně jsou na tom i další autoři), proto k tomu publikuji svůj vlastní text. Takže šachové programování si opět našlo cestu, jak mě ošidit o můj čas.
Indicie o klonování
Rybka vzbuzovala mé podezření od samého začátku. Silné nové programy jsou obvykle buď klony nebo druhý pokus předchozího autora. Začátky jsou totiž těžké; dá mnoho práce vytvořit základ, který vůbec funguje. Mnoho lidí zapomíná, že první pokus Vašíka skončil 53. místem z 54 motorů na CCT6. Druhý pokus byl o 1000 Elo silnější, takže se muselo něco velmi změnit. Porovnejte to se 17., 3. a 1. místem Zappy, kterou jsem postupně zdokonaloval více než dva roky.
Kromě toho je Rybka jediným motorem, který falšuje výstupní informaci o pozicích za sekundu a hloubce propočtu. To mohou dělat jen programy, které mají co skrývat, protože normální uživatelé se o tyto hodnoty až tak moc nezajímají. Kromě majitelů silného hardwaru, kteří se těmito čísly rádi chlubí. V CCC archivu můžete najít veselou historii mé diskuze s George Worthingtonem.
O podezřelém původu Rybky jsem se přesvědčil po objevení Strelky, která je tak podobná Fruitu, že je s podivem, jak se Vašík mohl už tehdy vyhnout obvinění. Následovaly důkazy Dr. Watkinse a Zacha, že kusy kódu byly přímo zkopírovány z Fruitu. Mnoho lidí nechápe exponenciální povahu programování – dva programátoři nemohou napsat shodně dokonce ani malý kousek kódu. Nyní je jasné, že 90 procent oceňovací funkce Rybky 1.0 je přímo z Fruitu a dokonce i to, že původní motor Vašíka byl přímou kopií Crafty; jak se mu podařilo udělat ho o 500 Elo slabší, to se už asi nedozvíme. Důkazy stále narůstají.
(Náhodný?) génius Vašík Rajlich
Jestli je Vašík Rajlich zlým „klonerem“, kradoucím práci druhých, jak potom mohl dominovat nad světem počítačového šachu a tak výrazně a dlouho? Na obědě v Torino se Stefanem (Mayerem-Kahlenem), Amirem (Banem), Shayem (Bushinsky) a dalšími jsme diskutovali, proč je Rybka tak výkonná. Všichni jsme se tehdy domnívali, že Vašík musel objevit nějakou novou supertechnologii, jako je třeba nultahová heuristika nebo history pruning.
EV: Já jsem si to myslel ještě 16.3.2011.
Záhada byla vyřešena právě Strelkou. Se zájmem jsem prostudoval její zdrojový kód a rychle zjistil, že žádná nová supertechnologie neexistuje. Rybka je prostě vysoce optimalizovaný a dobře vyladěný motor. Několik týdnů jsem nad tím přemýšlel a nakonec pochopil podstatu – testování superrychlými partiemi (hyperbullet testing).
Chcete-li vidět, jak se motor vyvíjí, musíte hrát testovací partie s jinými motory. V roce 2005 jsem pracoval nad tím, z čeho pak vznikla Zappa Reykjavík. Moje metodika spočívala v hraní partií standardním tempem hry. Prohrané jsem analyzoval a opravoval motor tak dlouho, až v kritických pozicích začal hrát lepší tahy. To je sice rozumný způsob zdokonalování, ale ne příliš vědecký. Opravením jedné chyby můžete do programu vnést deset jiných.
Všechno se změnilo v roce 2005, kdy Fabien Letouzey začal testovat Fruit bleskovými partiemi. Udělal nějaké změny, odehrál několik tisíc partií a zkoumal výsledek. To je perfektní analytický přístup, ale potřebuje velké množství partií. Dokonce ani několik tisíc partií nemusí být dostatečných (řádová odchylka +- 20 Elo s pravděpodobností 95 procent) a mnoho změn má jen velmi malý vliv. Nicméně bleskové testování se ukázalo dostatečně efektivní k tomu, aby se Fruit stal špičkovým motorem během roku nebo dvou. Na rozdíl od Rybky je na verzích Fruitu vidět postupné zdokonalování. Mnoho z nás bylo překvapeno, jak dokáže bleskové testování nahradit pomalé partie, ve kterých se podle mého názoru více uplatní hodnocení než prohledávání stromu.
V Mexiku jsme se s Vašíkem bavili o ladění programu. Jeho metoda spočívala v partiích s hloubkou propočtu pouhé 3-4 polotahy; ty partie trvaly řádově jen 10 sekund. Při takových rychlostech je už překládání UCI příkazů brzdou a Vašík proto napsal speciální testovací program na rychlejší propojení dvou verzí Rybky. Aby se přesně určila změna o nepatrné velikosti 2-3 Elo body, je nutno sehrát okolo 100.000 partií, což při 10 sekundách na partii představuje kolem 10 dní strojového času. Použijete-li několik rychlých Quad-core počítačů, dostanete vylepšení Fabienovy metody bleskových partií. Myslím, že Vašíka a Fabiena je možné srovnat s Keplerem a Koperníkem; Fabien objevil novou cestu a Vašík ji zdokonalil. Silný pokrok motorů od roku 2005 (kdy velmistři ještě mohli s počítačem přijatelně hrát) do 2010 je dán právě novou metodou testování.
Vzhledem k tomu, že se Vašík vypracoval za 6 měsíců z nuly k dominaci (byť s nějakou dopomocí), zřejmě považuje ostatní autory motorů za nekompetentní blbce. To by také vysvětlovalo, proč byl ochoten prozradit mi v Mexiku svou metodu. Já si to ale nemyslím. Vašík je prostě dobrým programátorem s šachovou úrovní mezinárodního mistra, nemající žádné morální problémy s plagiátorstvím. Použil prostě lepší metodu ladění, než my ostatní.
Pak je tu druhá možnost, že Vašík je opravdu génius a my ostatní idioti. Myslím ale, že jednodušší vysvětlení bývají většinou daleko blíže skutečnosti.
Kyselé plody
Na případu Strelka mě nejvíc překvapilo, jak byli lidé ochotni přiznat Vašíkovi presumpci neviny s argumentem, že jde jen o snahu vyhrát jinými cestami, když se to nedaří na šachovnici. Pro mě byla v tu dobu záležitost už naprosto jasná; Rybka je přinejmenším silně pochybná (shady), ne-li plný klon a lidé se to snaží všemožnými způsoby omluvit. Zbožňování autorit (celebrity bias) je známý jev, kdy například špičkovému atletovi odpustí i násilí nebo vraždu (autoři šachovým motorů mohou vyváznout jen z drobných přestupků). Lidé se prostě s Rybkou ztotožnili, což jim dává část pocitu její slávy a nechce se jim zařadit zpátečku.
Jedním z argumentů je to, že zdrojový kód Fruitu a Crafty četl každý.
To je pravda, i já jsem studoval oba a převzal z nich některé nápady. Například procedura SEE v Zappě je velmi podobná Craftové. Ve skutečnosti je ale lepší, protože používá CMOV. Vašík použil podobnou optimalizaci, protože ji nacházím ve Strelce.
Ale většina lidí nechápe, že je docela těžké vzít kus šachového motoru a naroubovat ho na jiný motor, protože všechny části jsou spolu úzce propojené a sladěné.
Chyby a jejich korekce v hledání i hodnocení se mohou navzájem ovlivňovat a výsledkem nemusí být žádné vylepšení. Dám příklad z vlastní praxe: Po prostudování Strelky jsem se rozhodl zabudovat futility pruning. To je hlavní rozdíl mezi Zappa Mexico a Zappa Mexico II. Nová verze drtila starou Zappu, ale v zápase s ostatními motory nemělo vylepšení skoro vliv.
Takže zkopírování motoru je zcela jinou věcí než převzetí nápadů z cizích zdrojů.
Poslední poznámka: já sám jsem z Fruitu nezískal skoro nic. Ve skutečnosti jsem byl dost podrážděn tím, že Fruit zveřejnil některé ideje, které jsem použil v bezplatné Zappě o 80 Elo silnější než Fruit 2.1 a 6 měsíců před ním.
Nemám pochybnosti, že bychom nikdy neviděli Rybku v roce 2005 a pravděpodobně ani v roce 2006, kdyby Vašík psal motor od nuly. Bez příjmů z prodeje by dělal totéž co my všichni – pracoval po večerech nejméně dva roky. Jenže on dal očividně přednost intelektuální krádeži. Já sám jsem to prožil v letech 2003-2005; měl jsem sice zdrojový kód Crafty, ale nikdy jsem ho nezkopíroval, abych urychlil vývoj a prodej. Opět není vyloučeno, že Vašík je 10x chytřejší, ale mám o tom pochybnosti.
Krádež kódu považuji za amorální, ale je jeden důležitý moment, kdy se mé mínění liší od otevřeného dopisu. Rajlichova převaha nebyla pro ostatní nepřekonatelná. Řečeno sportovní terminologií: nepoužil steroidy, které dávají fyzickou výhodu. Spíš by se dalo říci, že mu bohatí rodiče koupili lekce u nejlepších trenérů. Nebo jako když hrajete basketbal a párkrát vás podrazí rozhodčí; máte-li dobrý tým, můžete i tak vyhrát. Bez intelektuální krádeže bychom možná v počítačovém šachu jméno Rajlich nikdy neslyšeli, ale ani tak to nebyl případ, který by profesionální šachoví programátoři nemohli překonat.
Závěr
Anthony Cozzie
Počítačový šach jsem opustil a návrat zatím neplánuji. Už v roce 2005 po zisku titulu MS jsem plánoval partnerství s nějakým mladším programátorem, protože jsem potřeboval spoustu času na dokončení studií. Jedním z kandidátů byl právě Vašík Rajlich, který mi připadal velmi schopný při našich rozhovorech v době CCT. Ale ukázalo se, že našel jinou, levnější metodu. Nynější spolupráce se Zachem na Rondu je velmi dobrá a probíhá v proporcích 10 procent já a 90 procent Zach.
EV: Rondo získalo na posledním MS 2010 výborné druhé místo v hlavním turnaji i v „uniform platform“.
Technicky Zappa mohla získat titul i v roce 2007, kdyby Rybka byla diskvalifikovaná, ale za daných okolností by mě takový způsob rozhodně netěšil.
Nakonec považuji za velice zábavné a licoměrné, že tým Rybky neustále napadá různé jiné autory za rekompilaci Rybky 1.1 (Strelka) nebo Rybky 3 (Ippolit). S tím se nemohu smířit; pokud je mi známo, tak dekompilace je legální, ale krádež kódu nikoli.
Původní verzi najdete na www.acoz.net/zappa/rybka-cloning.
Po čtyřiceti partiích asi ne, ale po deseti zatím nelze dělat nějaké velké závěry z toho, že vede najednou Rybka o tři body. Ostatně teď je zápas přerušen, třeba to opravdu měl Thoresen blbě nastavené, i to se může občas stát.
Sám jsem kdysi dělal zápas Gandalf 6 - Ktulu 7. Gandalf měl jasnou převahu, skoro ve všech partiích stál lépe, ale Ktulu se zásluhou hlubšího propočtu často zachránil. Když to bylo o tři pro Gandalfa, říkal jsem si, že ten zápas nemá smysl, ale během pěti partií se výsledek otočil.
Aha, takže když vyhraje Houdini, tak je to proto, že je lepší, zatímco když vyhraje Rybka, tak měla prostě kliku na varianty
Nějaké malé zlepšení okolo 15ELO by tam být mohlo, ale to určitě není důvod opačného vývoje proti předchozímu finále. Spíš má Rybka zatím kliku na varianty, nebo to také může mít Thoresen blbě nastavené. Hrají na 40 her, pokud vím, během pěti to může být otočené .. Vašík jen opravil chyby, takže nějaké převratné zlepšení být nemůže.
Koukám zrovna na zápas Rybka 4.1-Houdini 1.5a no a Houdini je zatim bit jako žito.Po 9 zápasech je to 6-3 pro Rybku,asi proběhlo nějaké vylepšení od Vašíka.
Díky vám pánové
2 skinca
Jednodušeji. To je tzv FEN.
Nabrat ho celý do klipbordu rovnou z webu (vyčernit myší + CtrlC) a ve Fritzovi v dialogu stavění pozice dát tlačítko Paste FEN (česky Vlepit FEN).
2 SKA
Někde dole Pavel Háse už vytáhl známou nerovnost, míněnou částečně humorně
engine > engine + operátor.
V advanced chess s malým časem na rozmyšlenou nebo v časové tísni může být správná, ale v analyzách a kvalitním koršachu ještě pořád nevěřím.
1kb1n3 znamena od a8 ... 1 pole prazdne, potom k= cerny kral, b =cerny strelec, 1 pole prazdne n=cerny jezdec a 3 pole prazdne / je dalsi rada tedy sedma a7 prazdne pak p=cerny pesec ... atd popis treba tady http://bughousechess.wz.cz/CompleteBughouseChessRulesCZ.htm - ma konci viz bpgn, tohle je pgn takze jen cast. Nebo to vraz do .pgn a otevri v nejakem programu
taky bych se rad podival na tu pozici Alice, muzes mi to prosim prelozit do normal. zapisu?
1kb1n3/1p4p1/p1p1Pr2/P1K5/1P1NpN2/4P3/8/6R1 w - - 0 1
Diky S.
Tak mezitím co sem od šachu odpočíval u druhé nejpropracovanější (technicky : hra přes internet či lokální síť, i na 1 PC, hra na čas - různá tempa, hra se skrytou informací - mapy, scenaria, hra 1vs1 ale i týmy či každý vs každý; navíc je to open source a pořád se to vyvíjí) tahovky co znám : Wesnoth-u,
sem přemýšlel a asi nejsilněji na mně zapůsobily dva momenty : na jdné straně tu máme kdysi konaný advanced chess (kdy hrál člověk+počítač) a na druhé termín "postmaster", jakožto někdo kdo "jen" zatáhne co počítač zanalyzuje. V prvním případě se ukázalo, že lidský hráč to počítači jen kazil a v druhém je to údajně naopak. Takže dvě kontrolní otázky :
1. Ti kdo hráli advanced chess byli mizerný z hlediska schopnosti používat počítač, kdyby tam hráli nějací co to umí tak by porazili toho druhého ?
2. Co je to co dělá někoho silnějšího než "postmastra" ? Je to jen dopředu připravená analýza pozice o zahájení (jako sou ty zde uvedené), takže totéž jako když v klasickém turnajovém šachu zná jeden teorii a druhý ne (akorát se to tu neměří v minutách ale týdnech a měsících ty analýzy připravené) anebo je v tom něco víc ?
Čili se ptám: zkoušel někdo Shreddera na tu pozici nasadit? A vyhrál to nebo ne?
to 007: Ta absolutní hodnota je důležitá pro to, jestli se vůbec program má do té posice dostat. A právě z toho hlediska považuji Shredderovo ocenění za chybné, protože to číslo má korelovat se šancemi toho kterého určitého programu v dané posici, ne s tím, jestli je posice objektivně vyhraná. Pokud je posice výhra podle TB, ale prakticky ji bez TB vyhrát nelze, měl by ji program hodnotit spíš jako remizovou. Protože pokud posice vznikla např. z postavení, v němž byla alternativa hrát koncovku 2SPK:VK, měl program zvolit tuto alternativu, kde by potíže s výhrou neměl. Samozřejmě jakmile už jednou vznikne koncovka 2SJK:VK, je pak už jedno, jestli je ocenění celkově nastaveno do oblasti 0.0-1.0 pěce nebo někde kolem 6.
Především jsem asi nepochopil pravidla totoho kvízu. Měl jsem z formulace k první pozici za to, že akce končí nalezením správné odpovědi - a to se stalo hodinu po zveřejnění.
Alice ale na Trevizovu odpověď mlčela, tak jsem předpokládal, že má v rukávu nějaké překvapení. Třeba ve vedlejší variantě 1.b5 axb5 2. Kb6 Jd6! nemá bílý vůbec veškerý čas světa k dipozici, ale vše je až nezvykle vynucené a visí na vlásku:
1.b5 axb5 2.Kb6 Jd6! 3.a6 Jc4+ 4.Kc5 Vf8 5.Vxg7 Jxe3 6.Vf7 Ve8 7.Jg6 Jd5 8.Je5 e3 9.Jexc6+ Ka8 10.axb7+ Sxb7 11.Kxd5 e2 12.Jxe2 Sxc6+ 13.Kd6 Vc8 14.Jf4 Se8 15.Vg7 b4 16.Jd5 Vc6+ 17.Ke5 b3 18.Vg3 a bílý nakonec zřejmě vyhraje.
K dobrým řešitelským kvízům patří také konkrétní vyvrácení špatných výsledků.
Zejména když jsem v hlavní variantě dosáhl skoro stejné koncovky JJPxSP.
Ne, nevěděl jsem více. Úvodník není tak složité najít. Jednak všechny figury stojí optimálně a zbývá zapojit jen bílého krále a navíc v té pozici musí být něco méně očekávaného, protože by to Alice jinak neukazovala .-). I když nejsem nijak silný hráč, na úvodník jsem potřeboval jen pár desítek sekund (bez počítače), prokousat se tím zbytkem bylo o něco těžší, byť s počítačem.
Velkou výhodou je, že černý se nemá jak pohnout, nemá jak vylepšit své figury, zatímco bílý má veškerý čas světa k dispozici.
Znate tu povidku Kolumbove vejci?
Určitě nejdůležitějším faktorem není jakou absolutní hodnotu počítač přidělí dané pozici, ale k jaké pozici bude počítač konvergovat na základě dané oceňovací fce, čili jaké se bude snažit hrát tahy. V té konkrétní pozici má pravdu Shredder, pokud je tedy pozice opravdu vyhraná, ale musel by to dokázat tím, že to opravdu vyhraje do 50ti tahů proti tablebase, jinak se jedná o náhodu (což se může přihodit každému, že omylem zahraje nejsilnější tah ).
Takže...
Ve věžové koncovce, kterou jsem původně preferoval, vidím docela velké šance na remízu ve variantě 1.Jh5 Vh6 2.Jxg7 Jxg7 3.Vxg7 Sxe6 4.Jxe6 Vxe6 5.Kb6 c5+ 6.Kxc5 Ve5+ 7.Kd4 Vb5 8.Kc4 b6.
Takže bych dal přednost včerejšímu postupu 1.Vg2 Kc7 2.Vg5 Kb8 3.Vh5 s tím, že
1. Řada Postmasterů tah 3...Vh6 vůbec nenajde, protože motory mu dávají výrazně slabší hodnocení než 3...Vf8 nebo 3...Kc7 4.Vh8! Kd8 5.Vg8!.
2. I pak je možné hrát na výhru 3...Vh6 4.Vxh6 gxh6 5.Jf5 h5 6.Kd4 Jc7 postupem
7.Jg7, který je motory obvykle hodnocen jako slabší než 7.Ke5.
Například 7...h4 8.Kxe4 [8.e7 h3] 8...b6! 9.axb6 Jxe6 10.Jgxe6 Kb7 11.Jd4 Kxb6 12.Jd3 h3 13.Kf3 a5 14.bxa5+ Kxa5 15.Jxc6+ Kb6 16.Jce5. Pěšec h padne a vznikne hlavolamová pozice JJPxS, která se dá poměrně často vyhrát.
Ještě zpět k tomu číselnému ocenění posice z hlediska programátora, byť amatérské úrovně. Myslím, že člověk coby šachista - uživatel programu má přirozený sklon to číslo přeceňovat a přikládat mu možná trochu jiný význam, než ve skutečnosti má. Ono je v tom jistě cosi magického, něco na způsob svítícího oka u starých lampových radií - konec konců člověk to vnímá jako jistý způsob komunikace programu s ním. A to je asi ten omyl.
Ano, paradoxně bych řekl, že rybích 0,5 bylo v tomto případě "lepší" hodnocení posice než drtičových 6. Neznám konkrétně tuto koncovku a nevím, jestli v ní existuje nějaký lidsky srozumitelný plán k výhře (myslím tím podrobnější než zjevné "dobyj věž"). Při některých poměrech materiálu ale v těch mnohadesítitahových manévrech v optimálních variantách podle TB snad ani žádnou logiku vysledovat nelze. Pak je v podstatě nemožné stanovit nějaké rozumné ocenění posice, které by umožnilo programu bez TB jít tou správnou cestou, z lidského hlediska "následovat plán k výhře". V elementárních koncovkách není těžké takovéto "spojení" mezi statickým ohodnocením jedné posice a plánem vytvořit. V KP:K prostě ocením postup pěšce, v KV:K ohodnotím vzdálenost nepřátelského krále od okraje a mého krále od nepřátelského a tato jednoduchá heuristika v zásadě stačí programu, aby si "dopočítal" správný postup k výhře.
(Odbočka - něco úplně jiného je, pokud má to ocenění posice být přesné ve smyslu, že tak jako TB neomylně určí bez prohledávání, zda je posice vyhraná, remíza nebo prohraná. To je i u těch nejjednodušších koncovek oříšek, vyjímek - paty, ztráta figury atp. je hrozně moc. Udělal jsem takhle ve svém programu mj. koncovku KP:K a vyklubalo se z toho docela martyrium. Co vypadá pro člověka jako pár triviálních pravidel, se nakonec přetavilo do cca 250 řádek hutného programového kódu. Nebo KV:KV, na kterém teď trochu pracuju - asi 99,5% posic ocení správně, ale dosáhnout 100% je boj.)
Ještě i KSJ:K takhle funguje, i když už je plán složitější (napřed krále do jednoho rohu a pak do druhého atd.). Ale u těch divočejších poměrů materiálu už prostě nejsou žádné záchytné body a dílčí postupné cíle. Pak je asi vskutku rozumnější, když program i takovou objektivně vyhranou posici hodnotí skromně, aby místo toho třeba raději hrál byť jen s pěšcem navíc jinou posici, ve které má reálnou šanci se k té výhře dopracovat. Navíc i když se ocenění bude pohybovat dejme tomu v oblasti 0,5 pěšce, stále je možné se přece jen pokusit o nějaké posilování posice (třeba obligátní penalisace krále slabší strany na kraji šachovnice) s nadějí, že program se, ač bude ukazovat z lidského hlediska "nesprávně" nízké hodnocení, nakonec přece dopracuje k posici, ve které už dojde např. k tomu dobytí věže.
Zkrátka, abych to shrnul, ty hodnoty můžou být, zvláště v případě koncovek, čísla značně arbitrární, protože musí vyhovovat zákonitostem fungování programu, nikoli přesně korelovat s lidským nebo "tabulkově objektivním" hodnocením.
..takze..?
Zpátky k něčemu normálnímu. Po několika dnech jsem s údivem zjistil, že nikdo po mně neanalyzoval tu koncovku od Alice. Přitom je tu ještě jeden jasný plán, aktivace bílé věže. Musí to být přes h5, aby zabránil protihře g5. Vypadá to docela dobře
1.Vg2 Kc7 2.Vg5 Kb8 3.Vh5
Teď mnoho motorů ukazuje 3...Vf8 4.e7 Vg8 5.Jde6 (nebo také 5.Jg6) a bílý má velmi nepříjemný tlak. Například 5...g6 6.Ve5 Ka7 7.Vg5 Kb8 8.Jf8 Sf5 9.Kd4 Vg7 10.J8xg6 Sxg6 11.Jxg6 Kc7 12.Ke5 Vf7 13.Vg1 Vf6 14.Jh4 Kd7 15.Vd1+ Kxe7 16.Jf5+ Kf8 17.Vd8.
Podle mého je ale výrazně lepší 3...Vh6! 4.Vxh6 gxh6 5.Jf5 h5 6.Kd4 Jc7 7.Ke5 a tady zblízka motory dříve nebo později najdou silný tah 7...b6!!, po kterém se černý zachrání. Například 8.axb6 Jxe6 9.Jxe6 Sxe6 10.Kxe6 Kb7 11.Kd6 Kxb6 12.Jg3 Kb5 13.Jxe4 Kxb4.
Nicméně na těhlech případech je hezky vidět, že pořád je prostřednictvím šachu co objevovat minimálně co se týče prozkoumávání multidimenzionálních chaotických prostorů.
PS. Jo lidi vůbec rádi nemyslí když nemusí se mi zdá :)
Problem je v tom, ze lide radi slepe nasleduji masiny - vcetne serie nejlepsich tahu
S tou koncovkou dam jeste nejaky cas, pokud by se nekomu zachtelo si s ni pohrat..
Jo v tomhle je sranda, jak lidé přeceňují že tah s hodnocením +0.5 je lepší než s +0.3 ...
Ano, +/=/0 je spravne hodnoceni, ostatni je berlicka.
Takze v tomto pripade Shredder ukazoval spatne, protoze partii nevyhral (mel moznost 4x zahrat spatne a tu precerpal) a Rybka dobre (stale pocitala s tim ze v horizontu 50ti tahu nedojde ke ztrate veze nebo vymene), pricemz ve skutecnosti vime ze to byl forsirovany mat v 52?
Hodnoceni enginu slouzi jako voditko pro vlastni hodnoceni pozice - da se rici, ze pri praci s pozici clovek hleda rozdily mezi ruznymi hodnocenimi enginu a pripadne hleda duvod proc tomu tak je (pokud ma dost casu). Dokonce si snad muzeme rici, ze +3 je celkem prijemne hodnoceni zvlaste kdyz vime, ze to znamema cca +- 3 pesce.
Co je to "správné ohodnocení"? V zásadě by k ohodnocení posice měla stačit tři čísla: -1, 0 a 1. Ty násobky hodnoty pěšce, které nám motor ukazuje, nemají žádný hlubší smysl ani neříkají poslední pravdu o posici na konci hlavní varianty. Prostě jen slouží programu k porovnávání různých posic a jejich výběru, takže v zásadě nám do toho vlastně nic není, pokud program vybírá správné tahy a vyhranou posici vyhraje a remízovou zremizuje. Takže pokud toto postavení je objektivně vyhrané a počítač ho "umí" vyhrát, tj. "rozumí" posici, pak je určitě lepší číslo 6. Pokud ji nerozumí, bude lepší ohodnotit posici nízko, aby hledal spíše alternativní cesty (ještě předtím, než se k té posici dospěje). Nic víc v tom není.
A) predbehnu 32man TB a reknu ano, cerny stoji na prohru
B) pokud budu hrat bilymi, tak ano
C) ano, s pouze jedinym predpokladem, ze clovek nebude znat naprosto exaktni cestu (a take prislusne reakce cerneho enginu) - neni problem si nasimulovat desitky partii a pak si odzkouset tu spravnou variantu. Pro blicku je to otazka maximalne nekolika hodin
D) ano, je to mozne, dokonce s identickym HW a SW na obou stranach
Btw: Prave byla ukoncena partie Shredder-Rybka na TCEC, kde vznikla oblibena koncovka 2S+J:V. Je spravne hodnoceni +6 (Shredder) nebo +0.5 (Rybka) kdyz ke ztrate veze dochazi v optimalni variante v 46tahu od posledniho brani? (v pozici po 112.Kxg3 hlasi TB mat v 52 tazich). Ja to nevim.
Re Bond: K výhodě bílého by mělo stačit 3.Jf3 - přechází do Ponzianiho obrany, kdy bílý místo hlavního 3.Jxe5 zahrál 3.d4 - ostatně braní na e5 jezdcem hrozí dále. Slabinou je hlavně diagonála a2-g8, na tu by se měl bílý zaměřit, na e5 pak případně brát pěšcem až poté, co černý někam potáhne Jg8. Na nějaký rozbor tu není místo, až si tohle na mě nějaký soupeř na FICGS troufne, potom to budu rád řešit podrobněji, tomu se to pokusím dokázat.
Re SKA: Jistě, že se to dá říci o každé špatné pozici, tak já šachy prostě chápu - buď je pozice prohraná, nebo není, lhostejno, kdo tu partii hraje a na jaké tempo - že to někdo nevyhraje, to už je zase o jiné pozici, která asi někdy později nebyla řešena přesně. Jako další rozlišení slouží +/= (malá výhoda), což já beru jako remízovou pozici, kdy se strana s malou nevýhodou ještě nadře s hledáním přesných tahů. A +/- (výhoda, běžně psáno nad sebou, na to nemám na klávesnici znak ..., nezaměňovat s +-, vyhranou pozicí) beru jako pozici vyhranou, kde se ovšem strana usilující o výhru pořádně nadře s hledáním přesné realizace.
"pak (A a logicky i B) určitě"
skutečně ? No já vám teď řešení neřeknu, ale totéž lze řící téměř o každé pozici v šachu předtím než ji začneme analyzovat pokud se nám nějak nelíbí ...
Hlavně mi není jasné, jak to chceš dokázat - leda bys uvedl všechny varianty až do +-
Vzhledem k tomu, že pozice buď prohraná je, nebo není, nezávisle na tempu a soupeřích, pak (A a logicky i B) určitě, (C) pokud má počítač dobrý hw i sw, pak velmi pravděpodobně, (D) i to je možné.
Jinak mám úkol pro Alici :
1.e4 f6 2.d4 e5 je
(A) vždy prohrané pro černého
(B) prohrané pro černého v korespondenčním šachu
(C) počítač v tom černými s žádným člověkem neprohraje
(D) i počítač vs počítač to černý né vždy prohraje pokud hrají tempem do 5minut na partii
Zítra jsem celý den mimo.
Motory docela legračně popotahují věží po sloupci g.
Takže kdybych se musel blic teď večer rozhodnout a poslat tah, tak bych se asi spokojil s výrazně lepší věžovkou Jestli je opravdu vyhraná, to je na několik večerů.
1.Jh5 Vh6 2.Jxg7 Jxg7 3.Vxg7 Sxe6 4.Jxe6 Vxe6 5.Kb6 c5+ 6.Kxc5
6...Vc6+ 7.Kd4 b5 8.Kxe4 Vc4+ 9.Kd5 Vxb4 10.e4 Vb1 11.e5 Vd1+ 12.Kc6 Ve1 13.Kd6 Vd1+ 14.Ke7 b4 15.e6 b3 16.Vg3
6...Ve5+ 7.Kd4 Vb5 8.Kc4 Ve5 9.Vg6 Kc7 10.Vb6 Ve8 11.Kd5
Připadá mi, že po 1. b5 toho bílý dosáhne. Zapojí do hry i krále, zatímco černý nemá čím hrát. Po 1...axb6? 2.Kb6 je konec rychlý. Po 1...cxb6 2.Kd5 odevzdá brzy černý za pěšce e6 raději střelce a bude se bránit s figurou méně.
Zkusim druhou.
1kb1n3/1p4p1/p1p1Pr2/P1K5/1P1NpN2/4P3/8/6R1 w - - 0 1
Tady se nemohu ptat na to, kdo stoji lepe - i pres pesce mene vsechny enginy preferuji bileho, ktery je na tahu, takze zjevne pujde o to najit presvedcivou cestu k vyhre nebo k veeeelke vyhode. Musim rici ze se jedna o celkem starou ukazku a pro analyzy mate dnes k dispozici nacini ktere ma o nejakych 200-250 vice ELO nez mely obe strany behem hry.
Obe pozice by sice mely byt spise u clanku o kor. sachu, ale tam se diskuse vydala jinym smerem.
Koukam ze pozice alespon trochu chytila.
Po návratu z víkendu jsem si taky trochu zaanalyzoval.
Tah 10.Je5 byl asi příliš optimistický a bílý tím ztratil svou výhodu ze zahájení.
Po 11.Dc2? Sxe5 12.dxe5 Jg4 se může dokonce dostat do potíží.
Svůj plán poziční masáže f4 může uskutečnit postupem 11.Dd2 s myšlenkou 11...Sxe5 12.dxe5 Jg4 13.Ja4. Ale ve variantách typu 11.Dd2 Jbd7 12.f4 Je4! 13.Sxe4 dxe4 14.Jxe4 Sb4 15.Jc3 Jxe5 16.fxe5 Da6 má určitě černý slušnou kompenzaci a pozor musí dávat spíš bílý.
Proto se mi jeví jako nejrozumnější 11.Sxf6, kde (v předpočítačových dobách) byla dokonce šance vyhrát, spojená s nezvyklou hezkou ideou 11...gf 12.Dh5 Dxb2? 13.Dxh6 Dxa1+ 13...Dxc3+ 14.Ke2 f5 15.Jg6, 13...f5 14.Jg6. 14.Ke2 Db2+ 15.Kf3 f5 16.g4!! fxg4+ 17.Kg2!. Lepší je 12..fxe5 a bílý má zřejmě jen věčný šach.
Po 11...Dxb2 12.Vc1! gxf6 (12...Sb4 13.0-0 gxf6 14.Jg4) 13.Vc2 Da3 14.Dh5 zřejmě zase remíza.
Asi tak po hodině na mém notebooku dokončil Houdini uvedenou hloubku:
rn2k2r/pp3pp1/1qpbbn1p/3pN3/3P3B/2N1P3/PP3PPP/R2QKB1R w KQkq - 0 1
Analysis by Houdini 1.5a x64:
10.a3 Sxe5 11.Ja4 Dc7 12.dxe5 Dxe5 13.Sg3 Dg5 14.h4 Dh5 15.Se2 Df5 16.Sd3 Dg4 17.Se2 Df5 18.Sd3
= (0.00) Hloubka: 28/66 00:47:23 7172mN
Pokud tam má mít bílý něco víc, asi by bylo nutné s motorem "diskutovat" déle, než mám čas já.
Potíže - 10.Dc2 Sxe5 11.de5 Jg4, 10.Sxf6 Dxb2, 11.Db3 Sxe5 -- Jg4 ... Nadějné by ale mohlo být 10.Dd2 a když Sxe5, potom 11.de5 Je4 12.Jxe4 de4, dvojka střelců by se časem projevit mohla. Vypadá to, že to s tou malou výhodou bílého není tak jednoduché, tah 9.Je5 je očividně předčasný - ostatně není v knihovně R4 ani H13. V té hlavní variantě nabízené Houdinim se mi při tom krátkém prohlížení nějaké zlepšení také nalézt nepodařilo.
No ta pozice po krátké analýze vypadá 0-0.5 pro černého, páč bílý může vynutit remis se zdá po Bxf6 opakováním tahů. Cokoliv přesnějšího by bylo na týdny práce mi přijde. To až budu mít čas chci prozkoumat 1.e4 f6 :)
Před třemi a půl lety? To bude mít možná jen jeden procesor. Dejme tomu něco přes 3100, možná ještě trochu méně, vzhledem k tomu, že nemáte pořádnou knihovnu a předpokládám, že ani tablebáze. Záleží na frekvenci, parametry byste měl objevit přes ovládací panely - systém ...
Koupil jsem ho asi před 3,5 lety za cca 20.000, ale parametry si už nepamatuju. Elo 3.200 říkáte ? To už je pořádná síla... Myslím, že knihovny nemá, je to nějaká stažená verze, běží mi to v prostředí Fritze... Vždycky mě porážel, ale dneska to schytal. Možná to bylo tím, že byla hodně zablokovaná pozice, já mu hrál na krále, asi mu propočty byly k ničemu...
Co je standartní notebook? Pokud beru u Rybky na rychlém čtyřjádru základ 3200 (CEGT), potom bych na svém Core Duo tipoval cosi kolem 3150 - záleží i na dalších věcech, jestli máte tablebáze a jakou knihovnu zahájení program měl. Je li pro vás standartní notebook to, co prodávají za nějakých 7 tisíc s procesorem Atom, tam by síla mohla klesnout i k 2900 - jste-li dobrý hráč a hrajete "svou" variantu, nepatrné šance máte. Také záleží, jakým způsobem hrajete. Za náš oddíl hrával pan Eichler (ELO kolem 1900), který v dobách DOSových programů hrával s počítačem a po každé prohře proanalyzoval variantu o několik tahů dále. Časem se tak samozřejmě dostal do pozic, kde už i on mohl s tím počítačem (tehdy tak kolem 2300 ELO) hrát.
V bleskovce by měl mít ještě daleko vyšší rating, člověk by neměl vůbec mít šanci.
Jakou sílu má podle vás Firebird nebo Rybka běžící na standardním noteboku ? Ptám se jen proto, že sem ho teďka v blicce porazil, tak nevím, co si o tom myslet....
Pokud jde o tu pozici co uvádíte níže, tak bílý musí stát lépe. 1)karlovarská struktura není pro černého nic moc 2) Sd6 je divný, chodí se přece Se7 3) h6 je oslabení 4) Db6 už to nezachrání....
Já bych odhadoval, že bílý stojí lépe (pozici nevidím, jen jak to čtu). Za varianty mi to nestojí, nehraji to ani za bílé, natož za černé. Jen mi tak napadá, že bílý poslal do hry všechny lehké figury, zatímco černý udělal rochádu, vyvinul jednoho jezdce a oba střelce, ovšem bělopolným je momentálně "plýtváno" na poli e6. Tah dámou je patrně ztráta času. Takhle naslepo bych asi hrál Dc2 s myšlenkou postupu f pěšce s pozdějšími možnostmi Vf3-g3(h3), g4 apod.
01.04.2011 22:27:27 | SKA
o každopádně se nabízí otázka zda teda některé programy pro analýzu "vědeckou" nebo korespondenční nejsou lepší, prostě to budou ty co nemění tak často ohodnocení tahů , dokonce i tahů vzdálených 1-6 třeba tahů od pozice, páč program co to mění nakonec moc často bude vlastně nutit člověka aby to s ním procházel a kontroloval to za něj (ikdyž s jeho pomocí tak že popojde v hlavní i vedlejších variantách o 1-5...-10 tahů a spustí ho znova jen na omezený čas, když na delším se bude tahle chyba zvětšovat) ne ?
Jednoducha otazka ve stylu zahrajte si sachy s velmistry (partie skoncila remizou v 26ti tazich, jedna se o pre-R4 a klonovou zalezitost):
[Event "WS/M/169 ICCF"]
[Site ""]
[Date "2008"]
[Round ""]
[White "Pommrich,Rainer"]
[Black "Voiculescu,Costel"]
[Result "1/2-1/2"]
[Eco "D35"]
[Annotator ""]
[Source ""]
1.d4 Nf6 2.c4 e6 3.Nf3 d5 4.cxd5 exd5 5.Nc3 c6 6.Bg5 Bd6 7.e3
h6 8.Bh4 O-O 9.Bd3 Be6 10.Ne5 Qb6
Pozice po 10..Db6 je:
- vyrovnana?
- bily stoji lepe?
- cerny stoji lepe?
- pokud nevyhovuje ani jedna odpoved, napis vlastni
Sve tvrzeni doloz variantami
Odpoved dostanes pouze v pripade spravne odpovedi
Kolik znáte pozic (zkonstruovatelných, tj. do nichž se lze dosta v partii) kde to počítač hodnotí (třeba houdini) +3 a hodnotí to tak i po třeba 5minutách a nakonec to po hodině či dvou dnech otočí na prohru, resp. ikdyby neotočil, ptostě je prohraná ?
No ledaže by to SKA myslel tak, že pokud po N polotazích nezískám řekněme +3 pěšce na materiálu tak je to remis. Což je blbost, protože někdy k výhře stačí 0 pěšců a někdy nestačí ani 3 (a zjistí se to až za třeba 60 polotahů, což je za zenitem jakéhokoliv motoru, tohle počítat plošně)
No každopádně se nabízí otázka zda teda některé programy pro analýzu "vědeckou" nebo korespondenční nejsou lepší, prostě to budou ty co nemění tak často ohodnocení tahů , dokonce i tahů vzdálených 1-6 třeba tahů od pozice, páč program co to mění nakonec moc často bude vlastně nutit člověka aby to s ním procházel a kontroloval to za něj (ikdyž s jeho pomocí tak že popojde v hlavní i vedlejších variantách o 1-5...-10 tahů a spustí ho znova jen na omezený čas, když na delším se bude tahle chyba zvětšovat) ne ?
RE Bond, ne do matu, do remízy, jak předpo velký Jose Raul. Ovšem, některé budou i do matu.
Jo, až bude mít motor 32kamenovou tablebázi, tak bude všechny varianty hlásit do matu. Do té doby si musí vystačit s číselným oceněním pozice.
Jenže jak zjištíš že je to nejsilnější tah ? Tak že na něj může soupeř zahrát jen slabé tahy po nichž dostane mat .... jinak přece ne ne ? Takže metodou je vyloučit prohrávající tahy, ne nějakou oceňovací fcí stanovit nějak silné tahy - třeba podle materiálu ..
Pořád jde ale o jedno - najít a zahrát nejsilnější tah. jestli vede k výhře se uvidí, každopádně mi zaručí maximální výsledek v dané pozici. A o to jde i v korespondenčních partiích.
pak se za odhalení tahu -N dá pokládat jen pokud najde rybka mat v N tazích, teda myslel sem že v praxi třeba stačí hodnocení -3.0 poládat za figuru míň s tím, že tam není taktika co by to otočila (oba králové bezpečný apod ...)
100% prohraná pozice je tehdy, pokud motor ukáže mat. Vše ostatní je jen odhad, někdy přesný, jindy méně. +1.00 třeba u Rybky neslibuje ještě nic, takto hodnotí prakticky všechny složitější věžovky s pěšcem navíc. Záleží na pozici a odhad vztahu hodnocení motoru x budoucí výsledek vyžaduje značnou zkušenost s daným motorem.
No otázka je zda když by mě zajímaly všechny tahy co neprohrávají (tedy k tomu potřebuju ty co určitě prohrávají), tak zda si mohu být jist že když nějaký tah motor hodnotí jako -1 třeba zda už to je prohrané ? Nebo to jen vede do pozic, které se zdají počítači prohrané?
Tak vznikala kniha Deep Thought/Blue - nechali motor projíždět různé varianty a jako aktivní v knihovně zůstaly ty vedoucí do pozic, kde motor ukazoval nejvyšší hodnocení. Vedle vyhraných variant tak byly v knihovně i varianty, kterým motor nerozuměl a nadhodnocoval je. Pravděpodobně nějaké gambity, kde nebylo hned vidět, jak získat zpátky materiál - to by zase tak nevadilo, člověk proti počítači dokazuje kompenzaci velmi obtížně.
Máš pravdu v tom, že čím silnější motor, tím více osekává varianty (respektive tím rychleji ukončuje propočet v "neperspektivních" variantách), ale zase každý programátor to osekávání odladí tak, aby to vedlo k navýšení výkonnosti a nikoliv ke snížení. Čili prostor pro chybu tu je, ale je velmi malý a netuším, jak by takovou skulinku mohl člověk odhalit.
Re JBelim : Jenže právě to nelze , prostě můžu např. obětovat pěšce a ta obět můpže být korektní jenh při nejlepší hře ve všech příštích 30ti tazích, takový tah je nejasný. Ale když přijdeš o figuru tak ti na to bude stačit mnohem menší horizont zpravidla (protože při strátě figury stačí se dopočítat že po všech tazích možných vznikne pozice vyrovnaná na ostatní faktory jen ta ztráta materiálu je rozdíl a tedy je to jasné). Rozdíl mezi kompletní analýzou a analýzou jen vybraných pozic je nějaký prostor a je otázka zda se tam nemůže skrýt možnost nějaká. Tedy pak programy to co prohledávají se nerovná všem možnostem ale výběru z výběru a není to ekvivalentní, ikdyž to může být dobrý odhad. V turnajovém tempu na které sou laděné to může fungovat s efektem že některé pozice neumí hrát a v korespondenčních či jiných vědeckých analýzách pak ten prostor spíš může vadí ne ? Protože něco vypustí ... Ono to mohou vypustit i v turnajové hře : však sem zkoušel tenkrát 1.e4 f6 a někdy vyhrál i černý ... Takže buď je to zahájení možné hrát (ale pro černého těžké nalézt v minovém poli nejlepší cestu) anebo není (ale pak programy nevidí jak ho vyvrátit) ...
To je zajímavá otázka - který motor je pro analýzi daného typu pozice lepší - ten, který ji věří (+0.25), nebo ten který ji nevěří, tedy jakoby "nerozumí" (-0.25)?
No nejedná se o žádné "záhadné tahy v hloubce N" spíš mně to napadlo v souvislosti s některými úvahami o analýzách. Prostě jde o to, zda když motor hodnotí nějaký tah 1.3 či 0.4 tak to klidně může znamenat, že když mu zahrajeme několik tahů po hlavní variantě kterou udává, jeho hodnocení se klidně otočí na -1 či -2 klidně. A zda/které motory to dělají často a které méně. Prostě jde o to, že když zahraju 1.e4 f5 tak vím v nějakém horizontu, že ten pěšec je ztracený , ale když toto bude složitější, tak si programy příliš neusnadňují práci nadměrnou selektivitou až tak že pro hlubší analýzu je to pak nepoužitelné (otázka). Prostě mně třeba překvapuje, že některá zahájeni popsaná tu nebo v diskusi údajně počítače neumí vůbec hrát a proto se jim vyhýbají. Pak ale sou pro analýzu pozic v těchto zahájeních nepoužitelné ? Něco jako kdybych napsal program schopný hrát jen pozice v nichž není na šachovnici žádný jezdec, třeba by pak v těch pozicích porážel všechny ostatní ??
Existuje jednoduchá premisa - program spolehlivě spočítá, který tah je ve výchozí pozici nejlepší (z jeho pohledu, do dané hloubky) a spočítá objektivně i jeho hodnotu +/-. Ostatní tahy nejsou zaručeny. Pokud chci tedy objektivně zhodnotit všechny tahy, musím je zahrát a nechat engine, ať analyzuje pozici po zahrání každého tahu. A termín "totálně prohraná/vyhraná" pozice si prostě určím podle hodnocení, např. +3 je totální výhra (neplatí v pozdních koncovkách, tam jak motor nevidí variantu do proměny pěšce, tak se může stát cokoliv).
Uff, stejně ta orientace v otázce je poněkud obtížná.
- program určitě nic nehádá, ale počítá vše. Co totiž nespočítá, to z jeho pohledu neexistuje. U většiny tahů se ovšem spokojí s tím, že ani dva tahy nějaké strany po sobě nedají lepší pozici, jak hlavní varianta (tzv. nulový tah).
- Co se jakýchsi záhadných tahů N za horizontem týká, tak délka propočtu hlavní varianty se obvykle prodlužuje o tzv. hledání klidu (šachy, braní figur, většinou i pouhé napadení, v jednoduchých koncovkách by se možná vyplatily i tahy volným pěšcem ...). Dokud není nalezena "klidová" pozice, tak se ani nehodnotí z hlediska materiálu, natož aby se probírala poziční kritéria.
aha mi tam nějak vypadlo slovo, tam mělo být
teoretik ví že neví, dokud mu zbude jediný tah typu N, který je za horizontem vyčerpávající analýzy
tedy prostě že si uvědomuje že neodhalil všechny tahy, typu N např. -25 dokud má na stole jediný tah, pro který neprovedl dostatečně vyčerpávající analýzu (třeba při -25 takovou aby jasně prokázal že tento tah prohrává, a to na jednoznačně průkazném horizontu 25)
Jde o to, že jde jen o to vyloučit ty špatné tahy, ale stanovit to s jistotou - tedy třeba při řešení úlohy není cílem aby program ukázal jako nejlepší tah ten co je řešením, ale aby po zahrátí všech ostatních tahů nikdy nezměnil ohodnocení, resp. ukázal na jaké hloubce prohrávají a stejně tak ukázal na jaké hloubce prohrávají všechny tahy které lze zahrát na onen vyhrávající - tedy nepotřebuju stanovovat vyhrávající tahy, jen stanovit tu hloubku to N na které jsou ostatní tahy jednoznačně = s jistotou=průkazně prohrané. A otázka byla zda toto skutečně dělají současné programy : zda dokáží stanovit to N ve výrazu "-N" , tu jistou hloubku, či zda jen odhadují ikdyž často úspěšně. V tom je pak rozdíl mezi hraním v reálném čase a analýzou kde se musí hledat ty N a pozice v nichž je některé N tak vysoké, že soupeř při analýze ho nemá šanci nalézt (pokud budu něco analyzovat rok, soupeř to nenajde za týden, proto je též jedno zda mají korespondenční hráči k dispozici pomalejší či rychlejší počítače, jde jen o to že mají všichni řádově stejně rychlé a musí mít program, který nehádá, ale je schopný určovat s jistotou to N).
snad teď je to srozumitelně položená otázka : hádají některé programy aby byly rychlejší při hraní na úkor toho že pak při analýze nedokáží efektivně stanovat to N ?
V propočtu jde v podstatě jen o 2 věci - najít co nejrychleji nejlepší tah a vyloučit co nejrychleji tahy, které nejsou nejlepší. Čili v optimálním případě počítám jen můj nejlepší tah, nejlepší tah soupeře atd. A tu tvoji otázku (SKA) jsem taky nepochopil.
To je právě to neštěstí, že si z nás nestřílí. On to myslí vážně.
2 SKA
Připojuji se k Rubinovi.
Čtu si už asi popáté pasáž
teoretik ví že neví dokud mu zbude jediný tah typu N, který je za horizontem vyčerpávající
a pořád přemýšlím, jestli to myslíte vážně nebo si z nás děláte srandu. :))
Pokud možno krátce, stručně a jasně, tohle je jak od Zaorálka, nebo podobného Kašpara.
Jinak efekty zde popsané v kontrolní otázce (zda je možné aby program určil -15 a -20 ale měl problém detekovat -17, kde -X znamena tah dokaztelne/prukazne prohrany na hloubce X) jsou nezávislé na hloubce (nejde mi o to zda X je 4 či 40, ale zda jsou a jak moc v současných programech, je mi jasné že pokud nějaké byli dříve na hloubce 8 dnes sou na větší. PS. v této souvislosti moc nerozumím smrti korespondenčního šachu, analýza se jen posune do větších hloubek přece, k hledání pozic kde je větší výskyt tahů ohodnocených většími zápornými čísly a tím větší šance že soupeř to nenajde a vleze si tomu : princip průchodu džunglí : schopnější krokodýl dundee prostě dojde dál, ostatní někde zežere něco), jde mi o to zda si myslíte, že se vyskytují teda u dnešních programů ? Zda selektivita je i za cenu že něco vůbec nevidí třeba i až, či mkoc dlouho o nevidí aby mohli třeba rychleji objevit ty menší záporná čísla ??
Jen dotaz (kontrolní, opravte mně jestli se v něčem pletu) : Takže v podstatě nejde při testování pozice o to zjistit zda je pozice vyhraná (ani jak tedy, jelikož to lze převést na vyřešení dále uvedeného problému pro všechny tahy následující po vyhrávajícím tahu). A teď jádro pudla : v každé pozici lze seřadit tahy (teoreticky) od tahu který lze prokázat, že je prohrávající na malé hloubce (třeba 4-6 tahů) až po tahy, které jsou prohrávající na hloubce 12, 20, 30, 40 ... tahů a zbylé tahy pak jsou nejasno = remis (zda remis či vyhrané není nutno řešit, páč to zjistíme tím že takový tah zahrajeme a pokud všechny tahy které na něj lze zahrát prohrávají pak je vyhrávajícím, jinak remis). A teď rozdíl mezi teoretickým modelem a herní praxí : praktický herní počítač (konkrétní pc + program) tedy z pozice kde existují tahy -4,-5, ... , -8,-9, ..., -12,-14, -22,-33 ... , -100 , N,N,N (kde minus osm znamená že tah je prohrávající a je to průkazné (jednoznačně) na hloubce 8 ... atd a N znamená neprohra) prostě ohodnotí tah -22 jako jako N (s nějakým číslem, třeba 0.23), zatímco teoretik ví že neví dokud mu zbude jediný tah typu N, který je za horizontem vyčerpávající (to je to číslo které se neví dokud se tam nedojde - ikdyž zde v modelu hypotetické pozice je obecně známé (resp. vševědoucí jí ví, ostatní ne dokud se neprohrabou analýzama dost daleko)) .
Ták a teď na téhle představě ta kontrolní otázka : 1. Je velký rozdíl mezi praktickým šachem a korespondenčním ? Já vidím jen ten, že zatímco v praktickém šachu program hraje proti soupeři bez zásahu člověka (R1.1) a neřeší všechny pozice ale jen ty do kterých si vleze (R.1.2) tak v korespondenčním šachu jde o to odhalit co nejvíce prohraných tahů, tedy dostat se co do největší hloubky a pozice které počítačový program musí řešit určuje člověk (R1.3). Ale R1.1 = R1.3 =R.1.2 tedy liší se to jen tím zda ty pozice zadává člověk ??
Zde se teda schází všichni ve vlastnostech : cílem není zjistit který tah je jak silný, ale za jak dlouho (V1) a kolik (V2) prohrávajících (-hloubka jak sem popsal v příkladě obecném) tahů ten který šachový program, obecně šachový programočlověkopočítačtým odhalí ? Resp. Je možné že některý program sice rychle odhalí vše po -16 (tah prohrávající na hloubce 16) a pak i -25, ale s -20 některými bude mít problém ? Takový program pak může být dobrý pro hru v tempu kde se do hloubky 20 neleze anebo tam kde nevleze do takovýchto pozic, ale pro vědeckou analýzu pozice není vhodný ?
Tak a teď co z toho co sem napsal teda si myslíte že není pravda ? tot kontrolní sumarizační otázka - díky za případné odpovědi, snad sem to popsal jasně aby šlo odpovědět i stručně.
2Bond - Testování pozic
V jistém stupni rozvoje PC šachu nebyl hw ani sw na takové úrovni, aby umožnil
automatické turnaje programů. Dokonce i autoplayer mezi dvěma programy byl nejdřív
přísně střeženým tajemstvím Langa a spol.; později se sice objevil, ale jeho rozchození a provoz bylo alchymistickým kouskem pro nejzkušenější.
V té době byly testovací sady jediným rozumným způsobem, jak za večer ošacovat nový program nebo novou verzi.
Dnes se dává přednost bleskovým turnajům (http://www.inwoba.de) a ještě lepší
je pomalé tempo (turnaje Pavla Háse), ale to si musíte nějakou dobu počkat.
Testování pozic smysl určitě neztratilo, například objevením pozice se špatným chováním
mohou uživatelé pomoci autorovi programu s jeho dalším vylepšováním.
Testování má svá pravidla, která jsou rozumná a logická a inteligentní člověk by na ně měl přijít sám. Pro pořádek jsou přílohou většiny testovacích sad (http://www.vlasak.biz/elotesty.htm).
Základní pravidlo zní, že examinátor není jen cvičenou opicí, která uzná čas v okamžiku, kdy motor indikuje správný úvodník.
Naopak, tester musí testovaným pozicím dobře rozumět a vyčkat, dokud
(1) motor neindikuje také správnou variantu, tedy že skutečně pozici rozumí
(2) výstup je stabilní, tedy na principiálních tazích neprokmitávají jiné slabší možnosti
Jedině to umožní seriózně porovnat různé programy.
Alice při prezentaci své pozice CCC porušila tato pravidla obě.
Protože lepší time management má Vašík v plánu až pro verzi pět ...
Houdini proti Rybce pěkně šetří čas, to Mě zaujalo, když jsem dal zápas motorů.
No,nechci se vám do toho míchat , i když to dělám ( tohle není "můj obor" ) , ale už to ztrácí úroveň, jak přecházíte do osobní roviny. V počítačovém šachu jsem laik , ale nad znalostmi Alice i Pavla H. - klobouk dolů
2Alice
Jak vám docházejí argumenty a nejste schopna logicky popřadě odpovědět na moje otázky (ač ode mě jste to vyžadovala), tak začíná ztrácet úroveň i váš sloh a celkové vyjadřování. Mnoho keců kolem, informační hodnota skoro nulová.
Vámi předložená pozice je z kategorie těch, které řešení mají, proč jste ji tedy předkládala?
Nemusíte na každou mou pozici předložit n vlastních, stačilo by, abyste blbcům jako jsem já, jehož znalosti končí v minulém století, ukázala jednu bez řešení a vysvětlila, jak tedy poznáte, že je v ní Rybka lepší. Rád se poučím.
2Bond
Ovšem hodnocení enginů podle řešení jednoznačných úloh je v podstatě jediná cesta - buď objeví řešení (v daném čase) nebo ne. - Klasicka chyba?! To je to nejhorsi co muzes udelat. Tak mozna zjistis nejlepsiho resitele, ale ne nejlepsi herni program (i kdyz ty posledni 3 slova dohromady pisu strasne nerada) - jinymi slovy, je rozdil mezi programem, ktery resi nejrychleji pozice (sveho casu treba pokus Rybka Winfinder, nebo personalita Q3 u Rebela) a programem, ktery umi hrat sachy (treba oba hojne diskutovane).
Za poslední větu dávám Alici , neboť Cimrmana není nikdy dost!
P.S. Ovšem hodnocení enginů podle řešení jednoznačných úloh je v podstatě jediná cesta - buď objeví řešení (v daném čase) nebo ne. Testy na pozicemi, kde mi má vyjít +0.25 je nemožné, protože nikdo nemůže s jistotou říct, že hodnocení má být právě 0.25.
2Hornik
Z me strany to nebylo konfrontacni. Jednoduse jsem pozici vzala a podivala se, co ukazjui enginy, nic vic, nic min, vicemene jsem potvrdila Vas zaver (Houdini bleskove, Rybka lehce pres minutu)
2PH
samozrejme jsem si vsimla, ze Hornik uvadi 32bit verze a u obou programu starsi verze, proto jsem vzala posledni aktualni. Pomer casu cca 1:14 v Hornikove pozici zustal plus minus zachovan i v mem testu.
Wow efekt se nekonal? Jak bych to mohla predpokladat?
[zkusme prispevek 25.03.2011 12:25:00 | Alice:3ctenari reknou hmmm, ale Rybka neumi pomenu ve strelce, 5 zacne zduvodnovat proc Houdini vybira jiny tah a zbytek bude mlcet. To me nezajima.; 25.03.2011 09:22:28 | Alice: Nevim co by se melo na Vasem pristupu zmenit, pokud bych Vam tady nahodila nejake pozice - necekam oooooch, ani aaaaach, ta Rybka je dokonala.]
Musim Vam predlozit na kazdou Vasi pozici dalsich n, abych Vas presvedcila? Porad Vam nedoslo, krome toho ze mate problem porozumet cesky psanemu textu a dokazujete mi to kazdym dalsim příspěvkem, ze ja nemam ani povinnost, ale hlavne ani zajem Vam cokoliv dokazovat? Jedine co od Vas zde ctu jsou osobni utoky a reakce na prispevky, ktere jsem nikdy nenapsala a za to mi nejen diskuze zde nestoji.
Pokud Vas rozhled, metody nebo prakticke znalostmi konci v oblasti stredni hry na urovni poloviny 90tych let minuleho stoleti a od te doby jste neprodelal zadny zasadni vyvoj v teto oblasti, pak nevim co bych se mohla od Vas priucit, protoze pokud se dostanu do (studiove) koncovky tak tam si jiz sama se svou hracskou urovni, znalostmi i moznostmi poradim.
Mohla bych polozit otázku – verite sedmému pultahu v PV po 10vterinach natolik, abyste to bral jako 100% bernou minci? Jak sokujici když v dalším prubehu dojde k zpresnovani vypoctu, viz zaver partie (ponder on): 59. … Kh5 (-1.72/15 12) 60. Ne4 (-0.19/27 33) Qxg4 (-2.39/14 11) 61. Rxg4 (-0.15/27 0) Kxg4 (-2.51/15 2) 62. Qxb6 (-0.48/27 233) Kf4 (-3.02/17 16) 63. Qf2 (-2.52/23 183) g4 (-3.35/21 17) 64. Qe1 (-3.19/23 45) g3+ (-4.77/18 22) 65. Kh3 (-10.44/24 139) g2 (-5.76/18 0) 66. Qd2+ (-10.51/25 35) Kxe4 (-9.08/17 89 0-1
Všechny pozice co byly v této diskusi zmineny, mají jedno spolecne – mají reseni a to je podle me chyba. Zkuste analyzovat nejakou obecnou nebo vagni pozici, kde reseni není.
Dokonce bych mohla jit tak daleko, ze me v principu nezajima hodnoceni rootovske pozice
Dokonce bych mohla jit tak daleko, ze me v principu nezajima hodnoceni rootovske pozice
Dokonce bych mohla jit tak daleko, ze me v principu nezajima hodnoceni rootovske pozice
Takze by logicky měla nasledovat otázka, co povazuji za dulezitejsi nez hodnoceni rootu, ne?
Situace, kde ke správnému hodnocení je třeba vidět 28 (nebo kolik) polotahů, je v turnajové praxi naprosto výjimečná. Svata prostoto, piste timto zpusobem casteji. Proc se nezeptate třeba několika prednich ceskych korespondencnich hracu, jak pracuji? Mame jich pry 20 přes 2499+.
Vsichni, mali, velci, tlusti i hubeni mají radi barvita a kvetnata prirovnani, tak Vam rada jedno pridam – když jsem byla naposledy v ZOO, měli tam ošklivého zeleneho krokodýla az z nej sel strach. Ze bych se s nim setkala z oci do oci, to by musela byt naprosto vyjimecna situace. Presto existuji lide, kteří mají jako sve povolani (nebo konicek, dokonce to mozna nemaji ani napsane v obcance) lovec krokodylu, setkavaji se s nimi dennodenne a mají poteseni z toho, když ho premuzou.
Pokud na severu Cech merite cas treba pomoci brambor, tak si posluzte, ja jsem zvykla pri porovnavani delky trvani neceho merit cas obvyklym zpusobem. Jinak v tomto pripade jsem investovala 2 kliky mysi nato, abych prenesla vystup z GUI a usnadnila si praci abych nemusela 5 minut prepisovat texty z monitoru – pokud budete mit zajem tak Vas to někdo sikovny nauci, jinak nezbyde nez RTFM.
Nyni pouziji slova Ladislava Stroupeznickeho smerovane Jarovi Cimrmanovi:
S pozdravem, nepište mi, a pokud možno nepište vůbec
Alice Bednarova
2Alice
Pozice CCC nemá s vaším předchozím filozofováním o strategických jemnostech vůbec nic společného. Je to přesně situace typu koukám na obrazovku a až uvidím 0-1, "zmáčknu spokojeně stopky", kterou jste v předchozích textech opakovaně zesměšňovala.
Nicméně objektivně jde o situaci nesmírně zajímavou a Rybka se chová výrazně lépe než Houdini.
Malou odbočku. Při mé interaktivní práci vyjedu okamžitě po hlavní variantě a v tomto režimu vidí Houdini průšvih bílého také velmi rychle.
Ale použít tento argument ve prospěch Houdiniho by bylo stejně nekorektní, jako vaše přechozí kličkování kolem pozice Horníka a tempu TCEC. Pokud v obou pozicích vrátíme ještě nějaké fiktivní tahy a bude na výběr, tak v pozici Horníka by prostě R bílými do této situace vlezla a Houdini ne a v pozici CCC by stejnou chybu udělal H.
Zpátky k pozici CCC. Její zvláštností je to, že k odhadu výsledku nepomůže žádná šachová inteligence ani znalosti, ale jedině brutální a velmi hluboký propočet přes 4...Kf4 až někam k 11...Vg8! a 14...f2+ nebo h2+.
Proč je Rybka zde tak dobrá? Domnívám se, že rozhodující efekt je v tom, že propočet je sice velmi hluboký, ale na cestě (s výjimkou 4...Kf4) nejsou žádné překvapivé tahy. A to sedí selektivitě R, která je nastavena proti H daleko riskantněji. V pozici Horníka se karta obrací, protože R zřejmě hned nevidí některé překrytí typu Vd3 (to je jen moje hypotéza).
K analýze Rybky.
Myslím, že důležitým místem je právě oběť věže 4...Kf4, která zřejmě vede k jasné výhře.
R3, pokud mohu v té rychlosti posoudit, má jasnou tendenci hodnotit tu variantu z dálky jako remis, takže nějaká změna tam nastala.
Ale i R4 ve výpisu Alice nakonec oběť zavrhne, protože horizont je velmi daleko
a vidí tam hodnocení jen -1,34, ačkoliv je to vyhrané.
Takže nakonec dá přednost tahu 4...Kh5 a (zřejmě právě z důvodu riskantní selektivity) pokračuje chybně 5.Dxa5?.
Přitom 4...Kh5 5.Da7! Vf4 6.Jd2 g4 7.Dh7+ Kg5 8.c5 g3+ 9.Kh3 g2 10.Jxf3+ Vxf3+ 11.Kxg2 vede k pozici sice lepší pro černého, ale možná bránitelné.
Takže nakonec hodnocení R4 je sice správné, ale na základě špatného propočtu.
A ten kdo opisuje varianty z monitoru se stopkami nejsem já, ale Alice.
Také mi zcela uniká, proč by měla být situace CCC nebezpečnější než pozice Horníka.
Situace, kde ke správnému hodnocení je třeba vidět 28 (nebo kolik) polotahů, je v turnajové praxi naprosto výjimečná. Proto také máte problémy nějaký příklad vůbec najít.
Sorry, Feynman, chybka se vloudila...
Rozhodně nechci nikomu nic dokazovat! Jen konstatuji holý fakt, že v tomto postavení je Houdini (s tou konfigurací HW a SW) prostě zhruba řádově rychlejší než Rybka. Jak konstatoval Richard Faynman: "Věda je dlouhou historií školení o tom, jak si přestat lhát do kapsy."
Re Hornik a Alice: Nepřehlédli jste v tom zápalu, že první zkouší 32bitové verze a ještě k tomu Houdiniho 1.03, nikoliv dost odlišného 1.5a? A podle verze SSE u Alice předpokládám relativně našlápnutý notebook, nějaký i3?
2 Horník
Takže po několika koncovkách tu máme také pozici střední hry, kde Houdini je výrazně lepší.
2 Alice
Jak teda v takové reálné složité pozici, kde by i dokonalý superprogram tahy rozlišil hodnocením v setinách, poznáte, že Rybka radí lepší tahy než Houdini?
OK, nic proti. Jen se mi zdálo, že takto zobecňovat je (přinejmenším) nepřesné. Ale přít se s Vámi nebudu :-)
Provedla jsem test na svem notebooku:
Se zájmem sleduji Vaší odbornou diskuzi. Programátor nejsem a ani šachovému programování vůbec nerozumím, ale dovolím si s Alicí polemizovat, že Rybka je jasně lepší v hodnocení zvláště korespondenčních partií. Mám pro vás aktuální pozici na testování. Právě teď probíhá jedna korespondenční partie, která dospěla do tohoto postavení:
Bílý:Kg1, Dc6, Ve1, Va1, Jc5, p:b2,b4,f2,g3,h2
Černý: Kg8, Df5, Vd1, Vd5, Sf8, p:e6,f7,f4,g5
Černý je na tahu.
Na mém docela běžném notebooku (jednojádrovém) najde Houdini 1.03a w32 1_CPU rozhodující (nejsilnější tah) 1...Dh3! za 1minutu 2sekundy.
Naproti tomu Deep Rybka 4 w32 to hledá obludných 14minut 17sekund! Oba motory na hloubku 19.
Je tedy v tomto případě téměř 14x pomalejší!
Nemohu u kazde vety psat slova: typicky, charakteristicky, prevazne atd takze si obcas v prispevcich dovoluji charakteristicke zjednoduseni typicke prevazne pro internetove diskuse.
Konkrétními příklady neposloužím, tolik toho korespondenčně nehraji. Ale třeba J.D. by určitě souhlasil s Alicí a to nikoliv proto, že je členem Rybka týmu. Ony ty požadavky Vaše kvůli studiím a jejich, coby korespondenčních hráčů, jsou přeci jen dost rozdílné. Začátkem dubna začne na FICGS další fáze, pokud bude čas, mohu zkoušet pouštět oba motory, v takové Španělské by mi třeba zajímalo, kdo z nich je chytřejší - Rybka zavřenou Španělku podle mě neumí. Jako příklad bych mohl poskytnout jednu z partií, ale rozbor by asi vydal spíš na krátký článek, než na příspěvek do diskuze.
2Pavel
Ano, to přesně tvrdím a podporuji to několika konkrétními příklady.
Podle Alice je ale R4 výrazně inteligentnější a Houdiniho nedoporučuje.
Ovšem o své protipříklady "se nemíní zde dělit". Mám si je prý najít někde na nějakých fórech.
Anebo u Houdarta opravili chyby v převzaté Rybce?
Takže jediným logickým vyústěním této diskuze je, že tu přistáli mimozemšťani a slavnostně předali Vašíkovi R4
2 Alice
Především jste v rekapitulaci takticky vynechala svou úvodní klíčovou větu
Vase pouziti enginu se smrsklo (opravte me, pokud nemam pravdu) na spusteni na pozici (casto s TB) a cekate na vysledek radove (desitky) minuty a ocekavate, ze vam ukaze 1,remis,0 - nic jineho Vas nezajima.
Jestli něco nesnáším, tak jsou to "PostMasteři". Extrémní i7 u nich běží celé noci, ale když se s nimi o jejich pozici pobavíte, tak nerozumí tomu, co se děje v dalším polotahu. A tahle věta mě háže právě do tohto pytle. To mě samozřejmě dost vytočilo, takže jsem další pasáž považoval za rozvinutí této myšlenky. Ani teď jí moc nerozumím.
Když analyzuji svou korespondenční partii, tak musím tušit, co bude výsledkem. Možná je to v rozporu s tím, co jsem tady naopsal o strategii, ale vyšší zákony v šachu existují. Když obě strany hrají dobře a člověk ví, že zákony neporušily, tak je v pozice v rovnováze a počítač nemusí běžet celou noc. Chápu snad celonoční procedury Vámi pospasné, když mám malou výhodu a ona se rozplývá. Nebo když stojím těsně hůř a bojuju o život. Ale i pak musím tušit, co bude výsledkem a hledat nápady i hlavou. Jinak nejsem žádný šachista, ale úředník, Postmaster.
Já, jak jsem psal, pracuji skoro pořád interaktivně, a Houdini mi maximálně vyhoduje.
Napište prosím jasně česky, k čemu mi ho nedoporučujete.
Minule jste mi vytkla, že jsem neodpověděl na Vaši otázku. Také já čekám na odpověď, kde se vzala superinteligence R4.
Ippo podle Vašich slov ukradl technologii R3, Houdini podle slov jejího autora převzal dobré nápady z Ippa. Takže nezbývá věřit, že Rajlich na R4 dlouho a usilovně pracoval. Tomu snad nevěříte ani Vy.
V dobách bez počítače, respektive s 8bitovým Mephistem, jsem nad pozicí hlavní varianty čtyřpěšcové Alechinky strávil snad měsíc, někdy kolem 18.tahu ... Ale neanalyzoval jsem nepřetržitě. V poslední době na FICGS potom při jedné analýze (DPA, dvakrát) potom asi něco přes týden - ale to je tak trochu korespondenční blicka, 30 dní na partii a den bonus - ale dá se to prodloužit pomocí turnajové dovolené, já si ji za celé 3-4 roky, co tam hraji, nevybral .... Ve standartních turnajích FICS s dlouhým tempem to bývá měsíc třeba běžně - pak se ale většinou hraje několik dalších tahů hned - já tam nehraji, informace je "z druhé ruky".
Ve studiové tvorbě jsou stále desítky procent skladeb, se kterými si dosud neporadí žádný motor......To bych těžko mohl dělat tak, že pustím motor a koukám na obrazovku. Motor běží víc než 10 minut jedině když jdu večeřet nebo na pivo. Jinak samozřejmě interakce, střídání motorů, permanentní hash a vnucování vlastních variant.
Takže vaše doporuční mé osobě, co mám a co nemám používat, je poněkud směšné.
Kdyz se analyzuji pozice/partie pak vubec nevite, co bude vysledkem (vetsinou je jen zbozne prani) - opoet nic noveho pro Vas. Cas spotrebovany na pozici casto zacina na desitkach minut a konci na... ani se neptejte na mne znamy maximalni cas na pozici. Velmi casto pri analyzach se jde dopredu/dozadu, povoleny jsou i veci jako ruske Akvarium, Fritzovske DPA ci MonteCarlo - a na toto pouziti ja Vam Houdiniho ani nikoho z Ipp nedoporucim.
Pokud máte za to, ze oba odstavce jsou ve shode a popisuji identickou vec, pak nebudu ztracet dalsi cas.
2Alice
Sledováním diskuzí jsem postupně zjistil, že máte o oboru šachové hry skvělý přehled. Váš pohled na studie a mou práci je ale naprosto naivní.
Moje příklady jsou vyextrahované tak,aby se chyba projevila v plné nahotě. Tomu se v programování říká izolace problému. Když se hledá chyba v nějakém softu, tak právě izolace zabere klidně 99 procent času a vlastní oprava je potom triviální záležitostí.
Navíc je to samozřejmě dobré metodicky při publikaci článků.
Bohužel vidím, že tyto příklady naprosto mylně považujete za základ mé činnosti.
Ve studiové tvorbě jsou stále desítky procent skladeb, se kterými si dosud neporadí žádný motor. A já takové věci nejen analyzuju a hodnotím (jako rozhodčí), ale hlavně také vymýším (jako skladatel). To bych těžko mohl dělat tak, že pustím motor a koukám na obrazovku. Motor běží víc než 10 minut jedině když jdu večeřet nebo na pivo. Jinak samozřejmě interakce, střídání motorů, permanentní hash a vnucování vlastních variant.
Na počítači analyzuju od roku 1983 (Specturm + Colossus) a v roce 1987 jsem měl první PC (ChessMaster 2100, později Rex a MChess). Od té doby jsem testoval prakticky všechny silnější programy, které se objevily.
Takže vaše doporuční mé osobě, co mám a co nemám používat, je poněkud směšné. Zejména od anonyma.
2 Pavel Háse
Já vím, že s tou strategií je to pro klasicky vychovaného šachistu docela bomba.
Ale ty nové a lepší počítače, které zmiňujete, uvidí selektivně ještě dál. A zatímco lidský GM pracně vymyslí, jak by asi měl v dalším průběhu rozestavit figury (tzv. plán), počítači tyto obrazce vzniknou při propočtu automaticky včetně informace, že takové rozestavení má skrytou taktickou vadu.
Jsem skoro přesvědčen, že ten verdikt bude mít trvalejší platnost.
Počítače nás prostě naučily, že šachy jsou daleko taktičtější hra, než se dlouhá léta myslelo.
2pepa1
Ano, ta šestitažka je v jádru klasický spor nullmove versus zugzwang, okořeněný ještě okolností, že první tah může být snadno vyhozen ze zkoumání selektivními algoritmy.
První verze Houdiniho si s pozicí také neporadily, což je další důkaz, že Houdini (přes nejasný původ) je intenzívně a kvalitně vyvíjen.
Pozice patří do zvláštní skupiny úloh, které mohou být jak studií, tak vícetažkou; v kompozici se pak diskutuje, čemu dát přednost. Ale to sem nepatří...
Moje věta, že bych se klidně spokojil u herního motoru i s jiným delším řešením, byla míněna obecně na použití vícetažek v testech a k tomuto případu se opravdu nehodí.
Případ falešného střelce nechápu (jako Alice) jen jako náhodný bug, který jsem někde posbíral, abych mohl poškodit Rybku a VR. Jak jsem psal, pokud někde jinde najdu podobný problém Houdiniho, zařadím ho do sbírky a napíšu o něm.
Ale podle mě jde o obecnější ilustraci, v jakém chvatu byla R4 na poslední chvíli vyvíjena, aby se dostalo aspoň mizerných +30 ELO a neskončilo to úplnou ostudou.
Takže si znovu musím položit otázku, kde vzala R4 onu Alicí proklamovanou inteligenci, když Houdini použil vše dobré z R3.
kde by jste chtěl
uff, už bych měl asi dávno spát ...
A ještě k té poslední posici:
Vůbec by mi nevadilo, kdyby herní motor neviděl mat v 6, ale ukázal jinou výhru s vysokým skórem. Vadí, že Rybka příliš dlouho (desítky minut) detekuje remízu.
Důvod "rybí" remízy jsem se pokusil vysvětlit v předchozím příspěvku, předpokládám, že jako remízu ukazovala variantu 1.gxf7 a všechny figurky se nakonec nějak vymění. Ale nevím, nevím, kde by jste chtěl vzít tu jinou výhru. Vždyť bílý nic jiného než ten mat v záloze prostě nemá, tzn. jestli ho engina z nějakého důvodu nevidí, těžko po ní můžete chtít "jinou výhru", natožpak s vysokým skóre ...
to EmilV: K zmíněným posicím:
k5b1/1p6/p7/P3B3/1KP5/8/8/8 w - - 0 1
Tak nevím, co to tady Vašík vymyslel ... Mám v programu taky detekci špatného střelce i s jistou inteligencí, která zkoumá, jestli se opravdu král slabší strany může dostat do kýženého rohu, ale i když jsem tuto inteligenci vypnul, program stejně posici po vzetí na c4 analyzoval jako vyhranou za bílého. Zblbnul jsem ho až tehdy, když jsem z kódu detekce špatného střelce vracel místo 0 hodnotu INSUFFICIENT_MATERIAL, která má za následek, že se posice už dál nezkoumá, a INSUFFICIENT_MATERIAL se okamžitě vrací zpět ke kořenu.
8/3k4/2p5/p1P1pP2/P3P1p1/6Pp/2P4P/6K1 w - - 0 1
To není možná zas tak složité. Řešení mám vymyšlené takto: když při oceňování pěšců zjistím, že žádná strana nemá možnost napadnout pěšcem nepřátelskou pěšcovou strukturu, tak se podívám, kolik je blokovaných pěšců. Když budou aspoň 4, spustím kód, který mi vytvoří bitmapu souvislé oblasti polí, na která se může dostat král. Když v ní nejsou žádní nepřátelští pěšci, je posice nadobro zablokovaná. Už jsem si na to kdysi připravil nějaké rutiny, ale ještě jsem to neimplementoval. Tak uvidím, jestli vše půjde tak snadno. Určitě ne.
8/rk6/8/8/8/8/6KB/6NB w - - 0 1
To je teoretická výhra podle tablebases? Protože v téhle posici jaksi není čeho se chytit, program se nějaké nové fáze v průběhu partie (předpokládám dobytí věže) těžko dopočítá, to leží za horisontem, takže hodnocení posice nejspíš prostě jen odráží ohodnocení daného poměru materiálu na šachovnici. Můj program ukazuje +-4.5, Houdini +-3 a Rybka +-0.7. Tady je nejspíš na místě se ptát, proč Rybka hodnotí tento poměr materiálu tak nízko.
5K2/5p2/6P1/8/8/3N4/rp5R/rk6 w - - 0 1
Tohle vypadá na klasický nullmove problém. Po 1.Kg7 fxg6 2.Kh6 nullmove a jestli teď Rybka má povolené nultahy v řadě za sebou, pak jí nezbývá než šoupat věží po druhé řadě sem a tam ... Ale i kdyby teď musel táhnout černý a nultah mohl přijít až zase potom, tak na dobrání se posice před matem se spotřebuje vinou nultahové redukce hrozná hloubka hledání. Nemluvě tom, že se tu ještě může přidat i LMR, protože je třeba udělat tři nebrací tahy bílým králem za sebou a ty můžou být touto redukcí postiženy. Houdini zdá se má v této posici nultah buď vypnut nebo má nějakou úspěšnou verifikaci. Když ve svém programu nultah vypnu, najde Kg7 s matem v hloubce 17, což přesně odpovídá (11 půltahů + 3*2půltahy LMR). Houdini nachází Kg7 v hloubce 21, jenže mu k tomu stačí nějakých 18,8 mil. uzlů, zatímco já potřebuju 119 mil. V tom je holt ten rozdíl ...
"strategie" je něco jako ve fyzice zapsaný fyzikální zákon, prostě s určitou mírou přesnosti (za určitých odmínek takřka dokonale) popisuje problém a jeho řešení. "taktika" na druhou stranu je konkrétní propočet či v širším slova smyslu zápletky eventuelně složitý až chaotický prostor. Nebál bych se toho že jedno či druhé převládá, spíš každé má svou doménu a užitečnost pro použití. Nicméně stejně jako othello/reversi, kterou vyřešili již osmibitové počítače, holt šachovnice 8*8 a současná pravidla asi jsou něco podobného jen složitějšího. Jinak ten pocit kdy místo logického uvažování už musíte mít nějaké expertní znalosti šachu a studovat ho stovky hodin to přece zažil každý kdo ho přestal hrát amatérsky, přitom kouzelné je to když někdo šachy hraje bez znalosti teorie a typických pozic střední hry. Ale co nám brání hrát jinou složitější, strategicky obsažnější hru že ?
Taky myslím, že v současné době je taktika přeceňovaná hladvně díky lenosti nás programátorů, protože když zkusíme zlepšit strategické hodnocení pozice, tak nás hned engine potrestá rapidním poklesem výkonu a proto se ani nesnažíme překonat toto "údolí smrti". Uvidíme za 10 let...
Re EmilV: Skoro bych řekl strašnou věc, že šachy jsou prostě taktická hra a celá slavná strategie je pouze berlička, kterou lidé léta nahrazovali svůj pomalý hardware. To nás počítače naučily jako lidstvo, včetně Kasparova. ...
Tak tohle je myslím jen dočasné, pokud ne rovnou přehnané. Já odhaduji, že se objeví ještě lepší počítače a znovu bude platit, že strategie je taktice nadřazena. Nějaká drobná oceňovací kritéria mají programy už dnes. A jaké je na playchess skore programy - kentauři? Já myslím, že stále ještě neplatí ta nadhozená nerovnost engine > engine + operátor.
Protoze jsem jiz unavena z tech dnesnich prispevku, bude ma reakce strucna
Re Alice : Jo neříkej jim to tupcům ať na to přijdou sami, každý hlupík přece si ty testy může udělat sám. Já mám taky leckajé testy ale nebu vám je tu ukazovat ale alice pravdu nemá a nevyvrátí mi to páč je neukážu a neukážu hehe :)
No pokud to od ní nebyl další fígl, tak je to nějaká Alice Bednářová
2Alice
Celá věc má dvě stránky - lidskou a odbornou.
1. Jeden diskutující má konkrétní identitu včetně šachové síly a vyloží na stůl konkrétní příklady, zatímco druhý vše důsledně skrývá. To přece nemůže být úplně zdravé a korektní. Tento fakt jsem považoval za natolik očividný, že věta musíte pochopit.... nebyl rozhodně žádný příkaz, ale zdvořilé připomenutí tohoto faktu.
Hlavně se netýkal se argumentu diskuze, ale jen jejích nerovných podmínek.
Pokud si opravdu myslíte, že teto stav je normální, pak tedy sorry, nemusíte pochopit.
Ale pak se holt budete dostávat do schizofrenní situace, že byste potřebovala ukázat nějaké své partie a nemůžete, protože bych si vás našel v databázi.
Vy jste pak tu větu rádoby vtipně předělala, ale nedošla vám jedna podstatná maličkost. Vaše musíte pochopit se totiž náhle týká předmětu diskuze (...že Rybka je inteligentnější než Houdini, protože jsem to zjistila analýzou korespondenčních partií)
a z mého zdvořilého připomenutí se stává vaše arogantní odseknutí.
Sorry, ale nemusím pochopit, že Rybka je inteligentnější; maximálně musím pochopit, že se vám tak jeví.
2. Od začátku tvrdím, že se zabývám jen studiemi. Ty jistě souvisí s šachovou inteligencí,
ale samozřejmě nepokrývají všechny oblasti hry. Třeba přechod ze zahájení do střední hry nebo prostě pozice s příliš početným materiálem. Tam to může být jinak a protože se v tom nehrabu, marně tady žádám protipříklad.
Minulým příspěvkem jsem chtěl říci, že vaše sledování (byť zřejmě pečlivé a čestné) může být zatíženo systematickou chybou; to znamená, že stejně jako studie nepokrývá celou šachovou hru.
Například. Jestli ty korespondenční partie jsou z poslední doby, pak měly/mají vesměs v pozadí Rybku, nejspíš za obě strany. Je možné, že Rybka hraje dobře své pozice (tedy vaše zkoumané korespondenční partie), ale jiné partie (například hrané Houdinim, Shredderem nebo lidmi) mohou dopadnout pro Houdiniho lépe.
Protože skrýváte svou sílu, nelze opravdu ani vyloučit situaci, že něčemu prostě nerozumíte. Nějak podezřele jste například utekla od té Grunfeldovky, která by byla na dlouhé zkoumání.
Ale obecně jsem měl opravdu spíš na mysli, že tomu nerozumíme my lidé.
Už jsem to někde psal, ale docela bych to zopakoval.
Léta se tvrdilo, vrcholem umění je strategie a že počítač se velmistrovi buď nevyrovná vůbec nebo až tehdy, až zvládne strategii. Najednou se vyrovná a žádnou strategii nepotřebuje.
Skoro bych řekl strašnou věc, že šachy jsou prostě taktická hra a celá slavná strategie je pouze berlička, kterou lidé léta nahrazovali svůj pomalý hardware. To nás počítače naučily jako lidstvo, včetně Kasparova.
Abychom tuto věc (relevanci vašic partií) probrali podrobněji, tomu efektivně brání váš postoj. Pokud ho nezměníte, další seriózní diskuze v tomto směru není možná a z mé strany ji uzavírám.
Moje poznamka ale smerovala jinym smerem - jak velkych je tech 70 ELO bodu - cekala jsem, ze odpovite v tom smyslu, ze dvojnasobek rychlosti znamena cca vysledek 55-45 ve prospech rychlejsiho enginu, ctyrnasobek 60-40, osminasobek rychlosti 64-36 atd.
Celkem jsem v pokušení odpovědět, že TAKHLE velkých. Nebo TAAAKHLE, případně jenom takhle? Nevím, proč mi kladete zákeřné otázky, na které přitom sama znáte odpověď (byť zřejmě nesprávnou). Já se obvykle lidí ptám na věci, které nevím. Ale nevadí, už se nám to tu začíná pěkně vařit, skoro jak na Rybka fóru .
2pepa/bond
Beru zpet, 6-4 je pro rozdil 70bodu spravne - prekoukla jsem se
to Alice: Můžu se zeptat, odkud máte těch 55-45? Podle tabulek i podle vzorečku vychází 60-40.
to Alice: No jistě že je to dávno známe, vždyť to jsem přece napsal - Je empiricky vyzkoušeno. O CCC jsem psal proto, že to číslo mám v paměti právě odsud, ale není problém najít si ho jinde; jsem si téměř jistý, že graf závislosti síly programu na rychlosti je i knize Šachy na PC (teď jsem líný ji hledat) nebo si to prostě můžete sama změřit, není nic jednoduššího, jestli na to máte čas a tolik po tom toužíte. Mě je celkem jedno, jestli je to 50 nebo 90, mě to zajímá řádově, abych věděl, nakolik se co vyplatí optimalisovat v programu. K tomu přesnou hodnotu nepotřebuju. A ty poměry si spočtěte dosazením do vzorečku pro Elo nebo si najděte v tabulce, pro 70 elo bodů je to asi 60-40.
Škálování nárůstu výkonu v paralelním prohledávání je ovšem zase úplně jiná věc daná efektivitou použitého algoritmu.
2bond
Rozil 70 bodu je 55:45, nikoliv 60:40
Rozdíl 70 ELO bodů odpovídá poměru šancí 60:40 (viz tabulky).
Jiná věc je, že čím je motor silnější, tím menší vliv na jeho sílu zvýšení výkonu má, takže těch 70 ELO bodů mi přijde hodně nadsazených.
2pepa
Vratme se k tomu co jste rikal, protoze ja mam strasne spatnou predstavivost s abstraktnimi promenymi x a y:
Je empiricky vyzkoušeno, že zdvojnásobení rychlosti programu dává nárůst síly asi 70 Elo a
a nasledne: S těmi 70 Elo body se tak nějak operuje třeba v diskusích na CCC
To je vseobecne zname, tento jev se popisuje skoro 20 let.
Moje poznamka ale smerovala jinym smerem - jak velkych je tech 70 ELO bodu - cekala jsem, ze odpovite v tom smyslu, ze dvojnasobek rychlosti znamena cca vysledek 55-45 ve prospech rychlejsiho enginu, ctyrnasobek 60-40, osminasobek rychlosti 64-36 atd. Jen tak pod carou zvytecna poznamka: enginy na 8mi jadrovych strojich nejsou 8x rychlejsi nez 1no jadrove (pri zachovani frekvence procesoru a ostatnich parametru). Ale to je tez vseobecne zname.
to Alice: Rikala jsem, ze je to zakerna otazka ohledne ELA.Pocitacove ELO je dost gumova vec a diky tomu, ze zde neni korelace s lidskymi tak vsechny ELO listiny /CEGT, SSDF.../ jsou lehce problematicke. (presne vypocty s presnymi cisly davaji v absolutni hodnote zvlastni cisla)
Ale tady přece vůbec nejde o korelaci s lidským Elo a je úplně jedno, jak je Elo nastaveno. Když říkám, že zrychlení o x zvětší sílu programu o y Elo bodů, tak porovnávám sílu dvou protivníků (původní a zrychlený program). To s žádnými listinami vůbec nesouvisí.
to Pavel: Díky za tipy, někdy se na to podívám. Zatím to asi není aktuální, testuji bez knihoven pomocí sady "startovacích posic", ale kdybych program zveřejnil, tak by asi nějaká knihovna byla dobrá.
2EmilV
Myslim ze prispevek, ktery jsem Vam adresovala byl stale jeste v pratelskem duchu s lehkym nadhledem, to ale zacinam s kazdym dalsim prispevkem postradat u Vas.
Pouzila jsem ciste Vasi vetu s pozmenenou interpunkci - jestli Vam prisly Vase vlastni slova adresovana mne nekorektni nebo arogantni, prestoze jsem dopredu upozornila ze jde o nadsazku, pak vazne nevim co si mam myslet?!
Kolik jste těch partií analyzovala?
Radove mene nez pocet studii co Vy. Casu jsem stravila nekolika radove vice nez vy se studiemi.
Vedle již naznačené možnosti, že Houdini přesahuje místama vaše chápání hry je tu několik dalších možnách systematických chyb.
Tuto vetu nechapu - mam se na ni divat tak, ze Houdini ma 3300 a tim padem jsme vsichni tupci, nebo je smysl otazky polozeny nekde jinde?
Ano, sbírám bugy, ale ne jen Rybky. Velmi rád budu publikoval a popisovat i opačné případy R lepší než H, ale žádný skutečně jasný ve své sbírce nemám.
To je presne ta vec, o kterou zajem nemam. Kdyz budu chtit zapusobit, napisu nekde na Talkchess, Rybkaforum, Open-Chess ci Hiarcs forum a ukazu par pozic, kde Houdini reaguje spatne, ale rekne te mi uprime , co bych z toho mela mit?! 3ctenari reknou hmmm, ale Rybka neumi pomenu ve strelce, 5 zacne zduvodnovat proc Houdini vybira jiny tah a zbytek bude mlcet. To me nezajima.
Zopakuji Vam:
podelila jsem se o informaci z vlastni zkusenosti. Jak s ni nalozite (muze byt pro Vas zcela bezcenna) je starost Vase a pripadne dalsich ctenaru.
2Alice
Chápal bych, kdybyste napsala třeba
Bohužel protipříklady nemohu poskytnout, protože by to vedlo k odhalení mé totožnosti
a/nebo pomohlo soupeřům v korespondenčním šachu a/nebo ohrozilo můj budoucí byznys. Přesto si myslím, že R je inteligentnější než H.
Místo toho se dočítám, že
..nemíním se s nimi zde dělit a
...musíte pochopit, že Rybka je inteligentnější než Houdini, protože jsem to zjistila analýzou korespondenčních partií.
Nezlobte se, ale to je stejný sebestředný a arogantní rys jako u VR, proto si s ním zřejmě tak rozumíte.
Kolik jste těch partií analyzovala? Vedle již naznačené možnosti, že Houdini přesahuje místama vaše chápání hry je tu několik dalších možnách systematických chyb.
Třeba jsou to partie jednoho hráče, který už tak dlouho používá Rybku,
že se mu styl přizpůsobil.
Nebo jsou to nové partie, které jsou skoro všechny hrané Rybkou a jsou možné nejrůznější korelace.
Nebo to mohlo být jen malé množství.
Skutečné porovnání je možné jen sehráním velkého množství partií a výsledek je známý.
Ano, sbírám bugy, ale ne jen Rybky. Velmi rád budu publikoval a popisovat i opačné případy R lepší než H, ale žádný skutečně jasný ve své sbírce nemám.
Pak je tu otázka, jak by R4 k té inteligenci navíc vlastně mohla přijít. Špičkový produkt R3 byl tedy podle vaší teorie ukraden a jak VR inovoval R4, o tom je jedna z mých minulých pasáží a ukázka s falešným střelcem v odpovědi Michalu Dragounovi.
Klon tady nevyřešíme, prohlédněte si minulý článek o Klonování.
Když okopíruju UCI parser nebo přístup na Tablebase (dejme tomu s povolením Nalimova), tak by mi to u šachového motoru vůbec nevadilo, i když jsou to stovky řádků.
Proč ztrácet čas obejvováním Ameriky. Snad i jádro generátoru tahů, který se moc lišit nemůže.
Ale naopak třeba kus oceňovací funkce může vadit i v krátkém úseku.
O tom, jestli byl porušen zákon a ukraden kód by musel rozhodnout soud na základě zdrojáků obou programů.
Pokud je kopírování idejí legální, pak zákon vůbec nemůže dosáhnout na krádež programu - pokud není onen dotyčný úplný blbec, tak formálně překope kód, funkčnost nechá a má vystaráno.
A to, že nikdo nechce zveřejnit své zdrojové kódy naprosto chápu. Samotné osočení, že někdo něco odněkud zkopíroval k vymahatelnému zveřejnění zdrojáků opravdu nestačí (teda doufám, že nestačí, to by bylo absurdní).
2Bond
Tvrzení, že program s 1 čádkem okopírovaného kódu je klon, je skutečně k smíchu.
Klon = dokonalá kopie originálu - nekopirujes CDcka, ale kod programu. A to s tim 1 radkem jsem uvedla schvalne extremne - jde o to, ze jakmile je kopirovana jakakoliv cast programu A a pouzita v B, pak se jedna o klon (zjednodusene, v mluve sachoveho programovani) - a to neni moje definice - lide jako Hyatt, Cozzie, Uniacke se tim prakticky ohaneji dnes a denne - takze bych prosila - u kolegy pane.
Jinak doba klonovani se posunula - ty tam jsou doby, kdy stacilo vzit zdroj Fruita nebo Craftyho, lehce pozmenit vystup a tesit se z nove hvezdy, jak to udelal napr. Yelin s Patriotem/Kaissou a dalsi - takove klonovani je dnes k smichu.
A kopirovani ideii je pravne povolene a legalni (pokud neni chraneno patentem ci jinym podobnym zpusobem)- takze presne opacny postup nez uvadis.
A tomu se dá zabránit jediným způsobem - nezveřejňovat je.
To je zjevne ten duvod, proc Rajlich o uverejneni kodu R1 ani neuvazuje.
Pavel Háse: Díky.
Re Alice: Tvrzení, že program s 1 čádkem okopírovaného kódu je klon, je skutečně k smíchu. Klon = dokonalá kopie originálu, takže platí spíše opačné tvrzení - že program s 1 změněným řádkem už není klon.
Ale o to nejde. Můžu překopat všechny řádky a přitom budou dělat to samé. Nejde o kopírování zdrojového kódu ale o kopírování idejí. A tomu se dá zabránit jediným způsobem - nezveřejňovat je.
CB8 jen *.eng
CB9 je možná stáhnout aktualizaci www.fritzserver.org/updates/c9.iup do jejího adresáře a tam spustit soubor IUPgrade.exe - potom by měly fungovat i uci.
Mám dotaz mimo téma, ale snad není mimo mísu... Poradíte mi někdo, jak v Chessbase 8 nebo 9 zprovozním engine rybky? Jde to? Nebo tam běží jen motory s příponou .eng?
Re Pepa1 - co se knihovny týká, určitě by neškodila podpora binárních (z Polyglota) - používal je Fruit, Toga, nyní Stockfish ... Výhodou je, že se docela dobře vytváří i ladí, prohlížet se dají ve SCIDu a dají se použít s motorem ve všech různých rozhraních. Pokud by Váš motor byl někdy alespoň trochu dobrý, určitě by se našlo hned několik nadšenců, kteří by vytvořili variantu třeba jen pro něj. Ale to chce nějaký čas, kvůli otestování, v jakých zahájeních se motoru daří více a v jakých méně. Pro fázi ladění bych doporučoval nějakou kratší knihovnu, ať se motor snaží především vlastní silou. Já mám nejkratší s maximální hloubkou 30 půltahů, což je možná až moc, ale ... asi by se dal k nastavení motoru UCI přidat vedle parametru vlastní kniha -a/n i maximální počet tahů z vlastní knihovny (pro *.ctg se to musí nastavit v rozhraní, motor s tím nemá nic společného).
Stránka mých knihoven je www.chesspraga.cz/spikebook.htm
2EmilV
Jaký by byl problém po letech publikovat zdroje R1, aby všichni ti Cozziové ztichli
a abych si vylepšil svou nepříliš dobrou pověst? Asi byl...
Jiste vite, ze nikdo nikdy z komercni sfery neuverejnil sve zdrojove kody, at byly jakkoliv stare a bezcenne. Chtit to vynucovat silou po Rajlichovi je blaznovstvi.
Druhá část vaší odpovědi (spíš neodpovědi) mi silně připomíná právě Vašíka Rajlicha.
Je tu maly rozdil - ja nemam zapotrebi ani duvod nikomu nic dokazovat - podelila jsem se o informaci z vlastni zkusenosti. Jak s ni nalozite (muze byt pro Vas zcela bezcenna) je starost Vase a pripadne dalsich ctenaru. Nevim co by se melo na Vasem pristupu zmenit, pokud bych Vam tady nahodila nejake pozice - necekam oooooch, ani aaaaach, ta Rybka je dokonala.
Musíte mi věřit, protože jsem to napsala Já, Alice.
PS - to co prave prohral Hiarcs na TCEC s Juniorem je ostudne. Prohral to tah 123.Kd3 pricemz jde o typicky bug okolo pravdila 50ti tahu (engine uz nepredpoklada, ze se pozice stih ne do 50teho tahu zmenit). podobne se chova(la) i Rybka a sam Rajlich kdysi komentoval freestylovou partii, kdy na to sazel (s kvalitou mene cekal, az Rybka odevzda pesce)
2Alice
Ano, odpověď je NE. Nemám důvodu ty partie analyzovat. Je tam spousta balastu, zatímco ve studiích se člověk může zabývat jen zajímavými momenty.
Druhá část vaší odpovědi (spíš neodpovědi) mi silně připomíná právě Vašíka Rajlicha.
Fruit jsem neklonoval, ale zdroje neukážu.
Strelka (včetně jejích zdrojů) je stoprocentním klonem Rybky, ale zdroje neukážu.
Ippo (včetně zdrojů) je ukradená R3, ale zdroje neukážu.
Presumpce viny nebo neviny se přece používá tak, jak se mi to zrovna hodí.
Proč? Protože jsem to řekl Já, Velký VR.
Jaký by byl problém po letech publikovat zdroje R1, aby všichni ti Cozziové ztichli
a abych si vylepšil svou nepříliš dobrou pověst? Asi byl...
Porovnejte to filozofii:
Rybka je lepší, ale pozice neukážu.
Musíte mi věřit, protože jsem to napsala Já, Alice.
Snad proto mi VR moc nesedí a snad se to trochu přenáší i na Rybku.
Ale na studie je opravdu nepoužitelná i kdyby autorem byl Mirek Dušín.
Jsem rád, že jsme se trochu pohádali. Zainteresovaní snad konečně opustí teorii,
že Alice=EmilV (podle žákyně Alice Vlasákové, která hraje v Ústí).
Emilv
Jestli myslíte "Uz jste zkousel s Houdinim analyzovat nejakou partii?" tak na tu jsem přece odpověděl ještě dřív, než byla položena.
Odpověď je NE?
Jestli jsou všechny vaše ukázky stejné povahy jako ta Grunfeldovka
Nejsem sberatelka bugovych (a ani jinych samostatnych) pozici a v prispevku 21:58:01 jsem psala o ostudnych chybach v Rybce (Vase priklady). Zjevne Vasika dane chovani v noci nebudi, kdyz to za 6 let neopravil - a nemyslim si, ze ma pravdu. Pozice ktere jsem zminovala nejsou typu 1vterina a mam reseni - myslim ze mam jeste dostatecnou uroven abych rozeznala, kdy jde o chybu v enginu a kdy proste neni schopen najit diky komplikovanosti spravnou cestu.
Vasi posledni vetu s nadsazkou poupravim:
Při vší úctě k vašim znalostem musíte pochopit, že Rybka je inteligentnější než Houdini, protože jsem to zjistila analýzou korespondenčních partií. Ale neprozradím ani moje jméno (sílu) ani ty pozice. Do korektní internetove diskuze patří.
Ani nevidim nic spatneho nebo nemoralni na tom, ze Houdiniho pouzivate a jste s nim spokojen - cim drive vyrostla Rajlichovi konkurence tim spis ma trh se sachovymi programy sanci na dalsi vyvoj.
Mmch mi unika, proc nekdo, kdo objektivne desitky let informuje o pocitacovem sachu si nesedl s Rajlichem do oka.
2Alice
Jestli myslíte "Uz jste zkousel s Houdinim analyzovat nejakou partii?" tak na tu jsem přece odpověděl ještě dřív, než byla položena.
Jestli jsou všechny vaše ukázky stejné povahy jako ta Grunfeldovka, tak to není nic průkazného. Může to také znamenat, že Houdini rozumí šachu lép než vy.
Abyste to vyvrátila (vyvrátil?) musela (musel?) byste odhalit svou totožnost a tím rozumná diskuze končí.
Při vší úctě k vašim znalostem musíte pochopit, že argument Rybka je inteligentnější než Houdini, protože jsem to zjistila analýzou korespondenčních partií, ale neprozradím ani moje jméno (sílu) ani ty pozice, do korektní diskuze nepatří.
2Alice
JEDEN řádek zkopírovaný je klon? Je vidět, ře neprogramujete.
To ze se dnes pouzivaji standardni rutiny a procedury je zrejme - nikdo neprogramuje vsechno od nuly. Jestlize to ale vezmete v principu, co je brano za klon, tak jakekoliv kopirovani kodu z programu A do programu B je klonovani a rozdilne hodnoceni ruznych enginu na stejne pozici s tim nema nic spolecneho.
Vy nemáte vhodný protipříklad, jen obecný subjektivní pocit.
Ne. Mam vhodne ukazky ale neminim se s nimi zde delit.
Nedostala jsem odpovedi na dalsi otazky.
2pepa
Rikala jsem, ze je to zakerna otazka ohledne ELA.Pocitacove ELO je dost gumova vec a diky tomu, ze zde neni korelace s lidskymi tak vsechny ELO listiny /CEGT, SSDF.../ jsou lehce problematicke. (presne vypocty s presnymi cisly davaji v absolutni hodnote zvlastni cisla)
2 Michal Dragoun
Pozici 3 jsem zvolil kvůli "žánrové pestrosti" ukázek.
Vůbec by mi nevadilo, kdyby herní motor neviděl mat v 6, ale ukázal jinou výhru s vysokým skórem. Vadí, že Rybka příliš dlouho (desítky minut) detekuje remízu.
Jinak ještě klasická ukázka mizerných věžovek Rybky.
R7/P5k1/8/r7/4p1K1/4P3/8/8 w - - 0 1
remíza 1.Kf4 Va4 2.Ke5 Kh7 3.Kd5 Kg7
Rybka 3.89
Houdini 1.98 (pravda, ani to není žádná sláva, nejlepší je překvapivě Junior pod 1.0)
A zcela fatální bug R4, ukazující, jak se VR snažil horkou jehlou implementovat falešného střelce
k5b1/1p6/p7/P3B3/1KP5/8/8/8 b - - 0 1
Rybka 4 1...Sxc4??
2plzenak
Ano, motory Komodo a Stockfish hlásí 0.0, takže to algoritmizovatelné už dneska je.
Přesně to (včetně jmen těch dvou motorů) jsem psal v mém počítačovém sloupku v EG182.
2Alice
JEDEN řádek zkopírovaný je klon? Je vidět, ře neprogramujete.
Pojem klon je velmi vágní, o tom byl minulý článek.
Neříkám, že Houdini není klon, ale dokazuju, že (1) je vyvíjen a že (2) v řadě nestandardních pozic má vyšší inteligenci než Rybka.
Vy nemáte vhodný protipříklad, jen obecný subjektivní pocit.
Re Bond: Studie nejsou nic paradoxního, jen je v nich možná cesta k výhře/remíze jen jedna (nebo měla by být). Omezená použitelnost šachových programů pro jejich řešení je proto podle mne spíš odrazem vyladění oceňování pozice na jinou fázi partie (ty běžné problémy se odehrávají v pozicích s více kameny + problém propojení propočtu a hodnocením/najitím pozice v tablebasích ?).
Na řešení úloh jsou samozřejmě lepší specializované programy, pozici 3 od EmilaV řeší pod 1 sekundu.
@EmilV: Ta první pozice je zajímavá. Houdini, Rybka, IvanHoe, Fire hlásí různě velkou, ale vždy značnou výhodu bílého a trvají na tom, zato StockFish a Komodo rychle spadnou s hodnocením na nulu a hlásí mrtvou remízu
to Pavel: Zatím oceňuju i všechny uzly uvnitř stromu, protože to používám k rozhodování uvnitř uzlu, ale chtěl bych oceňovat méně, respektive inteligentněji, to určitě. Těžko posuzovat, zda 10% procent je moc nebo málo, to je hrozně relativní, třeba já využívám v generátoru attack tables, jejichž udržování stojí cca 5-10% času. Bez nich by generátor nešel, takže vlastně jistým způsobem část práce, kterou by jinak generátor musel dělat, je vykonána mimo něj. Ještě uvažte, že generátor se nevolá zdaleka ve všech listech stromu prohledávání, kdežto oceňování ano. Zatím je program private, ale myslím, že pokud se mi ho podaří vylepšit tak, aby porážel Pseudo, tak bych ho snad mohl zveřejnit. Kdybyste třeba pak měl náhodou zájem a chuť poradit mi s nějakou knihovnou zahájení, tak bych se určitě nezlobil, v tom se vůbec nevyznám.
re Pepa1 - já jsem samozřejmě nemyslel, abyste zpomaloval svůj generátor tahů, nýbrž že byste se měl zamyslet nad tím, zda program neprohání oceňovací funkcí zbytečně mnoho pozic - čím jiným by mohl ztrácet tolik času? Jinak mi 10% pro generátor připadá málo. Co je to vůbec za program, lze někde stáhnout, nebo je to jen private?
to Alice: S těmi 70 Elo body se tak nějak operuje třeba v diskusích na CCC. Teď zrovna jsem testoval svůj program rychlými partiemi se silnějšími enginami a aby se síly vyrovnaly, nastavoval jsem soupeřům různý časový handicap. Jak jsem tak měnil hodnoty, tak můžu říct, že zhruba baj voko změna poměru síly v závislosti na čase odpovídala. Bylo to v oblasti hledání kolem těch 10 půltahů. Samozřejmě, že tahle lineární závislost je jen empirická a orientační a nemusí platit při větších hloubkách hledání (tzv. diminishing returns), koeficient může být různý pro různé programy atd. Koneckonců jestli to chcete vědět přesně, tak si to změřte, to je snadná rada, v tomhle vám žádné listiny nepomůžou.
2pepa1
Polozim vam velmi zakernou otazku: pisete, ze : Je empiricky vyzkoušeno, že zdvojnásobení rychlosti programu dává nárůst síly asi 70 Elo
- jakych 70 ELO? Pred mnoha lety, kdyz zde byla prakticky jen jedna listina (SSDF), ke vsemu vse bezelo na single strojich, tak se dvojnasobek dal celkem dobre spocitat. Ale dnes..?:
- hromada ruznych listin ktere nelze mezi sebou porovnavat (a rozdily jsou casto velke)
- x-nasobky se dnes velmi tezko meri pri MP strojich a enginech..?!
2EmilV
Prijde mi zvlastni mluvit o neklonu ve chvili kdy oba vime, ze staci mit zkopirovany JEDEN radek kodu a uz je to klon.
Stejne tak oba vime, ze v pripade Ippo family jde spise o kradez technologie pripadne know how nez o prime kopirovani kodu.
Samozrejme ze jsem grunfeldku vzala jako vec, co je nasnade (a kde se mohu spolehnout na pamet kde kdo co napsal).
Uz jste zkousel s Houdinim analyzovat nejakou partii? Myslim tim korespondencni (treba v ramci treninku na nejakem offline serveru) nebo podobnou nebo jsou vase zkusenosti ziskane pouze z analyz studii (ty jdou zase mimo mne)? [napr. jeste R3 hodnotila K+p:K s hodnocenim kolem +3]. Rybka jako engine od prvnich dni ma desitky bugu a nedodelku, ktere jsou pro ostudu, presto to jeste donedavna konkurence v partiich prakticky neumela vyuzit.
Re Pepa1 - máte pravdu, těch 20 ELO na instrukci je moc. Ale na druhou stranu, pokud u vašeho programu zabere generátor jen 10% času, není napsaný ten program špatně? Neoceňuje nějak mnoho?
No to já nevím, jestli špatně. Že bych ho vylepšil přidáním nějakého redundantního kódu do generátoru tahů?
Já až do teď myslel, že čím méně času program stráví takovou mechanickou činností jako generování tahů, tím lépe. A generátor mám legální (tedy generuje jen legální tahy) a ještě mi i indikuje, jestli tah dává šach. Skutečně netuším, čím smysluplným ho ještě více zpomalit.
No ono jde o to, že v praktické partii není nejsilnější motor, který nejlépe řeší studiové (tedy paradoxní) úlohy, ale motor, který prostě rychleji a lépe řeší běžné problémy.
Na řešení matových úloh je třeba nejlepší motor úplně bez oceňovací fce, ta by ho jen zdržovala.
2Alice
Ta divná Grunfeldka- to papouškujete Rybka team a jestli nedovedli najít průkaznější příklad...
Rybka navyšuje hodnocení z 0.36 někam na 0.50.
Houdini začíná na -0.17 a klesá na -0.08.
Pokud je to za bílé vyhrané, pak se mýlí oba, pokud je to remis, tak je blíž Houdini.
Tady je pár protipříkladů, které jsou na rozdíl od vašeho zcela jasné a dokazují,
že Houdini není plným klonem, ale že se na něm dost pilně pracuje.
8/3k4/2p5/p1P1pP2/P3P1p1/6Pp/2P4P/6K1 w - - 0 1
poziční remis
Rybka 3.76
Houdini 1.63
8/rk6/8/8/8/8/6KB/6NB w - - 0 1
teoretická výhra
Rybka 0.70
Houdini 3.09
5K2/5p2/6P1/8/8/3N4/rp5R/rk6 w - - 0 1
Rybka desítky minut skore 0.0
Houdini cca 30 sekund mat v 6 1.Kg7 fxg6 2.Kh6 g5 3.Kh5 g4 4.Kh4 g3 5.Kxg3
Na analýzu koncovek je Rybka stále víceméně nepoužitelná, i když je proti starším verzím znatelné zlepšení.
Zdroj? Priklady? Co je to koncovka?
A vyhýbání se remíze nemusí být na škodu.
Rychle zjistite, ze to je velmi vhodne, kdyz:
- hrajete strasne rychle partie, pripadne proti slabsim enginum (dekuji, ale nemam zajem)
- a absolutne nepouzitelne pri sachove praci (znamena to ze ztracite cas... a neprimo penize)
Abych predesla pripadnym podobnym dotazum ci pripominkam tak dopredu rikam ze vim a uznavam, ze Houdini ma lepsi vysledky ve vsech uvadenych tempech (od miutovych az po TCEC tempo). To je ale asi tak vsechno co mu priznam :-).
Re Pepa1 - máte pravdu, těch 20 ELO na instrukci je moc. Ale na druhou stranu, pokud u vašeho programu zabere generátor jen 10% času, není napsaný ten program špatně? Neoceňuje nějak mnoho?
Když už jsem tady, měl bych taky nějaké otázky.
@Alice
Podle vašeho názoru má tedy Houdini slabiny v hodnocení pozic s rovnovážným ale nerovnoměrným materiálem na šachovnici (tj 3 figury vs. dáma nebo dvě věže proti dámě a podobně)? Na druhou stranu bych ale řekl, že Houdini má narozdíl od Rybky daleko lepší odhad co se týče pozičních obětí materiálu - krasným příkladem je 1.partie zápasu Rybka - Houdini na TCEC (TCEC Elite Match Season 1 Game 1). Houdini postupně obětoval 3 pěšce, za které získal drtivou poziční převahu a následně obětovaný materiál zpět i s úroky. Rybka byla zjevně naprosto mimo.
Na analýzu koncovek je Rybka stále víceméně nepoužitelná, i když je proti starším verzím znatelné zlepšení. Zato Houdini zvládá orientaci v koncovkách celkem obstojně, dá se docela dobře použít i na analýzu studií, jak zde již zmínil EmilV.
A vyhýbání se remíze nemusí být na škodu. Pokud se program "zacykluje" na nějakém kolečku tahů, kdy se ohodnocení nemění a jen se přesouvají figury z místa na místo, je nepochybně výhodou, pokud program dokáže toto zacyklení rychle rozpoznat a přeskočit - tedy věnovat pozornost nikoli nejlépe hodnocenému tahu, ale tahu horšímu, jehož hodnocení může být momentálně i podstatně nižší, ale jehož použití vyvede comp z oné slepé uličky.
Čili když to srovnám, viděl bych plus spíš na straně Houdiniho.
Pardon, zapomněl jsem přehodit okna
U Zbyňka 50...Vf2?? Že by udělal takový blundr?
to Alice: Jak psal Bond, je třeba rozlišovat změny, které jsou jen optimalisací programu z hlediska rychlosti, ale nemění chování (tj. strom hledání). Dejme tomu, že bych je testoval v partiích s pevnou hloubkou hledání a porovnával rychlost (spotřebovaný čas). Ale pak bych nehodnotil výsledek partie, respektive bych naopak pečlivě hlídal, že se nezměnil, ba co víc, sledoval bych i že počet uzlů je stejný. Protože pokud by nebyl, pak jsem změnil chování programu a to jsem nechtěl. Něco jiného jsou změny vedoucí k jinému stromu prohledávání. Tam už budu rozhodně programu "fandit", ať udělá lepší výsledek než posledně.
Pokud jde o ty půltahu Rybky, myslím že by tam docela sedělo 4-5 indikovaných, tj. 6-8 reálných. Ale nevím, to by se muselo vyzkoušet.
2EmilV
Houdini:
- spatne hodnoti 3figury vs dama:
[1. d4 Nf6 2. c4 g6 3. Nc3 d5 4. Nf3 Bg7 5. Qb3 dxc4 6. Qxc4 O-O 7. e4 b6 8. e5
Ba6 9. exf6 Bxc4 10. fxg7 Kxg7 11. Bxc4 . Myslim ze jsem nekde cetla, ze Kaufman na teto pozici demonstruje, z jakych verzi Rybky prisly Ipolitu/Fire/Houdini
- analyzuji jednu konkretni pozici, ktera je vyhodnejsi pro jednu stranu (opet netypicky material na sachovnici) - Houdini neni schopen najit spravna pokracovani v prubehu analyz, dokonce mnohem pomaleji roste hodnoceni za silnejsi stranu. Zkousela jsem Crittera, ten ma k Rybe v teto pozici blize (vic casu na test Cr1.0 jsem nemela). Jedna se o typ pozice, kde (podle me) Rybka exceluje diky /inteligentni/ selektivite - a to je to co si myslim. ze je pridana hodnota Rybky.
- problem s detekci remizy, Houdini se ji tvrdosijne vyhyba (i za slabsi stranu). Pry existuje jeden z parametru, ktery toto chovani ovlivnuje, nezkousela jsem
Tak to se hodně pletete. Jakákoliv změna generátoru se projeví hodně, funkce je volána v řádech mnoha miliónů/s. I ušetření jediné instrukce může vynést nějakých 20-30 bodů. Potíž je v tom, že zde je obvykle pro jednotlivé způsoby prezentace šachovnice "vše vynalezeno" a těžko to někdo vylepší, spíš to zkazí.
Nepletu. Ani trochu. Počítejte se mnou. Generátor tahů spolyká například v mém programu v průměru tak 10% času. Předpokládejme ale třeba, že máme posici, kde není třeba moc oceňovat (dejme tomu velká materiální nerovnováha, takže vystačím víceméně s oceněním materiálu). Tedy řekněme že to bude 20%. Teď si představme, že ten generátor bude nekonečně rychlý, tj. dodá tahy okamžitě. Celý program tím poběží o 25% rychleji. Je empiricky vyzkoušeno, že zdvojnásobení rychlosti programu dává nárůst síly asi 70 Elo. Takže hypotetický nekonečně rychlý generátor mi dá tak těch 20 Elo bodů. Ubrání jedné instrukce opravdu nepoznáte, věřte mi, mám to změřené a vyzkoušené. Paradoxně někdy naopak přidání kódu vede ke zrychlení programu.
2Alice
Je to sice už úplně mimo, ale máte k dispozici nějakou sbírku pozic, kde je Rybka lepší než Houdini?
Já analyzuju prakticky výhradně jen studie, které nejsou pro praktickou hru moc směrodatné, ale tam se mi to jeví spíš obráceně.
Rybka je prakticky nepoužitelná (chybí slabá proměna, koncovky horší než Hiarcs nebo Shredder), ale Houdinimu začínám docela přicházet na chuť.
Rychlost generátoru bych já, pokd bych byl autor programu, testoval počty uzlů/s v několika desítkách pozic. Jako autor mám přehled, co všechno do toho program počítá, či nepočítá a jestli jsem nedělal nějaké další změny, je to měření naprosto přesné.
Re pepa1: ... Navíc změna rychlosti generátoru bude mít na výkon naprosto zanedbatelný vliv v řádu jednotek Elo.
Tak to se hodně pletete. Jakákoliv změna generátoru se projeví hodně, funkce je volána v řádech mnoha miliónů/s. I ušetření jediné instrukce může vynést nějakých 20-30 bodů. Potíž je v tom, že zde je obvykle pro jednotlivé způsoby prezentace šachovnice "vše vynalezeno" a těžko to někdo vylepší, spíš to zkazí.
Re Alice: Diep myslím komerční kdysi dávno byl. Z prodejny gambitsoft.com (už nefunguje) se daly v půlce 90.let stáhnout free verze 1.2.3 (nebo tak nějak) a 1.40.7 a k prodeji byla nějaká verze okolo 1.70, nepamatuji si již za kolik. Uvedenou stránku mám na jedné ze svých nejstarších stále v odkazech, ale už neexistuje. Byla to samozřejmě verze pro DOS.
V zásadě existují 2 druhy programových optimalizací - buď program udělá jednu a tu samou operaci rychleji - tedy např. generátor tahů, jehož výstup je dopředu dán, nebo se optimalizuje přesnost - tj aby ve stejném čase došel algoritmus k lepšímu výsledku (např. oceňovací fce). Pro druhý případ je nutno hrát modelové partie, pro první je lepší měřit čas pro modelové (stejné) pozice.
2. pepa1/EmilV
- generator tahu je jedna z veci co jsem popisovala (ani jsem nepsala ze uplne stezejni)
- asi se shodneme, ze v zapase enginu kratsi cas+"dobry vysledek" = lepsi engine neboli:
- pokud maji oba (v zasade identicke, rozdilne jen parametry, pro zjednoduseni dale uvazujme single) enginy nastavenou stejnou hloubku tak mohou teto hloubky dosahovat v ruznych (az diameteralne rozdilnych) casech - z tech 10sekund co ma trvat partie vidim rozdil, jestli nastaveni A pouzilo 6s a nastaveni B 4s a vysledek je 50%.
- Rybka preci nekonci tim, ze ma "znalosti" ktere ji umoznuji vyhrat miliony HB partii - to by pri pomalejsim tempu rychle skoncila
- hloubka 4-5pultahu uvadena AC ma jeste ten hacek, ze Rybka sama o sobe uvadi hodnotu o 2-3 mene takze kterych 5 pultahu to ma byt...(?!) - pri 10polotazich (R1-R1.1) trva tah nekde kolem 2-5vterin (videla jsem i 14!), to jen tak statisice partii nesehrajete
Přesnější analogie: když budu ladit výkon motoru v autě, tak asi výsledky nebudu zkoumat tak, že vždycky pošlu manželku s autem do Bratislavy a změřím, za jak dlouho se vrátí. Já bych spíš věřil třeba grafu z motorové brzdy .
Pořád mi to připadá asi jako měřit spotřebu auta centimetrem. Když něco testuju, musím podle mě přesně vědět, co testuju, a odstínit veškeré další vlivy. Předpokládejme tedy, že oba programy (testovaný i sparingpartner) hrají v obou sériích díky pevné hloubce hledání úplně stejné partie. Pak můžu teoreticky sečíst spotřebovaný čas testované enginy a porovnat. Ale proč to dělat takhle složitě? Pokud však budou výsledky v sériích odlišné (tedy hraju jiné partie), nemůžu je ke srovnání rychlosti použít, protože nevím, co vlastně měřím. Navíc změna rychlosti generátoru bude mít na výkon naprosto zanedbatelný vliv v řádu jednotek Elo.
2pepa1: cas spotrebovany na partii-pokud striktne nastavim hloubu, tak verze engine s mene spotrebovanym casem a lepsimi vysledky bude vzdycky lepsi.
Ja sice chapu, ze kdyz odrezu v rootovske pozici co nejvice nesmyslu, tak ve velkych hloubkach musim pocitat uzsi strom (to by opodstatnovalo Vasikovo vysvetleni proc Rybka ne vzdy najde vyhravajici tah a celkem casto dochazi k situaci, ze Rybka nektery tah proste ignoruje) a hyperbulet muzeme byt jeden ze zakladnich kamenu (a celkem by to sedelo na Ipolity) ale Rybka ma dalsi znalosti, kterymi se odlisuje - je o mnoho "inteligentnejsi" nez Houdini a spol
2 Bond: "nejchytrejsi" engine uz existuje - jedna se o Diepa holadnskeho silne kontroverzniho autora Diepevenna (myslim ze ma FM) - neustale tvrdi,ze ma nejvice zabudovanych znalosti, ale hraje pod psa (resp. za poslednich 10 let nic nepredvedl a to mel kdysi tesne pred komercnim vydanim - nakonec byl vydan Zappa)
to Alice: Ale JAK bych to otestoval? Podle mě, když budu chtít testovat rychlost generátoru, tak ji potřebuju s něčím srovnat. Tedy s předchozí versí třeba. Takže nevidím jiné řešení než spustit program ve stejných posicích, kde bude generovat STEJNÝ počet STEJNÝCH tahů. Přesně k tomu zavedl Bob Hyatt funkci perft (PERFormance Test). To pak můžu srovnat. Nechápu, jak bych to měřil pomocí sehrání hromady hyperbullet partií. A myslím, že i hardware 2005 dovoloval dostat se v nich tak na 6-8 půltahů, jak psal pan Vlasák. A tam už má selektivita prostor se projevit.
to Bond: S tím zcela souhlasím, testovat je třeba veškeré změny, které mění strom prohledávání.
Re Bond:
Lovci mamutů znají číslovky do čtyř, po nich následuje mnoho. Mám pocit, že pod tuto kategorii patří tvé "tisíce exe souborů" - takovou výpočetní kapacitu k otestování tolika verzí nemá určitě ani Vašík. Věřil bych něco přes deset maximálně, napřed se nějakým menším "turnájkem" eliminují nejslabší a pak se stále přitvrzuje - viz systém mých posledních superengines, na TCEC nyní pro 3.sezónu dost podobný navrhuje Thoresen.
Každá změna, kterou do vyladěného enginu zavedete, ho "rozhodí" - sníží rychlost určitých fcí, nabourá návaznost. Pokud ladil nějaká vylepšení pomocí bullet partií, tak asi tím způsobem, že si připraví X vylepšení a potom začně testovat engine na různé kombinace těchto vylepšení. Takže musí sestavit automatický kompilátor, který vygeneruje tisíce exe souborů a ty je teprve třeba mezi sebou otestovat. Jenom úpravou parametrů jednotlivých fcí to nebude.
2 pepa: Tak generátor tahů testovat určitě netřeba, zato oceňování je snad dost podstatná věc. A na dnešním hardware není problém se ani v těchto superkrátkých partiích pohybovat v hloubkách kolem 10 půltahů, a při tom se už selektivita zatraceně projeví.
Ja ale nepsala, ze generator tahu se bude testovat proto, jestli funguje, ale jak je rychly (sleduji rychlost, ne funkcnost).
Ke vsemu v diskusi se porad preskakuje od ladeni Rybky 1 az po Rybky 4, pricemz jaky HW byl bezne dostupny v r. 2005 ? tipovala bych tak na slusne stanici 2 jadra a v serverech 4. (tehdy testovani moc zabava asi nebyla)
2nazor
C# asi není pro psaní motoru moc vhodný kvůli silné orientaci na technologie Microsoftu. Kdyby se dílo náhodou podařilo, bude chtít autor jádro motoru portovat na Maca, Linux, Android a už je v problémech. A taky samozřejmě není odkud opisovat :).
Bety R4
Nepohybuju se v blízkosti VR, takže mohu posloužit jen čistým pohledem zvenku. Ale přesto se nemohu ubránit dojmu, že celá situace je mi naprosto a důvěrně známá. Přesně tak se totiž chovají „opravdoví profesionální programátoři“ i v jiných oborech. Většinu vyhrazeného času se věnují všemu možnému, jen ne programování (rodině a snad i clusteru). Aby vůbec něco vzniklo, musí si stanovit termín, který se několikrát odsune. A nakonec se to musí dohnat tak, že se něco „zbastlí“ po nocích na poslední chvíli. Podle toho pak také vypadá výsledek. Možná, že nebyl čas ani na ten hyperbullet.
Stále nevidím, jaký smysl by mělo hrát desetitisíce partií kvůli testování správnosti jednotlivých funkcí programu nebo hledání nějakých chyb. Jestli nemám chybu v nějakých funkcích s jednoznačným výstupem (typu generátor tahů atp.) otestuji sérií kontrolních posic a srovnáním výstupu (počet uzlů) nebo funkcí perft či jiným speciálním testem dané komponenty. Ovšem nevím, proč by do toho někdo šahal, pokud mu to funguje (leda že by se chtěl zbavit okopírovaného kódu ). Ale vše ostatní už já zahrnuji do pojmu "ladění programu". A jedině tam má to velké množství partií význam - to je věc statistiky. Prostě hraje to líp/hraje to hůř? Nic víc z těch partií nepoznám, pokud bych je ovšem nepodroboval nějaké speciální další automatisované analýze.
Jak kdo - po zkušenostech s tempem Vašíkových aktualizací bych tipoval spíš buď ty stěrače stírají, anebo rychlé záplatování nalezených chyb. Na skutečný test, o jakém píše A.C. by v žádném případě neměl čas.
Hm, a jak se testují ty jednotlivé funkce, nebo které jsou jsou základní? Moc tomu nerozumím. Něco jako "stěrače stírají", "světla svítí" ...? Nějak si to neumím představit. Mám takový nejasný pocit, že hraním partií vždy testuji program jako CELEK.
Re EmilV:
A.C. ovšem tvrdí, že takto vznikla už Rybka 1. Zatímco my jsme se posunuli k ladění čtyřky ... Teorii ohledně verze čtyři podle mě vyvrací to, že ty bety šly znovu velmi rychle za sebou. Já stále trvám na tom, že pokud může mít A.C. v něčem pravdu, pak popisuje především vyladění verze 3. Spíš bych věřil Alici, že Vašík prostě jen testoval jednotlivé funkce. Nevím, zda Rybka 5 bude bomba. Ale tipuji výraznější zlepšení, než mezi verzemi 1 : 2 i 3 : 4. Už jen pro tu možnost zapojit do testování další soupeře s volným kódem - pro Vašíka by neměl být problém si je upravit.
Teď si zahraju trochu na chytrýho. Tohle jsem tu napsal v diskusi pod článkem o Rybce v létě 2008:
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.
Takže pro mě žádné překvapení ...
2Alice Na generátor tahů a základní funkce nepotřebuju hyperbullet testing.
Pokud je ta teorie správná - a mně se líbí čím dál víc - tak právě
hyperbullet otestuje i selektivitu a finesy ve vyhledávání a odsekávání.
Jen se to celé neodehraje v hloubce >12, ale 6-8.
Samozřejmě vzniká při tom velké procento pozic, které prostě vyžadují dopočítat
a malá hloubka je pro ně zcela irelevantní. Jenže při sehrání statisíců partií
se tyto irelevantnosti za obě strany statisticky vyruší.
A to co zbyde budou právě poziční záležitosti, které nakonec
o úspěšnosti změn zavedených do programu rozhodnou správně.
v hyperbulet jste schopni otestovat generator tahu a ZAKLADNI (ocenovaci a dalsi) funkce, zato nejste schopni otestovat dalsi pridane znalosti, selektivitu (a pokrocile orezavani stromu)
Tak generátor tahů testovat určitě netřeba, zato oceňování je snad dost podstatná věc. A na dnešním hardware není problém se ani v těchto superkrátkých partiích pohybovat v hloubkách kolem 10 půltahů, a při tom se už selektivita zatraceně projeví.
EmilV: Děkuji, ale všechno jsou udělány v C++, v C# žádný lepší asi není.
3. Objev, že hyperbullet testing je dostatečně relevantní, je cesta ven z tohoto bludiště.
Opravdu to je klic? Vratim se k tomu co jsem psala - v hyperbulet jste schopni otestovat generator tahu a ZAKLADNI (ocenovaci a dalsi) funkce, zato nejste schopni otestovat dalsi pridane znalosti, selektivitu (a pokrocile orezavani stromu). Nezapomente ze AC komentuje R1 a konec roku 2005 (o hyperbulet obdobi trochu pozdejsi)
Beta verze Rybky 4 vykazovaly značné výkyvy a některé byly dokonce slabší než trojka. Těžko říci, zda to celou teorii vyvrací nebo spíš potvrzuje.
To nema s vyse uvedenou teorii vubec nic spolecneho - Vasik potreboval behem testovani R4 bety hlavne zakryt jak funguje kvuli pripadnemu reversnimu inzenyrstvi a zaroven odzkouset ze jsou veskere funkce funkcni.
Nevím, jestli to má smysl, ale zkusím vysvětlit tu teorii ještě jednou co nejjednodušeji.
1. Získáte velmi pokročilý a slušně vyladěný motor. Třeba Fruita, kterého si upravíte do bitboardové podoby. Mimochodem, ani to není rozhodně primitivní záležitost, viz Fritz, Shredder, Hiarcs...
2. Chtěli byste ho dál vylepšovat. Jakkoli, nejen oceňovací funkcí, ale i tříděním tahů, změnami v algoritmech hledání, zaváděním znalostí, novými heuristikami; prostě máte do začátků mnoho nápadů.
Jenže narazíte na známý problém, který zmiňuje A. C.. Protože motor už někdo vyladil, tak změna, která vylepší chování v nějaké pozici, může zhoršit chování v deseti jiných. To ale nezjistíte hned, pokud testujete pomalými partiemi, jak se to dělalo za klasických dob. Negativní důsledky se podle zákona schválnosti projeví až na dalším turnaji.
Tento jev, kdy programy delší dobu jakoby přešlapují, stagnují nebo se dokonce zhoršují, je známý z historie PC šachu a potrefil skoro každého autora.
3. Objev, že hyperbullet testing je dostatečně relevantní, je cesta ven z tohoto bludiště. Uděláte změnu a za pár dní – dokud ještě držíte v hlavě souvislosti – máte jasný výsledek, jestli to programu pomohlo nebo ne. I kdyby třeba ne, tak i z toho pochytíte i správné trendy.
Aby vám mohl konkurovat někdo, kdo na výsledek každého zásahu čeká měsíce, to musel být opravdu génius a proto všechna čest A. C..
Beta verze Rybky 4 vykazovaly značné výkyvy a některé byly dokonce slabší než trojka. Těžko říci, zda to celou teorii vyvrací nebo spíš potvrzuje. Potvrzuje to rozhodně fakt, že v R4 není žádné další principiální vylepšení a autor jen hledal nějaké vylepšené vyladění, což při kvalitách trojky bylo velmi obtížné.
Znám jednoho velkého odpůrce Vašíka, který tvrdí, že pětka bude bomba. Já si to moc nemyslím.
no holt si budeme muset počkat až to někdo objeví v čem přesně se liší kód ippolita od od programů byli na vrcholu v době před rybka2 ... zda je to nějaká rybovina typu rybploutvička co uteklo o třídu tenkrát všem ostatním :)
Ja bych si "trik" rybky predstavoval asi takto (obecny pohled programatora, nezatizeny detaily jak co konkretne v enginu vypada):
1) Pokud je splneno, ze engine, ktery hraje lepe "hyperbullet" hraje s nejakou pravdepodobnosti (predpokladam, ze by to melo byt vice nez 50%) lepe i vazne partie tak pujde ladit engine na techto partiich.
2) V enginu bude mnozina parametru a to nejen vyhodnocovaci funkce, ale i jine parametry (pocet pruchodu cyklem 1234, vaha podminky abcd ... mozne je cokoliv)
3) Provede se velke mnozstvi (treba miliony) partii enginu s ruznym nastavenim a nejakym zpusobem se ty parametry budou menit ... na to existuji postupy, nebo lze vymyslet vlastni z obecneho pohledu to neni dulezite, pokud to splnuje bod 4)
4) Pokud se zvoli zpusob zmeny parametru, seznam parametru a pripadne delka partie tak aby se enginy zepsovaly (staci o par elo za cyklus), lze tuto metodou zvysovat vykon motoru ... pravdepodobne az do situace, kdy nastavovane parametry v enginu poskytuji optimalni vykon. Za tuto hranici je nutno prijit s necim novym.
P.S. Jak funguje sachovy engine nevim, proto muze byt ma predstava zcestna, na druhou stranu si myslim, ze vim celkem dost o programovani (no to muze byt vlastne take zcestna predstava :))
Re všichni : hmm tak teda nějak pořád nevím v čem byl ten trik rybky
Re koršach : se mi líbí : "V době bez počítačů sice partie nebyly tak dokonalé, ale vynikaly krásou tvůrčího přístupu. " - to mi připomíná matrix a prohlášení o tom že lidi musí mít svět nedokonalý až bídný, páč když se jim odstraní všechny hrubé nedostatky tak je mimo jejich rozlišovací schopnost to chápat a vše ji připadá stejné ... to vážně už není co objevovat, nad čím dělat analýzy a čekat až si soupeř vleze do té varianty, žádné jemnější možnosti typu připravím si 1.e4 f6 2.d4 e5 3.dxe5 Jc6 (berte prosím jen jako drastický extrémní případ vybočení ze zaběhlých cest) a protože mám tohle připravované půl roku tak soupeř to za pár dnů neobjeví jak to správně zahrát ?
2nazor: Zdrojáků je plno, stačí trochu sledovat obor a číst.
Z těch nejsilnějších je to StockFish a IvanHoe, stačí stáhnout motor a je tam v zipu adresář src.
Plus moře klasiky, Crafty, Fruit/Toga, Glarung, GNUChess.
Jako perličku mám ve sbírce Critter 0.42 z doby, kdy byl ještě v Pascalu (Delphi).
2Alice: Ne tak docela. V klasických dobách mohl koršachista poznat, jestli hraje s Fritzem, Shredderem, Juniorem nebo Hiarcsem a tomu přizpůsobit výběr plánu a pozice.
Dnes už to asi moc nejde a z člověka je klasický "Postmaster".
Jinak text jsem publikoval hlavně proto, jak pěkně (nepěkně z hlediska koršachu?) mluví o Critterovi.
Nemáte nějáký zdrojáky na šachy v C#?
2Vida - on se i Critter trochu otrel o Ippo - bez vycitek.
Bond opet vtipkuje - Ippo nebyl zverejnen proto, aby se na nem nekdo naucil, ale aby se uskodilo Vasikovi
2EmilV - clanek z rustiny na www.vlasak.cz je zajimavy, ale neprinasi nic prulomoveho - z toho co jsem pochytila, tak ze je zapotrebi k uspechu v korsachu vykony HW, posledni verze SW a vyhraje ten, kdo investuje vic casu a ma vic databazi a zkusenosti - v podstate se to nezmenilo od doby, kdy se PC zacala k analyzam pouzivat..
Re P.H.: Ale to neodpovádá na moji otázku - proč takový kód zveřejňoval, nutil ho snad někdo?
Re Richard Vida: Díky, konečně nějaký skutečný odborník, k této metodě není takový problém sehnat i nějaké vysvětlení třeba na talkchess.
Re Bond: Svatá prostoto, nikdo přece nemá žádnout povinnost komentovat zdrojový kód. To se dělá buď z výukových důvodů, nebo pro to, aby se v tom sám autor po letech vyznal.
Zrovna včera mi napadlo zkusit předělat minimax na 8x8 s offset generátorem všech tahů podle polí - nějaká tabulka o 6 či 7 x64 řádcích (pro každou figuru a pole jeden), jestli by to náhodou nebylo rychlejší, nebo alespoň srovnatelně rychlé - pak už by to pro oceňování měla prezentace 8x8 jen výhody. Standartní Minimax totiž používá prezentaci 10x12 kvůli generátoru (okraje tvoří zvláštní nebratelné virtuální figury, které nelze brát ani s nimi hýbat), ale pohyby části figur stejně načítá z tabulky - proč to tedy nenačítat všechno a pak jen prohnat kontrolou na legalitu? Bitboardové metodě to samozřejmě nemůže konkurovat, ale je to dobrý pokus, jak demonstrovat změny v generátoru tahů.
Tak pokud není zdrojový kód Ippolita řádně okomentován, tak potom nechápu, proč ho autor zveřejňoval.
> S tím by hrála i velká délka EXE souboru, kde by mohly být nějaké statistické tabulky.
Rybka 4 vyuziva pre generator tahov metodou "magic bitboards", co obnasa databazu asi 800 kB pre vezu, a 45kB pre strelca. Vecsina motorov si tuto databzu vytvara pri inicializacii, avsak R4 to ma priamo predpocitane v EXE subore (takze minimalne 845 kB z rybka 4.exe je ciste iba tato tabulka)
Richard
Když si vezmu zdrojáky Ippolita já, tak je za čtvrt hodiny znechuceně odložím.
Protože musím za hodinu dokončit něco jiného a další den už vůbec nebude čas.
A žádná velká motivace...
Jedna věc je prokousat se nečitelným kódem, další věc je najít něco zajímavého, pokud tam opravdu nějaký převratný trik typu null-move je, a ještě jiná věc je, aby to pak fungovalo i v jiném programu. Myslím, že to opravdu není tak jednoduché, bez ohledu na to ať už jste profesionál nebo ne.
No ona ta otázka úzce souvisí s tím co dělá těch 200 elo bodů navíc šachově ? Myslím tím, když mám lepší hardware, tak vím, že za několikanásobek času i starší počítač mi dá stejné řešení, ale pokud je tu kvalitativní skok tak je buď znalostní anebo optimalizační (chytá technika typu alfa-beta vs minimax apod). Pokud se v tom nevyznají ani lidi co se v tom pohybují je to zajímavé. Přemýšlím o tom co to vlastně znamená, ono ipoliti sou tu už přece rok že ?
Ale pokud je to skutečný zdrojový kód, tak není možné, aby v něm něco zašil, co by profesionální programátor nezmerčil..
Re SKA:
A viděls vůbec kód třeba IvanHoe? Ono to laikovi zase tolik neřekne. Mysím že i odborníkovi potrvá nějaký čas, než se v tom vůbec zorientuje, aby případně mohl cosi "vyzobat".
Re James " pokud by to byla pravda, pak je to dobrý trik, jak tlačit na autora rybky i houdiniho aby ukázali zdrojáky :) Na druhé straně čemu nerozumím : když tu máme volně přístupné zdrojáky minimálně ippolita, který je cca plus minus stejně silný (rozhodně je silný jako rybka 3, takže stačí na to aby ukázal čím rybka 2,3 ve své době předběhla konkurenci) - proč to ještě nikdo z toho kódu jasně nevyčetl ? Resp. je to ta vyladěnost synergetická jen co vyčetli ? Nebo už je to tak složité že nikdo doopravdy neví co (jeho) engine dělá ? Jen ji ladí až poskočí ? :)
Re SKA: Ale prosím tě, kalí vodu, ví houby, pravdu znají jenom autoři těch programů.
Zpět k RYBCE/Houdini/Ippolit/Ivanhoe :
Teda jestli to dobře chápu : tyto programy jsou řádově stejně silné a obsahují tedy nějaký ekvivalent toho co umožnilo poskočit rybce tenkrát o třídu dál oproti ostatním. Ale to co to je nelze vyčíst z jejich kódu, přestože zdrojový kód alespoň nějakého ippolita je k dispozici ? Zato tu máme doměnku že se jedná o celkové vyladění všeho, tedy synergetický effect ?
Jo jedná se o C,C++ samozřejmě. Ono nevím co používají ostatní za kompilátory, ale MSVC6 prostě zatím běžela nejlíp vždy. Na linuxu to lidi překládali pod GNU a nejsem si jistý zda to nebylo horší o dost. Ale jak říkám já to mám jen pro zábavu a zatím sem na to neměl tolik času co bych chtěl, takže nemám čas sledovat úplné detaily typu abych měřil efektivitu kompilátorů apod, na to jsou tam ohromné prostory v samotné logice programů hrajících bughouse šach. Kdyby se chtěl někdo přidat a klidně to začal psát znova nebo různě zkoušet cokoliv, můžeme si pokecat apod.
Jo jinak ješte dodatek k tomu bughouse šachu : testovat se dá pod DoubleChessBoard-em klidně 4 programy proti sobě naráz anebo různě člověk a třeba i přes síť každý aby běžel na jiném počítači. Stačí když se bude v momentální verzi hlásit jako sjeng (až budu mít čas zase tak to zobecním) či sunsetter :) Ale jak tu bylo podotknuto já to mám jako zábavu občasnou a navíc jen jako část jiných věcí kterým se chci věnovat až počítače ještě zrychlí a budou moci zpracovat více informací naráz (pro nástin, v určitý moment je schopnost učení se lepší, než se pokusit dostat o pár půltahů dál, protože to nedá tolik jako umět odhadnout která pozice soupeři nesedí a jít do ní ... ale jednak se to špatně ukazuje na klasickém šachu (nechci tím tu tudíž dráždit odborníky na klasický šach) a jednak k tomu je potřeba prostor v tom větším výkonu (pro některé parciální problematiky možná už je dnes, kdoví, ono teď se začíná objevovat hodně cenově dostupných multijáder ...) .
to Vasek a všichni šachoví programátoři: Já občas když mám čas sem se snažil naučit hrát počítač bughouse šach (je tam více dimenzí z hlediska interface a mnohem více tahů možných v pozici a svým způsobem i náhodný faktor takže na cestě mezi šacovým programem a obecnou umělou inteligencí je to blíž k obecné o něco), zatím sem testoval občas své ohodnocující funkce na Sjengovi (ten teda není 64bit), ale on je tak materialisticky zaměřený že má děsně blbý cit pro taktiku, že to bude potřeba celé přepsat, resp. teda napsat v podstatě znovu. 64bitový je sunsetter (te kromě bughouse hraje samozřejmě též i klasické šachy - ono to je podmnožina koneckonců svým způsobem) a oba mají volné zdrojáky pod nějakou licencí. Sunsetter byl nejlepším programem pro hraní bughouse na ficsu pokud spoluhráč dokázal kontrolovat tok materiálu, klasicky pokud šlo málo figurek tak s ním dokázali držet krok jen tuším téměř gm v klasickém šachu. Ale ono se to těžko posuzuje přesně, páč sunsetter běhal na slabých hardwarech často na ficsu, na silnějších býval jen občas a drsný. To jen kdyby se někdo chtěl zabývat něčím jiným než klasický šach, něčím kde je mnoho tahů a koordinace s druhou šachovnicí/či náhodný faktor svým způsobem (pokud není počítačový tým) a teorie zahájení jen rámcová (moc kombinací dvou šachovnic). Na druhou stranu se zde dá přemýšlet i o učení se (minimálně nejtěžší problém verze komunikující s člověkem). Jinak pro orientaci ten sunsetter třeba nemá schopnost analyzovat pozici ale hraje jen od začátku partie apod, ale určitě pokud by se tím chtěl někdo zabývat tak je to hezký 64bit kousek. Ale to je spíš o alternativním šachu, ikdyž o to větší je to zábava :)
to Vasek a všichni šachoví programátoři: Já už smolím nějaký ten šachový prográmek s různými přestávkami tak asi 10-11 let. Taky jsem kdysi začínal s Šachy na PC a za pochodu se při tom učil C++, předtím jsem měl jen úplné základy programování v BASICU a Pascalu. Pár zkušeností jsem během té doby snad posbíral, takže kdybys chtěl něco probrat, ozvi se na sespeknej@mizera.cz (jen varuju, že se na ten mail dívám zcela nepravidelně a ne často, tak kdyžtak trpělivost). Svého času jsem byl takhle v kontaktu s Janem Klímou, když psal Pseudo (asi nejlepší český program zatím). BTW bylo by zajímavé zjistit, kdo všechno se programováním šachů u nás aktivně zabývá. Co se týče protokolu, používám Winboard/Xboard, ale UCI jsem taky prostudoval, takže zplácat nějaký parser by neměl být problém.
Pokud jde o tu chybějící proměnu ve střelce, jsem si téměř jistý, že příčinou nebude obava ze zpomalení programu, které by bylo zcela marginální, ale spíš to, že Vašík používá nějaké datové struktury a případně i algoritmy, které počítají s tím, že se žádný nový střelec v pozici neobjeví (aby třeba nemohli být 2 střelci stejné barvy apod.). Prostě používá něco, co by efektivně nebo dokonce vůbec nefungovalo v případě, že by na "nového" střelce musel brát ohled. Pokud by tomu tak nebylo, pak přidání proměny ve střelce do generátoru tahů je triviální záležitost, která by se určitě "vyplatila" z hlediska image programu (protože toho, že nejsilnější, alespoň kdysi, program neumí věc, kterou ovládá i poslední packal, si každý uživatel samozřejmě všimne, byť takový tah třeba sám v životě nezahraje). Ovšem teď se spíš zdá, že Vašík to musel naopak ty programy, z kterých kopíroval, "odnaučit" :-)))).
Re UCI interface: já teda nevím jak ostatní, ale já mám zkušenost, že ty UCI enginy se nechovají zcela v souladu s pravidly UCI, např. posílají nesmyslné tahy do PV apod. A ani když jsem chtěl zapojit svůj engine do Fritze, neobešlo se to bez problémů. některé příkazy musím posílat vícekrát, někde musím dát timeout apod.
Úprava šachového pluginu pre Google Chrome.
Má niekto čas a chuť upraviť tento plugin tak, aby sa po kliknutí na ľubovolné video na YouTube, ktoré má v popise PGN objavil vedľa videa PGN prehrávač, podobne ako to je na www.c7c5.com ?
Já jen přemýšlel o tom, že bych se k někomu přidal, kdo už má něco rozjetého. Případně i kdyby jen začínal, ale ať hlavně o tom něco ví, protože já sám žádnej špičkovej program dohromady ani omylem nedám. Než to zkoušet sám, to se radši dál budu babrat s pascalem jen pro svoje vlastní potěšení.
To jsme trochu mimo téma.
Ale pokud chcete dnes vyvíjet nový šachový motor s nějakými ambicemi, musíte myslet od začátku na 64bitový systém.
To znamená
- bezpodmínečně bitboardovou koncepci reprezentace pozice (ne žádnou matici, jak jste se učili v kurzech programování)
- a bohužel taky vyloučit Delphi. Kdysi skvělý špičkový vývojový nástroj nyní obhospodařuje firma s podivným názvem Embarcadero a podle toho to taky vypadá. Vymášlejí blbosti, ale základní věci nefungují. Ladění větších projektů různě náhodně padá a hlavně 64bitový překladač už je asi 5 let stále těsně před dokončením.
Zdrojáků v C++ je plno a zde můžete najít jak generátor tak UCI parser.
A ještě jednou Minimax, tentokráte s UCI - Delfimax, i odtud by se dala část kódu pro UCI asi opsat: www.bauer-schweitzer.de/index.html
Ne že by se dal Minimax porovnávat s Fruitem nebo dokonce Rybkou, ale generátor tahů se zase tolik lišit nemůže. Pro proměny pěšce má speciální funkci, takže když jsem mu zakázal proměnu pěšce ve střelce a věž, v rychlosti propočtu základní pozice se to neprojevilo. Ale když jsem nastavil (ne moc pravděpodobnou) pozici Ka1, Pa6, b6, c6 - Kh7, Pf3, g3, h3, bílý na tahu, tak s plnou proměnou hledal tah do hloubky 5 14s s uzly 307/s a s vypnutými proměnami na S a V jen 9s s uzly 314/s (Vše nezkompilovaný *.BAS v DOSBoxu). Takže v pozicích, kde je nějaká proměna reálná, to vypnutí slabých proměn na rychlost znatelný vliv asi má! Možná i to je způsob, jak Vašík Railich optimalizoval ten kód, vyházel vše, co nepovažoval za nutné. V běžné partii se slabá proměna tolik neuplatní, i kdyby byla povolena jen proměna v dámu, tak s tím program bude počítat a stavět tak, aby pozici přitom nezpatoval, takže jen dost umělé pozice by kvůli tomu nevyhrál.
On byl na CD i v céčku. Případně mohu poslat. Také by se dalo opisovat jinde - Fruit, Toga, například. Pokud umíš trochu i C++, převzetí těchto věcí z jiného programu by ti určitě nikdo nevyčítal.
Díky, snad to nějak zvládnu. Šachy na PC jsem četl, ale zdroják minimaxu jsem moc nestudoval - basic neovládám.
Re Vasek: UCI specifikace přímo od zdroje - SMK - download.shredderchess.com/div/uci.zip
re Vasek: en.wikipedia.org/wiki/Universal_Chess_Interface - zde jsou odkazy. UCI je jen soubor příkazů, na které má motor umět reagovat. Pokud jsi, podobně jako já, několikrát četl knihu Šachy na PC, tak je to něco jako rozšíření té procedury, která ovládá Minimax pomocí dvoupísmenných příkazů - to by přeci nemělo být nic až tak složitého - vlastně tam je ještě nějaký protokol ohledně formátu výstupních dat.
Re Martin: Stačí kliknout v menu týkající se motorů na "vytvořit nový motor UCI", nalistovat si jeho umístění na disku, Fritz si ho otestuje a pokud se objeví název motoru a jméno autora, je nejspíš vše v pořádku, klikneš na O.K. a od té chvíle máš motor k dispozici mezi motory. Takových je ostatně mnohem více, než těch "Fritzovských".
2Vasek: UCI specifikace - http://wbec-ridderkerk.nl/html/UCIProtocol.html (i ta ale prosla nejakym vyvojem, jak moc je tohle nyni aktualni nevim)
2martin: vytvorit UCI motor (create UCI engine) a nalistovat *.exe
martin: vyzkoušej link na diskuzi, kde to bude patrně vysvětleno.
NSS nabízí ke stažení Critter 1.0. Ale samostatně neběží, pod čím běží? Zkoušel jsem ho dát do Fritze, ale Fritz má motory s koncovkou .eng, kdežto tento soubor je přímo spustitelný .exe. Leč samostatně nejede..dělám to špatně?
Jo a několikrát jsem četl knihu Šachy na PC :-)
Jsem rád, že je tu pár lidí, se kterými se o tom dá relativně zasvěceně pokecat. Nevíte o někom v ČR, kdo se snaží vytvořit nějaký motor? Jsem sice amatér, ale rád bych se na nějakém takovém projektu podílel. Moje kvalifikace je poměrně malá: programování v Pascalu jakš takš, v C++ velice slabé (ale mám chuť se učit), šachová výkonnost KM. Dokázal jsem napsat jednoduchý šachový program v pascalu, na úrovni 2.VT (ve volném čase na něm ještě dělám), jak ale napsat UCI rozhraní netuším. Celkem tedy nemám moc co nabídnout... Přesto - nevíte o něčem?
2Steve - neresi se jak velky - zkopirovano=klon, zadne slitovani, zadna pridana hodnota.
2EmilV - nejak jsem pocitala a nakup vypocetniho strediska nevidim jako vubec nutne. 1partie=10s=21600=8400partii/den. Pokud tak mela byt testovana R1 (single) tak na 8jadrovem PC mohlo byt za den sehrano odhadem 70000-80000 partii - to uz vidim jako dost velky statisticky vzorek, za 10dni by tak muselo dojit k testovani desitek (az stovek) nastaveni a vyladeni "kandidata" a to na 1PC
Bod c. 3. O co jde spíš, je správné určení pořadí tahů, ve kterém vstupují do alfa-bety. V tom myslím Rybka vyniká nejvíc (méně než všechny ostatní motory mění své původní mínění) a na to se právě hyperbullet testing zřejmě výborně hodí. - proti programum Ivanhoe a spol. je Rybka ve zmene PV velmi dynamicka, tyto programy dovedly metodu "PV nikdy nemen" k absolutni dokonalosti - proto jsou prakticky nepouzitelne.
2PH Zappa ani Sjeng jako zastupci clusterovych reseni jsou spise zklamanim pro autory a proto nejsou ani nove verze komercni - aby se neprovalila fakticka stagnace vyvoje. V HW konfiguraci jakou pouzili v poslednich turnajich (Kazanawa, Leiden a dalsi) by meli opravdu jak zminujete odskocit podstatne vice nez se stalo, misto toho se trapi se salaty.
Díky Alice, v tom případě jsem měl na mysli otázku Jak přesně určit co je ještě pouhý derivát a co už má dostatečnou přidanou hodnotu?
Př: Je 18.8/24 (78,5%) shody u oceňovací funkce derivát? viz: D.2.3 http://open-chess.org/download/file.php?id=332
Projel jsem i diskuzi na Rybkaforum a většina se taky podivuje nad tím načasováním a nad jmény co to podepsaly. Žádné velké dopady nečekají.
Re EmilV:
2. Možná ano. Deep Blue/Thought byl silný jen hardwarem, program nebyl zřejmě nic moc - to by Garry prohrál daleko více. Oceňovací funkci měl jako hw obvod, tedy napevno naprogramovaný nějaký čip navíc, jako třeba grafická karta.
3.Pořadí tahů je jedna z nejdůležitějších věcí, ale jak to chcete prověřovat takto? Nejsou-li jiné změny, zahraný tah by měl být stejný, jen jeho nalezení potrvá trochu déle - kvůli pomalejšímu odsekávání. Takže výsledkem bude, že všechny partie by měly být (teoreticky) stejné, jen se změnil čas, místo popisovaných 10 dní třeba 9,5, pokud je to skutečně rychlejší ...
5.Aha, já to pochopil tak, že už to tehdy věděl. Píše se o Turíně, odpovídalo by to roku 2006 (mýlil jsem se v tom, myslel jsem, že to bylo 2008, to se však hrálo v Pekingu), kdy tam bylo MS. Kdo na tom obědě kromě autorů Shreddera a Juniora mohl být další? Možná autoři Spike, Diepa a Crafty - kromě Spike stará garda. www.grappa.univ-lille3.fr/icga/tournament.php . Nicméně Strelka je záležitost z roku 2007, na konci téhož se hrál zápas v Mexiku. Nevěřím, že by se to do roka neprozradilo, spíše ti ostatní programátoři si nemyslí, že by to zlepšení spočívalo jen v tomhle. Co se Rondo týká, klidně by druhý v roce 2010 být mohl, nezapomínejte, že MS je loterie o pár partiích. Ty stránky ICGA jsou strašné, musí se pro výsledky na EVCOMP - vlasak.biz/evcn2010.htm .
1. Rybka 8
2-3. Rondo, Thinker 6,5
4. Shredder 6
5. Jonny 5.5
6. Pandix 5
7. Junior 4
8. Darmenios 2
9. Fridolin 1
10. Hector For Chess 1/2
Určitě by Rondo/Zappa měl odskočit i Thinkerovi, pokud ta práce za něco stála. Nedokázal vyhrát ani to mistrovství na stejném hardwaru (bez Rybky), tam zůstal půl bod za Shredderem. Junior byl jakýsi slabý a Jonny s Pandixem by pro Zappu neměli být vážnými soupeři.
6. Tomuto argumentu by se sice dalo věřit, že někteří jsou pohodlní, ale nezlepšili se ani ti mladí - Loop (Reul) přitom na nové verzi pracuje už rok, ale když si najdete testy bety od Sonnabenda, není to nic extra, Spike se zlepšil sice dost, ale také vydal novou verzi po 4 letech. SMK (Shredder), autoři Juniora a Uniacke (Hiarcs) zase takoví starci nejsou, je to spíš střední generace. A minimálně Uniacke má testera, těch požadovaných 10 dni strojového času není zase tolik. Program se přepíše během pár dní, ladění je to, co trvá dlouho, když se podíváte, jak často vychází nové verze, je na to i s jediným testovacím strojem času více než dost.
Opravdu si spíše myslím, že Cozzio spíše popisuje, jak mohla vzniknout Rybka 3, než Rybka 1. Ostatně vzpomínáte na rychlost, s jakou vycházely podverze Rybky 1-2? Mezi některými bylo i pouhých pár hodin.
Daleko podstatnější je, že Vašík používá k testům zřejmě jen různé verze Rybek. Již v knize Šachy na PC takovému testování nevěří, protože různé verze bývají slepé ve stejných místech, tím by se vysvětlovalo, proč Rybka neumí některé pozice. Možná by měl Vašík vzít kód Stockfish a oškubat tam UCI tak, aby mohl testovat i s ním. Ippoliti (Fire, IvanHoe, Saros, Robbolito) se k témuž nehodí, pokud se jedná jen o větve téhož stromu, Houdini neposkytuje kód. Co se slabých proměn týká, uměl je Fruit? Já mám takový pocit že ano. Takže nejde o to, že by to Vašík neuměl opravit, chce mít jen co nejrychlejší generátor - ta funkce je volána mnohamilionkrát za sekundu, takže i pouhá instrukce navíc se na rychlosti projeví.
http://www.acoz.net/zappa/
Tak by mně zajímalo odkud vzal Anthony Cozzie ten název: Zappa.
Zdravím všechny diskutující.
1. Klonování jsem nechtěl otvírat; žádné nové skutečnosti se v podstatě neobjevily, ale abych vytáhl z Cozziova dopisu jen pasáž o hyperbullet testing, to by byl příliš umělý zásah.
2. O oceňovací funkci myslím až tak nejde. Už Feng-hsiung Hsu (Deep Thought) to vyřešil poměrně jednoduše. Prohnal opakovaně motor velkou databází kvalitních partií a nechal si koeficienty vyladit adaptivním algoritmem na nejvyšší shodu s hranými tahy. Nevěřím, že dalším laděním se z toho dá dostat něco výraznějšího navíc.
3. O co jde spíš, je správné určení pořadí tahů, ve kterém vstupují do alfa-bety. V tom myslím Rybka vyniká nejvíc (méně než všechny ostatní motory mění své původní mínění) a na to se právě hyperbullet testing zřejmě výborně hodí.
4. Pak jsou tu také finesy v hledání, tedy kdy strom useknout a kdy pokračovat; jestli i tohle se dá ladit na 3-4 polotahy je zajímavou otázkou.
5. Proč to nedělají všichni? Pavle, z textu myslím nijak neplyne, že to všichni vědí. Na tom obědě to nevěděl nikdo a A. C. na to přišel později. To už byl mimo. Určitě to ví jen Zach a pro mě výkon Ronda zklamáním nebyl. Poslední Zappa by určitě v roce 2010 druhý neskončil.
6. Proč to nedělají všichni 2? Někteří už jsou starší páni, mají své zavedené zvyky a příliš velké novinky neskousnou. Přejít na tu metodu znamená nakoupit farmu nových silných počítačů, každý den je udržovat, sehrávat statsíce partií, zkrátka docela otrava. A oni určitě berou šachové programování pořád aspoň trochu jako koníčka.
V dnešní době je asi těžké jednoznačně říct "to je krádež". Proto bych tomu nechal volný průběh. Trh se o to postará. A už vůbec bych nezakazoval nějakému programu někde hrát. Spoustu lidí zajíma jen hra a síla enginu, ne jeho původu.
2 Bond - na tebe vsichni programatori cekali, vsichni jsou jen banda tupcu
2 Steve Splasher - za klonovani v pocitacovem sachu bylo vzdy cistokrevne copy&paste - tj pouziti originalniho kodu bez svoleni (nebo poruseni licence, ICGA napr. neumoznuje takovymto programum zucastnovat se v MS)
2 Vasek - 3-4 pultahy jsou primo zminovany v dopise, cituji original: His procedure was to play games at 3-4 ply which would finish in 10 seconds or so.
Takze ne "neco kolem 3-4 pultahu nebo jinak" ale "striktne" tak jak je psano. Osobne si nemyslim, ze to je klic Rybky, ale jen urcity zaklad. Dokazala bych si predstavit jen 2 veci, co se daji ladit na velkem mnozstvi rychlych partii ktere jsou hotove za 10s uvedenym zpusobem: vztah vysledku (tim padem nejakych zakladnich ocenovacich parametru) a druhy - pouzity cas na dosazeni potrebne hloubky (orezani stromu) - mene casu pak znamena vice casu k pouziti behem partie
Klonim se pak k PH a to konkretne k prinosu VR: pridana hodnota je samozrejme zjisteni, ze na 64bitech Rybka notne ziskava - uvedomte si, ze se psal rok 2005, jediny OS ktery to podporoval na Windows platforme byly XP jen v anglicke verzi (od MS ani vyrobcu HW a SW prakticky neopodporovane, napr. ani MS Office 2010 na techto Windows nerozchodite, na obycejnych XP ano) a pak "vedomosti" - nemyslim tim, ze Rybka jako snad jediny engine ma (a mel) bugy/feature, kterymi neoplyvaji ostatni jiz zavedene enginy - nemoznost promeny ve strelce, TB bug... Z praktickeho hlediska Rybka vzdy dominovala ve stredni hre, kdy rozumi (stale!) pozici nejlepe.
Spise jsem cekala, zda se nekdo nezamysli nad :
- proc se otevreny dopis objevil nyni?!
- proc jej podepsali ti co jej podepsali (Schroder, Letouzey, Theron, Coziie jsou jiz duchodci, motivaci ostatnich neni take jednoduche pochopit)
- co si slibuji?!
K pochopeni situace je take dobre si uvedomit, co se po roce 2005 stalo: dlouholeti autori skoncili, SMK, Uniacke, Ban/Bushinsky, Theron prisli o kazdorocni tucne prilepseni a prestoze nabizeji stale sve produkty, vykonostne stagnuji. Nova generace (Naum, Onno) si sice neco malo lizla, ale oznamili odchod. Takze na trhu vzniknul takrka monopol. Jedna z moznosti jak jej rozbit je odsoudit VR - prestoze prakticky veskere informace, kterymi se nyni pisatele dopisu ohaneji, jsou stare jiz nekolik let. Co by se stalo, kdyby obvineni bylo pravdive? Prakticky nic moc. Stanovy ICGA neznam, mozna by to znamenalo pro VR vratit nejaky titul MS (penize asi zadne), ale tezko vsechny - nasledujici verze lze pak asi povazovat za odlisne (a na ne ani autori dopisu nepoukazuji).Vasik by "musel" dat k dispozici zdrojove kody, ty jsou dneska ale relativne bezcene (jen by se na nich dalo zjistit, jak hodne jde o Fruita). Penize by nikomu Vasik vracet nemusel (jen se mozna lehce srovnat s Letouzeym) - GPL umoznuje produkt legalne prodavat..
Houdart je ale trochu jine cislo - prevzal otevrene Ippo kody a poladil je - nutno rici ze celkem uspesne, takze porazi Rybku (bere nekdo v potaz, ze komercni Rybka neni to nejlepsi co VR ma..? a ze pripadna vylepseni Houdiniho pres Rybku mohou byt "pouze" uvolnene brzdy zabudovane v Rybce..?) a je na nejlepsi ceste ke komercnimu uspechu mozna primo pres ChessBasi - tim by se nejen zlegalizoval, ale neprimo by se zlegalizovalo cokoliv kolem Rybky.
Pokud si trochu pohrajete s Houdinim tak zjistite, ze Houdini neni pri analyzach az tak zazracny a ze mu "neco" chybi - pro nekoho bude porad jen klonem Rybky - v tuto chvili tim nejuspesnejsim. Narozdil od nej, Rybka predcila vsechny Fruity...
PS: kdo ma Fruita 2.6d? :-)
Jsem nevěděl, že jseš tak uznalej
Expert promluvil
No já si teda myslím, že 99% ladění se týká oceňovací fce, protože když překopu prořezávání variant a způsob průchodu, tak musím překopat celý program, zatímco při změně váhy nebo přidávání dalších kritérií do oceňovací fce můžu rychle vygenerovat miliony variant a vo tom to je.
A pokud do nedávné doby testovali programátoři své enginy jen tím způsobem, že je nechali hrát jen vážné partie, tak jsou algoritimicky zaostalí, na tom si trvám.
Houdini je jen free motor, nikoliv open source - jeho zdrojový kód autor neposkytl a pokud čerpá z jiného open source, potom by měl.
Z toho "přídavku" k otevřenému dopisu jsem teda pochytil, že hloubka 3-4 půltahy je myšlena jen orientačně. Nikde tam nějak nevidím, že by tam výslovně bylo řečeno, se ty partie probíhají s pevnou hloubkou vyhledávání a ani by mi to nedávalo moc smysl. Je sice pravda, že Cozzie v tom dopisu trošku přehání, ale úplné bludy to nebudou.
Re Steve Splasher: Však taky následuje, ne? Houdini už je jasně silnější než Rybka a jsou i další velice silné, které v brzké době Rybku překonají, nebo už překonali: Fire, Stockfish, Critter...
Pokud jde o klonování, obávám se, že přesné parametry toho co je klon ti nikdo neřekne a ony ani neexistují. Na neprůhlednosti celé věci taky přispívá to, že je jen velice málo lidí, kteří tomu opravdu rozumí a zdrojáky zmíněných programů prohlíželi (nehledě na to že i kdyby, tak se stejně nedá poznat, jestli byla použita k optimalizaci výše popsaná metoda). Já tomu taky rozumím jen na jakési amatérské úrovni. A pokud vím, klonování open source programů je něco co se běžně dělá a není v tom žádný problém. Takový klon ovšem potom musí být taky open source a rozhodně se nedá komercializovat. Pokud vím Houdini open source je, takže by neměl mít vůbec žádné problémy k připuštěním do soutěží. To by se ovšem mělo týkat i rodiny Ipollit, přesto ale tyto motory většinou do soutěží připouštěny nejsou (je mi naprostou záhadou proč!), až na výjimky (Ivanhoe).
Mimo to všechno se zde píše jen o ladění samotné single verze. Ale protože již nelze zvyšovat frekvence CPU a nějaký nový 128bitový (či ještě lepší) procesor je také zatím v nedohlednu, bude stoupat počet jader. Takže čím dál více bude pro sílu programu podstatná efektivita Deep/MP verze - jestli ten test v hloubce 3-4 půltahů pak potrvá místo 10s třeba jen 2s, na výsledcích nic nezmění, takže tuto efektivitu je třeba znovu testovat hrou na čas ... Že programy v tomto směru mají mezi sebou velké rozdíly, stačí porovnat třeba Junior s Hiarcsem, Junior je na dobrém počítači lepší! A co třeba takový ParSOS? Původní SOS z Areny asi každý fanoušek programů zná (před nějakými 10 lety zhruba amatérská čtyřka) , turnajové výsledky ParSOS na mnoha procesorech za moc nestály - Huber však prošlapával jiným cestičku.
Co třeba Rondo? Když jsem se dozvěděl, že Zach Wenger bude pod tímto názvem dále rozvíjet Zappu, říkal jsem si, že by Rybka mohla konečně dostat pořádnou konkurenci. Ale výsledek posledního MS byl pro mě velkým zklamáním. Rybce s jejím hardwarem nemohli konkurovat, ale Rondo se nedokázalo ani odpoutat od zbylé konkurence. Takže to skoro vypadá, že dosavadní přínos Zacha Wengera k Zappovi je slaboučkých několik desítek ELO bodů, přitom již mohl optimalizovat stejně, jako V.R., má-li Cozzio celou pravdu.
Celá ta teorie se dobře čte, ale při hlubším zamyšlení se spíš objevují jiné otázky, než že by se něco objevilo. Máme tedy další teorii o Rybce, ale podle mě se buď Cozzio mýlí, nebo je to pravda pouze částečná.
Re Vasek: Právěže tvrdí ...
V Mexiku jsme se s Vašíkem bavili o ladění programu. Jeho metoda spočívala v partiích s hloubkou propočtu pouhé 3-4 polotahy; ty partie trvaly řádově jen 10 sekund. Při takových rychlostech je už překládání UCI příkazů brzdou a Vašík proto napsal speciální testovací program na rychlejší propojení dvou verzí Rybky. Aby se přesně určila změna o nepatrné velikosti 2-3 Elo body, je nutno sehrát okolo 100.000 partií, což při 10 sekundách na partii představuje kolem 10 dní strojového času.
Ale to se bavili v Mexiku (podzim 97), mezi Rybkou 2 a 3. Určitě mu Vašík nevyslepičil to, jak se mu povedlo tolik vylepšit Fruit 2.1 k Rybce 1. Letouzey pak přestal poskytovat kód, Fruit 2.2.1 byl jen komerční, ovšem free Toga navazující na Fruit 2.1 byla trochu lepší, jednak pro více znalostí a jednak pro efektivnější strom. Poslední Fruit 2.3.1 je sice znovu free, ale již bez kódu. Toga byla rovněž jen 32bitová, ten převod neměl Railich kde opsat, mohl si jen nechat poradit někde na fóru. Na pevnou hloubku podle mě nemá smysl testovat selektivitu, odsekávání a řazení tahů, protož výsledný tah dané hloubky je obvykle stejný, mění se jen rychlost. Takže před Rybkou 1 nemohl testovat na 3-4 půltahy, musela být spousta minutových blicek. A to je metoda, kterou již několik let používají všichni mladí programátoři, ale to zlepšení ostatních programů je kde?
Re Bond: SRC Fruita 2.1 i Togy je zde - arctrix.com/nas/chess/fruit/ . Něco jiného je ale ladění hodnot a něco jiného přidávání dalších znalostí - tam pevná hloubka znovu nepomůže, protože se mění i rychlost provádění. A mít motor rychlý hloup, nebo pomalý chytrý? Bohužel, většinou srovnání vychází výhodněji pro první variantu.
Re: Splasher - O tom, že V.R. nějak využil kódy stávajících programů pochybuje asi málokdo. Houdart ovšem čerpáním z Ippolitů provedl prakticky to samé, proto se k signatářům nepřipojil, nějaké případné zamezení hry Rybky v oficiálních soutěžích vůbec neznamená, že tam bude připuštěn Houdini, spíše naopak. Rybka je slabá v některých pozicích, což je částečně důsledkem testování verzí proti sobě. Nyní ovšem může V.R. novou Rybku testovat proti Houdinimu, IvanHoe a i ten Stockfish není příliš slabší - takže tipuji, že Rybka 5 bude výrazně lepší, jak 4 - určitě by ten rozdíl měl být větší, než mezi 3 a 4 - jestli to však bude stačit na Houdiniho 2, těžko říci, spíše ne.
Pokud je tajemství skutečně odhaleno, neměla by teď následovat další vlna nových motorů silnějších než Rybka?
No to je samozřejmě vtip, protože se jedná o tajemství Rybky 1.6.1, Rybky 1-beta a hlavně Rybky 2. Pokud je Vas obviněn z ovocného klonování, rád bych ještě před samotným posuzováním věděl, jaké jsou přesně parametry toho, co je ještě považováno za klon a co už je jen inspirací. Pokud ona komise opravdu vznikla a bude vyšetřovat, doufám, že nezůstane pouze u Rybky a bude se zajímat i o jiné podněty.
Pokud se nepletu tak Houdart si myslí totéž co signatáři, alespoň to usuzuji poté, co jsem četl několik jeho komentářů ke kauze střelka. Ale tomu, že tu výzvu nepodepsal, rozumím.
Pár nových argumentů/důkazů se tu oběvilo, tak jsem zvědavý jaký bude budoucí vývoj.
Ve skutečnosti Cozziova argumentace (alespoň pro mě) vypadá velice smysluplně a odpovídá těm znalostem, které mám o problematice já. A nikdo tady netvrdí, že zmíněnou testovací metodou se dá vylepšovat pouze oceňovací funkce. Nikdo přeci netvrdil, že se testuje pouze s pevnou hloubkou propočtu. Tímto způsobem se dá určitě optimalizovat i prodlužování a odsekávání variant a zisk výkonnosti by tak mohl být mnohem větší. A nevim co je nepochopitelného na tom, že kdyby používali programátoři tuto metodu optimalizace, dosáhli by lepších výsledků. Prostě než někdo objeví nějakou metodu, tak ji nikdo nezná, a potom ji začnou znát/používat všichni - po bitvě je každý generálem. Nebo by se to dalo přirovnat ke Kolumbovu vejci.
No rozhodně celá ta argumentace mi přijde přitažená za vlasy - že by programátoři netušili, že 100 bleskových partií má pro ladění větší přínos než 1 vážná partie, to snad ne... BTW a ta oceňovací fce Fruita vypadá jak? Do jaké míry je flexibilní?
.... Nyní je jasné, že 90 procent oceňovací funkce Rybky 1.0 je přímo z Fruitu a dokonce i to, že původní motor Vašíka byl přímou kopií Crafty; jak se mu podařilo udělat ho o 500 Elo slabší, to se už asi nedozvíme. Důkazy stále narůstají. ....
Tady je to nějaké slabé. Napřed je to neumětel, ale hned o rok později místo zkažení Fruita o 500 ho vylepšil o 200? Na té metodě testování něco je, ale nemyslím, že by to bylo celé. Pokud VR klame uváděnou hloubkou propočtu, počtem uzlů a velikostí souboru - tam je nejobvyklejším názorem, že se jedná o ochranu proti dissassemblerům - potom pochybuji, že by řekl celou pravdu s tím testováním. Takové testování s pevně stanovenou hloubkou se dá použít především na vyladění hodnot oceňovací funkce, u všeho ostatního je nutné posuzovat změny v poměru znalost:rychlost - a při změnách ve většině ostatních částí programu se konečné tahy v jednotlivých hloubkách nezmění, jen budou hrány jinou rychlostí. Takže výsledky by nic nedaly. Pokud pak jde o vyladění samotného oceňování, pak u tradičně odfláknutého Kinga (Chessmaster) se obvykle do 1/2 roku objeví nastavení něco přes 150 ELO lepší, než originál .... Více to prostě nejde, správné nastavení má také svůj limit. Ale u většiny programů, kde se objevilo lepší nastavení to bývá méně, stačí si projít staré zprávy na autorových EVCOMP, kde se píše třeba o pokusech se Shredderem. Nějaké další ELO získal pak Vašík převedením na 64bitů, tak +50. A zde neměl odkud opisovat, i když mu mohli poradit někde na fórech, na talkchess bývají někteří zkušenější docela ochotní. Už jen za bezchybné převedení 32bitového Fruita na 64bitový zaslouží nějaké uznání, ve srovnání s tím, že někteří zavedení autoři se k témuž ani po dalších šesti letech nedopracovali - 64bitový Hiarcs stále nemáme, kromě neúspěšné verze X54, u Shreddera to nemá žádný přínos ... Nepochybuji, že V. Railich z Fruita nějakým způsobem čerpal, ale samotné nastavení prostě nemůže být vše. Nesmí se zapomínat, že Rybka způsobila hned dvě revoluce v počítačovém šachu, první při svém uvedení, druhou pak zlepšením mezi verzemi 2.2n2 a 3 - a tam se značnou částí jednalo o vylepšení oceňování (Larry Kaufman), zatímco A.Cozzio nám tvrdí, že optimalizovaná byla už jednička. Kdepak, dvojka měla slabiny například v podceňování volných pěšců soupeře, přitom právě toto by jím nastíněné testy odhalily. Zápas v Mexiku předcházel právě uvedení Rybky 3, takže Vašík ladil, možná touto metodou tedy byla vylepšena trojka, ale pochybuji, že jednička! Kdyby to bylo takto snadné, proč podobně "neskočily" jiné programy, když je vědomost tři a půl roku známa? Jediný, kdo dokázal Rybce jakž takž sekundovat byl StockFish, což byl původní motor Glaurung norského programátora Romstada, kde další klonovači objevili nové myšlenky , takže nakonec vytvořili autorský tým společně. Celý skok jim zabral tak 3-4 roky, přičemž právě ty nové myšlenky původních klonerů byly podstatné. a právě Rybka 3, která vyšla necelý rok po zápase v Mexiku, se stala noční můrou konkurentů - vývoj zhruba v té době zastavil Reul (Loop), autoři Spike, Naumov (Naum) i ... Cozzio (Zappa) - a přitom mohli "jen" testovat, přičemž A.C. to věděl a v Turíně (2008) to řekl i ostatním - proč se ti tedy nezlepšují? Nejkompetentnější k diskuzi o Rybce je kromě V.R. asi R. Houdart, autor Houdini, ten zřejmě nějaké tajemství také odhalil a nakonec i vylepšil, ale moudře mlčí. Nakonec nám hrozí situace z lidského šachu konce 20.století, klasičtí autoři si za nepříliš velkého zájmu veřejnosti budou hrát o tituly mistrů, zatímco hráči budou analyzovat s těmi nejlepšími, Rybkou, Houdinim a dalšími ...
Když se ještě vrátím k zápase v Mexiku, ten Rybka prohrála knihovnou - vždy jí šla hlavně Sicilská, ale v Mexiku, snad v obavách ze Zappovy zavřené varianty (tu hraje dobře), hrála černými jen 1.-e5. Španělskou přitom Rybka moc neumí, má tam sklony k planému potahování. Určitě se dalo najít jiné zahájení, kde by Zappu přehrála, jaké hodnocení má na serverech Zappa a jaké Rybky 2 a 3?