コンピュータ将棋用語集

April 14, 2018

阿部健治郎プロがツィッターで「コンピュータ将棋用語一覧と意味が整理されているサイトをご存知の方は教えて下さい。 Wikipediaでも良いです。」とおっしゃっているということ、私のサイトで用いられている基本的な用語くらいは解説しておこうと思いました。なお、順番は思いついた順でランダムです。解説は独断と偏見によるもので間違っていたらご指摘お願いします。コンピュータ将棋用語だけでなく関連するハード、OSなどの解説も含みます。技術的に高度なものについてはqhapaqさんの解説を参照してください。また、最近はこちらの解説も充実してきています。

 

レーティング:棋力を数値化したもの。より正確にはイロレーティング(elo rating)と呼ばれる。エロ(ero)ではないことに注意。レーティングが100違うと勝率にして64%の差、段級位にして1違うと思えば良い。サイトにより基準がまちまちで対応表が必要になる。私のサイトと将棋倶楽部24の対応は、カツ丼将棋の松本さんのご協力のもと最近調査した

 

floodgate: コンピュータ将棋連続対局場所。将棋所などを用いて誰でも参加することができる。開発者が大会前に自作ソフトの強さ(レーティング)の計測に用いられることが多い。登録名は自由なので、どのようなソフトがどのようなスペックのマシンで動いているのかわからない。ちなみに、現在主流のデスクトップ用CPUで4スレッドでfloodgateに参戦すると、このサイトのレーティングから300減らしたくらいのレートが出る。トップクラスのデスクトップPCで参戦すると大体同じくらいの値になるようである。

 

ノード数:ソフトが読む局面の数。大きな数字になるのでキロ(k) 1000, メガ(M) 100万,

ギガ(G) 10億などの単位がよく使われる。ノード数が多ければ多いほど強くなる。ノード数が2倍になるとレーティングにして150くらい上がり、勝率に換算すると7割程度の勝ち越しになる。ソフト同士の強さの比較もノード数によって異なることに注意。(人間の場合、持ち時間により互いの強さ関係が変わることに対応。)私のサイトでは歴史的な事情により一手1500万ノードで対局させ強さを決めている。人間でいうところの早指しに対応する。

 

NPS:一秒あたりに読む局面数。(Node per second) ノード数と同じようにキロ、メガ、ギガなどを用いて大きな数字をあらわす。パソコンのスペック(CPU、メモリ)などにより値がだいぶ変わる。やねうら王の場合についてはこのサイトにまとめている。なお単位はkNPS (=一秒間に1000局面)。表を見ると、高価なデスクトップPCに使われているCPU(Intel Core i9-7980X)と低スペックのノートパソコンだと200倍くらい違う。同じソフトを用いてもレートにして1000くらいの棋力差が出る。(段級位にして10段くらいの差)

 

USI: Universal Shogi Interface (ユニバーサル 将棋 インターフェース)。将棋ソフトはGUIとエンジンに別れているがエンジンとGUIソフトの対話をつかさどる言語のこと。将棋所やShogiGUIはUSI言語で将棋エンジンと通信している。といっても、ユーザーから見ると「エンジン登録」をするだけなのでこの言語を用いている様子は通常見ない。将棋ソフトのスタンダードな規格と思えば良い。


GPU(Graphic Processor Unit):グラボについている計算ユニット。2018年現在、ほとんどの将棋エンジンはCPUを用い、GPUを用いないが、Deep Mind社のAlpha Zeroなど深層学習を行うソフトではGPUを使うものが増えた。将棋の検討を目的にしてパソコンを買うときにグラボもハイスペックにしなくてはいけないような時代が来るのかもしれない。

 

OS: オペレーティング・システム。Windows, Mac, Linuxなど。現在、パソコンで将棋ソフトを使いたい人はMacを選んではいけない。間違ってMacを買ってしまった人はWindowsをインストールしよう。Linuxは上級者向き。この解説を読んでいるようなレベルの人は迷わずWindowsにすること。OSには64ビットと32ビットが有るが将棋ソフトをまじめに使いたい人は64ビットを選びメモリー中盛(8GB)以上にすることを推奨する。

 

評価関数:ソフトの将棋局面に対する採点基準。大局観のようなもの。評価関数の違いによりレートが1000違うことも有るので、将棋ソフトのかなめの一つ。近年、Aperyの評価関数が標準となったため、将棋ソフトとは独立に開発されることも増えてきた。そのため最近の将棋エンジン(やねうら王、Silent Majority, Apery..)などではエンジン本体とは別に評価関数と定跡を別途インストールするものが多い。やねうら王ではevalという欄で設定する。

 

