ホードシャンチーは、片方が兵しか持たないシャンチー(中国象棋)だ。将のいない兵の大群が、完全な正規軍と戦う。兵の大群は詰みで勝ち、正規軍は最後の兵を取って勝つ。私たちはこれを設計し、何かを作る前に、あらゆる版をエンジンに指させた。ゲームになった版は一つもない。

兵の動きが設計空間のすべてで、数、開始段、形、無取り制限はつまみに過ぎない。シャンチー本来の兵では、正規軍は自陣側のどの開始配置からでも、同じ一手で全局に勝つ。兵に初手から渡河した兵の動きを与えるとその一手は消えるが、ゲームは 4 局中 3 局で誰も勝てない攻城戦になる。河のこちら側では兵の塊が自分を守れず、向こう側では正規軍がそれを攻められない。

ホードチェス:ポーン 36、キングなしホードシャンチー:古参兵 36、将なし楚 河 漢 界
左は Lichess で遊ばれている原型:ポーン 36 対 完全な軍。右は私たちが見つけた中で最もゲームに近いもの:古参兵 36 を 2〜5 段に(初手から渡河した兵の動き、渡河した兵の駒絵で表示)、完全なシャンチーの正規軍と対戦。兵の大群は詰みで、正規軍は最後の兵を取ることで勝つ。

ルール

原型はホードチェス:キングのないポーン 36 個が通常の軍と戦うもので、2015 年から Lichess にある。シャンチーの盤に移した人はこれまでいなかった(調査の内容は末尾の注に)。この移植はシャンチーの要素をできる限り残す。

  • は兵の大群:兵だけで、将はない。紅が先手。は通常の正規軍。
  • 紅は詰みで勝つ。黒は紅の駒をすべて取って勝つ。兵の大群に王手はなく、将が一つしかないので将帥対面の規則もない。
  • 手番で合法手がない側は負け。シャンチーと同じ。(Lichess のホードは引き分けとする。その差がどれほど効くかは、下の数字が示す。)
  • 同一局面 3 回で引き分け。60 手または 120 手続けて駒取りがなくても引き分け。
  • 通常の兵はシャンチーの通り:前に 1 つ、横へは渡河後のみ、後退はしない。古参兵は初手から渡河した兵の動きを持つ。どちらでも正規軍の 5 個の兵は通常のまま。

設計空間

つまみは 5 つ。設計とは兵の動き 1 つと開始配置 1 つの組で、24 通りを指し、そのうち 8 通りは別の無取り制限でもう一度指した。

つまみ 試した設定
兵の動き 通常;古参兵(初手から横に動ける)
兵の数 18, 27, 31, 32, 36, 40, 45
塊の開始位置 後方(1 段目から)、前方(2 段目または 3 段目から)、河の向こう(前列が 6 段目)
塊の形 段をすべて埋める;原型の形(段に加えて対になった前哨);シャンチー本来の兵の 5 地点
終局規則 60 手または 120 手の無取り制限;ステイルメイトは負け(シャンチー)か引き分け(原型)

すべての設計は改造なしの Fairy-Stockfish で、12 行の設定だけを使い、エンジンのコードには触れずに走らせた。審判は規則カーネルで、対局を読む前にエンジンの着手生成と全合法手で一致することを確認してある(この検証と計測器については「数字をどこまで信じるか」に)。各盤の下の集計はその配置の 4 局で、4 つの探索量でのエンジンの自己対局、乱数なし。クリックすると 100 万ノードの対局が開く。盤上に紅の将がないとエンジンはシャンチー用のニューラルネットを使えないので古典評価で指し、それは通常の開始局面を兵の大群に対して 22 兵分不利と値付けする。それでも最後まで指す。

通常の兵:車が背後から兵の大群を食べる

