なんか変だ (2)

テーマ:

コンピュータチェスはともかく、どうしても計算機将棋の探索速度については気になる。例の「Craftyの解析メモ」から少し引用する。


> Pentium3M-730MHzで探索速度は
>
> Crafty 109,000 leaves/s 308,000 nodes/s ... YSSの3倍も速い。
> YSS 71,000 leaves/s 111,000 nodes/s
> (leaves/sは評価関数を毎秒呼んだ回数、nodes/sは途中の手も含む)


よくよく数字を見るとちょっと不思議なことに気がつく。leaves/nodes比率の違いである。計算してみると、

・Craftyの場合:109,000/308,000=約0.35

・YSSの場合:71,000/111,000=約0.64

となる。静的評価関数を呼ぶ頻度は、YSSがCraftyより倍近く多いという点が気になる。そこで、謎電での指将棋探索速度の厳密なプロファイルを行ってみることにした。その結果は次の通りである。


___________nodes______leaves
< 1>         510[*1]       0   0   0 (   0    0)[‰]
< 2>         915          59   0   0 (   0    0)[‰]
< 3>       9,185          30   0   0 (   0    0)[‰]
< 4>      13,484          62   0   0 (   0    0)[‰]
< 5>      87,270         799   1   0 (   2    0)[‰]
< 6>     131,773       1,358   2   0 (   5    0)[‰]
< 7>     543,305       7,645  11   0 (  17    1)[‰]
< 8>     931,837      17,439  20   1 (  37    3)[‰]
< 9>   2,301,548      65,584  50   7 (  87   10)[‰]
<10>   4,568,361     184,382  99  20 ( 187   30)[‰]
<11>   7,089,423     177,339 154  19 ( 342   50)[‰]
<12>  10,418,679   1,487,498 227 165 ( 569  215)[‰]
<13>   9,891,791   1,330,426 216 147 ( 785  363)[‰]
<14>   3,077,330   1,865,504  67 207 ( 853  571)[‰]
<15>   2,735,389   1,351,040  59 150 ( 912  721)[‰]
<16>   1,211,112     682,517  26  75 ( 939  797)[‰]
<17>   1,367,060     510,159  29  56 ( 969  853)[‰]
<18>     500,498     432,934  10  48 ( 980  901)[‰]
<19>     463,787     354,333  10  39 ( 990  941)[‰]
<20>     173,175     215,695   3  23 ( 993  965)[‰]
<21>     125,086     129,270   2  14 ( 996  979)[‰]
<22>      73,222      78,528   1   8 ( 998  988)[‰]
<23>      37,610      53,571   0   5 ( 999  994)[‰]
<24>      22,883      24,470   0   2 ( 999  997)[‰]
<25>       7,964      15,755   0   1 ( 999  998)[‰]
<26>       5,445       5,366   0   0 ( 999  999)[‰]
<27>       2,128       3,027   0   0 ( 999  999)[‰]
<28>       1,338       1,567   0   0 ( 999  999)[‰]
<29>         433         686   0   0 ( 999  999)[‰]
<30>         271         318   0   0 ( 999  999)[‰]
<31>         107         126   0   0 ( 999  999)[‰]
<32>          53          80   0   0 ( 999  999)[‰]
<33>           8          21   0   0 ( 999  999)[‰]
<34>           6           7   0   0 (1000 1000)[‰]
総数: 45,792,986   8,997,595    探索時間: 27.314[秒]
速度:  1,676,538     329,413
平均探深度 12.33  端深度14.61[手]
分散        5.70      7.26
標準偏差    2.38      2.69

上のデータは、Toledo/4800+を使って平手初手局面を30秒程度(指将棋用のシングルスレッド通常探索で反復深化17回迄)読ませて、「局面を進めた時にインクリメント」と「静的評価関数を呼んだ時にインクリメント[*2]」を、深さ毎に行った結果である。この結果から謎電のleaves/nodes比率は、

・謎電の場合:329,413/1,676,538=約0.20

と、静的評価関数を呼ぶ割合が、CraftyやYSSより低く、特にYSSとは3倍以上も違うのである。これか、これなのか、謎電の序盤がヘロヘロになってる原因は!? てか、評価関数を呼んでいる回数を基準とするのが指将棋の探索速度なの??


