1.2くらいから考える将棋ブログ

わかった気になるも、よくわからないことを考えていく?

PonderOn時に定跡を無視する話

やねうら王でPonderを設定している時、定跡手を指さない場合があるのでメモとして残す。

 

つもりだったが、再現条件がうまく特定できなかった。

 

わかっている点として、PonderをOnにしていると登録されている定跡手を無視し、思考した指し手を指す場合がある。

なので定跡の応手に意図的にnoneを入れてPonderを不発させ、強制的に定跡手を指させる技があるらしい。

しかし、人為的な局面を作って再現を行おうとしたが、今の所再現できていない。

形勢不利な際に、起きやすい気がする。

 

追記:この減少は2017~2018年にかけて使用した際に幾度か見たものであるが、当時の局面で試そうとしたもののうまく定跡を無視してくれなかった。

最新のやねうら王では発生しない?

 

↓関係ありそう?

ponderおよびbookの両方にヒットした時の挙動 · Issue #66 · yaneurao/YaneuraOu · GitHub

やねうら王の定跡オプションについての覚え書き

防備録も兼ねて

一部のオプションってしばらく使わないと忘れるし、日本語化しても微妙に意味が分かりづらいものあるよねってことで、局面例などと共にメモ書きとして残す(予定)

主な定跡関係のオプションは以下となる

やねうら王定跡絡みオプション
USIオプション(原文)  将棋所での日本語訳   私の理解とか補足 
NarrowBook 出現確率の低い定跡を採用しない NarrowBookだけだと、UseNarrowBook(出現確率の低い定跡を採用する)とも読み取れるので、AvoidNarrowBookとかに改名してほしい。False時、採用するのかしないのかでしばしば混乱する。
BookMoves 定跡を用いる手数(0=未使用) 128が最大?
BookIgnoreRate   一定の確率で定跡を無視して自力で思考させる。QhapaqさんのPR
BookFile 読み込む定跡ファイル  
BookDir   定跡ファイルがあるディレクト
BookEvalDiff 定跡の第一候補手との評価値の差、定跡の幅(0=無,30=狭,100=広)

値を広くするほど手は広くなる。

BookEvalBlackLimit 定跡の先手の評価値下限、定跡で採用する評価値下限(先手)

振り飛車とかを指させたいときはマイナスにする。(先手不利になる指し手も指させる)

BookEvalWhiteLimit 定跡の後手の評価値下限、定跡で採用する評価値下限(後手) 採用手を広げる場合、より低い値にする。(後手不利な手も許容する)0に近づければ指し手は狭まる。
BookDepthLimit 定跡のdepth下限(0=下限なし) ※テラショック形式とそれ以外で動作が異なる)
BookOnTheFly 定跡をメモリに丸読みしない  
ConsiderBookMoveCount 定跡の指し手を採択率に比例させる NarrowBookとの組み合わせが分かりづらい
BookPvMoves   定跡にヒットしたときに読み筋を何手先まで表示するか。
IgnoreBookPly   定跡DB上の手数を無視する。角換わりとかで重要らしい。将棋の定跡でgameply(初期局面からの手数)って要ります?
BookOnlyThinkingMove 定跡では思考した指し手のみ用いる このオプションあったっけ?

 

以下の局面を例としてオプションによる挙動をみていく。

基本局面

sfen lnsgkgsnl/1r5b1/p1ppppppp/1p7/9/2P6/PP1PPPPPP/1B5R1/LNSGKGSNL b - 3

いわゆる76歩に84歩とした局面である。

使用する定跡

A. やねうら標準定跡:出現頻度の情報付き、評価値の情報なしの定跡 (standard_book.db)

B. 極やねうら定跡:depth34で作った評価値付きの小さな定跡、出現頻度情報なし (yaneura_book4.db) (※極やねうら定跡は将棋神やねうら王に収録されている。)

C. 100テラショック定跡(WCSC29時点 , 700T):depth36相当以上で作った評価値付きの大きな定跡、出現頻度情報なし(user_book2.db)

 

