前回、検証データにおいて1回でも出現する出現するラベル数を記録したところ、1411種類だとわかった。
ネットワークの出力の都合上、2187クラスとしてクラス分類を行っているが、その中には将棋の指し手としてあり得ないものもある。
今の指し手ラベル構築方法では、たとえば1一に右下からやってくる、最奥段に歩とか香車を打つなど、実現不可能なものがある。各マスについて不可能なものを数えると、おそらくこれで合っているかな?
— t (@tokumini_ss) 2021年9月18日
2187から197を引いて1990があり得るクラス数ではあるか pic.twitter.com/bzavi1Gwti
簡単に計算したところ、これが間違っているという指摘を山下さんからいただいたため、本記事でできるだけ慎重に考えてみる。
4段目以上から4段目以上への成、も引くともう少し減らせそうな気がします。
— 山下宏 (@yss_aya) 2021年9月19日
分類
将棋の指し手としてあり得ないものは、以下の4種類として分類できると思われる。
- 打つ手として不可能
- 移動方向として不可能
- 成りとして不可能
- 桂馬の不成として不可能
以下一つずつ数を数えていく。
打つ手として不可能
3分類の中でこれが最も数えやすいものであり、最奥段に歩、香車、桂馬、および二段目に桂馬が打てないため、以下のようになる。
移動方向として不可能
たとえば1一の地点に右下からやってくることはできないなどの不可能性がある。
移動方向としては上下左右斜めの8方向 + 桂馬の2方向からあることに注意して計算する。
一番移動元の候補が少ないのが1九、9九であり、1九では上、左上、左の3方向からしか来る可能性が無いので7通りが不可能である。
またこれら移動のラベルは成り・不成によらず不可能であるため、合計の2倍が不可能な手の数になる。(冒頭のツイートではこれも失念していた)
2021/09/19 17:22追記 八段目へ桂馬で移動するようなものをカウントし忘れていたので追加。
成りとして不可能
指摘いただいた成りとしてあり得ない手がここに当たる。移動不可能なものは上で数えたので、移動自体は可能であるが、成りながら移動することが不可能であるもののみを数えることに注意する。
また上方向からやってくる行動は、移動幅1マスとは限定していないため、飛車を自陣に引きながら成るという手が可能であることに注意する。斜め方向についても角があるため、引きながら成る手が成立しうる。
正直やや複雑な条件になっているので正しく数えられている自信はないが、おそらく以下のような感じになる。
2021/09/19 17:22追記 4九への左上からの引き成り、6九への右上からの引き成りが不可能であることをカウントし忘れていたので追加。
桂馬の不成として不可能
2021/09/19 16:20追記
桂馬で奥の二段に移動する手については不成が非合法であることにも気づいた。
まとめ
2187ラベルのうち、あり得ないラベルは
- 打つ手として不可能 : 36通り
- 移動方向として不可能 : 308通り
- 成りとして不可能 : 315通り
- 桂馬の不成として不可能 : 32通り
であるため、あり得るラベルは1496通りである。dlshogiとの調査とも一致しているようなのでおそらく合っているのではないか。
私が調べたころろでは、有効なクラス数1496です。
— 山岡忠夫 (@TadaoYamaoka) 2021年9月19日
前回の記事ではfloodgate2015年のレート3400を超える対局について集計したが、やや緩和してレート3200を超える対局について集計してデータ数を増やしたところ、1回でも出現するラベルの数は1482通りとなった。あり得るのに出現していない手が14通りある。それらは
- ▲6八角成(左下方向への移動)
- ▲8九角成(左下方向への移動)
- ▲9九角成(左下方向への移動)
- ▲9八角成(左下方向への移動)
- ▲7九角成(左下方向への移動)
- ▲5七角成(右下方向への移動)
- ▲4八角成(右下方向への移動)
- ▲3九角成(右下方向への移動)
- ▲1九角成(右下方向への移動)
- ▲2三飛成(左方向への移動)
- ▲1九飛成(下方向への移動)
- ▲9九飛成(下方向への移動)
- ▲4九飛成(下方向への移動)
- ▲3九飛成(下方向への移動)
であった。角や飛車を自陣の奥まで引きつけながら成る手の一部が出てきていないようだった。