本州人類は衰退しました

実は偶然ではなく必然。何度も繰り返したら、6割くらいは北海道王国勝利に終わると思う。残り4割は四国・九州連合の勝利。
以下、動画のネタバレを含むため、視聴後の閲覧を推奨。

接触面積

まず、東本州と西本州は、両サイドとの接触がある、という面で明らかに不利。確かに短期的に見れば有利でも不利でもない。けど、負けない事が何より重要なゲームでは、接触面積が大きいエリアは、長いスパンで見ると安定性を失う分不利になる。その点で、北海道は他国との接触面積が最低なのでもっとも有利な立場にあると言える。実際、北海道は期間通して殆ど進行されていないし、運悪く入ってきても札幌以南で侵攻を食い止めることに成功している。海峡と細長い半島があるから攻め込まれても安定させられるわけだ。
この面で面白いのが、九州・四国と西本州の攻防。四国側と九州側、両方から包囲する形になった直後、九州・四国連合が圧倒的優位を取っている。
ちなみに、戦闘可能な前線の量を低めに制限すると、本州勢はもっと不利になる。

包囲の有無

通常ならば、敵軍を包囲してしまえば戦闘は圧倒的に有利になるのだが、どうもこのプログラムではそれを実装していない、もしくはその効果が弱い。現実には、1マスの周囲に自軍5、敵軍3といたら、中央マスでの勝率比は5:3では済まない。セルラーオートマトンの実装的な面で見ると、ルールが少し単純すぎる可能性が高い。
結果、本州付近での戦況がかなりカオスな事になっている。前述のように、戦闘は少ない方が安定する。各色の点が半々のエリアは、いつどっちに一気に塗り変わるか分からず、非常に不安定である。これは特に東本州と西本州に不利に働いた。
終盤、東西本州の争いの隙を突くように九州が一気に戦力を伸ばしているが、これも包囲効果が甘かったため。もう少しきつめに利いていれば、東本州と西本州の戦闘が「泥沼化」する事は無かったはずで、九州・四国があそこまで一気に戦力を伸ばす事は無かった。このシミュレーションのハイライトのひとつかもしれない。

銃後の守り

シミュレーション終盤、九州・四国v.s.北海道の構図になった時点での総領土面積比は、数え上げるまでもなく九州有利。なのだが、それが戦闘結果に反映されない。この辺は、近傍情報だけで戦闘結果を算出し、近傍マス以外の自軍がいくらいようと関係ない、という、シミュレーションの仕様による所が大きい*1。この結果、2勢力のみの争いになった時点で条件が殆どイーブンになる(実際には最初に述べたように、地形の分北海道有利。運良く本州側に侵攻できた時点で、北海道は一気に領土を広げられる)。
ここに、戦闘を行なっていない自戦力マスの分だけ戦闘しているマスでは有利になる、総領土面積比を勝率に掛け算する、みたいなルーチンが入っていたら、逆転はありえなかったと思う。ちなみに、これが強めに利くようにすると、素早く領土を広げられる本州勢に勝つ目が出てくるかもしれない。

総論

いろいろ書いているが、実行結果を見る前には考えつきにくい要素も結構混じっている。
比較的実装が単純なセルラーオートマトンは、ややこしい条件下でもとりあえず単純な形で実行してみて、どの辺の要素が決定的にはたらくかを見る(&それを修正して再度実行する)のに向いている。些細な条件の差が予想しにくい形で最終結果に大きく絡んでくる、というのは、こうした手法の醍醐味でもある。
というか、自分のプログラムが「一生懸命頑張ってる」とか、「自分の手を離れていく」という感覚は、個人的にはプログラミングをしていて一番好きな瞬間。予想可能な結果を出力するプログラムが書けるようになったら、こういうセルラーオートマトンや、エージェント型などの予測不可能なシミュレーションを作ってみると面白いと思う。

*1:ローカル情報を重視するというのは、セルラーオートマトンという手法の一番の特徴とも言えるので、ある意味持ち味なんだが