So-net無料ブログ作成

人間は100万升目前後の、1兆枚制将棋でも指せる(長さん)

 一昨日の年頭の文章で、私は「100万×100万
升目で4000億枚制の超巨大将棋を、人間が指す
のは、無理だ」と述べたが、良く考えてみると、これ
は間違いだと、ようやく気が付いた。駒の名前を、
初期配列の座標とし、動かし方は、名前が示す数値か
ら、暗算で求められる程度に工夫しておけば、この
程度の将棋を、人間なら指せると思い直した。
 思えば昔、私は天文マニアであって、銀河系の星
(恒星)が、千億の数オーダーだと習ったし、星の名
前の最も効率的な付け方は、天球座標の数値を、その
まま星の名前にする、というやり方であるので、天文
学者が、星が多すぎて困ったという話が無いのを、繰
り返し聞いたものだった。
 むろん将棋の駒は、ゲームが始まると移動するので、
星の観測とは違うのだが、実はこの場合、私は次の点
に関して、勘違いしていたようだ。すなわち将棋では、
駒がどこへ移動したとしても、盤・駒を使って結果は
表示され、対局者が、配置の変化を忘れる事が、ルー
ル違反に、ならないゲームだったのだ。つまり、動か
し方のルールさえ間違えなければ、チェスや将棋では、
どう動いたかは、忘れてしまっても、答えを盤・駒で
見て、改めて認識して位置を確認して良い事になって
いたのを、私は、すっかり忘れていた。
 むろん、泰将棋や大局将棋以外は、駒を自陣にびっ
しりとは並べないので、名前が跳ぶ事はあるが、名前
跳びがあるなら、絶対困るということは、ありえない。
跳びが有っても、困らないように、その”関数”とし
ての、動かし方、成り先、成り先の駒の動かし方を、
工夫しておけば良いだけである。また、ランダムに近
いような、空隙を、初期配列では作らず、空き升目の
出方のパターンを、規則的にしさえすれば、駒が大量
でも、人間には原理的に並べ方が、理解し、記憶でき
ないという事も無い。
 具体的に名前によって決定される”動かし方””成
り先””成り駒の動かし方”各関数は、厳密にはこれ
から考えなければならない。が、無制限走り駒の種類
が、事実上24通り位であるから、変形して25進法
を使い、X軸値を25で割り、走りの種類等に割り当
て、Y軸値を、比較的簡単な形に制約して、小駒や、
跳び駒、走り駒・・と分けてゆけば良いらしい事は、
私には、およその察しが着く。
 以下はアバウトな一例で、まだどこかに穴が、有る
かもしれないが、例示してみよう。
座標原点は、中央列の最前列の歩兵列の1列下の駒を
両者で(0,0)とする。原点は二つあるが、それぞ
れ、自駒について名前を付けるときには、自分の方を
使用する。Y軸はそれより下段は負の数になるが、マ
イナス符号は、無視しえる。X軸は、中央から右辺が
プラス、左辺がマイナスの座標になるが、左右対称に、
駒を初期配列するので、この符号も無視できる。なお、
この変則座標は、棋譜を表記するときには使用しない。
棋譜の表示の時には、先手から見て、盤上端右端の盤
すぐ外仮想升目を、原点にする、普通のやり方でも良
いと思う。
 すると、絶対値の最大で、X座標の数字が50万前
後、Y座標の数値が49万9900前後となる駒名は、
(348579の230309)等で、表現できる。
 ついで、この座標数値と、元駒、成り駒の動かし方
を対応させる必要がある。はるかに簡単に決まる、
成り条件等、細則は、ここでは示さない。また、
(0,499900)程度の所に配列されるとみられ
る玉将、最前列の歩兵は、普通の動き、成りとし、仲
人や犬、「き犬」等は、この将棋では無い事にする。
その他の駒について、次の規則にしてみよう。まず、
X軸の下2桁は、
25~49のとき、前2升目先跳び、
50~74のとき、前3升目先跳び、
75~79のとき、前2と3升目先跳び、を修飾し、
座標を25で割った余りを2進で表して、下、斜め左
右下、横、斜め左右前、前を、それぞれ1の位、2の
位、4の位、8の位、16位に対応させて、1になっ
たときに、「その方向に行けない」を対応させる。
ただし余り24のケースだけは例外で、「前3方を行
けない」には、しないで「23と同じく、前以外には
行けないで、かつ、日本将棋の桂馬の動きもできる」
とする。こうすると、本来24進になり面倒なのを、
25進に変える事が出来る。
 たとえば上の例では、79であるから、前へ2~3
