夏休みの計画

院生なのでもともと授業は少ないのですが,夏休みに入っています.

  • 囲碁プログラムの開発
  • 学習のやり直し
  • 確率探索を試してみる

あたりは最低限やりたいですね.とりあえずはGPWのabstractを….
囲碁はルールすらよく分っていないので今まで敬遠していたのですが,モンテカルロばっかりいじってたら無性に作りたくなってしまいました.


土曜日はCSAの例会があるんですね.実はまだ会員ですらないのですが,入会申し込みも兼ねて行ってみようかな.

棋理 (MC) が yowai_gps に初勝利

ここ数日,いろいろと改良しながら対局させていたのですが,ようやく初勝利を収めました.
棋譜(27手目まで定跡)
定跡を使用しているので,モンテカルロでの思考開始は29手目からです.yowai_gpsに勝ってこんなに嬉しいのは久しぶりですね(笑).
以下に気づいた特徴を.

  • 囲う(というより固める)

(ある程度形ができていれば)思ったより囲います.これは少し意外.ただ,穴熊などの場合には固めすぎて,逆に飛車先を破られることがかなり多いようです.

  • 無駄な歩の突き捨てなど小さな損をする手が多い

歩一枚くらいの駒損は勝率にほとんど響いてこないので,相手のミスに期待して?やってしまうようです.この傾向は不利になるほど強く,負のスパイラルを生み出します.

  • 差がつくとぬるい/暴発する

囲碁ではコミを持たせることで均衡を保つという話があって,なるほどなぁと思ったのですが,将棋はスコアを競うゲームではないのでそのような対策は難しそうですね.

  • 受けのない形を作るのは意外と上手い

が,序盤で圧倒的に不利になるので,実戦ではあまり実感できません.

  • 長手数の細い読みは苦手

UCTでかなり改善されてはいるものの,まぁ仕方ないところでしょうか.

次の一手問題の正答数などでは結構いい結果が得られているのですが,実践で指させようと思うとなかなか難しいものですね.

近況

先週末は電通大に講演を聞きに行ってきました.囲碁はルールすらあやしいのですが手を出してみたくなりました.夏休み余裕があったら少しやってみようかな.

GPWの締め切りが近くなってきているので研究(モンテカルロ法の将棋)の方に力を入れています.最近のいくつかの改良は(たぶん)有効に働いているようで,かなりきれいな読み筋を示すようになりました.

sinpo2 - 11
後手の持駒:歩 
9 8 7 6 5 4 3 2 1
+---------------------------+
|v香v桂 ・v金v角 ・ ・v桂v香|一
| ・v玉v銀 ・ ・ ・ ・v飛 ・|二
| ・v歩 ・v金 ・ ・ ・ ・v歩|三
|v歩 ・v歩v歩v歩v銀v歩 角 ・|四
| ・ ・ ・ ・ ・v歩 ・ ・ ・|五
| 歩 歩 歩 歩 歩 ・ 歩 ・ ・|六
| ・ 玉 桂 金 ・ 歩 銀 ・ 歩|七
| ・ ・ 銀 ・ ・ ・ ・ 飛 ・|八
| 香 ・ ・ 金 ・ ・ ・ 桂 香|九
+---------------------------+
先手の持駒:歩 

[0.599] ▲5一角成 △2八飛成 ▲6一馬 △7八龍 ▲同玉 △6一銀 ▲5一飛 △6二銀 ▲2一飛成 ...

モンテカルロは将棋は勿論,囲碁でもまだ手法が完全に確立したとは言い難いので,やればやるほど強くなって面白いですね.山下さんが最近囲碁の方に力を入れている(ように見える)のがなんか分かる気がします.
ちなみに一応並列化もしています(先週は少し勘違いしていて,おかしなことを話してしまったような感じですが).あと,乱数を生成する関数を複数スレッドで呼び出すと速度が遅くなるという話があったのですが,特にそういう現象は起きていないみたいです.これは環境によっても結構違うのかもしれませんね.囲碁は実装したことがないのでよく分らないですが,将棋の場合利きの更新や指し手の生成などが結構重い処理になるので乱数生成にかかる割合が小さいとかも考えられるのかな?

定跡

定跡データ(棋譜データベース)を更新しました.今までプログラム自体は何度も書き直していて,定跡データだけは唯一初期から引き継いでいたものだったのですが,とうとうおさらばすることにしました.4万局くらいあるみたいなので,学習などには役立ちそうです.
いろいろなところで言われていることですが,序盤の定跡選択は悩ましいですね.あまり本質的な話ではないので労力をかけたくない部分なのですが,このあたりを詰めてやるかどうかで選手権では1,2勝は確実に違ってくると思います.今のところ乱数選択,勝ちの棋譜がある限りそのまま指し続けるので,来年の選手権までにはもう少し工夫したいところです.*1

*1:ちなみに遠見時代は対戦相手を信頼して一致する棋譜がある限り指し続けていました.かなり危険.

続きを読む

選手権からはや半月

たった2週間ですが,次回の選手権までの時間の24分の1と考えるとなかなか….開発者の皆様の自戦記等も一通り出そろった感じですかね(大槻さん,奈良さん,K-Shogiさん,ライエル先生,(山田将棋の)山田さん,…).
そういえば,いまさらなのですが,恒例(といっても私は2年目ですが)の反省会で,山田さんと次の一手問題の話になったときに「2二飛」だけで言いたいことが通じてしまったことが面白かったです.他の方々も「7四歩」とか「5四金」とか一般人には意味不明な言語を話していました.さすがにここまで言えばコンピュータ将棋の開発者なら何の話をしているのか分かると思いますが(笑).

floodgateの近況

nagon-testという強いソフトが出てきたみたいです.謎のソフトがトップというのも気持ち悪いので強豪の皆様頑張ってください(笑).

対局の組み合わせですが,現在は

  • 勝ち同士 レーティングにrandom(800)を加えてsortして、順に組み合わせる
  • 負け同士 レーティングにrandom(200)を加えてsortして、順に組み合わせる

となっっているみたいです.
簡単なアルゴリズムですが(勝つといい気になってちょっと強い相手と対局したくなるあたりが)人間的で結構いいのではないかと思います.必ず勝ち同士/負け同士が当たるというのではなく,直前の対局に勝った場合はrandom(X)を加算,負けた場合はrandom(Y)を減算して,組み合わせるとかはどうですかね.

kiri-test

選手権バージョンです.15局対局させて,2週間のレーティングではだいたい1300.対局数が少ないので少し高く出ているかもしれませんが,オープン戦のバージョンと比較すると8割くらいは勝ち越すのでそんなに外れてはいないと思います.選手権のリベンジとばかりに柿木将棋に連勝してますね(http://wdoor.c.u-tokyo.ac.jp/shogi/logs/LATEST/html/2008-05-Kakinoki-Test-kiri-test.html).

帰筑

10時にチェックアウトしてお昼過ぎには着いています.筑波も木更津も田舎なのですごい遠い感じがするのですが,意外と近いですね.いろいろ後回しにしていたことがたまっているのですが,とりあえず少し休みたい.
選手権が終わったのでブログの更新頻度は落ちると思います.ある程度定期的に更新したほうがモチベーション的にもいいと思うのですがなかなか.ブログではマイムーブや小宮日記にはかないません…って将棋でも負けてしまいましたけどね.