No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
ipqueue @ afcd236
pyshogieval
script
source
.gitattributes
.gitignore
.gitmodules
README.md
YaneuraOu.sln

README.md

ねね将棋 第28回世界コンピュータ将棋選手権(WCSC28)版

2018年5月に出場したバージョンです。

Deep Learningを用いた評価関数で探索を行う将棋プログラム。1次予選にて、40チーム中15位。

環境構築がとても面倒なので、使用はおすすめしません。アイデアの参考としてご利用ください。このリポジトリはやねうら王を改造したもののため、GPLv3ライセンスとします。

構成

  • このリポジトリのmasterブランチ
    • 本体となるUSIエンジン(YaneuraOu-user.exe)とpythonモジュール(pyshogieval.pyd)。
  • このリポジトリのpython-dllブランチ
    • 学習時に使うpythonモジュール(yaneuraou.pyd)。
  • neneshogiリポジトリ https://github.com/select766/neneshogi
    • deep learning関係。対局用コードと学習用コードの両方が入っている。
  • ipqueueリポジトリ https://github.com/select766/ipqueue
    • プロセス間通信用ライブラリ。git submoduleとしてロードされる。

環境

Visual Studio 2017, Python 3.6, CUDA 9.0, cuDNN 7.1

masterブランチのセットアップ、ビルド

git submodule init
git submodule update  # ipqueueリポジトリをロード

Visual Studio 2017にて、"Release-user"構成でビルド。

YaneuraOuプロジェクトから、build/user/YaneuraOu-user.exeが、pyshogievalプロジェクトから、pyshogieval/pyshogieval/pyshogieval.pydが生成されるはず。

cd pyshogieval
python setup.py develop  # python環境にpyshogievalモジュールをインストール

python-dllブランチのセットアップ、ビルド

masterとは別の場所にcloneすることを推奨。学習時のみ必要で、エンジンの実行には不要。

Visual Studio 2017にて、"Release-user"構成でビルド。

python/yaneuraou/yaneuraou.pydが生成されるはず。

cd python
python setup.py develop

neneshogiリポジトリのセットアップ

リポジトリをclone

pip install -r requirements.txt
python setup.py develop

neneshogi_cpp Visual Studio プロジェクトは不使用のはず。

将棋所からの利用

USIエンジンとしてbuild/user/YaneuraOu-user.exeを登録。

設定(デフォルトでないものを 太字 で表示)

  • Threads : 2
  • Hash: 16
  • MultiPV: 1
  • WriteDebugLog: false
  • NetworkDelay: 120
  • NetworkDelay2: 1120
  • MinimumThinkingTime: 2000
  • SlowMover : 150
  • MaxMovesToDraw: 0
  • DepthLimit: 0
  • NodesLimit : 1000000
  • Contempt: 2
  • ContemptFromBlack: false
  • EnteringKingRule : CSARule27
  • EvalDir: eval
  • PvInterval: 1000
  • MCTSHash : 80
  • c_puct : 2.84
  • play_temperature: 1.0
  • softmax : 0.86
  • value_scale: 1.0
  • value_slope: 1.0
  • virtual_loss: 1
  • clear_table: false
  • model : (モデルのウェイトファイルへの絶対パス)
  • initial_tt : (定跡置換表ファイルのあるパス)
  • batch_size : 512
  • process_per_gpu : 2
  • gpu_max : 7
  • gpu_min : 0
  • block_queue_length : 20

本番モデルはdata\model\20180316103614\weight\model_iter_1953125 本番置換表はdata\make_book\first\ttable\merged.bin

学習例

やねうら王形式の40byte/recordの棋譜データを用意する。

http://yaneuraou.yaneu.com/2018/01/23/%E6%9C%88%E5%88%8A%E6%95%99%E5%B8%AB%E5%B1%80%E9%9D%A2-2018%E5%B9%B41%E6%9C%88%E5%8F%B7/

data/model/20180316103614に学習の設定が書いてあるとき、

python -m neneshogi.train data/model/20180316103614

データセットのファイル名を環境に合わせて書き換えたり、solver.yamlinitmodel行を初期値となるモデルがないなら削除したりする必要がある。

以下、オリジナルのやねうら王のREADME

About this project