A. 標準定跡形式での関連オプションと挙動

やねうら標準定跡で基本局面の指し手は以下のようになっている。

sfen lnsgkgsnl/1r5b1/p1ppppppp/1p7/9/2P6/PP1PPPPPP/1B5R1/LNSGKGSNL b - 3
7i6h 3c3d 0 32 3174
2g2f 3c3d 0 32 1598
5g5f 3c3d 0 32 650
6i7h 4a3b 0 32 518
7i7h 3c3d 0 32 277
2h6h 3c3d 0 32 155
1g1f 3c3d 0 32 143
6g6f 3c3d 0 32 106
8h7g 3c3d 0 32 78
2h7h 8d8e 0 32 70
4i5h 3c3d 0 32 5
3i4h 3c3d 0 32 1

標準定跡形式では、評価値は0であるため、指し手は頻度をもとに決定される。

 そこで重要となるオプションがNarrowBookConsiderBookMoveCountである。

そこでこの局面に対して、それぞれのオプションのON/OFFで指し手がどう変化したかを示す。それぞれのオプションで100回指し手を確認した。

1. NarrowBook: TrueConsiderBookMoveCount: True

7i6h: 68回
2g2f: 32回

2. NarrowBook: TrueConsiderBookMoveCount: False

7i6h: 50回
2g2f: 50回

3. NarrowBook: FalseConsiderBookMoveCount: True

7i6h: 47回
2g2f: 24回
5g5f: 11回
6i7h:  8回
7i7h:  5回
2h6h:  3回
8h7g:  1回
2h7h:  1回

4. NarrowBook: FalseConsiderBookMoveCount: False

7i6h: 11回
2g2f: 13回
5g5f: 11回
6i7h:  7回
7i7h:  7回
2h6h:  9回
1g1f:  8回
6g6f: 10回
8h7g:  1回
2h7h:  8回
4i5h:  8回
3i4h:  7回

以上の結果となった。

これをふまえ、それぞれのオプションの挙動を整理する。

NarrowBook

Trueの時→採用される指し手が減る

Falseの時→特になにも起きない

実際に、NarrowBook Trueの時のログを確認する。

position startpos moves 7g7f 8c8d
<1:info pv 3i4h 3c3d 6g6f 8d8e 8h7g 5c5d (0.01%) score cp 0 depth 32 multipv 12
<1:info pv 4i5h 3c3d 6g6f 8d8e 8h7g 7a6b (0.07%) score cp 0 depth 32 multipv 11
<1:info pv 2h7h 8d8e 8h7g 3c3d 6g6f 5a4b (1.03%) score cp 0 depth 32 multipv 10
<1:info pv 8h7g 3c3d 7i8h 4a3b 3i4h 6c6d (1.15%) score cp 0 depth 32 multipv 9
<1:info pv 6g6f 3c3d 2h6h 7a6b 1g1f 5a4b (1.56%) score cp 0 depth 32 multipv 8
<1:info pv 1g1f 3c3d 6g6f 7a6b 7i7h 5a4b (2.11%) score cp 0 depth 32 multipv 7
<1:info pv 2h6h 3c3d 6g6f 7a6b 3i3h 5a4b (2.29%) score cp 0 depth 32 multipv 6
<1:info pv 7i7h 3c3d 6g6f 7a6b 2h6h 5a4b (4.09%) score cp 0 depth 32 multipv 5
<1:info pv 6i7h 8d8e 8h7g 3c3d 7i6h 4a3b (7.65%) score cp 0 depth 32 multipv 4
<1:info pv 5g5f 7a6b 7i6h 7c7d 6h5g 8d8e (9.59%) score cp 0 depth 32 multipv 3
<1:info pv 2g2f 3c3d 2f2e 8d8e 6i7h 4a3b (23.59%) score cp 0 depth 32 multipv 2
<1:info pv 7i6h 3c3d 6g6f 7a6b 5g5f 5c5d (46.85%) score cp 0 depth 32 multipv 1
<1:info string NarrowBook : 12 moves to 2 moves.

 もともとこの局面では12個の指し手が登録されていたが、NarrowBookオプションにより、10%以下の指し手を取り除かれ、指し手が2個まで減らされている。