兵 18、1〜2 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、46 手兵 18、3〜4 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、70 手兵 27、1〜3 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、84 手兵 27、2〜4 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、108 手兵 27、4〜6 段楚 河 漢 界▶ 対局を見る正規軍 3 勝 1 分100 万ノード:正規軍が全滅で勝ち、154 手兵 36、1〜4 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、134 手▶ 解説つき兵 36、2〜5 段楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、184 手兵 36、3〜6 段楚 河 漢 界▶ 対局を見る兵の大群 2 勝、正規軍 2 勝100 万ノード:兵の大群が詰みで勝ち、195 手▶ 解説つき兵 45、1〜5 段楚 河 漢 界▶ 対局を見る正規軍 2 勝、兵の大群 1 勝、1 分100 万ノード:正規軍が全滅で勝ち、198 手兵 32、シャンチー本来の兵の 5 地点楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、122 手兵 31、原型の配置楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、112 手兵 40、原型の配置楚 河 漢 界▶ 対局を見る正規軍 4-0100 万ノード:正規軍が全滅で勝ち、158 手
通常の兵のすべての配置を、4 つの探索量(1 手 150,000〜500,000 ノード)で 4 局ずつ。集計の下はエンジンの 100 万ノードの対局。9 つの配置は 4 局とも正規軍が全滅で勝つ。河の向こうから始める 2 つは初手から正規軍の兵と接触しており、兵 45 の 5 段の厚い塊は車が取り切る前に渡河することがある。この 3 マスは結果が割れる。

各配置を 4 つの探索量で 4 局ずつ指した。盤の下の行がその集計。どの盤もクリックすると 100 万ノードの対局が見られる。▶ 印のものは解説つきで開く。

12 の配置のうち 9 つは 4 局とも正規軍が取り、仕組みは一つ。

25 手目:f 筋が空く楚 河 漢 界15 手後:兵 11 個が消えた楚 河 漢 界
原型の配置での 100 万ノードの対局から。黒の車が、兵の大群が前進して空けた f 筋を通って 1 段目に降りる。紅の兵は後ろを攻撃できないので誰も車に触れず、車は背後から 1 手に 1 個ずつ兵を取る。15 手後には兵 11 個が消え、正規軍は何も失っていない。通常の兵の対局はすべてこの形で終わる。

通常の兵は真正面の 1 地点しか守らないので、兵の大群は壁ではなく 9 本の縦列だ。どこかの列が空いた瞬間、車がそこを通って 1 段目に降り、背後から 1 手に 1 個ずつ塊を食べる。兵の大群には後ろを攻撃できる駒がない。形は何も変えない。前哨は的であって、掩護ではない。

残り 3 マスは一つの例外だ:車が食べ終わる前に十分な数の兵が渡河する。1〜5 段の兵 45 は 5 段の厚い塊で、正規軍 2 勝、兵の大群の詰み 1、引き分け 1 に割れた。河の向こうから始める 2 列は初手から接触している。27 はそれでも負け、36 はコイン投げ(7 つの探索量で兵の大群 3、正規軍 2、引き分け 2)で、行軍を飛ばして古参兵のゲームを先取りしている。

開始位置 4 局、150,000〜500,000 ノード 100 万 500 万
18 1〜2 段 正規軍 4-0、50〜62 手 正規軍が全滅で勝ち、46  
18 3〜4 段 正規軍 4-0 正規軍が全滅で勝ち、70  
27 1〜3 段 正規軍 4-0 正規軍が全滅で勝ち、84  
27 2〜4 段 正規軍 4-0 正規軍が全滅で勝ち、108  
27 4〜6 段 正規軍 3、引き分け 1(千日手、393) 正規軍が全滅で勝ち、154  
36 1〜4 段 正規軍 4-0 正規軍が全滅で勝ち、134 正規軍が全滅で勝ち、156
36 2〜5 段 正規軍 4-0 正規軍が全滅で勝ち、184 正規軍が全滅で勝ち、146
36 3〜6 段 兵の大群 2(困斃 207、詰み 233)、正規軍 2 兵の大群が詰みで勝ち、195 千日手で引き分け、104
45 1〜5 段 正規軍 2、兵の大群 1(詰み、287)、引き分け 1(無取り制限、354) 正規軍が全滅で勝ち、198  
32 シャンチー本来の兵の 5 地点 正規軍 4-0 正規軍が全滅で勝ち、122 正規軍が全滅で勝ち、106
31 原型の配置 正規軍 4-0 正規軍が全滅で勝ち、112  
40 原型の配置 正規軍 4-0 正規軍が全滅で勝ち、158  

各マス 4 局、1 手 150,000、200,000、300,000、500,000 ノード、120 手の無取り制限、すべての手はエンジンの第一候補。続いて 100 万ノードと 500 万ノードの 1 局ずつ(60 手の無取り制限)。空欄は未実施。