升目先に跳べ、横へ行けない(余り4)が付与される。
ついで、「行ける」の向きについて、その具体的動き
は、Y座標から計算する。
Y座標の各桁の数値を足し、10引いて(負の数なら
ごく小さな0に近い正の数に変える)から、その数値
で100を割った値を繰り上げて、前と斜め前の、走
りの最大歩数、20を割った値を切り上げて、横と斜
め後ろ、後ろの向きの最大走り歩数とする。ただし、
値が10を超えたら、無制限走りとする。
たとえば、
上の例では、230309の各桁を加えると、17に
なり、10を引くと7になるから、前3方向は無制限
走りになり、後ろ3方が3升目走りになる。
 そして、更に残った、X軸の残りの桁で、更に、動
きを修飾する。今度は斜め左右前を3桁目、横を4桁
目(千の位)、斜め左右後ろを5桁目(万の位)、後
ろを6桁目(10万の位)とし、今までの所までで、
この駒は、元の動きが、
「前3方走りかつ2~3升目へ跳び、横行けず、後ろ
3方3升目まで歩み」
になっているのに加えて、
その対応方向桁が
0のケースは、そのまま、
1~5までは、1歩から5歩までの走りを兼ねるとし、
6のケースは、2升目先に跳べるを加え、
7のケースは、2升目先に跳べるに加えて、隣接升目
へ歩めるとし、
8~9のケースは、7のケースよりも3~4升目まで
走る分動ける範囲が増す。
とする。この例では、X座標が348579であるか
ら、よって、
「前3方向走りかつ2~3升目へ跳び、横3升目先
まで走りで2升目先跳び、後ろ3升目先まで走り、
斜め後ろ4升目先まで走り」
の駒となる。実際に指す時には、駒の名前の表示を見
て、以上の程度の判断を、この将棋では暗算でしなけ
れば、事実上指せないが、前3方の動き方の計算が、
このゲームでは、飛び抜けて重要で有る事は、実際に
指してみれば判るだろうから、人間にとって、この
ゲームは、やりにくいゲームとまでは、言えないと考
える。
なお、ついで成り駒になったときの動かし方であるが、
元駒の走る歩数が、4升目以上なら、無制限走りに変
え、1升目歩みと2~3升目走りについては、前以外
の7方向は、そのままだが、前1方向のケースだけは
特別で、斜め前2升目が元駒4走り以上である場合は、
そのまま、前(元)が1~3升目で、左右斜め前2方
向も3升目以下の”元来前方不走り駒”の場合だけ、

前方だけ、
無制限走りに変えて、それに加えて、自駒相手駒共に、
玉以外はすべて飛び越せて、飛び越す時には、玉以外
の駒を取る事ができ、更に、飛び越した駒のうち、
相手駒は、自駒にオセロのように変更させて、さらに
その上で、変更させ自分の駒に変えた相手の駒は、
全部成らせる、というルール(大踊り、オセロ)で、

恐らく、ゲームとして成立するように思う。
上の例だと(348579の230309)という駒
は、
「前3方と斜め後ろ2方の計5方が、無制限走りとな
り、横と後ろの計3方向が3升目走りで、前に2~3
升目跳びで、横へは、2升目先に跳ぶ」という駒に、
成る事が判る。
以上は一例だが、このように駒の名前と、成っている
かどうかの表示を見れば、駒個々の動かし方のルール
は、盤升目100万×100万か、それより少し上、
駒数で9999億枚や1兆枚程度までの将棋は、人間
が指せそうだと、読者にも、なんとなくは、判ったこ
とだろう。
よって、以上の事から工夫次第によって、

 人間には駒数1兆枚程度の将棋でも、原理的に指せ
そうだという事なり得るので、「人間は終わるんです
よ」という話は、日本将棋への、こだわりから、一旦
開放されてしまうと、かなり怪しいのではないかと、
私にはだんだん思えるように、なってきたのである。

 話は飛ぶが、今夜はりゅう座イオタ流星群という、
流れ星がたくさん飛ぶ日である。この流星の束の、
太陽系空間内での分布は、天体の会合がリズミカルな
ために、煙と違って拡散が特異で、顕著な群としては、
最大の理解困難系(規則が有りそうで、無さそうで)
になっていると、私見している。
複雑系になると概して物事、思わぬ新たな認識障害が
現れる事に、流星群の空間分布に、その昔興味を持っ
ていて、充分に私は慣れているので、「無限大将棋が
人間に指せるという事は、コンピュータの将棋界への
進撃には、なんらかの耐えうる方法が、必ず有る」と
いうのと、ほぼ同じ事のように、私には感覚される。
(2017/1/3)