【AI入門】コンピュータ将棋・AI将棋の衝撃!将棋人工知能の今!

アルファ碁という囲碁を攻略するAIが話題になった昨今ですが、将棋の世界でもAIの旋風が吹き荒れています

このようなゲーム攻略を行うAIの研究では、最新の機械学習技術が使われていることが多いです。

この記事では、コンピュータ将棋やAI将棋と呼ばれる将棋の人工知能の今をまとめてみました!

この記事でコンピュータ将棋の今を知って、皆さんが人工知能へ興味を持ってもらえると嬉しいです。

コンピュータ将棋とは

まずは定義を知っておきましょう。

コンピュータ将棋(コンピュータしょうぎ)は、コンピュータによる将棋の対戦、また将棋を指すコンピュータおよびそのプログラムそのものである。

※コンピュータ将棋 --Wikipediaより

さて、将棋というゲームは非常にアルゴリズムで解くことが難しいゲームです。

これは囲碁などのゲームでも言えることですが、最終的な盤面を見ないと勝敗がわかりません

ですが機械学習などで解くためには、一手ずつ相手と自分の指し手を評価していかないといけません。

なので最終的な盤面になるまでの各局面を評価する評価関数が大切になってきます。

この評価関数を作るには、手作業で行ったり、機械学習を使ったりします。

また、将棋の盤上のどこに駒を置くかを決めるために、「探索」と呼ばれる作業も必要になります。

探索アルゴリズムには

  1. 枝刈り
  2. ミニマックス法
  3. アルファ・ベータ法

などのアルゴリズムを用います。

また、アルファ碁でも使われたディープラーニングとモンテカルロ木探索などを使った将棋AIも存在します。

将棋電王トーナメント

[リンク:第5回 将棋電王トーナメント]

統一ハードで闘う、真に最強のコンピュータ将棋ソフトを決める大会です。
将棋電王トーナメントでの優勝ソフトには“電王”の称号を与えます。

■主催
株式会社ドワンゴ
公益社団法人日本将棋連盟

※第5回将棋電王トーナメント 決勝トーナメント --ニコニコ生放送より

将棋ソフトのトーナメント戦として「将棋電王トーナメント」が知られています。

このトーナメントはニコニコ生放送でタイムシフトを見ることができます。

電王戦

[リンク:第2期 電王戦 THE LAST]

コンピュータとプロ棋士などの人間との対局が行われるイベントとして「将棋電王戦」が知られています。

電王戦については、ニコニコ大百科が詳しいので読んでみてください。

また、電王戦においてPONANZAという将棋ソフトがプロ棋士に勝ったことで、コンピュータ将棋の知名度はグンと大きくなったように思います。

ニコニコ動画で有名なドワンゴが主催していて、ニコニコ生放送の中継は話題になりました。

2017年2月22日、「人間とコンピュータが同じルールで真剣勝負をするという歴史的役割は終わった」として、第2期を以て電王戦は終了した。

※将棋電王戦 --ニコニコ大百科より

最終的にはコンピュータ将棋ソフトの方が人間との対局に勝てるほどに性能向上したことが証明された事をもち、このイベントは終了しました。

将棋プログラムの代表例

Ponanza

もしかしたら最も有名な将棋ソフトかもしれないPonanza

作者は愛知学院大学特任准教授の山本一成先生です。

Ponanzaで使われているシステムの一部について、以下のスライドで解説がされています。

また、現在PonanzaとはLINEで対局することができるようです。

やねうら王

やねうら王は、オープンソースで公開されている強豪の将棋ソフトです。

このやねうら王エンジンを使って様々な将棋ソフトが作られています。

elmo

elmoPonanzaに勝利し、第27回 世界コンピュータ将棋選手権で優勝した将棋ソフトです。

このelmoはやねうら王の上に実装されているようです。

また、このelmo、無料公開されたことでも話題になりました。

まとめ

この記事では、将棋AI・将棋ソフトなどと呼ばれるコンピュータ将棋について紹介しました。

コンピュータ将棋の世界は様々な強豪ソフトが公開されている非常に面白い分野です。

プロ棋士に勝利してからも更なる開発が続けられていて目が話せませんね!

第一言語はPythonです。
皆さんRustやりましょう。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら