Komakuro

English/日本語

将棋の数学的定義:持将棋

まず、このシリーズでは両者の合意による持将棋(引き分け)は考慮しません。
つまりこういうルールは存在しないものとして扱います。
完全に盤外の駆け引きの話なので、数学的考察の対象にならないですからね。
厳密に言うとそれはそれで何かしらの定式化はできるかもしれませんが、それはこのシリーズの意図と全く違ってくるので。

それから入玉宣言法についてですが、<a href="https://www.shogi.or.jp/faq/taikyoku-kitei.html">日本将棋連盟のサイト</a>によると、
次の条件を満たしていれば、宣言側が、勝ちまたは引き分け(無勝負)となる。
 [条件1]宣言側の玉が敵陣3段目以内に入っている。
 [条件2]宣言側の敵陣3段目以内の駒は玉を除いて10枚以上存在する。
 [条件3]宣言側の玉に王手がかかっていない。
 [条件4]宣言側が(大駒5点、小駒1点の計算で)
 A.31点以上あれば宣言側が勝ち。
 B.24点以上30点以下であれば持将棋引き分け(無勝負)。
 ただし、点数の対象となるのは、玉を除く宣言側の持駒と敵陣3段目以内に存在する
 宣言側の駒のみである。
 尚、条件1~4のうち一つでも満たしていない場合、宣言側が負けとなる。
とのことですが、このシリースでは
<dl>
<dt>(1)</dt>
<dd>宣言側の勝ちになるときは必ず宣言する</dd>
<dt>(2)</dt>
<dd>「引き分けになる場合」は考慮しない</dd>
<dt>(3)</dt>
<dd>宣言側の負けになるときは宣言しない</dd>
</dl>
ものとして扱います。
(1)と(3)の場合はまあ自然だし、納得してもらえるでしょう。
というより公式ルールもこう直したほうがいいのでは?というレベルな気がします。
(2)を考慮しないのは、合意の場合と同様の理由です。
引き分けにするかこのまま続けるかという判断は盤外の話だということです。

というわけで、ここでの将棋の定義に影響を与えるのは入玉宣言法による勝利の場合だけです。
定義「敵陣にある」p∈Pieceに対して、あるc∈Column,r∈Row,s∈Side,o∈Turnがあって「『o=先手かつr≦3』または『o=後手かつr≧7』」かつposition(p)=((c,r,s),o)であるとき、pは敵陣にあるといいます。
定義「点数」score:Kind→ℤを次のように決めます。
score(玉)=0
score(飛)=score(角)=5
score(金)=score(銀)=score(桂)=score(香)=score(歩)=1
駒種写像kindと上の意味でのscoreの合成写像もscoreと呼びます。
定義「入玉宣言法による勝利局面」state=(position,t)∈Stateは、以下の条件をみたすとき入玉宣言法による勝利局面であるといいます。
<dl>
<dt>(1)</dt>
<dd>あるp∈Pieceがあってkind(p)=玉かつpはtの駒かつ敵陣にある</dd>
<dt>(2)</dt>
<dd>相異なるp<sub>1</sub>,...,p<sub>10</sub>∈Pieceがあって、これらはすべて駒種が玉でなくかつ敵陣にある</dd>
<dt>(3)</dt>
<dd>stateは王手でない</dd>
<dt>(4)</dt>
<dd>相異なるp<sub>1</sub>,...,p<sub>n</sub>∈Pieceがあって、これらはすべてtの駒でありかつscore(p<sub>1</sub>)+...+score(p<sub>n</sub>)≧31</dd>
</dl>
これを採用する場合、<a href="?shogi-state-winner">局面の勝者の定義</a>の(2-2-2-1-2)を次のように変更します。
定義「局面の勝者の(2-2-2-1-2)」<dl>
<dt>(2-2-2-1-2-1)</dt>
<dd>g(i)が入玉宣言法による勝利局面であるとき
winner(g,i):=tと決めます。
</dd>
<dt>(2-2-2-1-2-2)</dt>
<dd>g(i)が「入玉宣言法による勝利局面」でないとき
winner(g,i):=未決と決めます。
</dd>
</dl>
これで将棋の数学的定義が一通り終わりました。
次回からはこの定義をもとにさまざまな性質を証明していきます。