休みをついやして開発中

連休終わった‥‥。午前三時です(^^;

土曜日は掃除やら洗濯もしてましたが、日曜にエンジンがかかって、
将棋ソフト開発詰めでした。もうヘロヘロです‥‥


これでも一応プログラム開発暦20年ですが、将棋はロジックの塊なので、かなり手ごわいっす。
利きコントロールをやっといれたので、


今後の課題は、
・反復深化
・将棋駒背番号(高速化データ構造)
・詰め、必至ルーチン
・序盤、駒組みルーチン
このへんをやりましょう。
評価関数を基本的にmoveの中で差分でやるようにしたので高速化できた。


ただ、開発手順的に、ちょっと作ってはうさぴょんと戦わせるではなくて、
次の一手問題集」を解かせて、客観的に評価しながらやっていかないといかんと思う。
速度なんかもちゃんとタイマーで量ってね。


ロジックやってると途方にくれるが、
コンピューター将棋同士の棋譜を見ていると、なんとなく欠点が見えてくるので、
こうしたらいいかも!?みたいなモチベーションが上がっていく気がします。


何も考えてない序盤(=定跡そのまま)、適当な場当たり的な中盤。
このへんが最大の問題点なので、なにかアイデアで工夫したいと思います
終盤はプロを超えてるらしいので、このへんは既存の理論をそのままもってくればいいかな。
詰む、必至ってのは、あるいみ理想的な評価関数がある場合なので、探索誤差も無いわけだし。


ぶっちゃけ終盤に行ったら、もう勝負はついてるのよね。いかにそこまでいい形勢で持っていくかが、勝負なわけで。
対戦の棋譜を見てると、王からすごーい離れてる場所の敵の遊び駒を、桂馬でとって
駒得をしようとする展開をよく見ますが、
YSSの論文では、終盤(とみなせる)と、駒の王との相対位置に評価を重ねるみたいな
手法が載ってますが、たぶんやってると思うけど、そういう手を打っちゃうんだろうな。
それって終盤の判定が弱いのか、他に手が無いのか?
あと、王の固さも、しっかり判定しないといかんなあ(あくまで敵と自分の相対的な固さの差)


10月22日に、東陽町のホテルイースト21で、コンピュータ将棋王者決定戦(?)があるらしい。
一般人が見れるのかわからんけど、可能なら見学してみよう。


あと、10月29日から二日間、岐阜の大垣市で、コンピュータ囲碁世界選手権が開催されますが、
これは一泊二日で見学にいく予定です。ホテル予約しないと‥‥。高速バスで行くかな?
大垣だから、18切符で行ったりして(笑)


最近は、gameboy advance spで借り物の「ヒカルの碁2」をやって囲碁も練習してます。
やっと囲碁のルールが判って来ました。名瀬さんには勝てるようになったし(笑)
群、地、二眼、コウ、このへんを理解しないとダメなんですね‥‥。
コンピュータ囲碁も、いずれ作りたいですが、目標は来年の大会に参加かな‥‥。
けっきょく、群の死活を判定できれば、なんとかなる?って感じがします。