第18回世界コンピュータ将棋選手権出場記

■はじまりから直前まで プログラムの話

 いきなり情けない話で恐縮だが、今回、実はかなり気合を入れていた。
 なんだか前後がつながっていない文章だが、しばらくお付き合い願いたい。

 前回の選手権は、様子見というか雰囲気を楽しむというか、まぁ参加することが大事だよねというスタンスで臨んだ。しかし、今年はもう様子見でもないし本気で勝ちに行こうと考えていた。本気の証拠というわけではないが11月頃にはデスクトップPCを新調。CPUはCore 2 Quad E6600、メモリは4GB、OSはWindowsXPx64と、これならそう恥ずかしくないスペックだろう。
 年明け前にはデータ構造を変更して、駒番号制のものとした。れさぴょんは盤を中心とするデータ構造になっているので、たとえば金銀の位置関係を評価する場合にも盤面をひとつずつ探してその駒が金銀かどうかを見る、というようなことをしている。これだと評価することが多い場合、極端な話そのたんびに81回のループでif文をこなしていくことになる。非常に非効率的だ。駒番号制であれば、最初から金はどれ、と決まっているのでそんな探し方をする必要はない。4枚の金が先手のものか後手のものかを調べるだけなので、4回のループで済む。
 さらに、今回は「データ量は増えてもいいから探索のときに困らないようにしよう」というテーマのデータ構造にしたので、先手と後手それぞれが40枚の駒を持てる形にした。なので、白砂将棋では「その駒の所有者が先手か後手か」を調べる必要がない。「先手の金」を調べたければSKI[4]の中を調べればそれでいい、という形式である。

 データ量が多くなったので、局面の更新の方法も変更した。れさぴょんでは1手読むときはKyokumenをコピーして使用していたが、MoveとRemoveで局面を更新するようにした。「れさぴょん for Java」がこの形式なのかな。実際のところ「れさぴょん」よりわずかながら処理が遅くなっていたのだが(泣)、今後評価ルーチンをいろいろと盛り込んでいくにしたがってこの効果は出る、と信じてこの形式で行くことにした。

 年が明けてから並列化に手を出したのだが、なかなかうまくいかなかった。
 仕事もいろいろと忙しくなってきて、それでもちょこちょことは製作していた。まぁあと1ヶ月あるし、なんとかなるかなぁ……と思っていた3月末。

職場異動が決定orz

 新しい職場は、通勤時間が倍増、始業時間も30分早い、ということで、朝が1時間早くなった。
 加えて今までやったことのないような仕事が多く(お役所にいながらそれまで書類業務をほとんどしてこなくて済んだ、というのがそもそも奇跡に近いんだけど(笑))、体力的にも精神的にも非常に疲弊した。4月半ばには風邪で倒れ(4/8でしたっけ? あの春の嵐のせいです)、結局一週間を棒に振った。

 と、いうわけで……。

 今回、実はかなり気合を入れていた。
 しかし、「れさぴょん」から「白砂将棋」への脱却をしたところで、開発は停止。機能的なレベルではれさぴょん並(というか実際は前述の速度低下があるのでれさぴょん以下)のままで止まってしまった。

 情けない話で恐縮だが。

■はじまりから直前まで プログラムの以外の話

 昨年は電車バスを乗り継いでかずさアークへ行ったのだが、さすがに疲れた。神奈川県からの参戦で、しかもノートPCしか持っていかないくせになに言ってやがると憤慨する地方参戦の方も多いと思うが、ラクをしたいのは人間の性である(<そうなのか?)。
 と、いうわけで、今年は車で行くことにした。

 とはいっても、車を持っていない白砂である。車を使うとなったらレンタカーしかない。
 幸い、職場の福利厚生のシステムで「ワンデイクーポン」という1日券があり、これを使うと若干ながらレンタル料金が安くなる。以前から何度か利用していたクーポンだが、今回も利用させてもらうことにした。
 その代わり、宿泊先を昨年のオークラアカデミアパークホテルではなく、木更津駅近くの「グランパークホテル エクセル 木更津」に変更した。クーポンを使ったといってもレンタル料>電車代なので、少しでも節約しようという魂胆である。

 おおざっぱなタイムスケジュールとしては、前日の午後に休みを取って、車でホテルまで行ってまず一泊。そのあと1次予選を戦い、疲れた体を引きずって部屋に帰ってもう一泊。1次予選に勝っても負けても2泊までの予定だった。一見すると強行軍だが、1次予選を突破できなければごく普通の日程だし、そもそも5/5が休日出勤になってしまったので5/4には帰らなければならなかったという事情もあった。
 参加費用の面から見ると、交通費が増えた分宿泊費が浮いた感じで、まぁ去年とトントンといったところだろうか。

 金銭面からはトントンであるが、移動が車のため、移動の自由度がまったく違う。
 PCはデカいのでも問題ないし、荷物だっていくらでも積める。食事もコンビニで済ませた去年よりはマシなものになるだろう。
 しかし、前述のとおりほとんど開発は止まってしまっていたので、参加PCは去年使用したノートPC(DELL Inspiron 6400)をそのまま使用することにした。どうせ並列化をしてない以上E6600のパワーが火を噴くことはないし、であればT7200でもさしてパワーに違いはないだろう。メモリも2GBあるから十分だ。そんなに使いきれるほど高度なプログラムはしていない(泣)。

 いろいろと書いたが、実際のところ、職場異動があったせいでモチベーションは非常に低く、かつ風邪をひいたせいもあってバタバタと前日まで来てしまった。
 出場するかどうかも、実は4/29までわからなかった。この休みでとりあえずの格好をつけた感じで、ようやっと動くものができた、という感じだった。
 何度も書いてしまって申し訳ないが、情けない話である。

