没になったコラム (2)

テーマ:
現在、UWXGAを縦に使って謎電を開発してます。後ろに見えるのはVS6。デバグが非常にやりやすくなったんですが、首がえらく痛いんですけど。
AD

没になったコラム (1)

テーマ:

どっちも専守防衛の図。


海上警備行動(子供のニュースウイークリー)


角を動かしているだけで使えないってのが、なんつーかアレですね。この戦法を、某北挑戦相手に使うのはちょっとナニです。Harpoonは撃ち落とせても、Taepodong撃ち落とせなかったらシャレにならん。角換わり将棋も含めて、できれば自粛したいところ。


【追記】そいえば謎電は、初対局で角を切って金を取った。謎電の作者は、その時の心境を次のように述べています。


「あんときゃ生きた心地がしなかった(汗)」

このことは、選手権参加者には秘密だ。


指将棋(通常)探索だけなら大きな問題はないのだが、そこから呼び出す詰探索関数のアーキテクチャが根本的におかしいので作り変えなければならない状態になってしまっている。要はマルチスレッドを意識した関数になってないのが問題。TLSを用意すれば済むというレベルではなく、スレッド毎に完全に独立した専用の詰探索関数を用意して呼び出すことにしないと拙そうなのである。


その昔、Pen2/300MHz×2(クロックアップして375MHz×2)under WindowsNT4.0でSP3の頃に実験的に動かしていた時は、詰探索を通常探索から呼び出さなかったし、その上置換表自体実装してなかった。ぶっちゃけ根局面の手を分散・並列化するという単純な手法で、これだと効率は平方根程度しか稼げない。そんなことは、今や猿でも猫でも兎ですらも常識として知っているとか知らないとか。このあたりの改良作業も未だ残っているのだ。


そういう理由でライエル問題集のベンチが取れない。今月中にライエルに対して一泡吹かせてやる更にプレッシャ~を掛けるつもりだったのだが。3月下旬はケツカッチン[*1]で何も出来なくなるので、並列探索の完成は4月以降になりそうである。


再度繰り返すが、このことは絶対内緒だ(爆) なお、このアーティクルは自動的に消滅する。


[*1] 既に古い業界用語らしいので解説する。一言で言えば「絶対納期」という意味である。

専門棋士 v.s. 計算機棋士

テーマ:

世間で話題になっているらしく、先ほど米長邦雄ホームページの「まじめな私」の中にある「コンピュータ将棋とプロ棋士」の項を読んでみたのだが…。以下、個人的感想を独り言として述べる。


○将棋というゲームの難解さ

「チェス、象棋、囲碁との比較をしてもらう」のなら、探索の難易度という意味では囲碁が頂点。(一般的な)チェス系ゲームの範囲の中なら、日本の将棋が世界一難解であるとは思う。


○次には予算です

国から研究費を貰わねばならないような国家プロジェクトではない。はっきり言って、国から金を引き出そうとする事業にロクなものはない。それこそ税金の無駄遣い。国の借金をこれ以上増やさないように。飽くまで興行[*1]なのだから、スポンサから賞金が出る、という程度で充分。


○いよいよ本番です
日本中、世界中の科学技術を相手にする、というのは大袈裟。我々は核融合炉の開発をやっているわけではない。また、20年間で100億円くらいというのは、あまりにも皮算用。対局場を東京ドームにして10万人呼ぶのなら、1局1億円というのは的を得た数字にはなるが、竜王・名人相手でもそれだけの観客を動員するのは難しい。TVの放映権で1億円ならボリ過ぎ。付け加えて、これから20年間、つまりは2025年まで専門棋士側が勝ち続けるというのは、見積もりが甘過ぎる。トップクラスの開発者が本気で取り組めば、あと5年。ノンビリやってても10年。技術の進歩とはそういうもの。10年前と今の計算機将棋の棋譜を並べて比べれば判ること。


それよりなにより先ずは、専門棋士トップバッター神吉、解説内藤、実況古館、でお願いします(笑)


