「評価関数」の版間の差分

削除された内容 追加された内容
Narucy (会話 | 投稿記録)
編集の要約なし
Narucy (会話 | 投稿記録)
編集の要約なし
1行目:
'''評価関数'''('''ひょうかかんすう''')とは、コンピュータにより[[囲碁]]や[[将棋]]、[[チゲームをプレーさせるソフトウス]]、[[オセロ (遊戯)|オセロ]]など開発際に使われるプログラミング技術のひとつで、[[ゲーム]]の局面の状態を静的に評価し数値に変換する[[関数 (プログラミング)|関数]]のこと。
 
==概要==
5行目:
評価関数を用いるプログラムは、局面の良し悪しを数値化し、それをもとにして着手を決定する。将棋やチェスでは駒の損得、オセロでは打つことができる場所の多さ、囲碁では陣地の大きさで評価関数を作る。しかし、現実のゲームでは、単純なアルゴリズムでは測れない要素が複雑に関係し合うため、正確な局面の評価はできない。そのため、着手ごとに枝分かれしていく[[ゲーム木]]を作り、数手先の局面で評価関数を使用すること([[探索]])により、着手を決定する方法が用いられる。
 
原理的には、ゲーム開始から終了までの完全なゲーム木を再現できれば、最善手を見つけることができる。ただし、完全なゲーム木はあまりに大きく扱うことはできなものい。そこあるため [[ミニマックス法]]を使って探索を途中で終了したり、[[アルファ・ベータ法]]を使って枝数を減らし(枝刈り)探索の深さを伸ばすいったアルゴリズム上の工夫が行われる。
 
素朴な評価関数の設計において、その精度は、プログラマのゲームの理解力に依存する。ゲームのどの要素を重視するか、取捨選択がプログラマに委ねられているためである。近年では、プログラマのゲームの理解だけに頼らない、大量のゲーム履歴データを用いた評価関数の設計の試みにより、精度が大幅に高まった。
 
将棋のソフトウェアである [[Bonanza]] は、6万局の棋譜から評価関数を自動生成した。[[2006年]]5月に行われた第16回[[世界コンピュータ将棋選手権大会]]においてBonanzaが優勝し、急速た。これを機、他将棋ソフトウェアも大量の棋譜から評価関数を生成する手法が広がを用いるようになった。囲碁では 2006年、[[モンテカルロ法]]を応用しランダムに終局までをシミュレートし勝率の高かった着手を選択するという「手法を使ったソフトウェアCrazy Stoneが登場し格段の棋力向上を果たした。
 
==関連項目==