評価値:評価関数が将棋局面に与える点数。一歩得をすると評価値が100点になるように設定されている。評価値が300点以下は互角。300点以上で有利、800点以上で優勢、1500点以上で勝勢と判断される。ソフトにより異なるが10000点、32000点等の数字はソフトが勝ちと判断したことを意味している。負の値、-300などは自分が不利だと判断している。ソフト同士の対局の場合、正の数字は先手有利、負の数字は後手有利を意味している。

 

mate: 終盤になりソフトが詰みを読み切るとmate 11などの数字が評価値として与えられる。mate 11は11手詰とは違い、王手だけでなくどのような手を指しても11手で詰みに至るという表示である。

 

KPPT, KPP, KKPT, KP,PPなど:評価関数の形式。Kは玉の位置、Pはその他の駒の位置, Tは手番をあらわす。これらの色々な組み合わせに対して得点を与えることにより評価関数が定義される。KP, PPなどは二コマ関係、KPP, KKPなどは三駒関係。現在の標準はAperyのKPPT (玉の位置+玉以外の駒の位置2個+手番)。

 

学習:ソフトの棋力を向上させるため評価関数を強化すること。以前はプロ棋士の過去の棋譜を用いて学習させていたが、最近はソフトの自己対局により強化することが増えた。学習に用いた棋譜により棋風が変わる。棋士の棋譜を学習させると人間的な将棋を指すようになる。

 

ゼロベクトル:評価関数としてすべての要素にゼロを入れたまっさらな状態にしたもの。評価関数としては機能しないため駒得程度の情報はソフト本体が持つため将棋は指すことができるが棋力は低い。ゼロベクトルから自己対局のみで評価関数を学習強化すると別惑星で育ったような独特な将棋を指すようになる。やねうら王の磯崎氏により最初作られた(リゼロ評価関数)が、手法が公開されたため、様々な工夫で育成した評価関数も現れた。

 

Alpha Zero: Deep Mind社により開発されたプログラム。囲碁が有名であるが、汎用的に用いることができるため、チェスや将棋も指す。ゼロベクトルからの評価関数育成と同様に、ルール以外何も知らないレベルから育成された。論文によるとやねうら王とelmo_WCSC27よりもレートにして400強いらしい。ただし、今の所、棋譜などは未公開なのでどのような棋風なのかは知られていない。

 

雑巾絞り:最近主流の学習法。深い読みで得られた評価値を浅い読みでも得られるように評価関数を修正する。強い評価関数から始めた場合、中々思ったような学習効果が得られず、乾いた雑巾を絞るように苦しい作業であることからこの用語が用いられるようになった。

 

キメラ:評価関数の作成法の一つ。複数の評価関数をブレンドすること。異なる学習で強化された評価関数をキメラすると強くなると言われている。雑巾絞りとキメラは評価関数育成法の基本である。

 

探索:ソフトが局面を読むときにすべての合法手を検討すると時間がいくらあっても足りないので、重要な分岐のみ深く読むようにするアルゴリズム。開発者の腕が顕著に現れる。最近はチェス最強フリーソフトのStockfishの探索をベースにしているソフトが増えている。なお、Stockfishを用いたソフトは公開が原則になっている。ソフトのかなめの一つ。

 

Book:ソフトが用いる定跡。将棋エンジンの設定ではOwnBook (ソフト作者が作った定跡)などで設定する。定跡をonにするとそのファイルに載っている序盤手についてはソフトは考えずにノータイムで指す。定跡をoffにすると初手から考え始めるので注意すること。なお、私のサイトでのコンピュータ同士の対局では平等に対局する設定の一つとして定跡offを採用している。評価関数と同様に標準化が進み、開発者以外の第三者も開発できるようになっている。Bookを用いて自分に有利な局面に導くことや序盤での使用時間を短縮することが最近のソフトの大会の流行になっている。評価関数、探索、定跡は将棋ソフトを構成する最も重要な3要素と考えて良い。

 

互角局面集:初手からコンピュータに思考させて始めると似通った序盤になりやすい。互角局面集とは強いソフトで読ませたときに互角になっている局面を集めたもので、多様な局面から始めさせたときのソフトの強さを測るために利用される。

 