古参兵:兵の大群は持ちこたえ、攻城戦は引き分けになる

車の通り道があるのは通常の兵が隣を攻撃しないからで、シャンチーにはそれを攻撃する兵がすでにある。渡河した兵だ。前か横に 1 つ動き、同じように取る。古参兵とは、最初から昇格した状態で始まる兵の大群のことだ。兵の大群の兵はすべて初手からその動きを持ち、それ以外は何も変わらず、プレイヤーが新しく覚えることはない。これはゲームから行軍を取り除き、攻城戦を最後列から始める。

兵 18、1〜2 段楚 河 漢 界▶ 対局を見る正規軍 2 勝 2 分100 万ノード:正規軍が全滅で勝ち、258 手兵 18、3〜4 段楚 河 漢 界▶ 対局を見る正規軍 3 勝 1 分100 万ノード:正規軍が全滅で勝ち、308 手兵 27、1〜3 段楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、459 手兵 27、2〜4 段楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、490 手兵 27、4〜6 段楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、166 手兵 36、1〜4 段楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、1,058 手*▶ 解説つき兵 36、2〜5 段楚 河 漢 界▶ 対局を見る兵の大群 3 勝 1 分100 万ノード:兵の大群が困斃で勝ち、435 手▶ 解説つき兵 36、3〜6 段楚 河 漢 界▶ 対局を見る3 分、兵の大群 1 勝100 万ノード:千日手で引き分け、703 手兵 45、1〜5 段楚 河 漢 界▶ 対局を見る3 分、兵の大群 1 勝100 万ノード:無取り制限で引き分け、1,102 手*兵 32、シャンチー本来の兵の 5 地点楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、449 手兵 31、原型の配置楚 河 漢 界▶ 対局を見る4 分100 万ノード:無取り制限で引き分け、247 手兵 40、原型の配置楚 河 漢 界▶ 対局を見る3 分、兵の大群 1 勝100 万ノード:無取り制限で引き分け、1,016 手*▶ 解説つき
同じ 12 の配置を古参兵(初手から渡河した兵の動き)で。4 つの探索量で 4 局ずつと 100 万ノードの対局、120 手の無取り制限。48 局:37 分、兵の大群 6 勝、正規軍 5 勝。正規軍が勝てるのは兵 18 に対してだけで、27 以上では車 2 つの終盤に達して止まり、兵の大群の勝ちはどれも車が 2 つとも落ちてからだった。*100 万ノードの対局のうち 3 局はテスト環境の 1,000 手上限に達し、その局面から無取り制限つきで続行した。示した手数は制限で終わった位置。

各配置を 4 つの探索量で 4 局ずつ。集計は各盤の下に。どの盤もクリックすると 100 万ノードの対局が見られる。

これで道は閉じる。古参兵の列は隣の地点を攻撃するので車はただでは隣に居座れず、正規軍の駒取りの速さは 1 手に兵 1 個から 60〜100 手に 1 個へ落ちる。兵の大群は一つの側になり、互角同士ではゲームは攻城戦になる:48 局、37 分。正規軍が勝てるのは兵 18 に対してだけで、27 以上では一度も勝てない。

終盤。兵の大群は進軍し、途中で正規軍の砲と象を取り、宮に着くと車 2 つを従えた将が待っている。そこから兵は車を突破できず、車は互いを守り合う兵の塊を食べられない。開始段と形が決めるのは、兵の大群が道中でどれだけ正規軍を取れるかだけで、それ以外は何も決めない。原型の 31 は同じ規則の裏面を見せる:4 局とも 155〜245 手で引き分け、渡河した兵はゼロ。動いていない塊は攻められず、動いた塊は動いた兵を失うからだ。

754 手目:兵 12 対 将・士・車 2楚 河 漢 界1,000 手目:兵がさらに 2 個減る楚 河 漢 界
兵 27 以上の古参兵の対局がすべて行き着く終盤。ここでは兵 40 の配置、1 手 100 万ノードの対局から。兵 12 対 将・士・車 2。兵は車を突破できず、車は兵が塊から出たときにしか取れない:続く 246 手で取れたのは 822 手目と 896 手目の 2 個だけ。左の局面から片側 500 万ノードでさらに 200 手進めても、駒取りは 1 回。この速さでは正規軍が取り切るのにあと千手かかる。