[*1] 誤解を招きかねない表現なので補足する。人間同士、あるいは計算機同士の将棋はスポーツと同様、競技といえるが、人間と計算機の対局は、純粋にショウorイベントだ、という意味である。一言でいえば、異種格闘技戦とさほど変わらない。特に盤外のルール(例えば持時間等)で、万人が(あるいは当事者がお互いに)フェアだと納得出来る規定を作るのは殆ど不可能だからだ。Kasparov-DeepBlue戦で揉めた筈だが、終盤DBをDeepBlueは使えたが、Kasparovに使うことを許さないルールがフェアかどうか、といった類の問題も出てくる。これは一例に過ぎず、どうやってもアンフェアな部分を排除できないのである。2日制の将棋では夜中にコンピュータの電源を切ってくれという話が出れば、ならば1日制でなければフェアじゃない話になるようなこと。キリがないので、以下省略。
(追補) そういえば例のETV特集の中で、柿木さんが「NHK杯にコンピュータ将棋枠を」という、画期的な提案をされていたのを思い出した。アレが編集でカットされず放送されていたということはあり得ない話ではないってことだ。柿木企画、今なら軽く+10%の視聴率をかせげますぜ。天下のNHKの底力を見せて頂きたい。

CSA資料集 2005

テーマ:

今日(正確には昨日の夕方)CSAから資料集が届いた。ので目を通していたら、こういう時間になってしまった。そこにある学会誌・新聞記事の殆ど全部を読んでなかったので、こういう資料集は結構重宝な気がするし、コレだけでCSA会費のモトを取ったような気がするから不思議だ。何と言っても(激指の開発メンバのひとりである)鶴岡さんの書かれた記事は、的確・明瞭・簡潔な上に平易で説得力もある文章には毎度のことながら感心してしまう。いろいろ面白いネタが転がっているので、これから一時期は、そのあたり私なりに感じるところを散文詩的に書こうと思う。

冗長手順検出

テーマ:

以前、持駒の優劣関係判定(2)のコメント(但し話の筋は異なる)で書いたのだが、置換表を用いて冗長手順の検出(判定)を探索中に行うことも可能だと思われる。但し、謎電では実装していないし、実装法についてはいろいろ考えられるので、特に解説はしない。


例えば左図から、▲24歩▽同歩▲同飛▽23歩▲25飛が探索上の最善手順なら、最初の4手は冗長なだけで単に▲25飛と指すのと同じである。この冗長な手順について厳密な議論を行うとなれば、相当複雑な話になり「局面が同じだからと言っても無駄とは限らない」となるのだが、検出の手法と、検出した場合の対処は別問題として扱うことになるので、ここでは「この冗長手順に意味があるとしたら、どのような意味があり得るか」を、計数将棋学的に考えてみることにする[*1]


なお、もう一つの冗長手順の例を挙げれば、計算機的攻方最短手順の意義 で採り上げた詰物(左側の方)のように、▲82同竜▽同玉(強制手)と▲81竜▽93玉(強制手)▲82竜▽同玉(強制手)が同一局面となるわけで、後者が2手冗長な手順になっていることについても、工夫すれば同様に検出可能と思われる。


話を戻して上図だが、先手計算機、後手人間であるとしよう。先手が単に▲25飛と指したのであれば、後手は冷静に隠れた狙いを見破って悪手は指さないのではないかと思われる。しかしながら、▲24歩▽同歩▲同飛▽23歩▲25飛などとトリッキーな飛車の動きを見せられて、後手が沈着冷静に応接することが出来るだろうか。

名人に定跡なし、計算機将棋に常識なし。十字飛車の歩と呼ばれる手筋があるが、この場合は「スイッチバック飛車の歩」と呼べるかも知れない。加藤治郎名誉九段著「将棋は歩から」全3巻の中の何処にも解説されていない、このアバンギャルドな歩の手筋は、人間の心理の隙を見事に突き得るのではないかと思えてならない。


さて、先の手順で5手進めて左図だが、このような訳のよく判らない手を指されると、「手順の意味」を考えてしまうのが人情というものだろう。その意味とは、「先手は34の歩をカスメ取ろうと思ったが、取れないことに気が付いて25の地点に引き、飛車の横利きで55の争点を受けた」。


大筋間違ってはいないのだが、そこで思考を止めると油断が生じる。先手は、34の歩を只取り出来ないことを途中で気が付いた程度の棋力、と侮ったところに、この局面で後手最大の失着が出る直接の原因になったのではないかと思われる。


恐らく、「飛車の横利きで受けようなんてのは、、、ふっ、まだまだ将棋というものが判ってねぇな。いいか、将棋とは、こお指すんじゃあぁ」と心の中で叫びながら駒音高く▽62銀。「さあ、どう指す?」と言わんばかりに計算機に対して鋭い睨みを浴びせてくる後手。