すみません、謎電の探索速度は毎秒33万局面くらいでした、ごめんなさい。


[*1] 深さ1のノード数が510になっている。何故こういう数字になるのかと言えば、平手初手の合法手は30手(謎電は1手目と2手目が全幅)で、それを反復深化によって17回繰り返し通ることになる為(30*17=510)である。

[*2] あくまで評価関数を呼んだ純粋な回数で、置換表にヒットして結論値を引用している場合、そのカウントは行ってない。またNullMoveの時も、手番が反転しただけで局面を進めたわけではないのでカウントしてない。

AD

なんか変だ (1)

テーマ:

おかしい。掲示板などでも探索速度の話が時々出てたりするが、謎電の探索速度とえらく差がありすぎる。謎電のノードカウント法はJuniorやFritzのそれと同じだと思う、多分。実際、指将棋での探索速度は、Juniorは勿論Fritzにも勝てない。てか、コンピュータチェスと計算機将棋を比べて探索速度が1桁近くも違うとは思い難いのである。


pn系探索ではカウント法がいろいろあるようだが、私の感覚では「局面を進めた時点でインクリメント」であるし、謎電では詰将棋も指将棋もそのようになっている。因みに、打歩詰を除く合法局面しかカウントしていない(例えば、王手放置や自爆局面はカウントしてない、という意味)。気になるので、再度カウントしている部分のコードを調べなおしてみたがおかしいところはない。謎電って速い方なの? いや、速くしているつもりだけど、差がありすぎてなんか不安になってきた(汗)


【追記 06/03/07 23:30】 さて、DeepJuniorの、あの異常な探索速度は、恐らく次のような理由で叩き出せるのではなかろうか、という結論に達した。

1) 探索処理の要となるコード+データは、全てL1内(64KB+64KB)に収まる大きさしかない

2) 更に、置換表はL2キャッシュサイズほどの大きさ(1MB)しか用意してない

3) そして、涙なしでは語れない探索エンジンの完全アセンブラでの開発、そのデバグ(風の中の昴~)


まさに、軽量化に勝るチューニングなし である。


私の世代なら、苦しくったって/悲しくったって/マシンの前では/平気なの/GPF(一般保護例外)が起きると/胸が弾むわ/アセンブル・リンク・アンドゴー/ワンツーワンツー(オチがミエミエなので省略) つまりは気合insideだ。上記1)は、コンピュータチェスなら可能かもしれない。2)については計算機将棋では効率の犠牲が大きくなる。3)はスポ根過ぎて真似出来ない。というわけで、謎が解けたことにして以後考えないことにする。


【私信 06/03/09 22:30】 小宮日記(2006/03/08) >そういえば、いずれ私もFPGAなんかやってみたいなあとか思ってるんですが、詰め将棋ルーチンだけFPGAで作って、メインのコードから呼び出して並列処理するとかいいかも~とかとか。

ソフト探索と巧く並列化できれば、次の一手(終盤)問題集だと驚異的に正答率が上がると思います。がんばってくださいね。ってか、好敵手現る(笑) で、話は逸れるのですが、


劇指


って巧い表現ですね、「激指」より。劇薬って感じで。いやツッコミじゃなくてマジで。

AD

Junior考 (2)

テーマ:

僅かな時間を使いつつ、Juniorについて更に調べてみた。ちょっと気になる「DeepJuniorの謳い文句 」を見つけることができた(但し、内容はちょっと古い)。これを要約すると、次の様になる。


・マルチプロセッサマシン上で走る世界初の商用チェスプログラム

・デュアルプロセッサにおいては、約1.8倍速く探索する


DualProcessor と DualCore では少々意味が異なるが差はないものとして考えてみる(また、バージョンが異なることも考慮しない)。すると、並列探索効率は1.8/2=0.9となる。従って315/0.9=350で、2.4GHzのAMD64系シングルマシン上で走らせると350万局面/秒を読めると推定でき、1局面あたりのコストは700[clocks]を切ることになる。並列化の効率も非常に高いということも含めて、ますます発狂しそうな数字だ。また、先の記事ではFritz9についての記述もあり、これも少し引用すると、