兵 40 の終盤を 754 手目で取り出し、片側 500 万ノードでさらに 200 手指させた。駒取りは 1 回で、エンジン自身の評価は兵の大群の優勢を 2.3 兵分から 0.7 へ下げていった。100 万ノードでは正規軍が同じ区間で 2 回取り、その後 120 手取れずに無取り制限で終わった。80 手に兵 1 個の速さでこの終盤に勝ちつつある、つまり勝てていない。

勝ち。1 段前から始めた 36 は車を 2 つとも取り、435 手目に裸の将を困斃させた。動ける手がなく王手もない、シャンチーではこれを負けとする。この配置は 5 局中 4 局に勝ち、兵の大群が優勢な唯一の配置だ。河に 1 段近いので、着いた時点で正規軍の損失が多く、車と交換するだけの兵が残っている。兵の大群の他の勝ちはより大きな塊からの同じ仕上げで、すべて 390 手より後、6 勝のうち 4 つが困斃だ。

435 手目:動ける手なし、王手なし、紅の勝ち楚 河 漢 界
兵の大群の仕上げ。5 局中 4 勝する配置(古参兵 36 を 2〜5 段に)の 100 万ノードの対局から。終盤に車が 2 つとも落ち、将は裸で、将が進める地点はどれも王手をかけていない兵に守られている。シャンチーでは動ける手のない側が負け。原型の規則ではこれは引き分けで、弱い相手に対する兵の大群の勝ちのおよそ半分も同じ形で終わる。
開始位置 4 局、150,000〜500,000 ノード 100 万 正規軍の失った駒
18 1〜2 段 正規軍 2、引き分け 2(無取り制限 653、千日手 616) 正規軍が全滅で勝ち、258 手 9
18 3〜4 段 正規軍 3、引き分け 1(千日手、588) 正規軍が全滅で勝ち、308 10
27 1〜3 段 4 分、無取り制限、372〜456 無取り制限で引き分け、459 7
27 2〜4 段 4 分、無取り制限、354〜488 無取り制限で引き分け、490 8
27 4〜6 段 4 分、無取り制限、137〜233 無取り制限で引き分け、166 9
36 1〜4 段 4 分、無取り制限、590〜900 無取り制限で引き分け、1,058*:兵 9 対 将と車 2 13
36 2〜5 段 兵の大群 3(詰み 473、困斃 475、詰み 569)、引き分け 1(千日手、1,033) 兵の大群が困斃で勝ち、435 15
36 3〜6 段 兵の大群 1(困斃、395)、3 分、無取り制限、714〜966 千日手で引き分け、703:兵 9 対 将と車 2 13
45 1〜5 段 兵の大群 1(困斃、961)、3 分、1,027〜1,098 無取り制限で引き分け、1,102*:兵 11 対 将・象・車 2 12
32 シャンチー本来の兵の 5 地点 4 分、293〜394 無取り制限で引き分け、449 7
31 原型の配置 4 分、無取り制限、155〜245、渡河した兵なし 無取り制限で引き分け、247 5
40 原型の配置 兵の大群 1(困斃、713)、3 分、694〜1,062 無取り制限で引き分け、1,016*:兵 10 対 将・士・車 2 12

各マス 4 局、1 手 150,000、200,000、300,000、500,000 ノード、すべての手はエンジンの第一候補、120 手の無取り制限、2,000 手の上限にはどの対局も達しなかった。続いて 100 万ノードの 1 局。*100 万ノードの 3 局はテスト環境の 1,000 手上限に達し、その局面から無取り制限つきで 200,000 ノードで続行した。駒取りは起きず、示した手数は制限で終わった位置。正規軍の失った駒は 100 万ノードの対局のもの。

終局規則

ここでのゲームが勝者なしに止まる道は 3 つあり、同じものではない。千日手:同一局面が同じ手番で 3 回。引き分け。無取り制限:駒取りのない手が 60 または 120 手続く。引き分けで、兵が前進しても計数は戻らない。上限:テスト環境が 400、1,000 または 2,000 手で対局を止めた。ゲームの規則ではないので、上限で止まった対局は引き分けではなく未決着。100 万ノードの古参兵の 3 局が 1,000 手上限に達し、無取り制限で終わるまで続行した。4 つの探索量の対局はどれも 2,000 手に達しなかったので、グリッドの結果はすべて前の 2 つのどちらかだ。