棋譜ファイル:ソフトに読めるように棋譜を整形したもの。代表的なものとしてkif形式(将棋所、ShogiGUIの標準)、csa形式(floodgateなどで用いられる)等がある。


Ponder(ポンダー): 相手が考えている間にソフトが読むかどうかの設定。Ponderをonにした場合相手の思考中にソフトが読むようになる。同一コンピュータ上で2つのソフトを対局する時はPonder=onにすると互いに相手の思考時間を奪い合うことになるので強さの判定ができなくなるためPonder=offにする。逆に、相手が人間や他のコンピュータなどの場合にはPonderをonにしておけばより強くなる。

 

Threads (スレッド数):ソフトが独立に動かすことができるプロセスの個数。昔はCPU1つに対してスレッド1だったが、今はCPUの中に多くのコアがあり、各コアが複数のスレッドをもてるためややこしくなっている。ちなみに現在個人が使うようなCPUの最高レベルのものではスレッド数が36もある。並のデスクトップパソコンではスレッド数4から16くらい、ノートパソコンでは1から4くらい。今どきのソフトはスレッド数は自由に設定できることが多いが、古いソフトの場合は1スレッドしか使えないものも有る。なお、パソコンの最大スレッド数に将棋ソフトを設定すると、他の操作が重たくなることに注意。

 

Depth:思考深度のこと。Depth=1とは1手だけ読むことを意味する。Depth=3では3手先まで読む。Depthが少ないほど弱くなる。通常ソフトは与えられた時間の範囲でできるだけ深く読むが、Apery, やねうら王、技巧、Bonanzaなどでは思考深度を一定数で打ち切ることにより弱い設定にすることもできる。いくつかのソフトではノード数でソフトの思考を縛ることも可能。

 

Resign value: 投了値。ソフトによってはこれ以下では勝てないと判断したときに投了するように設定できる。私のサイトの計測では双方のソフトが対応している場合には3000点で投了することにしている。Hash: ソフトが先読みした局面に対する評価を保持するために用いるメモリ。大きければ多いほどよいが私のサイトでは一手1500万ノードくらいの設定の対局で1GB程度の設定にしている。(やや多めの数字)。ソフトによりたくさん使うもの(技巧など)ほとんど使わないもの色々有る。Network Delay, Byoyomi margin: ソフトにより異なる名前で呼ばれているが、秒読みの際にネットワークの遅れなどに対する時間切れ負けを避けるため、決まった時間よりどの程度早めに指手を決めるかを与える数値。0.001秒単位。

 

SDT:ニコニコ動画主催の将棋電王トーナメントの略称。例えば、SDT5は第5回将棋電王トーナメントを指す。同一スペックのパソコンでソフトを競わせるのが特徴。同じパソコンで動かしたときにどのソフトが一番強いのかを争う大会。Apery_SDT5などその大会に出場したソフトのバージョンとして用いられることも有る。

 

WCSC:世界コンピュータ将棋選手権 の略称。例年ゴールデンウィークに開催される。主催はコンピュータ将棋協会(CSA)。こちらは参加者が自分でコンピュータを持ちよるのでスペックは自由。ハードも含めた最強ソフトを決める大会。elmo_WCSC27のようにSDTと同じくソフトのバージョンとして用いられることも有る。

 

AWS(アマゾンウェブサービス):クラウドにあるCPUをレンタルで貸し出すサービス。WCSCなどの大会では自前でハードを購入し持ち込むよりも、レンタルのほうが手軽に大規模な計算力が得られるため用いられることが多くなった。

 

ライブラリ:最近のソフトの大会では公開されていて作者が申し出たソフトについてはソフト作成の際に参考にしたり、場合によってはそのまま用いて良いことになっている。このような参考ソフトをライブラリと呼び、ライブラリを用いて大会に参加しているソフトをライブラリ勢と呼ぶ。

 

魔女:Silent Majorityというソフトの略称。サイレント・マジョリティの下線部が語源。AperyにStockfish型の探索部の改良を加えたソフト。
 

Please reload

特集記事

以前より、私のツィートや記事にコメントをいただいている、コンピュータ将棋に大変詳しい方(まふさんと名乗られています)が、技巧の定跡の開発を始められました。定跡を作るためのデータとして私がレーティング計測用に作った棋譜ファイルを使っていただいているという縁もあり、新定跡のテストを私が担当することになり...

技巧新定跡(まふ定跡)

December 8, 2016

1/10
Please reload

最新記事

September 30, 2018

Please reload

アーカイブ