見出し画像

将棋AI

間違った事言っているかもしれんが許してクレメンス。てか間違ってたら指摘してクレメンス。夜露死苦。



将棋AIは評価関数+読みで出来ている。


評価関数はある一つの局面の有利不利を判別する為の式である。

y=4a+2b+3c…みたいな式をイメージすればよい。

この時のabcには駒の位置(歩が55にあるとか角が33にあるとか)やら駒をどれだけ持っているか(歩を2枚得しているとか飛を1枚損しているとか)やらの局面の個々の要素が入る。

でこの時の4やら3やら2やらの数字は↑の個々の要素にどれだけの価値があるかを示している。例を挙げる。

y=4a+2b a⇒歩を2枚得している、b⇒歩が55にある 

とするとy=4×2+2×2=12だからこちら側が12点得している事になる。

ついでにy=4a+2bだからこの評価関数の中ではa⇒歩を2枚得しているb⇒歩が55にあるの2倍の価値を持っている事もわかる。

正確な評価関数(y=4a+2b+3c…みたいな式)に近づければ近づける程そのAIは強くなる。正確にするための方法は色々あるが深層学習が近頃熱いらしい。

深層学習をざっくり言うと強いCPU同士で対戦させて局面のデータをたくさん集めるって感じ。これ以上はわからん。


読みは一定の時間内にどれだけの局面をどの様に分析するかという方法論的な物である。

読みパワーを上げる方法には

①マシンパワーの向上

②無駄な手を読まない

がある。

①は単純。マシンパワーが高ければ沢山の局面を読む事が出来る。小規模なゲームだと完全解析まで出来たりする。すご。

②はアルゴリズムってやーつ。静止探索やら枠決めやら反復深化やらの色々な方法を使って読む必要がある手をザシュザシュ刈り込む。雑草の如く刈り込む。でパワーを節約する。

近頃は人間が指しそうな手を予想するプログラムもあるらしい。すご。研究が進めば個人の指し手を再現する事も出来る。

この二つの要素が優秀であればある程強いAIが出来る。


囲碁だとここにモンテカルロ法が入る。といっても詳細はよく分からなかったのだが。すまんな。もう少し理解出来る様になりたい。



今日はこんな所で。

それでは、さようなら~