駒の動きを変えない 2 つのつまみは、指し直しではなく採点し直しで決めた。

無取り制限。シャンチーの無取り規則は 60 手。通常の兵では 48 局で 1 度しか発動しなかった。古参兵では通常の終わり方で、37 分のうち 30 がこれ、残り 7 は千日手。60 手では進行中の対局を切ってしまう:兵の大群の 100 万ノードの勝ちは 400 手上限で未決着、最も競った対局は行軍の途中の 360 手目で引き分けになる。ここでのすべてが 120 手なのはそのためだ。無取り制限はエンジンが従う規則でもある(エンジンの変種定義に入る)ので、60 手制限の対局と 120 手制限の対局は 2 手目から別の対局であり、同じ対局を別の位置で切ったものではない。

ステイルメイト。原型の規則では、動ける手がなく王手もかかっていない将は引き分け。ラボの全対局をその規則で採点し直すと、古参兵での互角の 7 勝のうち 5 つ、通常の兵での 4 勝のうち 1 つが引き分けになる。ランダムな正規軍に対する勝ちは、通常の兵で 35 勝中 20、古参兵で 38 勝中 16 が引き分けになり、ラダーの 10 勝中 5 つも同様。困斃は兵の大群の詰みのおよそ半分で、原型の規則はそれを取り上げる。

兵はなぜ失敗するか、別の兵には何が必要か

このゲームには 2 つの局面があり、シャンチーの兵はそれぞれで別の形で失敗する。

河のこちら側では、塊は自分を守れない。通常の兵は真正面の 1 地点しか攻撃しない。だから兵の大群は壁ではなく 9 本の縦列だ。列の横や後ろにいる車には触れられず、空いた筋はどれも最後列への道になる。兵の大群の自陣側から始める 40 以下の配置はすべてここで、その 1 つの車によって、4 局中 4 局決まる。45 では塊が厚く、時には車より長持ちし、そのマスは割れる。

河の向こう側では、塊は動けない。渡河した兵(または古参兵)は横も攻撃するので、塊はその場では自分を守る。しかし守れるのは自分の兵が進める地点だけで、隣の兵の正面の地点は決して守れない。前に出た兵は誰も守らない地点に立ち、隣が横に並ぶまでただで取られる。だから塊は 1 段丸ごとでしか進めず、1 段に 9 手かかる間に正規軍は待ち、早く動いた兵は摘み取られる。一方の正規軍も、動いていない塊は攻められない。古参兵の 12 の設計のうち 10 はそこで終わる。全局か、1 局を除いた全局で:将と車 2 つが宮の中、兵の塊がその外、どちらにもできることがない。

チェス:e4-e5 の後、d4 が e5 を守るシャンチーの兵:e4-e5 の後、e5 を守る駒はない楚 河 漢 界古参兵:それでも e5 を守る駒はない楚 河 漢 界
3 つの盤で同じ一手:中央の駒が 1 つ前に進んだところで、緑の輪はその側がいま守っている地点。チェスのポーンは斜めに取るので d4 のポーンが e5 を守り、e5 に来たポーンはルークに取られない。ポーンは連鎖で進む。シャンチーの兵は動くのと同じ向き、つまり真っ直ぐにしか取れないので、d4 と f4 が守るのは d5 と f5 で、e5 を守る駒はない。車は兵をただで取る。古参兵(右)は横にも攻撃できるので、兵の塊はその場では互いを守れるが、兵が進む先の地点を守る駒はやはりない。兵の大群は陣地を守れるが、そこから出られない。

チェスのポーンは造りが違う。斜めに取るので、e のポーンが e5 に進む前から d4 のポーンが e5 を守っている。ポーンは連鎖で、1 個ずつ、着地点を守られながら進み、連鎖は根元から崩せる。ホードがチェスで成り立つのはそのためで、チェスプレイヤーがそれを考えずに済むのもそのためだ。シャンチーの盤では河は崖だ。道中に掩護はなく、着けば完全な掩護があり、数、開始段、形、無取り制限のどの設定もそれを変えない。それらは私たちが回したつまみだ。古参兵より先で手を付けなかった一つが、兵そのものだ。