当然先手、すかさず▲85飛(左図)。無論後手、一気に戦意喪失アーンド投了。NHK杯全国放送でこんな投了になった日には、放心状態どころか、数日立ち直れず寝込んでしまいそうである。この後手の悪手を引き出した冗長手順は、探索速度に長けながらも、棋理というものを全然理解していない計算機将棋だからこそ実現できた、非常に高次元な低級手筋と言える。


因みに謎電は、こういう冗長な手順をあまり指さないようにはなっている(100%排除できるわけではない)のだが、それは根ノードで探索する手のオーダに工夫を加えているだけの話でしかない。但し最近、そのような安直なやり方だと弊害があることが判った。結局お奨めできる手法ではないので詳しくは省略するが、この場合、簡単に言えば「先に相手に駒を渡す手に僅かなペナルティを与える」というものである。そういうことをやると、攻める手を好んで指さなくなってしまうのが問題となるわけだ。


[*1] 本ブログは、飽くまでアカデミックなジョークの追及が本筋である。 ので、過大な期待は禁物だ。

謎的思考ログと時間配分

テーマ:

IS将棋の棚瀬さんの所のブログを読んで、今思い出した。

既に気が付かれた方がいらっしゃるかも知れないが、今回の謎電の棋譜提出で、CSA棋譜形式とは別に謎電のネイティブな棋譜形式を実験的に含めてみた。二次予選の謎電のフォルダ(NAZOTEKI)の中の [.ndk] という拡張子が付いたファイルがそれだ。この中には謎電の思考記録の明細が入っている。メモ帳などのテキストエディタで見ることが出来るので、ご興味がありましたらご覧ください。謎電の時間配分の計算法がどのようになっているか、その詳細についてはご想像にお任せしたいと思う[*1]


(矢埜将棋戦から抜粋[*2])
--
●思考開始時刻:2005/05/04(水) 19:03:07.078(JST)
 <Proc:AuthenticAMD(f7a) 2,603MHz [Optimized for (Old)Athlon + 3DNow!] Mem:1024+256+256[MB] >
・自残:     208.000[秒]/相残:     188.000[秒]/終局予想残手数:  6[手]
・自消費率:     811[‰]/相消費率:     824[‰]/消費差率:+13[‰] (互角)
・静的配分:  23.750( 1)/動的配分:  60.000( 5)/特殊配分:  38.132( 5)
・相対配分:  60.000( 3)/絶対配分:  34.666( 8)/総合配分:  44.169(22)
第 130手思考  着手配分時間:  43.800[秒]  現評価値:+1290 (▽後手勝勢)
・進行度:119 (静止探索制限:24,詰探索制限:12)
・最大制限時間:  59.800[秒]  標準配分時間:  43.800[秒]  最小制限時間:   9.800[秒]
・即詰解図:  0.506[秒]/上限:  4.380[秒] (探索深度:39,探索手数:   932,433)
…
--

[*1] というよりあまりに複雑で、もはや自分でも訳が判らなくなっている。 それだけ時間配分というのは難しく、説明が困難なものなのである。

[*2] なお、矢埜将棋戦での時間使用状況は次のようになっていた。赤が矢埜将棋側消費時間、青が謎電側消費時間、緑はその差分。また、白は形勢(その局面の静止探索値)を示している(図をクリックするとやや拡大します)。

タキオンの寄せ

テーマ:

無断転載禁止となっているので「光速ノート70」 [*1]へリンクを貼り、図面も省く。

さて、解説では136手目▽76桂でピッタリ必至とある。谷川・羽生・森内的にはこれで必至だと思われるが、その局面では殆どの将棋プログラムが▲68歩と指すと思う[*2]。そこからどのように必至をかけるのかがブッ飛んでいるので、ここで簡単にフォロしたいと思う。


具体的には、以下▽39竜▲49歩▽87桂▲69玉▽88桂成▲59玉▽79桂成まで。この7手の手順を省いて「ピッタリ」と表現するところがプロの恐ろしいところだ。実際、必至上がりの局面で、詰ますための金1枚を除けば歩以外の駒が余らないのである。


[*1] もしかすると近い将来URLが変化するかもしれないので注意。

[*2] 断言はしないが、人間でもそうなのではないだろうか。 


(追補) なお、135手目に▲56歩と角を取れば、▽87桂▲89玉▽99桂成▲同玉▽97香▲98銀▽78とまで必至。そこで▲97銀なら、▽87桂▲98玉▽99金▲87玉▽77金までの詰。