コンピュータ将棋①

自分で考えている基本的な考え方
 
①ソフトウェア作成の方法論として
 
 ソフトウェアを作るにあたって、将棋のルールや対局のことについてよく知っていることは大切なことですが、それだけでは不足です。勝つためのソフトウェアを作成するためには、作り手が、勝ち方を知っていないと勝てないと考えられなくはないでしょうか?いかに、ハードウェアが高速で、幾通りもの指し手を予測する性能があったとしても、勝てる手を指せなければ意味がありません。次手に、どのような評価値をつけるかは、自分の経験や判断で決めていかないといけないということです。
 一方で、プロの棋士が、将棋を指したスコアをまとめた電子アーカイブが存在します。手に入れるために、有償であるのか、無償であるのかは別として。洗練された棋譜の中から、概ねこの方法が良かろうということを学習して、評価値を決めることもできるのです。不可能ではありませんね。だとしたら、棋力の少ない一般人がプロ棋士に勝つためには、素人が企んだ戦略で勝負することよりも、科学の力を借りて他の棋士の戦歴を分析することに注力することのほうが、より力を発揮しそうであることは予想に難くありませんね。そういう意味では、データありきで勝負することも現実の手段としては有効ではないかと考えられます。
 
②将棋の発展に寄与するコンピュータ将棋の在り方
 
 シミュレーターとしてのコンピュータ将棋の在り方には、価値があると考えています。コンピュータの力を借りて、過去の経験値から、どのような時にどんな方法が妥当な指し手として、有効であるかを測る尺度(最善手)として選ばれるべきかを知ることは非常に意味があることだと思っています。そういう意味では、主に研究分野としての利用価値が高く、電王トーナメント終了の合図をもってその存在意義をなくすものではないと考えています。どういう戦法がトレンドなのか?などという話に至っては、コンピュータ将棋が業界をリードする役割を果たしていくのではないかと考えています。
 
③コンピュータ将棋を支える技術基盤
 
 ソフトウェア開発において、Windows 環境において C++ で開発することが花形であるように見受けられます。Linux で開発することも視野に入ってないわけではないのでしょうが、私が気づいていないプラットフォームに依存する操作の具合(簡便性、特殊なAPI)が存在することにより、Windows 上での開発が主流になっているように感じます。対局場と、思考エンジンとを結ぶソフトウェアの通信プロトコルについては、このように実装すればよろしいというような、解説を伴っての平易な案内がなく、新規参入組の高い壁となっているような気がします。コンピュータ将棋の今後の発展を期待するにあたって、より分かりやすい解説が、障壁なく手に入れることができるという要件が必要になってくると思われます。