次の試みはそこから始まる。兵の大群に欠けている性質は道中の掩護だ。隣の兵がこれから進む地点を守る兵があれば、塊は 1 段ずつではなく 1 個ずつ進める。それを与えるものはすべて候補で、小から大まで並ぶ:直進だが斜め前に取る兵(誰も守らなかった地点が守られ、それでもポーンではない)、初手の 2 歩進み、古い五虎ハンデのように 1 手に兵 2 個を動かす、最終段での再昇格、あるいはチェスのポーンそのもの。最後のものはこれをより大きな盤のホードチェスに変える。私たちが古参兵で止まったのは、この中でシャンチーがすでに持っているのはそれだけだからだ。他はどれも新しい駒で、新しい駒は別のゲームであり、それ自身の記事になる。ラボでは規則はデータなので、どれも 1 行とエンジン時間の午後一つで済み、ここの集計が越えるべき基準になる。

自分で走らせる

変種全体は Fairy-Stockfish の variants.ini の 1 節だ。以下は原型の配置に古参兵と 120 手制限を入れたもの。通常の兵にするには customPiece1 の行を消し、開始局面の VP に書き換える。

[hordexiangqi:xiangqi]
startFen = rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/VVVVVVVVV/VVVVVVVVV/VVVVVVVVV/VVVVVVVVV w - - 0 1
customPiece1 = v:fsW
extinctionValue = loss
extinctionPieceTypes = *
flyingGeneral = false
chasingRule = none
stalemateValue = loss
perpetualCheckIllegal = false
nFoldValue = draw
nMoveRule = 60
stockfish check horde.ini            # parses the stanza
setoption name VariantPath value horde.ini
setoption name UCI_Variant value hordexiangqi
position startpos
go nodes 1000000

重要で、抜けやすい行が 2 つある。chasingRule = none は必須:エンジンの追い駒検出は、将のない側の存在しない将の地点を読みに行く。flyingGeneral = false は何も変えず、事実を記録するだけだ:エンジンは将帥対面の規則を自分のキング駒に紐づけていて、片側にキングがないと黙って切る。

数字をどこまで信じるか

上のすべてのマスの背後には 3 つの検査があり、実行した順に並べる。

エンジンはこの規則で指している。私の規則カーネル(アトミックシャンチーを走らせたのと同じもので、将のない側、全滅による勝ち、古参兵のフックを加えた)が全局の審判を務める。エンジンが手を提案し、カーネルが検証して適用する。黙って別の規則で指すエンジンは、別のゲームの記録を残す代わりに実行を中断させる。対局を読む前に、両者はすべての合法手で一致しなければならなかった:各配置から深さ 3 の perft、手作りの 9 局面を厳密な手集合で比較、ランダムプレイからの 300 局面。不一致ゼロ、両方の兵の規則、12 配置すべて。

エンジンはこのゲームを理解している。100,000 ノードでランダム着手に対し、通常の兵で 60-0、古参兵で 80 局中 78 勝。10 倍の探索量は 10 分の 1 に対し、通常の兵の前方配置で 17-1-2、古参兵で 11-0-9。脚注を一つ:原型の配置で通常の兵の場合、10 倍の探索量は 55% しか取れなかった。決着した対局はどちらの探索量が持っていても正規軍のものになったからで、結果を決めたのは席であって探索ではない。

探索の深さ。時間ではなくノード数なので、機械に依存しない:1 手 200,000、100 万、500 万ノードで、これらの局面ではおよそ深さ 12、15〜20、24〜33 に達する。この探索量で棋力は飽和していない(通常の兵で河の向こうから始めるマスは 7 つの探索量で引き分け、正規軍、兵の大群、兵の大群、正規軍、兵の大群、引き分けと動いた)。通常の兵の結論は試したどの探索量でも同じ仕組みで成り立ち、この主張は安全だ。攻城戦は探索が最も苦手とする局面の種類で、100 手の計画は深さ 20 では見えず、古典評価はこの終盤の価値をまるで知らない(正規軍が要塞を削っている最中に、兵の大群を +2.3 と評価した)。だから引き分けの主張は負けの主張より弱く、計画を持つ人間ならどちらの側でもエンジンよりうまく指せるかもしれない。ラボは各手で達した深さを記録している。

