2023年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近のトラックバック

無料ブログはココログ

« 2007年4月 | トップページ | 2007年6月 »

2007年5月16日 (水)

囲碁ソフト開発中…

予告通り、囲碁ソフト「ねこにゃ」開発中です。

まずは、シンプルに、純碁ルールベースでモンテカルロ碁を実装してみていますが…。

…遅い(苦笑)。9路でも話にならないような遅さです。まぁ、この辺はまだ何も工夫をしていないのでいいかなぁ。真面目に最適化するとしたら、どういう構造がいいんだろうとか、頭の痛いことは沢山ありますが(--;

で、純碁ベースなので、自陣に石を打つのが大好き(苦笑)。

というか、そもそも自陣を2眼を残して埋め尽くすまで、終局しないんですよねー…。

いやー…ここから19路を打てるようにするとか、自陣に不必要に手を入れないようにするとか、地を数えられるようにするとか…考え始めると、色々課題が大きいですねぇ(--;

純碁→日本ルールの隔たりなんて、そんなにないんじゃないかと思ってましたが、思いの外壁が厚いようです…。

まぁ、こうやってぶちぶち書いていると、いきなり目の前がクリアになる瞬間がやってきたりするわけですけれど。<そんなわけでぶちぶち書いてます(w。

2007年5月10日 (木)

第17回コンピュータ将棋選手権のうさぴょんの戦いっぷり総括

事前準備が圧倒的に不足&マシンを新調できなかったのは、既に報告済みですね。

そして、『隠し玉』も微妙に不発気味。結果から考えると、反復深化を一回多く回す=一手深く読むことよりも、評価関数か読みの「抜け」を少なくするかの方向に時間を調整するべきだったかも知れません。

まぁ、この辺も含めて事前準備不足、なわけですけれどね。

さて。二次予選の棋譜を振り返りましょう。

第1戦 先手 臥竜 vs 後手 うさぴょん

うさぴょんの勝ち:Total 1勝0敗
棋譜の再生はこちら。
臥竜とは昨年もあたっており、相掛かりから、最後に飛車をぶった切る手が決め手になってうさぴょんが怪しげな乱戦をモノにしました。個人的には乱戦は「見ていて心臓に悪い」ので避けたいところですが、いかんせん今年は序盤定跡をまともに整備しておく時間もなかった(用意しておいた序盤定跡が3年前位のモノに戻ってしまっていたりします)ので、特に戦法の選択もなしで、流れに任せることにしました。
…また相掛かりです(苦笑)。
うさぴょんの34手目85歩が明らかに変。こういう手に対しては(AdHocな方法ですが)ペナルティーを入れてるので指さないはず、なんですが、おそらく今年導入したReductionの副作用でしょうね…。
仕掛けの取っ掛かりも見えず、結局、相手が転ぶのを待つような展開。
とりあえず、勝ったからいいようなものの、少し前途が暗そうな感じで始まりました。

第2戦 先手 うさぴょん vs 後手 柿木将棋

うさぴょんの負け:Total 1勝1敗
棋譜の再生はこちら。
『今年のうさぴょんで勝てる相手ではない』のは見えていたので、3手目角交換・5手目7七桂と、一発勝負用の珍しい戦法を選択。
が、柿木将棋も、ノータイムで応手を返してきます。定跡通りってことですね(苦笑)。 12手目5四角は、うさぴょんの定跡に入っている「はず」の手で、その後の変化も(一歩損は避けられませんが)打った角が使いにくいので軽視していた手順でした。んが…定跡通り、3八銀と上がるはずのところで2八銀。うさぴょん発狂(苦笑)。
後は、ディスプレイの前にはいましたが、もう心ここにあらず、です。
もちろん、うさぴょんもいいところなく負け。
準備不足を痛感しました。

第3戦 先手 神乎将棋 vs 後手 うさぴょん

うさぴょんの勝ち:Total 2勝1敗
棋譜の再生はこちら。

第4戦 先手 うさぴょん vs 後手 謎的電棋

うさぴょんの勝ち:Total 3勝1敗
棋譜の再生はこちら。

第5戦 先手 うさぴょん vs 後手 大槻将棋

うさぴょんの負け:Total 3勝2敗
棋譜の再生はこちら。

第6戦 先手 SPEAR vs 後手 うさぴょん

うさぴょんの負け:Total 3勝3敗
棋譜の再生はこちら。

第7戦 先手 うさぴょん vs 後手 奈良将棋

うさぴょんの負け:Total 3勝4敗
棋譜の再生はこちら。

第8戦 先手 遠見 vs 後手 うさぴょん

うさぴょんの勝ち:Total 4勝4敗
棋譜の再生はこちら。
遠見はなかなか安定して強そうなプログラムです。
基本的に全幅探索だそうで、探索の工夫もしっかりされているようですが、うさぴょんと同じ位の深さ(8~10手位)しか読めないのだそうで、「うさぴょんがいつ重要な手順を読み漏らすか?」「うさぴょんの評価関数の方が正確か?」というような勝負ですね…。
序盤は、横歩取り3三角戦法に。
実は、この戦法、何故かうさぴょんの得意戦法で、不思議にこの形から負けた記憶がありません。
この将棋も、遠見の打った飛車角を上手に圧迫していき、64手目あたりでは、まぁ何とか勝てるのかな、という気分。
しかし、ここからが大変でした。65手目、7九金とされてみると、うさぴょんの4五の桂馬はいずれ取られそうな駒。1二の角も遊び駒にされた感じで、攻めて行く手を作れる感じがしません。
結局、その後、全幅探索相手に読み抜けがものすごく怖い展開になってしまいました。
これ、詰めろはかかってると思うけど、桂馬渡すとうさぴょんの玉が寄ってる(と思う)し、なんかダメなんじゃないの?という局面がだらだら続き、生きた心地もしない展開。
しかし、たまたま?重要な手順を読み逃すこともなく、遠見が持ち時間が逼迫して来た事も幸いし、どうにか逃げ切りました。危ない変化は沢山ありそうで、先読みの評価もずいぶんガタガタ上がったり下がったりしていましたが、どうにかこうにか、という感じです。このままだと、来年は確実に負けますね…(欝)。
終わった後で聞いた話ですと、遠見さんは対うさぴょん戦は事前に何回かされていたそうで、どうもいつも「もう一歩届かない」という印象だったのだそうです。終盤戦で詰むや詰まざるやの局面、一手隙位の局面でうさぴょんが上回っているのかな、という感じでしょうか。おそらく、終盤戦で少し工夫されたら負けです。

第9戦 先手 うさぴょん vs 後手 KFEnd

うさぴょんの負け:Total 4勝5敗
棋譜の再生はこちら。
個人的には、あまり勝ち目がない気分の勝負。
でも、今年は同程度の力のプログラムだと思っている相手には、真っ向から戦う方針なので、戦形選択もなしで、真っ向勝負。
力負けするなら、それも致し方なし、という気分です。
そして、あっさり力負け。

戦い終わって日が暮れて

戦績 4勝5敗
二次予選 17位
総合順位 20位

シード権を失う。

今年は、ろくに強く出来なかったな、と実感していたんですが、それ以前の問題でした。

また一から出直します。

今年のコンピュータ将棋選手権を振り返ってみて

何でこんなに遅いの?と思われそうですけど、選手権の終わった後は、パーティー終了後、そのまま木更津で「ばたんきゅー」してしまい…。翌日、帰る際に渋滞でへろへろになってしまい…。

そして、月曜と火曜日は仕事で慌しくて、自分の思ってることを書くだけの体力が残ってなかったわけですよ、はい。

で。

やっと、今日(って、もう昨日になってるなぁ…)、選手権で使ったマシンを開梱して…というわけです。

まず、決勝戦の総括的感想から。

Bonanzaシード落ち、YSS優勝は…運、ですね。今年は山下さんに風が吹いた、って言う感じです。今年の1位から4位は、ほとんど互角…と思います。ただ、対人戦では、棚瀬将棋が序盤が一番自然な感じで強そうに思います。(さらに言えば、去年のBonanzaの優勝もBonanzaに風が吹いていたことは間違いないかと…。)

その棚瀬将棋ですが、一次予選では、(棚瀬さんには失礼ですが)『これは、中盤以降の力で勝ってるけれど、二次予選通過は序盤で差を付けられて危ないんじゃないのかな?』と思っていたのですが、一次予選の夜に棚瀬さん言うところの『ドーピング』を施したそうで…それを二次予選に間に合わせ、二次予選以降ではもう別プログラムのようでした…。

たった一晩で激変した、この指し回しも(新たに学習するべきパラメータを決めた上で、再学習をされたそうです)『学習の成果』ということで…「学習の力」を見直しました。(もっとも、ドーピングの要素はそれだけではないようですが。)

正直、BonanzaのBonanza囲いや、棚瀬将棋の一次予選を見ていて、「序盤ではやっぱり学習は辛いのかなー」と思っていましたので…。私にとっては、目からうろこ、でした。

もっとも、目にうろこが飛び込んだ場合も、目からうろこが落ちた場合も、モノの見え方が急変するので本当は目にうろこが飛び込んだのかも知れませんが(苦笑)。

その一方で、YSSの優勝。

YSSは、職人芸的チューニングの塊のようなプログラムです。どんなに泥臭いことでも、プログラムを組んでみて、実証データを取り、この手法はダメ、この手法で行ける…この局面でこの手が指せないのは、こういう時にこういう条件で詰め将棋を呼ばないとダメ、この手を読みぬけてるから、こういう条件では読まないとダメ、のような職人芸的なチューニングを繰り返すことで今まで強くなってきました。そして、これからも強くなっていくのだと思います。(…これ、山下さんに不要に圧力をかけているかな?)

「職人芸」と「学習」の勝負。

これから、私はどういう道を歩んで行こうかな、という…大きな課題を突きつけられた気分です。

2007年5月 4日 (金)

詳細は後で書くとして…

二次予選24チーム中、17位。

例年通りなら、16位まで一次予選シードなので、また、えらい微妙な結果が…(苦笑)。

以前にも17位になったことがあるんですが、この順位、参加者が確定するまで落ち着かないんですよねー(w。
 <ちなみに、以前17位になった時は、上位のチームにキャンセルが出て、シードだった記憶が。何年前の選手権だったかな?

2007年5月 2日 (水)

一応成功…だけど。

Reductionの効果はかなり大きく、反復深化が一回余計に回る位の差が付きました。

で、いつも使ってるテストセット(100問位)でテストしてみた結果…

・反復深化が余計に回ることで正解に至るようになった問題が3問
・Reductionの副作用で、正解できなくなった問題が2問
・相変わらず回答が間違ってるのだけれど、間違ってるなりに前よりマトモな答えになったのが2問

というわけで、効果の程は思ったよりも微妙です。多分、副作用を抑えるために、Reductionの条件を厳しくすれば、正解できなくなった問題は正解できるようになると思いますが、反復深化が余計に回らなくなる気もします。

この辺、実機で微調整を試みたいところですが…

もう荷造りして送っちゃいました(w。

明日、現地で調整ですね。

追記:もともとの正解率は、70%位です。これが80%くらい=10問余分に正解できる、位に変化がないといけないんですけどね…。

やっとデバッグ完了@32bit環境

…やっと、思った通りのReductionを行うようになりました。

と言うか、バグの原因に気が付いたのが、ちょうどYSSと彩の掲示板で話題になっていた、LMR prunningのサンプルコードを見たから、というのが情けない…。

で、これでReductionをした結果、今まで正解できてた問題を正解できなくなってたりしないかどうか、64bit環境でちゃんとコンパイルして、本番用マシンでテストセットを流して、それで問題なければ、このままGO!ですね。

さて。結果は如何に。

って、ことで、これからテストセットを流したら眠って、起きて結果確認したら速攻で荷造りですね。ギリギリセーフ、かな?

絶対バグがある、気がする

どこに?

というのが見つからなくてまだ悩んでますがOTL

ログを見た感じでも、どう考えても一桁おかしい。くぅ、大会までには間に合わせるんだぁ!<結構てんぱってます。

あれ?望みはあるのか?

ログを見ていたら、どうもまだバグがあるような気が猛烈にして来ました。

もしかして、このバグを取ると、予定していた通りにReductionが起きる?

いや、予想していたよりも、Reductionが成功する確率が一桁以上少なかったので、ダメだな、と思ってたんですが…

まぁ、しかし、こんなところでデバッグにけっつまずいているようじゃいけませんね…。

2007年5月 1日 (火)

激痛(w

隠し玉の実装&デバッグ終了。テスト中です。

とある方法で、PVじゃない枝のReductionを実現しようとしてたのですが…紙上で考えていた以上にReductionが起きるケースが少な過ぎ&Reductionに失敗しての再探索が多過ぎ、です(苦笑)。

以前、NullMoveを実装した時にも同じようなことが起きてしまい、『NullMoveを入れたらかえって遅い』現象にぶち当たったことがあるのですが、全く同じ轍を踏んでるみたいですね…。

原因は割合はっきりしていて、うさぴょんの末端の探索の関数がOddEvenEffectが激しすぎることから来ていると思うのですが。

まぁ、簡単にめげずに、もう少しReductionを行う条件を厳しく設定してみます。それで、恐らく、必要「そう」な時だけReductionを行うようになるはず、ですので。

あ、それと、今までの開発から何となく感じてることとして、

・うさぴょんの評価関数と末端の探索関数の癖?のせいか、『序盤』『終盤』はReductionが起こしにくい。
・なので、この手のReductionは、『中盤戦』に絞って行った方が良さそう。
・末端の探索関数が重過ぎて、再探索のコストが高過ぎ。

なんていうことがあります。

長い目で見ると、末端の探索関数を変えた方がいいのは前々からうすうす分かってはいたんですが…(CPUが今よりも相対的に遅かった時代は、末端の探索関数を重くして、通常探索の末端局面の評価を正確?にした方が強かったのですが、今は多分、末端の探索関数を軽くして、通常探索を深くした方が全体に強くなるのではないか、という思いを3年ほど前から思ってました。)

…れさぴょんの方が(全体として)早いのも分かっているわけですし、やはり、れさぴょんベースに乗り換えて、通常探索を深くしていった方がいいのか(苦笑)?

到底今年の選手権には間に合いませんが。

« 2007年4月 | トップページ | 2007年6月 »