「サルかも将棋」 その7 評価関数

「評価関数」はズバリ、「盤面を評価する関数」ですね。(それ以外に何か?)

ここで勘違いしていけないのは「評価関数」は純全に盤面の状況のスナップショットを数値的に評価するだけです...駒を動かしての「読み」は起きません。

評価関数は本来 Static Board Evaluator = 静的盤面評価関数 であり、 「盤面が静かな局面(駒の取り合い、王手、争点...諸々の無い...つまり、一段落ついた)を評価する」 のが目的です。

駒の取り合いの途中では評価値が激しく動くため、その様な状況では評価するべきではありまん。人間も「銀を飛車で取れるけど、歩で取り返されるので駄目どす」...と最後まで交換を進めた状態で収支を見るのと同じことです。

そして評価値は大抵の場合、

 評価値 = (盤上+持ち駒の価値 = 駒割り Material Value) + (駒の配置の価値 Positional Value)

...で計算されます。

ボナンザ6.0での駒の価値は以下の通りです...

歩 87
香 232
桂 257
銀 369
金 444
角 569
飛 642
玉 15000
と 534
成香 488
成桂 519
成銀 485
馬 827
竜 945

...玉は取られたら負けなので 「価値は無限」 なのですが、それではプログラムを書く際に不都合なので適当に大きな数字が実際には使われます。

続きは明日...

投稿者: webMaster 投稿日時: 木, 08/18/2011 - 07:28 categories [ ]