>Fritz 9 running at 1.6 million positions per second on a 2 GHz Centrino notebook


このことから、2G/160万=1局面あたり1250[clocks]のコストで、これも相当なものである。Centrino[*1]とAMD64系プロセッサではIPC値が異なるが大差があるわけではないことを考えれば、Fritzも気合の入った最適化が行われていると想像できる。しかし、それでもJuniorの方が明らかにブッ跳んでいる。フォーミュラエンジンで喩えるなら、「Fritzは毎分2万回転まで廻るが、Juniorは毎分3万回転以上で廻る」というくらいビョーキ的で常識では考えられない。


余りに信じ難いのでAmirにメイルで訊ねてみようと思ったが、彼のアドレスを調べても判らないので一旦諦めた。もし私の解釈が誤りで「Multi-Dualで(即ちDualCoreのOpteronを複数用いて)毎秒630万局面」ということなら、ChessBaseに抗議のメイルを送りたいところである。日本語でもなく英語でもなく機械語で書いて、だ。しかし本当に事実なら、計算機将棋にも適用できる最適化技術が存在する筈だ、ということで研究を続けてみようと思っている。


全く余談だが、コンピュータチェスの世界で "Deep" の冠をプログラム名に付けている場合、それはマルチプロセッサマシン上で動くことを示す、という慣習があるようだ。


[*1] Centrinoの正体は、Banias(PentiumM)をベースとした3つのチップの組み合わせブランド名である。PenMは、条件分岐予測とL2キャッシュアクセスのレイテンシにおいてはAMD64より優位性がある。Pen4-Mと比べるなら遥かに「買い」であるし、実は本業の方でPenMノート(但し、1.86GHz)を私は使っている。惜しむらくは、動作周波数が低いということ。これが2.6GHzくらいで動いてくれて且つSMP化が可能ならAMD64が危なくなる話になるのだが、そうなったら完全にPen4の息の根が止まるので、Intel的にもそれが仮に可能でも商品化できないジレンマがあるような気がする。

AD

Junior考 (1)

テーマ:

コンピュータ将棋や囲碁の掲示板で非常に興味深い記事が紹介されていたので、少しメモ書き程度の感想を書くことにする。


CHESSBASE NEWS (2005/11/21)


この記事の中で驚異的だと思うのは、HydraではなくJuniorの方で、少し引用すると、


>The Deep Junior screen showing the program running at a blistering 6,300,000 positions per second on a dual core AMD machine located in California


この文から察するに、「AMD製のDualCoreプロセッサ1つを用いて、毎秒630万局面を探索」という解釈になる。これははっきり異常な数字だ。並列探索効率を100%と仮定すればコアあたり毎秒315万局面を探索していることになる。現在のAMDのDualCoreは最高2.4GHz動作で、これをオーバクロックせずに定格で用いているものと仮定すると、1局面あたり約760[clocks]のコストとなる。因みに謎電の場合は(指将棋の序盤時、且つシングルで)1700[clocks]前後なのだが、これと比べれば倍以上速いことになり、正直ぶっタマゲた。勿論チェスと将棋では色々な点で異なるのだが、今の謎電をどう改良してもこんな数字を達成することは不可能に思う。


既に掲示板でも書いたことの繰り返しになってしまうが、「FPGAを用いたハード探索で500万局面/秒/coreのHydraより、ソフト探索でOver600万局面/秒/processor(但しDualCore)のJuniorの方が、単位時間あたりの探索量としては上回る」というデータを示めされてしまうと、ソフト探索の限界がいったいどこにあるのかますます判らなくなる。どういうアルゴリズムとデータ構造(あるいはコーディング)なのか見当がつかない[*1]が、工夫次第でそういう数字が叩き出せるということだし、まだまだ謎電は激甘いということである。いや、それよりFPGAを使うことの意味が全くないというような話になりかねないということだ。


[*1] まさか、置換表をコア毎に独立させて登録/引用している、などというような探索の重複を考慮せずに(つまりは探索効率を落としてまで)探索レートを上げているわけではないと思う。もしそうなら語るに値しない話になる。余談だが、例えば謎電の場合、置換表を外して詰探索を行うとBarton/3000+ですらOver200万局面/秒で探索する。FX57なら300万を超えるだろう。しかし意味が全くなく、探索効率は一気に悪化する。