YaneuraOu mini is a shogi engine(AI player), stronger than Bonanza6 , educational and tiny code(about 2500 lines) , USI compliant engine , capable of being compiled by VC++2017

やねうら王miniは、将棋の思考エンジンで、Bonanza6より強く、教育的で短いコード(2500行程度)で書かれたUSIプロトコル準拠の思考エンジンで、VC++2017でコンパイル可能です。

やねうら王mini 公式サイト (解説記事、開発者向け情報等)

やねうら王公式

お知らせ

  • SDT5(第5回 将棋電王トーナメント)のため、10月1日~11月12日はプルリクエストが処理できません。
  • SDT5直前は大改造をすることがあるので、動作等が安定していない可能性が高いです。(現状、V4.76が安定)

現在進行中のサブプロジェクト

やねうら王2017 Early

2017年5月5日完成。この思考エンジンを用いたelmoがWCSC27で優勝しました。elmo(WCSC27)や蒼天幻想ナイツ・オブ・タヌキ(WCSC27出場)の評価関数を用いるとXeon 24コアでR4000程度の模様。

  • 思考エンジン本体のダウンロードはこちら

やねうら王2017 GOKU : SDT5に『極やねうら王』として出場。

2017年11月の第5回将棋電王トーナメントに参加してきました。(探索部の強さ、前バージョンからあまり変わらず) Apery(SDT5)などの評価関数を用いるとXeon 24コアでR4200程度の模様。

やねうら王2018 OTAFUKU (やねうら王2018 with お多福ラボ)

今年は一年、これでいきます。

やねうら王詰め将棋solver

《tanuki-さんが開発中》

長手数の詰将棋が解けるsolverです。

過去のサブプロジェクト

過去のサブプロジェクトである、やねうら王nano , mini , classic、王手将棋、取る一手将棋、協力詰めsolver、連続自己対戦フレームワークなどはこちらからどうぞ。

やねうら王評価関数ファイル

  • やねうら王2017Early用 - Apery(WCSC26)、Apery(SDT4)=「浮かむ瀬」の評価関数バイナリがそのまま使えます。
  • やねうら王2017 KPP_KKPT型評価関数 - 以下のKPP_KKPT型ビルド用評価関数のところにあるものが使えます。
  • やねうら王2018 Otafuku用 KPPT型 → やねうら王2017Early(KPPT)と同様
  • やねうら王2018 Otafuku用 KPP_KKPT型 → やねうら王2017Early(KPP_KKPT)と同様

「Re : ゼロから始める評価関数生活」プロジェクト(略して「リゼロ」)

ゼロベクトルの評価関数(≒駒得のみの評価関数)から、「elmo絞り」(elmo(WCSC27)の手法)を用いて強化学習しました。従来のソフトにはない、不思議な囲いと終盤力が特徴です。 やねうら王2017Earlyの評価関数ファイルと差し替えて使うことが出来ます。フォルダ名に書いてあるepochの数字が大きいものほど新しい世代(強い)です。

やねうら王 KPP_KKPT型ビルド用評価関数

やねうら王2017 KPP_KKPT型ビルドで使える評価関数です。

Shivoray(シボレー) 全自動雑巾絞り機

自分で自分好みの評価関数を作って遊んでみたいという人のために『Shivoray』(シボレー)という全自動雑巾絞り機を公開しました。

定跡集

やねうら王2017Earlyで使える、各種定跡集。 ダウンロードしたあと、zipファイルになっているのでそれを解凍して、やねうら王の実行ファイルを配置しているフォルダ配下のbookフォルダに放り込んでください。

世界コンピュータ将棋選手権および2017年に開催される第5回将棋電王トーナメントに参加される開発者の方へ

やねうら王をライブラリとして用いて参加される場合、このやねうら王のGitHub上にあるすべてのファイルおよび、このトップページから直リンしているファイルすべてが使えます。

ライセンス

やねうら王プロジェクトのソースコードはStockfishをそのまま用いている部分が多々あり、Apery/SilentMajorityを参考にしている部分もありますので、やねうら王プロジェクトは、それらのプロジェクトのライセンス(GPLv3)に従うものとします。

「リゼロ評価関数ファイル」については、やねうら王プロジェクトのオリジナルですが、一切の権利は主張しませんのでご自由にお使いください。