そのため、幅広い指し手の局面など、10%以下の候補手が多く存在するような局面では、指し手が偏ってしまう。 (第1候補手が13%、第2~第5候補手が9~8%などの場合、第1しか選ばれない?)

 

ConsiderBookMoveCount

Trueの時→採択率に応じた指し手が選ばれる→メジャーな手が出やすい

Falseの時→やや珍しい応手が現れやすい(ように感じる)

 1と2、3と4を比較してみるとわかるが、ConsiderBookMoveCountがFalseの際、採択率下位の指し手が選ばれやすくなっていることがわかる。

 

まとめ

ここまでの結果を踏まえるとNarrowBook, ConsiderBookMoveCountとの付き合い方は次のような感じになる。(※個人の感想です。)

① 珍しい応手も見たい(ソフトvs人など?)→NarrowBook, ConsiderBookMoveCount共にFalse

② マイナーな変化に突っ込んで自爆するのを見たくない(ソフトvsソフトなど?)→

NarrowBook, ConsiderBookMoveCount共にTrue

③ 同じような変化ばっかりで飽きるが②は避けたい→NarrowBook True, ConsiderBookMoveCount False

④ ③にしたがマイナーな変化が多いと感じる→NarrowBook False, ConsiderBookMoveCount True, もしくは①の設定

 

参考:やねうら王のbook.cpp

参考:定跡データベースの採択率に比例して指し手を選択するオプション by nodchip · Pull Request #24 · yaneurao/YaneuraOu · GitHub

 

B. 極やねうら定跡での関連オプションと挙動

極やねうら定跡で、基本局面での指し手は以下のようになる。

sfen lnsgkgsnl/1r5b1/p1ppppppp/1p7/9/2P6/PP1PPPPPP/1B5R1/LNSGKGSNL b - 3
2g2f 3c3d 81 34 479
8h7g 4a3b 48 34 479
6i7h 8d8e 43 34 479
1g1f 3c3d 42 34 479
7i6h 3c3d 40 34 479
7i7h 3c3d 36 34 479
5i5h 3c3d 25 34 479
3i3h 3c3d 15 34 479
6g6f 3a3b 14 34 479
3i4h 3c3d -19 34 479

評価値付きの定跡形式では、出現頻度項は同じ値になっている(この場合479)ことが想定されているので、 ConsiderBookMoveCountは意味を持たない(True/Falseで変化がない)。一方でNarrowBookはFalseにしておいた方が良さそうである。定跡形式の仕様上全ての指し手は当確率で存在しているので、ある局面において登録されている指し手が10個以上ある場合(実在するかは知らないが)、NarrowBookがTrueであると指し手が一個も選ばれなくなってしまうからである。

参考画像

f:id:jotcutJshakki:20190616220815p:plain

評価値付きの定跡形式においては、BookEvalDiff, BookEvalBlackLimit, BookEvalWhiteLimit が指し手の絞り込みに使われる。

この中で定跡手を一切指さなくなる可能性のあるオプションはBookDepthLimitであり、この値より低い(浅い)深さの指し手は採用されない。

BookDepthLimitによって採用されない例

f:id:jotcutJshakki:20190616225528p:plain

残りのBookEvalDiff, BookEvalBlackLimit, BookEvalWhiteLimit については、例えば指させたい手が第一候補手がからどの程度離れているかを数局面で確認し、自分なりの閾値を決めるといいと思う。

例えば以下の局面、人間的には中飛車・向飛車志向の局面であるが、極定跡での登録応手は以下のようになっている。

sfen lnsgkgsnl/1r5b1/p1pppp1pp/1p4p2/9/2P1P4/PP1P1PPPP/1B5R1/LNSGKGSNL b - 5