機械仕掛けの将棋指し

テーマ:

一般に良く知られているのは、こっちの「機械仕掛けの将棋指し 」ではないかと思う。このフレーズが個人的に気にいってたので、念の為 Google で調べてみたらもう一つあった。今まで全然気付かなかったが、こっちの方が初々しくて断然面白い。


機械仕掛けの将棋指し


この中の次の文章は興味深い。


「柿木義一さんは普通の会社に勤めるかたわら趣味で将棋プログラムを作っている人で、

身分としては私と同じアマチュアである。」


そういえば、そういう時代があったんですね。更に、


「これから先は理想論、いわば私の大ボラと聞き流してもらってかまわない。
8年後。これを読んでいるあなた、もしあなたがプロでない限り、あなたはコンピュータに破れます。」


なるほど、確かに。最先端的な話ではなくなるが、予測というよりそういう理想や哲学が、既にその時代からあったからこそ今があるわけで、約12年?前の話として非常に楽しめた。


「ちなみに今の夢はさらにずうずうしくなって名人をぶっ倒すことになってはいるが。」


そこまでは未だ考えてないんですが、それよりなにより先ずSPEARを直接対決でブッ倒さないと。次回選手権の目標は、そのあたりにしたい[*1]と思います。


[*1] と思いつつ、既にかれこれ10年ですよ、10年!!(泣)

謎電は、読み落としなく読むことを目指していた。飽くまで目指しているだけで、全幅探索というわけではない。元々終盤局面解析が目的であったので、読み落としがあるとその意味をなさなくなるからである。しかしながら、指将棋で強さ(勝敗)を競うとなると、そういうわけにもいかなくなる。


現在の謎電の指将棋探索は、根局面とその直下の子局面のみ全幅ではあるが、その先は静止探索に入る手前まで全合法手の約半分程度の幅、静止探索では敵駒を取る手と自駒が成る手は基本的に(条件付きで)それらの手が無くなるまで読んでいるし、王手が掛かっている時は絶対的な1手延長を行っている。


しかしながら、どうもそういった「妥協なしの読み」が探索効率を悪化させているようである。オーダリング次第ではまだまだ改善できるとは思うのだが、恐らくトップクラスのプログラムと比べて探索幅で2倍近く違う筈で、以前書いたように、激指やYSSと比べて高速化に対する棋力向上の度合が相対的に低いのは、このあたりが主原因だと考えている。


「では何が強いプログラムとそうでないプログラムを分けているのだろうか?
・・・(中略)・・・ つまり将棋プログラムでは、
『探索範囲の制御』と『評価関数の設計』が強さの大きな鍵となる」[*1]


これはもう、全くその通りだ、とつくづく思う。「強いソフトは枝刈が巧い」と名文句を言ってたのは備後将棋の恩本さんだが、読む必要のない手を如何に刈るかの技術の差の棋力への影響は相当なものだと思う。マシンの性能が2倍違うとか4倍違うなんてのは微々たるもので、オーダリングも同じで読み落としが起きないことを前提とするなら、読む幅が違えば深く読む程、そのコスト差は複利計算的に姿を表すことになる筈だからだ。


多分、激指が10手先を読んでいる時に、謎電は7手先を読んでいる最中、という程度だと思う。謎電が10手先を読み始める頃には、恐らく激指は14手先は読んでいるだろう。となれば、持時間の長い将棋ほどその棋力差は広がる一方だ。更には、局面評価関数を含めて静止探索から得る探索値の精度も棋力に影響するわけだから、R換算で1000点以上の差になっても全く不思議でもなんでもないことになる。


R差1000点以上というのは途方に暮れてしまいそうな、というより絶望的といっても良いほどの棋力差で、二枚落の手合でも良い勝負になるかどうか疑問な差だが、柿木師匠に「激指を目標にしなさい」と言われたことでもあるし[*2]、そういうわけでR2500を目標にして、『探索範囲の制御』と『評価関数の設計』を再度一から作り直す覚悟でやりますので、鶴岡さん以下計算機将棋開発者の皆さん、よろしくお願いします...って、どこまで本気か疑わしい締め文句になってしまった今回のコラムである。