1 局は標本 1 つ。各マスは 1 手 150,000、200,000、300,000、500,000 ノードで 4 回指し、すべての手はエンジンの第一候補で、ランダムな序盤はない。だから盤の下の行は割合であり、クリックで開く 100 万ノードの対局は 5 局のうちの 1 つで、判定ではない。決定的なエンジンは同じ開始局面から同じ対局を再現するので、4 局を変えているのは探索量であり、スクリプトは 2 局が同一になったマスを拒否する(そうなったマスはなかった)。マスが割れたなら、その割れ方が結果だ。古参兵の数字にはもう一つ留保がある:エンジンは古参兵を、調整ではなく機動性から価値を見積もったカスタム駒として見ているので、兵と駒の交換の判断は通常の兵より粗い。500 万ノードでも崩せない要塞は本物だが、そこへ行く途中で手放した駒は最善ではないかもしれない。

現在地

このシリーズで変種がゲームと呼べるのは、計測した対局で 3 つの基準を越えたときだ:強い者同士で既定の引き分けではなく決着がつくこと、どちらの側も最初から勝っていないこと、両方の席にやることがあること。ホードシャンチーは試したどの設計でも一つも越えていない。

  • 通常の兵:河の自陣側から始める 40 以下のどの配置からでも正規軍が勝つ。36 局中 36 局、同じ一手で。決着はつくが、初手から決まっている。45 か、河の向こうから始める場合、そのマスは序盤の交換で決まるコイン投げだ。
  • 古参兵:強い者同士が 48 局中 37 局引き分ける攻城戦で、400〜1,000 手。兵の大群は 6 勝、うち 4 つは困斃。正規軍は 5 勝で、すべて兵 18 に対して。決着はつかず、どちらの席にも計画がない:正規軍の最善は宮に座って待つこと、兵の大群の最善は塊を 1 地点ずつずらすこと。兵の大群が優勢な唯一の配置(2〜5 段の 36、5 局中 4 勝)は、同じ攻城戦のスコアが良いだけで、別のゲームではない。
  • 弱い相手には兵の大群は危険で(100,000 ノードでランダムな正規軍に 30 局中 30 勝、うち 19 は困斃)、人間は 100 万ノードの探索より弱い。これは罠であって、ゲームではない。

再び開く条件:人間の対局結果、塊に道中の掩護を与える兵の規則(候補は上に)、あるいはここで測った 48 局中 6 回を大きく上回る車の落ちる割合。シャンチー本来の兵については、今のところそちらを指すものはない。兵が設計空間で、河はその中の崖であり、次の設計は兵を変えなければならない。

先行事例:Fairy-Stockfish の変種ファイル、PyChess、Lichess、Chess.com の公式リスト、PlayStrategy、Ludii、英中両方の Wikipedia のシャンチー変種ページ、chessvariants.com の 9x10 索引、知乎の民間シャンチー変種 231 種のリストと、そのうち兵の名を持ち百度百科に規則のある 9 種:ホードはどれにもない。貼吧の民間変種の板と Chess.com のユーザー変種は読めなかったので、これは徹底した否定ではあるが網羅的ではない。シャンチー自身の非対称な遊び(満洲棋、五虎、九駒落ち)は逆向きで、片側から駒を取り除き、兵が最初に減る。ホードチェスは BrainKing の Horde Chess(2002)と Lord Dunsany の「Pieces against Pawns」(1942)に遡る。Horde は中国語で 部落。

資料:

  • 兵の大群の勝ち、解説つき - 2〜5 段の古参兵 36 が車を 2 つとも取り、435 手目に将を困斃させる
  • horde-xiangqi - 証拠:24 の設定節、387 局すべてのエンジン対局、審判カーネル、そして npm run verify。全局を規則に対して再生し、集計を計算し直す
  • 変種ラボ - これらを生んだ道具:Fairy-Stockfish の検証関門とコマンド群
  • scalachess のホードのコミット - Lichess が 2015 年に定めた規則
  • Fairy-Stockfish - エンジン。変種全体は variants.ini の 1 節で、extinctionValuecustomPiece1 = v:fsWchasingRule = none を含む
残りの兵
渡河済み
正規軍の駒数
最後の駒取りからの手数