やねうら王オープンソースプロジェクト

ソースコードのダウンロード先

導入手順

開発の目的

  •  教育を目的として、現実的な将棋プログラム(Bonanza6より強い)が、2000行程度で書けることを示す。(当初、1000行程度を想定していたが、トップソフトと同等の指し手生成速度、実用に耐えうる将棋の思考エンジンフレームワークにしようと思ったため、行数がずいぶん増えた。Bitboardと指し手生成だけで1000行ぐらいある。)
  • Bonanza6は空行を除くと25,863行。2015年11月電王トーナメント直後に公開された最新のAperyのソースコードは、空行と//によるコメント行を除くと9,612行。本プロジェクトがいかに困難な目標設定であったかがわかる。
  • 本プロジェクトのために作者(やねうらお)が、1からソースコードを作成した。
  • より詳しいプロジェクトの意義については、「やねうら王miniの公開に向けて」に詳しい。

バグ等について

  • pull request歓迎。
  • ただし行数が増える改造はあまりしたくない。(わずかな改良で強くなるのはもちろん歓迎)
  • わずかな高速化のためにソースコードが読みにくくなるのもやねうら王miniではあまりしたくない。

思考エンジンのダウンロード

やねうら王関連の思考エンジンのダウンロード
https://github.com/yaneurao/YaneuraOu/tree/master/exe

スマホ(Android)版やねうら王

評価関数ファイルのダウンロード

Apery,Stockfishへのステップに

  • 教育的な意図から、Apery、Stockfishの関数名になるべく合わせてある。本ソースコードを読んだあと、それらのソースコードにとっつきやすくするためである。

謝辞

  • Apery → 遠方駒の利き、縦型Bitboard
  • Bonanza → 3駒関係
  • Stockfish → データ構造、探索
    以上、3ソフトからは多くのアイデアを参考にさせていただきました。作者に感謝致します。

ライセンスについて

  • GPLv3(公開当初)
  • MIT License(最終的な目標)

やねうら王miniのソースコードの解説文書

1.やねうら王miniの全般的な使い方、各structやenumの説明などについての連載。

2.やねうら王miniを使って協力詰めsolverを作り、終盤の探索について学ぶ連載。

3.Long Effect Library完全解説

長い利きに関するプログラミングライブラリ。これがあると利きの数を得たり、超高速1手詰め判定が出来たりします。

4.やねうら王miniを使って詰将棋solverを作り、終盤を強化する方法について学ぶ連載。

  • 連載やねうら王miniを強くしよう2。1日目 —

やねうら王miniプロジェクトの副産物

  • 協力詰めsolverを公開します — 『寿限無』(19447手)、『寿限無2』(38889手)、『寿限無3』(49909手)が解ける協力詰めsolver。将棋所、ShogiGUIから詰将棋エンジンとして登録して使えます。
  • 連続自動対局フレームワーク作りました — エンジン同士の連続自動対局を行なうためのフレームワークです。1手0.1秒、0.05秒というような超絶過酷な条件での連続自動対局が出来ます。定跡ファイルを読み込み、ランダムに棋譜を1つ選び、その棋譜のX手目から開始する機能も備わっています。
  • やねうら王 王手将棋エディションを仮公開しました 王手をかけた時点で勝ちという変則ルールに基づく将棋です。王手将棋用の評価関数V1(+R300up)、V2(+R340up)という驚異的な棋力の伸びを見せ、最終的に R4250相当となり、王手将棋として世界最強のソフトとなりました。

定跡関連

開発者向け資料

ビルド手順

  • Windows環境の場合 → Visual C++ 2015 (Community Edition可)でビルド可能。(shogi.hでビルドしたいやねうら王のeditionを選択。)
  • Linuxの場合 → Makefileがあるのでg++が使える状態にして、make avx2 などとすればビルド可能。Ubuntu 16.04で動作確認済み。(Makefileのほうでビルドしたいやねうら王のeditionを選択。)
  • Macの場合 → Linuxの場合と同様。g++が使える状態にするまでが少し面倒だったので手順をまとめました。→ やねうら王2016MidをMacでビルドする方法

作者の連絡先

やねうらお ( mail : yaneurao@gmail.com )
やねうら王公式サイト http://yaneuraou.yaneu.com/
やねうら王mini 公式ページ http://yaneuraou.yaneu.com/yaneuraou_mini/