-- 完 --


[*1] IPSJ Magazine Vol.46 No.7 July 2005 p.818 (CSA資料集2005 p.32)より引用。

[*2] この時、柿木さんは酔ってたからなあ。社交辞令だよなあ。酔ってても死角なし。恐るべし柿木師匠!!

#社交辞令:世間付き合いを円滑にする為に用いる文句。

謎電の思考エンジンは、基本的にショートストローク高回転志向である。動力のメカ的な摩擦損失に相当するオーバヘッドを極力減らし、明らかに無駄な処理を完全に省き、部品レベルの研磨においては十二分に施し、Barton/3000+でも毎秒Over100万局面を達成出来ている。しかし、それでもSPEARに勝てない。何故か?


「以前は部分的にアセンブリ言語で書かれたプログラムも存在したが、

現在ではさすがにそこまでしているプログラムはほとんどない」[*1]


すみません、謎電はインラインアセンブラ、バリバリ使ってます(汗) ただでさえ少ない開発持時間を、そういうところのデバグで費やしてしまっていること自体が、開発者最大の悪手で、はっきり敗着ですか。


「もう1つの理由は、量が質にダイレクトに結びつくという性質である」[*2]


これをエンジンに例えるなら、質がトルク、量が(単位時間あたりの)回転数に相当する。出力[W]=2π×トルク[N・m]×回転数[rpm]÷60[*3]だが、謎電の場合、トルクが非常に細く回転数を上げても殆ど棋力を搾り出せていないことが判っている。


「激指ではそのような問題を避けるために、序盤・中盤・終盤であるかの判定は

1つの連続的な数値で行うようにしている」[*4]


トルクが出ない直接的な原因は、低負荷高回転~高負荷低回転のほぼ中間あたりのバルブの開閉タイミングが合ってない上に、無段階バルブタイミングではないことが挙げられる。次回選手権までには、各回転数と負荷に合わせて最適なバルブタイミングを自己調整できるように改造を施そうと思っている。

と、こう書くと何の話なのか訳が判らないので要約すると、結局「進行度に合わせた局面評価が行われていない拙さ」が問題であるということだ。特に序盤でも終盤でもない、中盤の評価がおもいきし変になっていることが最近判った。中盤でありながら序盤とみたり、逆に終盤と見たりすることが、相当高い確率で起きている。勿論序盤そのものに関しても相変わらず課題は多いのだが、前回よりは多少時間を掛けて改善しようと思う。

-- 続く --


[*1] IPSJ Magazine Vol.46 No.7 July 2005 p.821 (CSA資料集2005 p.35)から引用。

[*2] IPSJ Magazine Vol.46 No.7 July 2005 p.822 (CSA資料集2005 p.36)から引用。

[*3] 因みに、8,000rpmの時に10kgf・m(98N・m)のトルクを出している時が最高出力となるエンジンは、2π*98*8000/60≒82,100[W]で、1[ps](仏馬力)は735.5[W]であるから、約111.6[ps]となる。

[*4] IPSJ Magazine Vol.46 No.7 July 2005 p.820 (CSA資料集2005 p.34)から引用。

セルフプレイテストってのはあまりアテにならんことは、昔からよく知られていたことで、謎電同士の対局でも配分時間を4倍変えて(例えば、1手5秒と20秒)対局させると、全くお話にならないくらい勝率に差が出るわけです、この場合1:9位。なので、探索速度(レート)を単に上げる改造を施すだけで、なんだか明らかに強くなった気がするわけですが、実際にはそれほど強くなってるわけじゃないんですね。


「3倍の高速化によってレーティングで約100点上昇というのが筆者の個人的な見積りである」[*1]


ここでは山下さんの実験結果の引用もありますが、謎電的には約4倍で+100点(非セルフプレイ)という結果で、これは謎電の探索効率が激指やYSSより悪いことを示している気もします。探索効率が良いプログラム程、高速化による棋力向上は大きい筈。具体的には探索する手の刈り方(探索幅)や、そのオーダリングあたりの善し悪しがモロに出るのではないかと。

