「ボナンザ VS 勝負脳」を読んでみた。
ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか (角川oneテーマ21)
- 作者: 保木邦仁,渡辺明
- 出版社/メーカー: 角川書店
- 発売日: 2007/08
- メディア: 新書
- 購入: 16人 クリック: 2,027回
- この商品を含むブログ (72件) を見る
将棋、人工知能の両方に興味のある人はもちろんのこと、将棋には興味があるが人工知能には興味のない人や、その逆の人が読んでも楽しめる本であると思う。
本書では、将棋ソフト「ボナンザ」の内部的な設計などについて述べられている。
ボナンザは独自の「評価関数」を持ち、全幅探索を行った上で最も評価値の高い手を打つとの事であるが、
「評価関数」などと言う単語はあまり聞きなれないものだと思うので、その辺りについて、かなり簡単にではあるがまとめてみる。
評価関数について
将棋の盤面を評価する評価関数Eが3つの変数X,Y,Zによって決定されるとすると、例えばEは以下のように書くことが出来る。はそれぞれX,Y,Zの重み(各変数をどれぐらい重視するか)である。
ここで、X,Y,Zがそれぞれ以下を表す変数であるとし、具体的に考える。
- Xは「王」に隣接する味方の駒数
- Yは味方の全駒数
- Zは相手の全駒数
X,Y,Zが上の様な定義の場合、例えばの値が大きければ、「王」に隣接する味方の駒数を重視する、すなわち「王」の周りを味方の駒が取り囲むような戦略をとるようになる。またの値が大きければ、味方の駒をなるべく減らさないような防御的戦略になり、が大きければその逆で攻撃的戦略をとる。
この例では変数が3つしかないが、実際はさらに多くの変数によって評価関数を構成することで、より柔軟な戦略を表現する。
評価関数においては、などの重みの値を適切に設定することが重要である。しかし人手でこれらを設定することは難しい(変数の数が増えれば増える程、難しくなる)。
そこで、の最適な値の探索に機械学習を用いる、と言った具合である。
AI(人工知能)を作る
この本を読んで、将棋のAI作りに興味を持つ方も多いのではないだろうか。
ただ、本書でも述べられているように将棋はルールが複雑なため、いきなりAIを作るといってもなかなか難しい。
個人的には、こういったゲームのAI作りに取り掛かる際は、まずオセロ(リバーシ)に挑戦してみるといいのではないかと思う。
オセロは将棋に比べてルールが単純な上に、打ち手が石を置く回数が60回(白、黒30ずつ)と限られているため、将棋と比べるとAIを作るのは楽である。
また、本書の3章で紹介されている「ミニマックス法」、「alpha-beta法」などは、オセロAIにおいても同様に用いる事が可能である。こういったことからも、オセロAIを作ってみる事は、将棋AIを作る上で色々と勉強になる。
自分自身、一年ほど前にオセロAI作りに挑戦した事があるが、なかなか面白く、いい経験になった覚えがある。
リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS)
- 作者: Seal Software
- 出版社/メーカー: 工学社
- 発売日: 2003/06
- メディア: 単行本
- 購入: 5人 クリック: 139回
- この商品を含むブログ (32件) を見る
コンピュータ将棋のアルゴリズム―最強アルゴリズムの探求とプログラミング (I・O BOOKS)
- 作者: 池泰弘
- 出版社/メーカー: 工学社
- 発売日: 2005/02
- メディア: 単行本
- 購入: 2人 クリック: 6回
- この商品を含むブログ (13件) を見る
Java将棋のアルゴリズム―アルゴリズムの強化手法を探る (I・O BOOKS)
- 作者: 池泰弘
- 出版社/メーカー: 工学社
- 発売日: 2007/04/25
- メディア: 単行本
- 購入: 9人 クリック: 18回
- この商品を含むブログ (10件) を見る