■選手権開始直前まで

 昨年と同じく、5/2は半日だけ休暇を取った。
 当初の皮算用は、「職場へは自転車で通勤し、そこから直接レンタカーを借り、そのまま家に帰る」というものだったのだが、残念ながら神奈川県は雨。仕方なく職場からバスで移動し、レンタカーを借りてきた。
 神奈川から千葉だし3時間くらいかかるかなぁ……と予想したので、ちょっとだけ家で休んですぐに出発。昼食はコンビニサンドイッチを運転しながら食べた。ところが。
 カーナビを操作してホテルを目的地に設定すると……

予定所要時間1時間半

 サーバ接続テスト開始時間の17:20よりはるかに早く着いてしまう。
 ゆっくりメシ喰ってから出発すればよかった……orz。

 ゴールデンウィーク前日だというのに、まったく渋滞することなくホテルまでたどり着くことができた。途中で休憩したうみほたるですらノンストップである。怖いくらい順調だ。
 結局、チェックインは15:00ちょっとすぎ。時間がずいぶんと余ってしまった。



 ホテルの部屋(ツイン)はそこそこ広く、インターネットも全室完備されていた。バストイレはさすがにビジネスホテルを感じさせたが、これくらいなら問題ない。
 サーバ接続テストの開始時間まで間があるので、早速ノートPCを出して作業にかかった。定跡ファイルを改めて組み直そうと思って、白砂の実戦譜を持ってきていたのだ。実戦譜を並べて悪手を修正しながらファイルを作っていく地味ーな作業だが、7七桂戦法にしても3二金戦法にしても、形を知らないと指せない戦法なのでこれを欠かすわけには行かない。
 なんやかんやで1時間以上は作業していただろうか。とりあえず一段落をつけたところでいったん手を止め、会場であるかずさアークに向かった。

 途中、今夜のプログラミングに向けて夜食や飲物を買うためにコンビニに寄ったりしたが、それを含めても20分ほどで着いた。道が空いているせいか近く感じた。もっとも、雨のせいで周りは5時すぎなのに真っ暗で、おまけに路面も光るから非常に運転しづらかった。初めて通る道で、道路も狭いからかなり怖い。

 会場へ入ると、数えるほどしか人がいなかった。さすがに早すぎたらしい(笑)。
 サーバ通信テスト、ということで、まずは自分同士の対局をやってみる。これで対局ができたらとりあえず通信周りは問題ないことが確認できる。
 というわけで、サーバ担当者さんの元へ。
「すいません。白砂将棋なんですけど、通信テストの対局マッチメイクをお願いします」
「はいわかりました……(作業中)……ログインはされてます?」

しまった。忘れてた

 どうもこの部分の認識をいっつも間違えてしまうのだが、対局の際にはログインして広場に集合して、そのみんなに向かってマッチメイクが発表される。要するにマッチメイクの前にログインする必要がある。これをどういうわけかマッチメイクが発表されてから対局室に入る、という感覚(つまりサーバでマッチメイクの作業を済ませているのを確認してからログインする)で覚えてしまっていた。K-ShogiやCSA将棋でログインするときには先手後手を指定するという関係もあり、マッチメイクしなきゃ先手か後手かわかんないぢゃーん、みたいに考えてしまうのだ。
 ……ってのを、来年の自分に備えてメモ(爆)。

 自分同士の対局は、定跡ファイルを先手後手が同じものを使う、ということと、れさぴょんの定跡ファイルは実戦譜を並べたもので、終局まで定跡が入っているとそのまま終局まで行ってしまう、という関係上、一瞬で終了した。まったく問題はなし。これで明日は大丈夫だ。去年のように、「あーパスワードがあああぁぁぁぁ……」なんてことはなかった(<うぅ……orz)。
 そのまま帰ろうとしたのだが、サーバ担当者さんの「他の人と対局してみたらどうですか?」という薦めもあったので、手近な(<ごめんなさい)人に声をかけてテスト対局をしてもらった。

 白砂将棋の先手番。当然定跡もガチなので7七桂戦法へと進む。
 定跡そのものからは外れてしまったものの、手順定跡がうまいこと作用したおかげでそこそこの形には組めた。
 しかし残念ながらそこまでで、将棋脳そのものは去年と変わっていない白砂将棋は悪手を連発。そのまま負けてしまった。

 対局していただいたのは棋理さん。大変誉めていただいてますが、実際は「ちゃんと組めた」というところまで。とにかく一方的なフルボッコでした。まぁ、相手が悪すぎたと言えなくもないんですが……。
 対局後、「明日はよろしくお願いします」「あ、いや、私は……」というやり取りがあったのはナイショにしとこうかと思ったんですが、自戒を込めて書いときます。ホントすいませんでした。というか、実を言うと対戦相手が誰なのか知らないまま対局を続け、相手を知ったのは夜中に前掲のブログを読んでからだったというのはナイショです。
 次からはちゃんと自己紹介とともに相手の方にも自己紹介をしていただこうと思います。
 相手を知らん状態でフレンドリーにすぎる会話をするのはあまりに失礼なのでもうやめます(爆)
 棋理の中の方、大変失礼をいたしました。



 ボッコボコにやられたところで、そそくさと会場をあとにした。
 夕飯はどこで食べよう、と考えていたのだが、木更津駅前にあまりにも店がなさそうだったので、帰り道の途中の「ステーキ宮木更津店」に寄った。ただのファミレスチェーン店なのだが、まぁゆっくり腰を落ち着けられるしガッツリ喰えるからいいだろうと。せっかくここまできてファミレスはどうよとも思うのだが、探しているのも面倒くさいのでガマンしたという感じである。
 なんでもイベリコ豚フェアというのをやっていたようで、夫婦二人して豚を喰いまくった。うん、うまかったです。ただのファミレスとか言ってごめんなさい

 夜、『カリオストロの城』を見ている妻の横でノートPCを開いて作業開始。
 さきほどのvs棋理戦で出てきた悪手と、今まで蓄積してきた悪手をどれだけ修正できるか、である。
 一晩でたいしたことができるはずがないのだが、以下のことをやってみた。
