お手軽に将棋AIをさわりたいっ!

タイトル通り。YaneuraOu や 技巧がオープンソースになってるからそれを使えばいいという説もあるが、私のC++力では読解するのに大変そうだ。もっと簡単にあつかえる将棋エンジンはないか物色していたら‥‥、ありましたよ!

not さんが開発した、CNNShougi 。パイソンで書かれているから、実行は楽ちん。

ソースもわずか4ファイルながら、学習機能やUSI インターフェイスも備えている。上手い人が書くと、こうなるものなのかと感心。

そして注目すべきは、いわゆるミニマックス戦略式の探索機能はまったくなしで、ニューラルネットのみで指し手を決定している点。ニューラルネットも勉強したかったのでちょうどよい。なお、ニューラルネットは Chainer の CNN (畳込みニューラルネット)というヤツらしいのが、現時点でここらへんのモデルの差異はよくわかってない。

とりあえず、落として実行させてみたが、若干の修正でしっかり動く。将棋ブラウザQにエンジン登録して対戦したら、なかなか将棋っぽくなった。探索なしでこれはなかなか。

・解説記事は、こことか。

・(おそらく)Chainer のバージョンアップにともないソースは若干の修正の必要あり。構文的なものと型のキャスト。(→ Chainer 2 用に修正したものを github にあげておきました)

・学習を 20 エポック(デフォールトの倍)にしてみたら、指した感覚としてはけっこう将棋っぽくなった。

・将棋ブラウザQへの登録は、エンジンとしてパイソンそれ自体を、引数として usi.py を与えるというかなり乱暴なやり方。でも、しっかり動いている。

 

windows10 で GCC

windows 環境で GCC を使うとすると、MinGW が有名だが、現時点で、公式には gcc  6.3くらいまでしか対応してない。

もうちょっと最新版が使えないか調べたら、MinGW Distro というのを見つけた。version は驚きの 7.1 。

すぐに使うことはないだろうが、紛れないように記録。

 

 

openDolphin を MacBook にインストールしてみた

もちろん動く。

だからどうしたって話なんですけどね。

でんも、なんかルック&フォールが洗練されてるんだよなあ(嘆息)。

 

(追記)Mac へのインストール解説記事書きますみたいなこと言ってましたが、先に ANN2bさんが『OpenDolphin-2.7(m) を Mac OSX にインストールする』を書いてくれました。最新環境への対応のため、一部ソースにも手が入ってます。

 

air-h-128k-il

 

藤井猛の持ち駒バラマキ伝説

棋士伝説ネタをもう一つ。

今でこそ、藤井といえば藤井聡太名人だが、ちょっと前までは藤井猛九段のことを指していた。藤井システムのインパクトがあまりに強かったため、旧来からの将棋ファンには依然支持されているように思う。

ところで、藤井伝説の一つに逆転負けがあまりにも悔しく「投了時、駒台の持ち駒を盤上にぶちまけた」というのがある。

事実関係は調べやすかった。ネット上にもそのときの写真が流通されている。ここで出しても問題ないと思うので、掲げておくと、これだ。

リアルですね。。。

棋譜を調べてみると、このいきさつがすごくよくわかる。

藤井九段、得意の四間飛車+序盤戦略で初手から着実にリードを広げていく。ちなみに95手目の局面はこうなっていた。

先手の囲いは4枚穴熊で固いものの、後手は馬が二つできていて攻守のバランスが良い。すぐに決め手がある局面ではないと思うが、素人目にみても堅実に指していけば、勝ちきれる将棋という印象はある。

この次の手が▲2三金打。さすがにこれでは間に合わないと思われるが、こういう一種の手渡しに藤井センセは弱い。いわゆるファンタな応手が増えていく。

評価値的(エルモで10秒検討)には

こんな風に推移していき、最終的には

こうなってしまった。8二になにを合駒してもそれぞれ詰みがあります。

確かに感情の矛先をどこにぶつけていいかわからなくなるような進行ですね。なんか納得。

なお、このエピソードはけっこう有名なためか将棋漫画『3月のライオン』にも使われているようです。

「絶対にやってはいけません」なんでしょうが、藤井センセなら許される?

 

air-h-128k-il

 

カッコーはウェブに卵を産むか

将棋ソフトが整ってくると次に欲しくなるのが棋譜だ。

連盟の将棋中継アプリの通信内容からなんとか kif 形式に落とすことはできないか考えてみましたが、がっつり ssl かかってました。

ところで、ssl の筋に入っていく前にアプリはhttp://kak.o.oo7.jp/ShogiLive/ann/iphone.txt というところに GET リクエストを送っている。 “カッコーはウェブに卵を産むか” の続きを読む

Mac で技巧2を使う

また将棋ネタ。
メインで使っている XPS 13 の調子が悪く、ここのところ移動時には MacBook を携えている。困るのは将棋ソフトが充実していない点。

なので elmo (というか YaneuraOu)や技巧2をソースからコンパイルしてみた。

基本的なやり方は、ここここといっしょ。

技巧2の方は、Mac オリジナルの gcc でコンパイルできないので(OpenMP とやらでひっかるみたい)、GCC の gcc49 で置きかえてコンパイル。導入には homebrew より macports の方が簡単のようで、私はそうしました。

 

【Tips!】

$ port search gcc

でインストールできるパッケージを確認。

$ sudo port install gcc49

でインストール。

$  port contents gcc | grep /bin/

でパッケージの実体の path を調べる。私の場合は /opt/local/bin 以下にありました。

$ which gcc

でオリジナルの gcc g++ の path を確認して(私の場合は /usr/bin )

$ sudo ln -sf /opt/local/bin/gcc-mp-4.9 /usr/bin/gcc

$ sudo ln -sf /opt/local/bin/g++-mp-4.9 /usr/bin/g++

で、リンクをはる(※)、という手順。要するに Mac がコンパイルするとき、/usr/bin 以下の gcc を使うので、リンク貼ってそこから gcc-mp-4.9 に飛ばすという理屈。

 

エンジンができたら、将棋ブラウザQ などに登録。無事 Mac 環境下でも強豪将棋ソフトが使えました。

実際の elmo VS 技巧2のバトルは YouTube で。

※‥‥直リンなのでターミナル上で誤操作をするとオリジナルの gcc/g++ が消える可能性もあります。操作は自己責任でお願いします。なお、Mac に不慣れな私もこれをやってしまいましたが、OS X のマイナーアップデートで修復されます。こういうのが嫌な場合は、おとなしく makefile を編集しましょう(コメント欄参照。こっちの方が簡便か)。

? 関連して新しい記事があります。

MacOS に elmo + やねうら王 + 将棋ぶらうざQ を「clang」で導入

 

早石田くん対策

かなりダイナミックな飛車取らせ戦術。


早石田くんはマナー悪い印象。

他には、筋違い角とか浮き浮き飛車とかもあるが、おいおい。

有段者になるとマイナー戦法に見せつつ他に狙いもあったりするので手強い。