やねうら王ニュース - mizar/YaneuraOu GitHub Wiki
やねうら王関連のブログ全記事一覧(カテゴリー別)
やねうら王公式ブログに書いた関連記事の見出し一覧です。各エンジンオプションの解説、定跡ファイルのダウンロード、定跡の生成手法などもこちらにあります。
将棋ソフトの棋力の向上について(歴史的資料)
-
2022年度
- 第32回世界コンピュータ将棋選手権 決勝
- やねうら王 V7.50リリースしました!
- V7.00(昨年末のバージョン)からは長い持時間で+R70以上up!!
- 将棋ソフトやねうら王の設計思想と何故やねうら王が世界最強になれたのか動画 🎥動画あり
- 20年前にタイムトラベルできたら世界最強の将棋ソフトが作れるのか? 🎥動画あり
- 藤井聡太さんが研究に使っている将棋ソフトについて 🎥動画あり
-
2021年度
- たややん、水匠5で+R100アップさせてしまう
- FV_SCALEを変更するテクニックと探索部の調整により+R100up。
- この後、水匠の評価関数ファイルはやねうら王公式で配布することに。
- たややん、水匠5で+R100アップさせてしまう
-
2020年度
- 2020年、将棋ソフト界隈のまとめ
- 電竜戦後 : 第一回 電竜戦を終えて
- NNUE評価関数がStockfishに逆輸入される : Stockfish NNUEに関する主観的レビュー
- mブランチ
-
2019年度
- WCSC29(2019年) , やねうら王優勝 : WCSC29、やねうら王優勝しました!
- 将棋ソフト2019年の棋力について : 今年のWCSC29の上位ソフトはAlphaZeroを超えたのですか?
- WCSC29の時にCSA会誌のために書いた原稿みたいなもの : 教師生成時のdepth問題に関する考察(WCSC29優勝記より)
- 『将棋神やねうら王』と『激指定跡道場4』とではどちらがどれくらい強いのですか?
-
2018年度
- 最新ソフト強すぎ問題 : 最新の将棋ソフトだとノートパソコンでも九段が即指しな件
- Stockfishからの影響(2018年度) : Stockfishの過去1年分の将棋ソフトへの影響について
-
2017年度
- Stockfish、2017年ごろの事情 : Stockfishがもたらさなかったもの
- Stockfishからの影響(2017年度) : 俺たちは雰囲気で探索部を書いている
-
2013年~2017年将棋ソフトのトレンドの変遷
-
2016年度
- クリスマス企画の読み物です : 2045年から振り返った体で書く2016年のコンピューター将棋
- Stockfishからの影響(2016年度) : コンピューター将棋の近年の探索部の大きな進歩は何ですか?
- 近年のコンピュータ将棋の急速な伸びの理由は?
-
2015年度
エンジンオプション関連
-
検討用お勧め設定 : やねうら王の検討用設定のお勧めを教えてください
-
SkillLevelオプションについて : やねうら王のSkillLevelオプションとは何ですか?
-
NetworkDelay,NetworkDelay2オプションについて
-
IgnoreBookPlyオプションについて : 将棋の定跡でgameply(初期局面からの手数)って要ります?
-
BookPvMovesオプションについて : 将棋ソフトに定跡ビュアーが何故必要なのですか?
-
OutputFailLHPVオプションについて : fail low/highしたときの読み筋の出力
-
ConsiderationModeオプションについて : 検討モード用の読み筋出力について
-
EvalHashオプションについて : EvalHashの最適なサイズは?
定跡関連
やねうら大定跡
🌈 2016年度
-
定跡ツリーの自動生成 : 長手数の定跡の自動生成について
-
コンセプトおよび定跡フォーマットについて : やねうら大定跡はじめました
-
2017年までの定跡ファイルのダウンロードはこちら
テラショック定跡
🌈 2019年度
- 100テラショック定跡、公開しました
- テラショック定跡の生成手法
- WCSC29でやねうら王が使用したテラショック定跡、公開しました
- テラショック定跡の生成コマンドの解説 : やねうら王アップデート!テラショック定跡の生成に対応しました
スーパーテラショック定跡
🌈 2021年度
s-book_black
とても優秀な先手番定跡。2020年頃から将棋ソフトの大会でも問題になり始める。
開発者の入門向け記事
将棋ソフトの探索部の勉強、データ構造の勉強などをしたい方は、以下の連載記事が参考になると思います。
AWS
AWS EC2
-
2022年
-
AWS EC2で思考エンジンを動かし、ノーパソから使ってみる : 将棋ソフトのためにノートPCを買い変える前に
-
AWS側のUbuntuでコンパイルする方法など : コンピュータ将棋開発者がAWSで機械学習を回すには?
- Ubuntuでコンパイルする方法については、AWSでやねうら王に説明があります。
-
ssh経由で思考エンジンを使う方法 : AWSに思考エンジンを配置してssh経由で使う方法
AWS Lambda
-
やねうら王を AWS Lambda で動かす件 : やねうら王を AWS Lambda で動かす件
-
Amazon Lambdaを使った棋譜解析の高速化について : Amazon Lambdaを使った棋譜解析の高速化について
探索
探索の用語
-
NPS : 最新の将棋ソフト、1秒間に何手読んでるのか 🎥動画あり
-
MultiPV : 将棋ソフトで複数の読み筋が見たい時はどうすれば良いのか? 🎥動画あり
-
reductionについて : ゲーム木探索で「延長」の対義語は?
-
0.5手延長 : ゲーム木の探索をするときの0.5手ってなんですか?
-
Countermove(応手) , FollowupMove(継続手)について : Countermove(応手)とは何ですか?
-
ONE_PLYの適切な値について : StockfishではONE_PLYは何故1になったのですか?
-
YWBCとLazySMP : 将棋ソフトの並列探索は何故難しいのですか?
-
Pseudo-leagl : Pseudo Legalの判定がマジで難しい件
-
FV_SCALE : たややん、水匠5で+R100アップさせてしまう
探索部チューニングの秘訣
- 1手1秒で強い将棋ソフトは1手10秒でも強いのですか?その1
- 1手1秒で強い将棋ソフトは1手10秒でも強いのですか?その2
- 1手1秒で強い将棋ソフトは1手10秒でも強いのですか?その3
- 探索における枝刈りの階層性
探索時間と棋力の関係
並列探索とその効率
- コンピューター将棋では並列探索をやめることは出来ないのですか?
- 棋譜解析は1スレッドで行いたいがその時の問題点 : 棋譜解析で1スレッドで並列に解析する件
MCTS
Lazy SMP
- Lazy SMPでworker threadのskipはどうするのがベストなのか : 40コア以上でのLazy SMPの効率改善について
- スレッド数とその実効 : NodesLimit固定で、Threadsを増やしても弱くならない件
不成生成問題
評価値のオーバーフロー問題
複数CPU搭載環境の問題
局面の合流
最大手数で引き分けルール
千日手
フィッシャールール
駒落ち
探索部のバグ
やねうら王ほど多くの人が使っている探索部で探索上のバグが出ることは稀だが、大舞台で出たことが過去何度かある。発生確率が低くとも、αβ探索はroot nodeまでleaf node(末端局面)の情報を伝播するので、一つでもおかしな情報があるとそれがroot nodeに伝播することはある。大舞台であるほど使われるマシンスペックが高く、調べている局面数も多いので、そういったバグがそこで発露してしまうのは、むしろ必然と言えよう。
- 2022年
- mateバグ : やねうら王V7.10 128-bit Editionリリースしました
- 💡 このバグは置換表のhash衝突が原因で原理的に仕方がない。置換表に格納するhash keyのbit数を増やすことで回避できることがわかった。
- qsearchのバグ : やねうら王のqsearchが盛大にバグっている件
- 👉 このバグ、棋力には影響がないことがその後判明した。
- mateバグ : やねうら王V7.10 128-bit Editionリリースしました
- 2021年
- 読み筋に非合法手バグ : 先日の電竜戦、長時間マッチで現れたやねうら王のバグについて
評価関数の設計
評価関数の一般的な話
Deep Learning系
-
2022年
-
2021年
-
2020年
NNUE評価関数
-
NNUE評価関数のデフォルトであるhalfKP256は、改善の余地がある : NNUE評価関数のデフォルトのネットワークサイズは最適なのか?
-
NNUE型評価関数 halfKP256
- NNUE評価関数とは何か? : やねうら王にNNUE評価関数をマージしました
- NNUE評価関数に対する考察
- NNUE改良
- AVX-512による高速化 : NNUE型評価関数はAVX-512化で速くなるのですか?
-
NNUE型評価関数 KP256
3駒関係の評価関数
-
KPP差分計算による高速化 : KPP差分計算の高速化(bonasseの功罪について)
-
KPP_KKPT型について : KPPTからKKPT型評価関数へ
-
KKP16bit化 : KKP16bit化とは何か?
-
KKPP型 : KKPPに関する知られざること
-
KPP interleave : KPP interleaveとは何ですか?
駒得評価関数とその拡張
やねうら王の駒得評価関数(MATERIAL評価関数)は、以下の9個が現在公開されています。
これは、ブログの連載記事に対応するものです。
MATERIAL LV | 内容 |
---|---|
MATERIAL_LV 1 | 【連載】評価関数を作ってみよう!その1 |
MATERIAL_LV 2 | … |
… | … |
MATERIAL_LV 9 | 【連載】評価関数を作ってみよう!その11 |
💡 1つ目の記事から芋づる式に辿れるので読んでみてください。
特殊な将棋用の評価関数
-
取る一手将棋用 : 取る一手将棋が強化学習でほとんど強くならない件
-
55将棋、56将棋用 : 55将棋、56将棋で最適な評価関数は?
評価関数の学習関連
用語
理論面
-
評価関数の学習の理論面について詳しく書いた記事
- その1 : 機械学習エンジニアのための将棋AI開発入門その1
- その2 : 機械学習エンジニアのための将棋AI開発入門その2
-
elmo式について(2017年) : elmoがもたらしたオーパーツについて
-
駒割の学習について : 評価関数をゼロから学習させるときに駒割りも学習させる話
-
eta可変絞り : eta可変絞りについて
教師生成
- 効率的な教師生成について(2019年度版) : 『やねうら王 with お多福ラボ 2019』 アピール文書
- 2017年版 : 教師局面生成時のランダムムーブについて
- 2020年版 : 強化学習用の教師生成時のランダムムーブについて
プロの棋譜を用いない学習
- 2017年、やねうら王はプロ棋譜を使わない学習に成功 : 人間の棋譜を用いずに評価関数の学習に成功
- 従来手法に基づくプロの棋譜を用いない評価関数の学習
評価関数の大規模機械学習について
- 将棋ソフトに最初に導入したのは、NDFで、それはボンクラーズの伊藤さんによるものだった。 : 「浅い評価値を深い評価値に近づける学習法」の件
- 教師局面のシャッフル : 大きな局面ファイルのシャッフルについて
NNUE評価関数の学習
-
NNUEの学習オプションなど(初心者向け) : NNUE評価関数の学習方法について
-
gensfenコマンド
-
評価関数のブレンド
- 評価関数のキメラ化コマンド公開しました
- 評価関数をブリードすると何故強くなるのですか?
- 続) 評価関数をブリードすると何故強くなるのですか?
- KPPT/KPP_KKPT型評価関数のブレンドについて : 評価関数のブレンドに関する知られざること
Tools
学習に要するコスト
- 学習のためにXeon Dual構成にする(2016年) : コンピューター将棋でXeon Dual構成はアリなのか?
- 学習にかかる電気代(2016年) : SkalakeとXeon E5 v4とではどちらが電気代が安いですか?
データ構造
-
置換表
- 置換表は何故置換表と言うのか?
- 置換表の構造などを詳しく解説 : 【決定版】コンピュータ将棋のHASHの概念について詳しく
- 置換表が2のべき乗サイズ問題 : 何故いままで置換表は2のべき乗サイズでしか確保できなかったのか?
-
指し手構造体
- Moveの上位bitに移動させる駒が格納されている話 : 3年以上誰も発見できなかった探索部のbugがRustによって見つかったという話
-
BonaPiece
-
Bitboard
- 縦型Bitboard
-
ByteBoard : たこっとのByteBoardはコンピューター将棋の革命児になりうるのか?
-
magic bitboard
-
局面のハフマン符号化 : 将棋の局面を256bitに圧縮するには?
-
Long Effect(長い利き)
-
壁判定機能つきのSquare : 壁判定機能つきSquareの実装
-
指し手生成
- lambdaのinlining問題 : Aperyの指し手生成がMSVCだと遅い件
-
memory alignment
-
avx2/sseなどによる高速化
- not andを1命令で : _mm_andnot_si128を使う件
- pextでmagic bitboardを無くす
-
OpenMPI
-
LargePage : やねうら王、Large Page対応で10数%速くなった件
-
ZEN2でPEXTが遅すぎる件 : やねうら王のRyzen Threadripper 3990X最適化について
- この問題、結局、一年後にQugiyの飛び利きアルゴリズムで解決することになる。
- Qugiyの飛び利きのコード、完全解説
USIプロトコル関連
-
USIプロトコル原案の魚拓 : USIプロトコル原案の魚拓
-
sfen文字列の一意性 : sfen文字列は本来は一意に定まる件
-
isready
-
stop~bestmove関連 : stopコマンドでbestmove返すな問題
-
upperbound , lowerbound : 将棋ソフトの評価値の出力に出てくるlowerboundとupperboundとは何ですか?
-
mateの表示について : まだmateの定義で消耗してるの?
-
読み筋の出力
- 千日手,宣言勝ち : 拡張USIプロトコル : 読み筋出力について
- ShogiGUIが対応 : ShogiGUIが読み筋での「千日手」表示に対応
-
checkmate : USIプロトコルの詰将棋まわり
-
psn形式 : 将棋の棋譜フォーマットPSNとは何なのか?
クラスター関連技術
- 疎結合クラスター
- GPS型疎結合クラスターについて : WCSC29、一日目の感想と疎結合クラスターについて
レーティング計測技術
-
2020年
-
2016年
- 自己対局フレームワーク(2016年) : 連続自動対局フレームワーク作りました
- 現在は使えません。Python版の自己対局スクリプトをお使いください。
- 自己対局フレームワーク(2016年) : 連続自動対局フレームワーク作りました
互角局面集
- レーティング計測用の互角局面集 : 自己対局用に互角の局面集を公開しました
- 互角局面による計測について : 互角局面集での棋力の計測は適切なのですか?
- 序盤が強くなっているだけ問題 : レーティングサイトの上位の将棋ソフトが何も強くなっていない件
詰将棋
詰将棋エンジン
-
2020年
- やねうら王詰将棋エンジンを公開しました
- 置換表を使わない、調べたものを全部残しておくdf-pn。
- やねうら王詰将棋ルーチンでミクロコスモスは解けますか?
- メモリ食いすぎるので実質的に解けない。
- やねうら王の新しい詰将棋エンジンで将棋図巧1番が解けたようです
- やねうら王詰将棋エンジンを公開しました
-
2018年
- tanuki-詰将棋エンジンについて
- df-pnを採用した詰将棋エンジン
- tanuki-詰将棋エンジンについて
詰将棋問題
Pythonから将棋ソフトを駆動させるライブラリ
-
pythonからやねうら王を操作 : pythonからやねうら王を駆動できるアダプターAyane、公開しました
-
python製の自己対局サーバー : あやねるサーバー、あやねるゲート出来ました
-
関連ライブラリ
- Pythonで局面自体を操作してsfen文字列にしたりする : python-shogi
- Pythonでsfen文字列をやねうら王のpacked sfen形式に変換する : sfen_converter
『将棋神やねうら王』
他のソフトの事情
-
激指15、棋力はともかく、機能が豊富。激指15速攻レビュー
-
AbemaTV に2019年、将棋AIが導入された : AbemaTVの将棋放送に将棋ソフト導入の件
将棋AIの大会
世界コンピュータ将棋選手権
CSA(コンピュータ将棋協会)主催。通称、WCSC。歴史のある大会。
CSA 公式 : http://www2.computer-shogi.org/
- WCSCのページもここから辿れます。
電竜戦
カツ丼将棋さん主催。2020年に誕生。
電竜戦 公式 : https://denryu-sen.jp/
関連記事
将棋AIの対局場
floodgate
floodgate : http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
関連記事
将棋AIコミュニティ
- 将棋AIコミュニティの問題点 : OSSの将棋ソフトは何故一つになれないのか?