sfen lnsgkgsnl/1r5b1/p1pppp1pp/1p4p2/9/2P1P4/PP1P1PPPP/1B5R1/LNSGKGSNL b - 5
6g6f 8d8e -10 34 479    (6六歩)
3i4h 8d8e -63 34 479    (4八銀)
8h7g 2b7g+ -80 34 479   (7七角)
6i7h 8d8e -92 34 479    (7八金)
2g2f 8d8e -93 34 479    (2六歩)
2h5h 5a4b -94 34 479    (5八飛)
5f5e 7a6b -103 34 479   (5五歩)
1g1f 8d8e -103 34 479   (1六歩)
3g3f 8d8e -111 34 479   (3六歩)
8h2b+ 3a2b -126 34 479  (2二角成)
お分かりいただけるだろうか…振り飛車の評価の低さに…

ともかく、この局面で振り飛車を指させたい場合、2h5h(-94), 5f5e(-103), 8h2b+(-126), と定跡最善手6g6f(-10)を比較して、最善手よりも84~116評価を下げつつ、先手番でマイナスな手も許容するということで、BookEvalDiffを84以上、 BookEvalBlackLimitを-126以下にしなければこれらの手は採用されない。

同様に、後手番で飛車を振りそうな局面で考えてみる。

sfen lnsgkgsnl/1r5b1/ppppp2pp/5pp2/9/2P4P1/PP1PPPP1P/1B3S1R1/LNSGKG1NL w - 6

sfen lnsgkgsnl/1r5b1/ppppp2pp/5pp2/9/2P4P1/PP1PPPP1P/1B3S1R1/LNSGKG1NL w - 6
3a4b 2f2e -99 34 479
3a3b 2f2e -102 34 479
9c9d 2f2e -107 34 479
4a3b 2f2e -121 34 479
8c8d 2f2e -125 34 479
2b3c 5i6h -144 34 479
7a6b 2f2e -149 34 479
8b4b 9g9f -150 34 479
6a5b 2f2e -155 34 479
5c5d 2f2e -155 34 479

この局面で第一候補手が4二銀(-99)、飛車を振る手が4二飛(-150)なので、BookEvalDiffを61以上、 BookEvalWhiteLimitを-150以下にしなければこれらの手は採用されない。

 

C. テラショック定跡での関連オプションと挙動

テラショック定跡(700T)で、基本局面での指し手は以下のようになる。

sfen lnsgkgsnl/1r5b1/p1ppppppp/1p7/9/2P6/PP1PPPPPP/1B5R1/LNSGKGSNL b - 3
2g2f 8d8e 51 23 1
6i7h 4a3b 45 14 1
7i6h 3c3d 44 12 1
7i7h 3c3d 44 12 1
8h7g 3c3d 36 10 1
5i6h 8d8e 14 0 1
6g6f 7a7b 7 1 1
5i5h 3c3d 6 0 1
3g3f 3c3d 3 0 1
1g1f 3c3d 1 5 1
3i4h 3c3d -1 6 1
4i5h 3c3d -1 3 1
3i3h 3c3d -15 0 1
5g5f 3c3d -17 5 1
8h6f 4a3b -17 0 1
9g9f 3c3d -33 23 1
6i6h 3c3d -46 0 1
5i4h 3c3d -58 0 1
4i4h 3c3d -65 0 1
4g4f 8d8e -99 0 1
2h7h 7a7b -155 1 1
2h5h 1c1d -166 1 1
2h6h 8d8e -169 7 1
7f7e 5c5d -176 1 1

Bのやねうら極定跡項でも述べたが、極定跡よりも1局面あたりの登録応手が多いため、ますますNarrowBookはFalseにしておかなければならない。参考:100テラショック定跡、公開しました | やねうら王 公式サイト

あとは大体やねうら極定跡の時と同様に、BookEvalDiff, BookEvalBlackLimit, BookEvalWhiteLimit の閾値で指し手の範囲が決定される。

注意点として、定跡の深さ項の意味が変わり、最小値が0となっているので、BookDepthLimitは0としなければならない。

 

まとめ

