ひょうか‐かんすう〔ヒヤウカクワンスウ〕【評価関数】
評価関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/28 02:45 UTC 版)
ナビゲーションに移動 検索に移動この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(2016年11月) |
評価関数(ひょうかかんすう、英: evaluation function)とは、コンピュータにゲームをプレーさせるソフトウェアを開発する際に使われるプログラミング技術のひとつで、ゲームの局面の状態を静的に評価し数値に変換する関数のこと。
概要
評価関数を用いるプログラムは、局面の良し悪しを数値化し、それをもとにして着手を決定する。将棋やチェスでは駒の損得、リバーシでは打つことができる場所の多さ、囲碁では陣地の大きさで評価関数を作る。しかし、現実のゲームでは、単純なアルゴリズムでは測れない要素が複雑に関係し合うため、正確な局面の評価はできない。そのため、着手ごとに枝分かれしていくゲーム木を作り、数手先の局面で評価関数を使用すること(探索)により、着手を決定する方法が用いられる。
原理的には、ゲーム開始から終了までの完全なゲーム木を再現できれば最善手を見つけることができる。しかし、完全なゲーム木は巨大であり、実際には扱うことはできない。そこでミニマックス法を使って探索を途中で終了したり、アルファ・ベータ法を使って枝数を減らし(枝刈り)探索の深さを伸ばす、といったアルゴリズム上の工夫が行われる。
素朴な評価関数の設計において、その精度はプログラマのゲームの理解力に依存する。ゲームのどの要素を重視するか、取捨選択がプログラマに委ねられているためである。近年ではプログラマのゲームの理解だけに頼らない、大量のゲーム履歴データを用いた評価関数の設計の試みにより、精度が大幅に高まった。
将棋のソフトウェアであるBonanzaは、6万局の棋譜から評価関数を自動生成した。2006年5月に行われた第16回世界コンピュータ将棋選手権においてBonanzaが優勝した。これを機に、他の将棋ソフトウェアも大量の棋譜から評価関数を生成する手法を用いるようになった。囲碁では 2006年、モンテカルロ法を応用しランダムに終局までをシミュレートし勝率の高かった着手を選択する手法を使ったソフトウェアCrazy Stoneが登場し、棋力が向上した。
関連項目
評価関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/05 03:22 UTC 版)
将棋はお互いが1手ずつ指すゲームのため、指し手の選択のために局面評価が必要で、局面の有利不利に序列をつけるための評価関数が必要である。通常は評価関数は局面を実数化(高速化のために整数化)する関数を使う。探索では、評価関数を利用し、数手先の変化を読み、相手が最善を尽くしてきたときに、もっとも自分が有利になる手を探す。ここでいう「有利」は、相手の玉を詰ませられる、駒得になるなど、数値化できる基準で評価する。評価関数の作り方と何手先までを探索の対象とするかでコンピュータ将棋の強さが決まってくる。駒の損得を中心に、玉形や駒の働きなどを評価対象としているものが多い。
※この「評価関数」の解説は、「コンピュータ将棋」の解説の一部です。
「評価関数」を含む「コンピュータ将棋」の記事については、「コンピュータ将棋」の概要を参照ください。
- 評価関数のページへのリンク