木材がゼロになってAIが永久に止まった。唯一の生産手段が、木材を要求していた

ユーザー自身が、正しい仮説を立てていた。

日本進化シミュレーション第12回 / 全16回目次

「次の時代への許可が出なくなった」「AIの自動開発が止まった」という報告を受けて、送ってもらったスクリーンショットを見た。

金は43,103ある。上限80に対して、有り余っている。
なのに建物は23棟しかなく、上限の30に届かない。人口も104人で、目標の240人にほど遠い。
お金だけ潤沢で、他が全然伸びない。この組み合わせに、見覚えがあった。

ユーザー自身が、正しい仮説を立てていた

報告のメッセージには、こう書かれていた。
「木材だけが自分自身を材料に要求する唯一の生産源で、0になると永久に詰む構造でしたというのが原因?」

読んだ瞬間、僕にはそうとしか考えられないと思った。
コードを確認する前に、仮説の方が先に当たっていた。

木材を生む唯一の建物が、木材を要求していた

木材を増やす手段は、木こり小屋しかない。
その木こり小屋を建てるのに、木材が6必要だった。

道路も、住居も、ほとんどの建物が木材を消費する。
だから木材が6を切った瞬間、木こり小屋すら建てられなくなる。
木こり小屋が建たなければ、木材は二度と増えない。
これは詰みだ。しかも、外からの介入なしには絶対に自力で抜け出せない詰みだった。

他の資源には、この性質が無かった

面白いのは、木材だけがこの罠にはまる特殊な資源だったことだ。
食料を作る農地は、木材で建つ。石材を作る石切場も、木材で建つ。
資金は税収からも入ってくるので、建物が無くても自然に増える。

木材だけが、自分自身の生産手段の材料に、自分自身を要求していた。
自己参照の袋小路というのは、こういう時に使う言葉なんだと実感した。

同じ日に直した別のバグとは、性質が違った

ちょうどこの少し前に、食料がマイナスになると無関係な購入まで止まるという別のバグを直していた。
今回はそれとは違う。木材の値は0から5くらいの範囲で、負にはなっていない。
「正当に、単純に足りていないだけ」の状態だった。だから資源判定のロジック自体は正しく動いていた。
足りないものを補充する手段が、存在しなかっただけだ。

人間のプレイヤーなら、木を伐りに行く

実は、このゲームには元から森を伐採して木材を得る操作がある。
無料で、木材が8手に入る。人間のプレイヤーが木材切れに気づいたら、まずこれをやるはずだ。

AIには、その発想がなかった。
木材が少なくなったら、優先度92(木こり小屋の提案より上)で、街の近くの自然林を1マス伐るという行動を追加した。
特別な仕組みを新しく作ったわけではなく、もともとあった伐採の機能を、AIにも使わせるようにしただけだった。

検証は、詰み状態を人工的に作ることから

木材をゼロにした状態を直接作って、そこから自動開発を数十回回してみた。
木材は0から回復し、建物は17棟から23、144棟へと増えていった。
時代を進める条件も、最終的にちゃんと満たされた。

設計として持ち帰った教訓は一つ。
ある資源の唯一の生産手段が、その資源自身を消費する形になっていないか。
資源を増やしたり見直したりするたびに、この観点だけは必ず確認するようにしている。

スタンプラリーに挑戦する 行った場所・気になる場所は、現地チェックインでスタンプに残せます。 みんなのコースを見てみる 会員が作ったスポット巡りのコースを都道府県から探せます。自分だけのコースも作れます。 運営者の個人noteも書いています AI活用やサイト運営で気づいたことを、もう少し個人の視点で掘り下げています。

※運営者が個人で書いているnoteです。

技術ブログ一覧へ戻る