・どの定跡形式でも指し手の絞り込みに使われるオプション

BookDepthLimit:※定跡手が採用されるか否かに効くので実質絞り込みには不向き

・標準定跡(評価値なし、出現頻度付き)で指し手の絞り込みに使われるオプション

NarrowBook:
10%以下の指し手を絶対見たくないときはTrue、ConsiderBookMoveCountをTrueにした時はTrueもFalseもほぼ変わらない
ConsiderBookMoveCount:
定跡登録手を頻度に応じて指して欲しい時はTrue, 均等に指して欲しい時はFalse

 ・極定跡、テラショック定跡(評価値あり、出現頻度なし)で指し手の絞り込みに使われるオプション

BookEvalDiff, BookEvalBlackLimit, BookEvalWhiteLimit:値を広げることで多少不利でも幅広い変化を指すようになる。

 

参考:

定跡ファイルに関する設定:思考エンジンのオプションについて - Androidスマホの最強アプリ ShogiDroid(将棋ドロイド) Wiki*

やねうら王のテラショック定跡コマンドで遊ぶー1

やねうらお様がやねうら王v4.85以降からテラショック定跡の生成手法を公開してくださったので、いろいろ動かしてみた忘備録を載せる予定である。

参考リンク

ご本尊の解説

yaneuraou.yaneu.com

やねうら王公式による定跡掘削代行はじめました | やねうら王 公式サイト

YaneuraOu/解説.txt at master · yaneurao/YaneuraOu · GitHub

えむいーさんの記録

tkgstrator.work

tibigameさんの記録

github.com

 

コマンド整理

makebook think reads.sfen writebook.db startmoves A moves B depth X node Y
read.sfenという棋譜を読みこみ、そのA手目からB手目までをdepth Xで思考させ(node Y調べたら途中でも終了)、定跡ファイル(やねうら大定跡形式)に書き出す。

これはテラショック以前にもあった定跡生成機能だが、テラショック形式で定跡生成する際にも必要。

オプション
makebook think bw sente.sfen go-te.sfen writebook.db startmoves A moves B depth X

"bw"を指定した場合、sfenファイルとして2つのファイルが指定できる。
1つ目のsfenファイル(sente.sfen)は、そのsfenファイルから先手の局面だけを抽出して使う。
1つ目のsfenファイル(go-te.sfen)は、そのsfenファイルから後手の局面だけを抽出して使う。

 

makebook build_tree read_book.db write_book.db

makebook thinkで生成したやねうら大定跡形式のread_book.dbを読み込み、やねうらテラショック定跡形式のwrite_book.dbを書き出す。

解説.txt(commit 8814a872a23af2e7502bd404a5eec217075e8e07)によると

read_book.dbには、thinkコマンドで実戦で出現した局面に評価値がついているものとして、 leaf nodeについている評価値を使ってmin-max探索のようなことをして、それぞれの局面での最善手を write_book.dbに書き出す機能。

とのこと

 

makebook extend_tree read_book.db read_sfen.txt write_sfen.txt black_eval_limit -200 white_eval_limit -300

read_book.dbの定跡に対して、read_sfen.txtのsfenの局面から開始して延長する枝をwrite_sfen.txtに書き出します。

read_sfen.txtの局面から、評価値が先手で-200以上、後手で-300以上の値がついている枝(候補手)だけを延長していきます。

ここで書き出されたsfenファイルを、makebook thinkコマンドで思考させるのを繰り返すと定跡ツリーが成長していきます。


※ read_sfen.txtにはこの延長を行う開始局面を複数指定できます。(わからなければ、"startpos"とだけ書いたテキストを用意すれば、  平手の開始局面からになるのでそれで問題ないはずです。) "startpos moves.."の形で複数の局面を指定します。

 うーん、わかるようなわからんような…

オプション
makebook extend_tree base.db read_sfen.txt write_sfen.txt extend_range -1 1

