読書メモ
・「コンピュータ将棋のアルゴリズム」
(池泰弘:著、工学社 \1,900) : 2005.08.27
内容と感想:
私は将棋はさっぱりだが、コンピュータ将棋がどんな風に動いているのか興味があって、この本を手にした。
将棋はパソコンゲーム、テレビゲームのジャンルとして国内では根強い人気があるようだ。
市販のソフトで有名なものとしては「AI将棋」、「激指」などがある。
アルゴリズムの研究が進み、パソコンやゲーム機の処理能力も発達して、ソフトの実力のほうも上がってきているようだ。
著者は「うさぴょん」というソフトを開発、公開している。それは初段レベルという。
本書では将棋プログラムのアルゴリズムをC++のソースコード(CD付き)とともに公開している。
将棋プログラムはマシンの処理能力が高ければ、あらゆる手を高速に読んで、最善手を見つける。
しかしたとえその読みが高速といえども、片っ端から無駄な手も含めて読むのでは、高速マシンでも時間がかかる。
それを高速にするアルゴリズムが必要だ。何を良い手というのかを将棋プログラムでは評価関数というもので決めている。
場面場面で局面を数値化するのだ。
MinMaxやαβ法は良い手を探索するアルゴリズムで、反復深化やハッシュはそれらの探索方法を更に効率化させる手法である。
コンピュータ将棋は終盤の詰め将棋のような場面では、正確で高速な処理で強さを発揮するらしい。
その逆に序盤の形が固まっていない局面が弱いそうだ。その弱点をカバーするために、過去の棋譜データを利用して、
定跡のデータベースとして取り込むようなアプローチを行っている。
羽生王座は著書「決断力」の中で「コンピュータの強さは、人間の強さとは異質なもの」と言っている。
確かにコンピュータは人間のように真に”思考”しているとは言えない。
独創性はないが、人間のプロ棋士を動揺させるような、過去のデータにない予想外の奇手・妙手を繰り出したり出来るかも知れない。
相手を揺さぶれば、コンピュータならではの正確無比な能力、高速処理でミスのない手を繰り出し、強い人間を負かす可能性はあるだろう。
しかし、それもプログラムを組む人間次第なのだが・・。
-目次-
1章 将棋のルール
2章 簡単なインターフェースと思考ルーチンを付ける
3章 評価関数
4章 MinMaxとαβ法
5章 ハッシュと千日手の処理
6章 反復深化とハッシュを用いたαβの効率化
7章 序盤での定跡と駒組の問題
8章 指し手の評価と前向き枝刈り
9章 詰め将棋
終章 残された課題とヒント
|