さて、計算機将棋開発者として長年(笑)やってきて、ここまでチビシーことを言われたのは初めてである。


「弱いものをいくら速くしても弱いままだ」[*2]


ええ、そうですよ、そうですとも。でもね、でもね~、人の心の傷口にワサビを塗りつけるようなこと言って楽しいですかっ?ええ?? と、思わず開き直る謎電の作者。

いやー、かなり痛いところを突かれましたね。正論で返す言葉がないですね。実際謎電は24のRで1400位なんですけどね、16倍速く出来て+200強くなったとしてもR1600、256倍でもR1800という計算になりますからね。もっと根本的本質的な改善が必要なことは判ってるんです、もー余計なお世話ですよ(泣)

ほ~んと、そのあたりどうにかしないとハード探索やったところで高々知れているわけで。具体的には謎電がソフト探索のままで、最低でもR2200位に達し、且つ10倍の高速化で+200点上昇するくらいまでにならないと、FPGA使う気にもならないわけですね。それでも100倍速く出来てR2600ですが。

-- 続く --


[*1] IPSJ Magazine Vol.46 No.7 July 2005 p.822 (CSA資料集2005 p.36)から引用。

[*2] IPSJ Magazine Vol.46 No.7 July 2005 p.815 (CSA資料集2005 p.29)から引用。

将棋倶楽部24の名簿 からデータを得て、24のレイティングの妥当性を考察してみた。まず、各段級位毎の純ユーザ数、および100局以上の対局実績のあるユーザ数を調べた。100局以上としたのは、それくらいの対局数を最低こなせば、R値が真の値にほぼ収束すると思われるからだ。また、そのユーザ数をそのままグラフ化するとまともな図にならず問題があるので、100局以上のユーザ数÷R幅で正規化してみることにした。これは「段級位」のR幅が不均等なので、それを均等化するために行った。微妙な問題はあるが、「特別」は暫定的にR幅200とした。なお、本調査を行った日時は、'05年8月5日の7:00am頃である。


棋力     R範囲    R幅 ユーザ数 100局以上    正規化  構成率[%]
初心      -  49      50   11,999        50     1.000  0.0899
15級    50- 149     100    9,380       290     2.900  0.5219
14級   150- 249     100    8,540     2,817    28.170  5.0698
13級   250- 349     100    8,052     3,272    32.720  5.8887
12級   350- 449     100    8,097     3,265    32.650  5.8761
11級   450- 549     100    9,311     2,981    29.810  5.3649
10級   550- 649     100   28,957     3,510    35.100  6.3170
9級   650- 749     100    7,881     3,460    34.600  6.2270
8級   750- 849     100    8,158     3,359    33.590  6.0452
7級   850- 949     100    7,452     3,089    30.890  5.5593
6級   950-1049     100    6,379     2,681    26.810  4.8250
5級  1050-1149     100    9,389     2,991    29.910  5.3829
4級  1150-1249     100    5,982     2,716    27.160  4.8880
3級  1250-1349     100    7,251     2,742    27.420  4.9348
2級  1350-1449     100    5,377     2,411    24.110  4.3391
1級  1450-1549     100    5,327     2,107    21.070  3.7920
初段  1550-1699     150    8,745     3,288    21.920  5.9175
二段  1700-1899     200    6,813     3,675    18.375  6.6139
三段  1900-2099     200    5,495     2,938    14.690  5.2875
四段  2100-2299     200    4,151     2,064    10.320  3.7146
五段  2300-2449     150    2,586     1,019     6.793  1.8339
六段  2450-2799     350      987       805     2.300  1.4487
特別  2800-         200       36        34     0.170  0.0611
                   合計  176,345    55,564

左図が、その正規化した値を用いて作成したグラフである。本来なら正規分布曲線に近い形になる筈なのだが、大量に低い方にシフトしている。

対局数を考慮しない純ユーザ数を見れば、10級ユーザが突出しているが、これは恐らく初期登録時に「10級」で登録する者が極端に多いからだと思われる。次に多いのが「初心」や「初段」で、これも微妙に多過ぎる。特に目立つのは、「10級」や「初心」、「初段」の純ユーザ数が多い割に100局以上対局している者は少なく、また全体的に見れば1/3以下という事実である。