extend_rangeを指定すると、その範囲のleaf node(末端の局面)の候補手だけを延長対象とします。(MultiPVで思考させ複数の指し手が登録されている場合、このextend_rangeの範囲内の候補手で進めた局面だけが延長されます。) extend_range -1 1 と指定したならば、leaf nodeでextend_treeの引き分けのスコア(-1,0,+1)の局面だけを延長します。(棋譜として書き出します)

角換わりなど千日手が重要でなければ気にしなくても大丈夫? 

 

makebook endless_extend_tree book/db2019.db book/kadai_sfen.txt book/think_sfen.txt depth 12 startmoves 1 moves 32 loop 100 black_eval_limit -50 white_eval_limit -150 nodes 100000

makebook extend_treeとthinkを合体させたコマンド。think_sfen.txtのところは、思考対象局面を書き出す一時ファイル。このときbook/kadai_sfen.txtに “startpos” とだけ書いておけば、平手の初期局面が課題局面になるので、そこから自動的に定跡が掘られていきます。loopの回数だけ繰り返されます。

makebook extend_treeで既存定跡dbの延長→makebook thinkで延長局面を思考

の繰り返し?

 

コマンド解説を読んだ段階では微妙にわからない性なので、次回以降では体当たりして試した結果を載せてみる。

 

 

 

clangでやねうら王をビルドしてみる【自分用メモ】(Windows/MSYS2)

ここを見て大体できました(なぜ記事にした)。
www.mikunimaru.com

以下自分が躓いたところのメモ

pacman --needed -S mingw-w64-x86_64-boost git mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang make mingw-w64-x86_64-openblas

これ全部で1行

普通にmakeしたらgccでビルドされたので、clangでやるために

make avx2 COMPILER="C:\msys64\mingw64\bin\clang++.exe"

という力業を通した(Pathを通せ)

AWSエラー忘備録

初心者が使うとわけのわからないところで躓くので次回用にメモしておく

 

・viエディタ

編集終了時のescキー→:wqの流れとか

・ユーザー名

ubuntuならユーザー名はubuntu, ec2-userじゃなかった

・セキュリティグループのIP

なぜかアクセスできないと思ったら、セキュリティグループのソースが自分のIPじゃなかった。

http://ifconfig.moe/ で事前に把握したりセキュリティグループの設定画面でマイIPを選択すること。

・管理者権限

sudo su

・なんかマウントできない/マウントできたらしいけど中身がない

passwd-s3fsがちゃんとかけてないとか

 

AWSでShivorayごっこをしてみたので忘備録

環境:windows10 home

 

0.Cyberduck, Teratermを用意した。

1.AWSアカウントを作った。

2.IAMユーザーを作ったりMFAを設定したりした。

参考:AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFAで2段階認証 - Qiita

3.S3バケットを作成した。

リージョンに注意

例:gensfen

 4.IAMユーザーを作成した。

認証情報を保管しておく(Username, Password, Access key ID, Secret access key, Console login link, などの情報)

5.ポリシーを作成した。

サービス:S3

アクション:すべてのS3アクション(よくわからんかった)

リソース→bucket→ARNの追加:arn:aws:s3:::[バケット名],

   ※[バケット名]に3で作成したバケットを入れる。はいらない。

   例:arn:aws:s3:::gensfen

6.ユーザーにポリシーをアタッチ

ユーザー登録画面を開き、[アクセス権限の追加]をクリック

既存のポリシーを直接アタッチを選択

 5で作成したポリシーを選び、右下にあるポリシーのアタッチをクリック。
IAMの設定は終了。S3にアクセス許可をするユーザーができたので、次はインスタンスの設定をします。

参考:aws S3をgoofysでマウントしてFTPサーバー作成 - Qiita

 

 7.インスタンスの設定

sudo su

cd

sudo apt-get update

sudo apt-get install gcc

sudo apt-get install build-essential

sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config

git clone https://github.com/s3fs-fuse/s3fs-fuse.git

cd s3fs-fuse

./autogen.sh

./configure

make

sudo make install

vi /etc/passwd-s3fs

    バケット名:アクセスキー:シークレットキー

