人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。今回からしばらくセルオートマトンの不思議な世界をふらついてみようと思ってます。セルオートマトンは、その名前のとおりセル(格子)から構成されたオートマトン(自動機械)です。確率とは無縁の決定論的世界ですべてはルールに厳密にしたがって動作します*1。これ以上、説明が難しいので実例を。前に、Java(2004/12/25)やPython(2008/9/14)で作ったことがあるライフゲームは、二次元セルオートマトンの一種です。ライフゲームの各セルは、生と死(ON、OFFでもいいですけど)の2つの状態を取り、たった3つのルールにしたがって動作します。生きているセルの周囲に2つまたは3つの生きているセルがあればそのセルは次の世代も生きている死んでいるセルの周囲に3つの生きているセルがあればそのセルは次の世代で生き返るそれ以外の場合には次の世代で死ぬたったこれだけのルールですがその振る舞いはものすごく複雑で非常に驚かされます。この格子の世界に生命の秘密が潜んでいると信じている人もいます。知らない人はぜひ動かしてみてね。参考文献の動画もおすすめ!ライフゲームの状態とルールはものすごく単純ですが、その振る舞いは非常に複雑なので分析がすごく難しい。Wolfram)という人*2がさらに単純な一次元セルオートマトンというのを考案し、詳しく分析しました。今回は、その一次元セルオートマトンを試してみようと思います。セルオートマトンというもっとも簡単なものです。名前のとおり、横一列にセルが並ぶ世界で各セルは生と死の二状態を取ります。ルールもライフゲームよりずっと簡単で自分と左右の三つのセルの組み合わせから次の世代の状態が決まります。三つのセルの組み合わせは、上の図のP0からP8の8パターン(2^3)しかありません。一方で、次の世代の状態はもっとパターンが多くなります。上の例では、P1、P2、P3、P4のとき次の世代を「生」にし、P0、P5、P6、P7のとき次の世代を「死」とするルールになります。このルールは、「生」を1、「死」を0であらわすと00011110になるのでRule30と呼ばれています。このようなルールは、8ビットであらわせる数だけあるので全部で256種類、Rule0からRule255まであります。ここからが面白いところ。ライフゲームの場合は、世代経過を見るには、アニメーションのように動かすしかありませんでした。一次元オートマトンの場合は、単なる線なので次世代を下方向に並べていけば時間経過を一枚の画像として見られます。実際に、第一世代を真ん中の一点のみ「生」で残りを「死」にした状態から上のRule30を繰り返し適用して次世代を下方向に重ねていくと下のような画像ができます。ランダムなノイズに見えるけどところどころきれいな三角形が見えてカオスっぽいです。次は、Rule90(01011010)を試すとこうなります。おおおお、これは有名なフラクタル、シェルピンスキーのギャスケットではないか!本来はまったく違う作り方なのだけど一次元セルオートマトンのルールでも作れるのか・・・これはすごい。次は、Rule161を試します。白黒反転したっぽいけどすこし線が太いかな?ルールを少し変えるだけで予想外の画像が出てきて面白い。このような図を描くPythonスクリプトは下のようになります。Pythonの画像処理ライブラリのPILを使っています。height)全256ルールをすべて描画してみた上のスクリプトで1つずつルールを変えて画像を生成してもいいのだけれどすごく面倒なので自動化して全部描いてみました。左上の赤い数字がRule名です。うーん、いろいろなパターンがあるのがわかりますね。死滅して真っ白になったり、繁殖しすぎて真っ黒になるルールもあります。縦や斜めに一直線もありますね。生死が反転もあります。例のカオスっぽい模様やきれいなシェルピンスキーのギャスケットもぽつぽつ見えます。出現に何か規則性はあるのかな?ルールをビット列で考えると何か見えてくるのかも。今回は初期値を真ん中1点だけ黒にしましたがランダムにするともっといろんなパターンが出てきます。その中で物議をかもしているルールが110番です。今回は、2状態・3近傍というもっとも単純なセルオートマトンでしたが、もう少し拡張していきたいと思います。次回はたぶん、ラングトンのλパラメータとカオスの縁の実験です。2章がセルオートマトンです。冒頭の引用はここから。Wolframのセルオートマトン関係の論文集。原著論文も読んでみる予定。天才がどういう論文の書き方をしているのか気になる。このブログ記事でも全256種類のルールを全部描画しています。一次元セルオートマトンのPythonコード。ここを参考にしました。このサイトは結構マイナーなレシピもあって見てると面白いなぁ。日本語によるセルオートマトンの解説。Alphaを作った人と同一人物です。ラングトンの自己複製オートマトンIIRフィルタ»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。