補遺Aで、個体は経験から行動のウェイトを変えた。助けられれば近づき、裏切られれば避ける。でも、その経験はすぐ薄れる。どれくらい残るかで、何が変わるのか。

意外にも、長く覚えればいい、ではなかった。記憶が短すぎると関係が積み上がらず、長すぎると関係が固まって直せない。協力がいちばん残るのは、その間。覚えることと、忘れることの、両方がいる。ここで、記憶の長さを変える。

覚えること、忘れること

個体に、相手ごとの記憶を持たせる。助けられた記憶は信頼を少し上げ、裏切られた記憶は下げる。そして時間が経つと、記憶は少しずつ薄れる。変えるのは一つ、経験が残る時間だけ。

# 古い出来事は落とす。残っている記憶だけが、相手への信頼を動かす。
filter!(e -> e.age < memory_span, memory)
if helped_me(other)
    trust[other] += 0.04
elseif betrayed_me(other)
    trust[other] -= 0.08
end

残る時間が、協力の形を変える。永遠でもなく、すぐ消えるでもなく。

短すぎても、長すぎても

短い記憶では、協力は立ち上がりにくい。助けても、次に助け返されるとは限らない。裏切った相手も、すぐ元通りに扱われる。関係が積み上がらず、協力する個体の割合は揺れた。

中くらいの記憶で、協力はいちばん安定した。助けた相手は信頼され、裏切った相手は避けられる。でも記憶は薄れるので、関係は完全には固定されない。

長すぎる記憶では、裏切りはよく抑えられた。ただし、修復が起きにくい。一度悪く覚えられた個体は、状況が変わっても長く避けられる。群れは安定するが、硬くなる。

協力は、覚えると忘れるの間にある

記憶は協力を支える。でも、ただ保存すればいいのではない。どの経験を、どれくらい残すか。短すぎれば積み上がらず、長すぎれば変われない。

このモデルでは、協力を保つのに、忘れないことだけでなく、忘れることもいった。覚えることで裏切りを抑え、忘れることで関係を直す。その両方の間に、協力が残る幅がある。ここでの記憶は、相手ごとの一つの値にすぎない。出来事の意味を読むわけでも、謝罪や説明があるわけでもない。それでも、記憶の長さを変えるだけで、協力の安定は動いた。

経験も記憶も、相手との間で働く。でも、誰と出会うかは、群れの形が決めている。その器——空間そのものは、補遺Cで扱う。

補足

  1. 記憶の長さ: 経験が行動に影響し続ける時間。短いほどすぐ忘れ、長いほど過去の相手を覚え続ける。
  2. 信頼: 相手に近づくか、助けるか、避けるかを変える、相手ごとの内部値。助けられると上がり、裏切られると下がる。
  3. 直接互恵性と修復: 同じ相手との助け合いが、記憶を通じて続くこと。Axelrod のしっぺ返し(tit-for-tat)のように、覚えることが裏切りを抑える。一方で記憶が薄れると、こじれた関係が修復される余地も残る。