esc

:wq

sudo chmod 640 /etc/passwd-s3fs

sudo mkdir /mnt/s3fs

sudo s3fs バケット名 /mnt/s3fs -o rw,allow_other,uid=1000,gid=1000,default_acl=private 

vi /etc/rc.local

    s3fs バケット名 /mnt/s3fs -o rw,allow_other,uid=1000,gid=1000,default_acl=private 

esc

:wq

 参考:s3fsでマウント(IAM:ユーザー) - Qiita

 s3 をファイルシステムとしてマウントする - プログラマーのメモ書き

 

8.棋譜生成する。

 

9.S3に教師データがおいてあるので、回収する。

 

 

その他参考になったりならなかったりしたもの(私はこのへんをザッピングしてる内にやっとこさ扱えるようになったというだけで、理解力のある人は見なくてもいいはず)

IAM Roleを理解する – サーバーワークスエンジニアブログ

ロールに関する用語と概念 - AWS Identity and Access Management

Amazon S3をUbuntuにマウントする - みらいテックラボ

[AWS] EC2インスタンスにIAMロールを適用して、S3へファイルアップロードする。 – LexTech

Cyberduckを利用してS3とファイルをやり取りしてみる - かべぎわブログ

Cyberduckを使ってAWS S3にファイルアップロードを行う手順(Mac編) - Qiita

viエディタの使い方

Linuxの鬼門、viエディタの基本的な操作方法と実用的なコマンド | OXY NOTES

viを終了することができない人のためのviの使い方 | 三度の飯とエレクトロン

EC2インスタンスにS3をマウントする - Qiita

aws ubuntu s3マウント - Qiita

【超初心者Linux】第2夜:基本コマンドを使いながら覚えるのれす!(pwd,cd,ls,mkdir,rmdir,cp,mv,rm) - ぼりぼり農園

AWSアクセスキー作成 - Qiita

AWS SSH Teratermで接続しよう | Choco Soft

【初心者向け】Amazon EC2にSSH接続する【Windows、Macintosh】 | Developers.IO

http://ifconfig.moe/

AWSのIAM Roleはやはり便利だねという話 | OpenGroove

AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説 | Avintonジャパン株式会社

AWSアカウントの作成と必ずやるべきセキュリティ対策 | Avintonジャパン株式会社

IAM とは - AWS Identity and Access Management

AWS再入門2018 Identity and Access Management(IAM)編 | Developers.IO

EC2インスタンスにS3をマウントして使用する(IAM Role ver) - Qiita

【インスタンスって何??】AWSでよく聞く単語まとめてみた - Qiita

EC2インスタンスにS3をマウントする - Qiita

AWS初心者がEC2からS3の画像をマウントしてみた - tshizuku03の日記

awsのs3を操作する為のaccess keyとsecret keyを取得する(IAM) – joppot

【5分でできる】AWS EC2を使って仮想サーバーを作ってApacheをインストールする | 株式会社アースリンク

EC2でインスタンス(仮想サーバー)を作る方法【日本語解説】 – AWSの使い方 ≫ 使い方・方法まとめサイト - usedoor

EC2へ接続、Webサーバーインストール | 株式会社 N2P

[初心者向け] 初めてのEC2ログイン:Linux編 | Developers.IO

【AWS】アプリ屋がはじめてAWSでインフラ構築してみた@AP鯖構築編 - Qiita

AWS EC2インスタンスを作成する(AMI:Amazon Linux / Amazon EBSの設定など)

名人より強い!?将棋ソフト「やねうら王」をLinuxで動かす方法【Ubuntu 16.04・Fedora 26対応】 | Linux Fan

シェルスクリプトを使う前に - Qiita

SSHからログアウトした後もプロセスを起動しておく方法 - Qiita

TeraTermで効率良くファイル転送 - Qiita

コンピュータ将棋開発者がAWSで機械学習を回すには? | やねうら王 公式サイト

Amazon S3 再入門 – AWS IAMでアクセスしてみよう!(Cyberduck 編) | cloudpack.media

