-
Notifications
You must be signed in to change notification settings - Fork 54
/
Copy pathReadme.txt
82 lines (56 loc) · 4.12 KB
/
Readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
重要なお知らせ
開発は https://github.com/HiraokaTakuya/apery_rust に移行しましたので、
最新版の取得や、開発にご参加頂く場合は、そちらを参照して下さい。
概要
Apery は USI プロトコルの将棋エンジンです。
USI エンジンに対応した GUI ソフト (将棋所やShogiGUIなど) を使って下さい。
Apery は GNU General Public License version 3 またはそれ以降のバージョンのもとで配布されます。
主にチェスエンジンの Stockfish の実装を参考にしています。
将棋固有のデータ構造、評価関数等、Bonanza の実装を非常によく参考にしています。
ファイルの説明
・Readme.txt, このファイルです。
・Copying.txt, GNU General Public License version 3 条文です。
・src/, Apery のソースコードのフォルダです。
・utils/, Apery 開発で使用する本体以外のソフトのソースコードのフォルダです。
・bin/, 評価関数や定跡のバイナリのフォルダです。ファイルサイズが巨大なので、リポジトリ自体は分けています。
利用環境
メモリに最低でも 1.2GB 程度空きがあること。
64bit OS であること。
使い方
最初に、実行ファイルは apery/bin フォルダに置くことを想定しています。
ご自身でビルドした場合は apery/src に実行ファイルが出来ますので、適宜 apery/bin に移動させて下さい。
将棋所での使い方のみを説明します。
将棋所を立ち上げます。
Windows の場合
Shogidokoro.exe をダブルクリックして下さい。
Linux の場合
terminal を立ち上げ、mono Shogidokoro.exe とコマンドを打って下さい。
立ち上がらない場合、mono のバージョンが低いか、mono のライブラリが足りない可能性が高いです。
MonoDevelop 等をインストールすれば必要なライブラリは揃うと思います。
例として、Ubuntu の場合は sudo apt-get install monodevelop とコマンドを打つとインストール出来ると思います。
(最新の将棋所は Mono で動かない事もあるようです。古い将棋所を使うか、Mono を可能な限り最新にすることで動作するかも知れません。
また、将棋所を使って人間が指した時など、駒音が鳴るときに将棋所が落ちる事があるようです。音が鳴る設定を切ってお使い下さい。)
将棋所のエンジン登録で Windows の場合は apery/bin/apery.exe (Linux の場合は apery/bin/apery) を登録して下さい。
登録に失敗するなら、Apery が正しく動作していない可能性があります。
その場合は、apery/bin/apery (Windows の場合は apery/bin/apery.exe) をダブルクリックして、usi とコマンドを打ってみて下さい。
usiok が表示されない場合は、ご利用の PC では Apery が動作しないようです。
将棋所に登録出来ましたら、後は将棋所の使い方を参照して下さい。
開発者向け注意点
Linux, Windows で g++-7 以上のバージョンで動作確認をしています。
Visual Studio でビルドする際は、
プラットフォームを x64 にし、
C/C++ コマンドライン に
/source-charset:utf-8 /bigobj
を記載して下さい。
評価関数の機械学習をするには
ifdef.hpp を修正して LEARN を有効にして下さい。
./apery make_teacher <対局開始局面集データ(ハフマン符号化したもの)> <出力教師データ> <スレッド数> <出力教師局面数>
とコマンドすると、強化学習用の教師データを生成します。
./apery use_teacher <教師データ> <スレッド数>
とコマンドすると、強化学習を開始します。
評価関数バイナリが上書きされるので気を付けて下さい。
定跡を生成するには
apery をビルドして、
./apery b <定跡用棋譜ファイル名>
とコマンド入力すると定跡生成を開始します。
棋譜の形式はCSA1行形式です。詳しくは book.cpp のコメントを参照して下さい。