昨日TFTを学習しないと書いたが、ふと気になって表現型を見てみた。
驚くほど単純で、ずっとDの手を出しているのである。
TFTも相手によってはDを出し続ける。大事なのは、GAは個体の進化というより社会の進化なので、全体的にTFTな社会が出来るよりはAll Dな社会ができあがる方が簡単なようだ。表現型はDを出し続ける個体であれば、遺伝子型で必ずしもTFTになっている必要はない。
All DもTFTもESSだしな。データを見ると、最初の世代はCとDを適度に両方取って点数を稼ごうとしているが、2〜5世代ぐらいでずっとDを出して逃げ切ろうとするヤツが増えてくる。その後は総得点としては最高ではないけど、Dを出し続ける遺伝子を残し続けて生きていく感じである。結果Dばかりになる。やれやれ。
変な話だが、TFTを作ろうとしたら、パラメータやなにやらで環境を整えてやらなければならない。ゴールがTFTだとわかっていたら何とかしてやろうと思うけど、これから考えていることはそういった“アルゴリズム”を進化&学習するモデルだから、GAじゃできないのかもなぁ。
あるいは評価関数をゲームの得点だけにするんじゃなくて、「アルゴリズムが短い程よい」とかなんとかすればいいのかなぁ。ともかく、適切な状況設定が必要です。うむ。
GWも終わったし、そろそろ違うことを考えようかな。