s3fs を使って EC2 に S3 の Bucket をマウントする - Qiita

http://ifconfig.moe/

画像で見るKPPT型評価関数エンジンの構成

ちゃんとしたまとめや、互換性の経緯については、uuunuuunさんのまとめが詳しい。

Apery公表と互換ソフトの発展|コンピュータ将棋 レーティング

 

そのため記事の中身はほぼなし、もっぱら忘備録として垂れ流す用。

間違ってる可能性もあるのでバックアップを取った上で自分で試すのがいいと思う。

 

次のSDT5以降、様々な形式の評価関数が流行る群雄割拠の時代になり、一時の楽園であったKPPT型の互換型評価関数は主流でなくなっていく、、、なんて気がしたので、

今の段階でKPPT型評価関数の使えるエンジンのフォルダ構成をまとめておくの画像を垂れ流し

 

1. Aperyシリーズ

Aperyの構成に従うのは、AperyとSilentMajority, PPAperyの3つ

Apery: Releases · HiraokaTakuya/apery · GitHub

Silent Majority: GitHub - Jangja/silent_majority: Aperyを改良した将棋ソフトです。

PPAPery: GitHub - Jangja/apery at PPAP

Apery型は、エンジンファイルの下にある、日付のついたフォルダの中に、評価関数ファイルを入れればいい。このフォルダをevalとかにリネームすると、PPApery以外うまくいかない。浮かむ瀬なら「20161017」というフォルダ、wcsc26版なら「20160307」というフォルダ、大樹の枝なら「20151105」というフォルダ

f:id:jotcutJshakki:20171024224110p:plain浮かむ瀬画像

f:id:jotcutJshakki:20171024221952p:plain
f:id:jotcutJshakki:20171024222024p:plain

wcsc26画像

f:id:jotcutJshakki:20171024223039p:plain
f:id:jotcutJshakki:20171024223043p:plain

大樹の枝画像

f:id:jotcutJshakki:20171024221220p:plain
f:id:jotcutJshakki:20171024221138p:plain

日付フォルダの中身など

 

f:id:jotcutJshakki:20171024221418p:plain
f:id:jotcutJshakki:20171024221516p:plain

左:Silent Majority,

右:PPAPery

 

逆に、評価関数のフォルダ名を対応するものにしておけば、binフォルダ内に置かなくても動く

f:id:jotcutJshakki:20171024221630p:plain

 

2. やねうら王シリーズ

やねうら王: GitHub - yaneurao/YaneuraOu: shogi engine(AI player), stronger than Bonanza6 , educational and tiny code(about 2500 lines) , USI compliant engine , capable of being compiled by VC++2017

読み太: GitHub - TukamotoRyuzo/Yomita: USIプロトコル準拠の将棋エンジンです。

tanuki-: GitHub - nodchip/tanuki-: This repository is deprecated. Please see ...

 やねうら王型は、エンジンの下にあるevalフォルダに評価関数をいれればいい。やねうら王2017Early以降は、エンジン側で評価関数の場所を指定できるので、evalの下に評価関数毎にフォルダを作っても、指定できるので動く。

他にやねうら王と似た構成を持つのは読み太とtanuki- (※tanuki-はApery派生) 

f:id:jotcutJshakki:20171024222834p:plainやねうら王画像

f:id:jotcutJshakki:20171024222839p:plain
f:id:jotcutJshakki:20171024222848p:plain

やねうら王evalフォルダ以下の階層の例と、エンジン設定例(ShogiGUIによる)

f:id:jotcutJshakki:20171024222954p:plain
f:id:jotcutJshakki:20171024222918p:plain

 左:読み太

 右:tanuki-

 

3. うさぴょんシリーズ

「うさぴょん2」

エンジンと同じところに評価関数をおけばいい


f:id:jotcutJshakki:20171024224338p:plainうさぴょん2'画像

 

4. なのはシリーズ

いつか書く

5. Noviceシリーズ

気が向いたら書く