玉の壁形チェック
玉の片方がすべて自分の駒で埋まっている場合は減点
角の両取りチェック
空いてるマスで自分の駒の利きがない場合、角を打ったと仮定して利きをたどり、玉もしくは浮き駒が2つ以上ある場合は両取りがかかるとみなして減点
深さに応じた前向き枝刈りの数を指定
今までは一律30手だったものを浅いときには60手、深くしていくごとに少しずつ減らす、という風に変更
終盤度の調整
今まで非常に過激だったものを穏やかなものに戻す
 なんというか、今までやってなかったのかそれをというようなものばかりだが、そのとおりですorz。

 これらの作業をすべて終えたのが3時くらい。
 何度かK-Shogiとスパーをして、とりあえず副作用が出ていなさそうだったので寝ることにした。
 しかし、窓が開かないというのはまいった。最初のうちはこれくらいたいしたことじゃないと思っていたのだが、プログラム中はとにかく暑い。かといって空調を入れると寒くなるし……いやまいった。空気ってやっぱ大事ね(笑)。



 当日は8時ちょっと前に起きて朝食を食べに地下へ。
 なんでもバイキングだそうだが、あんまりよく眠れなかったこともあって食欲がまったくない。白砂はおかゆを少しと玉子焼き、うどんなどをちょこっと食べ、あとは野菜ジュースと牛乳で済ませた。……というかさ、バイキングなのにあんまり食い物が置いてないってのはどういうことよ(怒)。

 食事を終えて、すぐに会場へ向かった。
 昨日とは違い、日が昇っているので道がよく見える。昨日は狭い怖い道だと思っていたが、それほどではなかった。渋滞などするはずもなく、15分もしないでかずさアークまで到着した。
 今年は「白砂将棋」という恥ずかしくない名前だったので、すんなりと名札を書いて中へ入る。
 場所はすでに決まっていた。入口の一番近くという出入りがしやすい場所で、個人的には嬉しかった。さっそくノートPCを出してセッティング。LANケーブルを伸ばしてハブに……

届かないorz

 昨日のテストのときは人がいなかったこともあってハブのすぐそばでPCを広げていたのだが、本番で割り当てられた席はテーブルの端っこだったため、ハブまで3mほどの距離があった。携帯用1mLANケーブルではぜんぜん届かない。
 役員さんに伝えると、役員さんも困惑顔だった。……そりゃ短いのしか持ってこないこっちも悪いんだが……。
 結局、後ろに座っていた方が3mのLANケーブルを貸してくださって、それがギリギリハブに届いたので事なきを得た。
 確かまったりゆうちゃんだったと思います。ありがとうございました。

 開会式は若干早く始まった。
 将棋連盟からは中川7段が来られていて、開会式で挨拶された。

会場のおまいら、うるさすぎだ

 参加者のほとんどが、前で話している方も向かずにぺちゃくちゃとおしゃべり。小学生の朝礼か、ってほどうるさかった。
 一応そのときは開会式で、前で人が話してるんだから静かに聞こうよ。さすがにあれは失礼だし恥ずかしい。
 というか、

中川7段の空手技がいつ爆発するかと(爆)

 白砂の心配(?)をよそに開会式はつつがなく終了。ルール説明、10年表彰の発表などがあった後、いよいよ大会が開始された。


初版公開:2008年5月20日
copyright © S.Hakusa