この不思議な偏りを説明する為に補助的な曲線を入れてみたものが左図だ。黒が本来の正規分布、赤が「初段登録集団」、青が「10級登録集団」、黄色が「初心登録集団」の予測した分布を意味する。100局以上対局しても、正当ではないサンプルが異常に多い為に、コロニーを形成して全体の分布に大きく影響しているのではないかと思われる。

これを見て思うのは、実力以上の段位で登録している者は少ないと言えば少ないが、逆に実力以下で登録する者が極めて多く、10級前後の級位は、むしろ激戦区になってしまっているということだ。実際に実力があれば対局をこなしていくうちにレイティングが上がっていく筈だが、大袈裟に言えば「初段の実力はあろうかというような10級前後のユーザ同士で星を潰しあって、なかなか上れない」という現象が起きているのではないかと推測できる。


さて、計算機将棋開発者が、自作のプログラムの棋力を測る為に将棋倶楽部24を利用していることは既によく知られていることで、そこでのR値が「事実上の標準」となりつつある。しかしながらそれはあまくまで「将棋倶楽部24での指標」と考えた方が良さそうだ。これをそのままFIDEのperformance ratingと等しく扱って(R値を)比較しても意味がないとはっきり言えそうである。例えば「カスパロフ級の棋力を持つユーザが、17.6万人の中に30名以上も居る」などというのは現実的とは言い難いからだ。

超大型新人降臨 - Bonanza

テーマ:

既に殆どの選手権参戦者がご存知だと思われる。作者は選手権は未参加、即ちデビュー前だが、突出した才能の持ち主であることは誰もが認めるところではないかと思われるので、私ごときが論評を述べる次元ではないような気もするのだが、Bonanza[*0]の感想を書きたいと思う。


何と言っても思考部の完成度の高さに驚かされる。とても2年やそこらで作れたプログラムとは思えない。基本的に思考部に殆ど全ての開発工数を掛けられているからだと思われるが、だとしても足掛け2年、しかも片手間で作れるレベルではないように感じる。


私は、「後頭部を鈍器で殴られたような衝撃を感じた」という台詞をよく使うのだが、このプログラムには、「後頭部を7尺[*1]の将棋盤の形をしたパソコンで殴られた感じ」がした。特に驚いたのは序盤力である。プログラムが指しているとは思えない程、実に多種多彩で、ほぼオールラウンドの戦形でこれだけ強いプログラムが作れるというのが実に不思議に感じている。相手の戦形に関係なく我が道を行く、というところもあるような気はするので、一言でいえば、「完成されていて、且つあまりにも未完成」なのだが、知らない形にずりずりと引きずり込まれるので、短い持時間では、正着を発見出来ない。仮にプログラム側が悪手を指していたとしても、完全に咎めきれない。咎めに行こうとすると、逆にこっちが激悪手を指してしまうのである。


さて、(互いに)5秒将棋でこのプログラムと互角以上で戦える人間がいるのなら、それは専門棋士かビョーキ的アマではないだろうか、という気がする。因みに私[*2]は1000局ほど指してみて、数局しか勝てなかった。というより、勝つまでやってたから、やっと勝てたという感じだ[*3]


とにかく、ぶっタマゲた。どエライ新人が現れたものだ。是非選手権に参戦して頂きたいと思っている。次回まで、あと11ヵ月という天文学的将来[*4]の話になるが、その間に終盤力を強化(特に頓必至対策)して来られるとなれば、デビュー即決勝進出どころか、優勝にまで絡んでくる勢いで、はっきり「末恐ろしい」と私は感じたのだった。


[*0] bo-nan-za とは、米語スラングで、大当たり、大儲け、あるいはその種の意味の名詞。

[*1] 7尺であって7寸ではない。それくらい意表を突かれた。

[*2] あくまで、「私自身」であって「謎電」ではない。恐らく今の謎電では序盤でオワる。

[*3] 実は、勝つまでやってたので、本ブログの更新ができなかったのだ

[*4] どれくらい天文学的かといえば、11ヵ月を334日とした時、約2.886×1016ナノ秒である。