2018年10月24日
No.23 NationalGeographicの購読とセルオートマトンを用いた専用ラックの設計【人工生命】
お久しぶりです。
何年遅れか分かりませんが、セルオートマトンにはまっています。
Pythonのライブラリが充実しているので、画像を作るのがめちゃくちゃ簡単です。
まぁ、車輪の再開発ですが、2次元セルオートマトンを実装して画像を楽しんでるくらいなのですが、それがかなり奇麗なので最近購読を始めたNationalGeographicのラックを作ろうと思います。
ラックのポンチ絵はこんな感じです。
詳しくは作り終わって図面とともに載せますので、ご期待あれ!
NationalGeographicは、写真が美しい月刊誌です。
売り上げの一部は世界の探検家等々のスポンサードに充てられているみたいで、なんだかとってもワクワクします。
写真も奇麗です。まぁここら辺は偏見込みなのでご参考までに。
さてさて、きちんと読む本には、落書きを加えながら読みたいタイプなので、紙雑誌で買っているのですが、これを管理するラックにセルオートマトンを使ってみようかなって感じです。
1次元セルオートマトンの概要と実装は人工知能に関する断創録が一番かなと思います。
さて、上のサイトで実装されてはいるのですが、Python初心者の僕がすべてをおんぶにだっこではいつまでもPythonが使えるようになれないので、自分で実装してみます。
Cの配列と違って、Pythonのリストは型が関係なくなんでもかんでも入ります。
型を考えなくていいのですが、画像として扱おうと思うと明示的でない分微妙な感じです。
また、動作もどうやら遅いらしいです。
ので、NumpyライブラリとPILライブラリを使って実装していきます。
あとはセルオートマトンの境界条件は0パディングです。
最上位と最下位ビットはそれぞれ0を入れて次の世代を計算します。
アルゴリズムの大まかな指針としては、
ルールを2進数に変換(array_ruleとする)。
計算するiビット目は、前の世代のi-1,i,i+1ビットを10進数に変換し、array_ruleの該当する要素番号を取り出す。
これを指定の世代まで繰り返します。
最後にこれを画像化して終了です。
1次元セルオートマトン、は3ビットのパターン、Rule0~255までありますが、代表的なものについての言及はありますが初期値に関してまとめられているものがないようです。
工学的に興味深いのは、Rule184の渋滞解析。
それっぽいのを見失ってしまったので、Wikipediaですが…。
前のビットが経っていたら止まって、立っていなかったら進みます。
渋滞解析や、群衆雪崩の解析に用いられているようです。
車については、2次元でも使えることがあるかもしれませんが、3次元への拡張と、斜め方向への移動も考えなければならないため、これがそのままってわけではないですが…。
群衆雪崩という言葉も知らなかったですが、明石の事後から使われている言葉みたいです。
生物学的にはRule90の模様。
Canvas(2)一次元セルオートマトン
これ貝の模様にイモガイの模様みたいらしいです。
これをみてぱっとそれを思った人はいったい誰なんですかね。
最初に気が付いた人のテンションがちょっときになりますが、確かにって感じです。
イモガイは猛毒らしいです。なんだか素晴らしい無駄知識を手に入れていっています。
で、計算機科学的にはRule110のチューリング完全。
これきちんとまとめられているサイトが見つからないんですよね。
完全チューリングマシンを再現できることなんですが、要は有限メモリで計算ができるということみたいです。そして原著論文がUniversality in Elementary Cellular Automataです。
これきちんと読もうと思いつつ…。
まぁ、今作ってるものが終わったら読んでいく予定です。
そうなんですよね。Ruleについては結構まとめられていますけども、初期値での分類はあんまりないのでこつこつやっていきます。
というか、組み合わせ的にも初期値で研究するほうが圧倒的に時間がかかりますもんね。
スペクトル解析で1/fゆらぎの研究とかもあるみたいで、ほんとに研究しようとしたら一生かけれそうですよね。
適度なところで打ち切ろうかなと思いますけど、なかなか刺激的でした。
ひとまずは、初期値199まででやってみて個人的に好きな模様をピックアップです。
Rule30は初期値58。
Rule90は初期値47。
Rule110は初期値115。
よろしかったら、ブログランキングの向上にご協力おねがいします。
手作り・DIYランキング
何年遅れか分かりませんが、セルオートマトンにはまっています。
Pythonのライブラリが充実しているので、画像を作るのがめちゃくちゃ簡単です。
まぁ、車輪の再開発ですが、2次元セルオートマトンを実装して画像を楽しんでるくらいなのですが、それがかなり奇麗なので最近購読を始めたNationalGeographicのラックを作ろうと思います。
ラックのポンチ絵はこんな感じです。
詳しくは作り終わって図面とともに載せますので、ご期待あれ!
NationalGeographicは、写真が美しい月刊誌です。
売り上げの一部は世界の探検家等々のスポンサードに充てられているみたいで、なんだかとってもワクワクします。
写真も奇麗です。まぁここら辺は偏見込みなのでご参考までに。
さてさて、きちんと読む本には、落書きを加えながら読みたいタイプなので、紙雑誌で買っているのですが、これを管理するラックにセルオートマトンを使ってみようかなって感じです。
1次元セルオートマトンの概要と実装は人工知能に関する断創録が一番かなと思います。
さて、上のサイトで実装されてはいるのですが、Python初心者の僕がすべてをおんぶにだっこではいつまでもPythonが使えるようになれないので、自分で実装してみます。
Cの配列と違って、Pythonのリストは型が関係なくなんでもかんでも入ります。
型を考えなくていいのですが、画像として扱おうと思うと明示的でない分微妙な感じです。
また、動作もどうやら遅いらしいです。
ので、NumpyライブラリとPILライブラリを使って実装していきます。
あとはセルオートマトンの境界条件は0パディングです。
最上位と最下位ビットはそれぞれ0を入れて次の世代を計算します。
アルゴリズムの大まかな指針としては、
ルールを2進数に変換(array_ruleとする)。
計算するiビット目は、前の世代のi-1,i,i+1ビットを10進数に変換し、array_ruleの該当する要素番号を取り出す。
これを指定の世代まで繰り返します。
最後にこれを画像化して終了です。
1次元セルオートマトン、は3ビットのパターン、Rule0~255までありますが、代表的なものについての言及はありますが初期値に関してまとめられているものがないようです。
工学的に興味深いのは、Rule184の渋滞解析。
それっぽいのを見失ってしまったので、Wikipediaですが…。
前のビットが経っていたら止まって、立っていなかったら進みます。
渋滞解析や、群衆雪崩の解析に用いられているようです。
車については、2次元でも使えることがあるかもしれませんが、3次元への拡張と、斜め方向への移動も考えなければならないため、これがそのままってわけではないですが…。
群衆雪崩という言葉も知らなかったですが、明石の事後から使われている言葉みたいです。
生物学的にはRule90の模様。
Canvas(2)一次元セルオートマトン
これ貝の模様にイモガイの模様みたいらしいです。
これをみてぱっとそれを思った人はいったい誰なんですかね。
最初に気が付いた人のテンションがちょっときになりますが、確かにって感じです。
イモガイは猛毒らしいです。なんだか素晴らしい無駄知識を手に入れていっています。
で、計算機科学的にはRule110のチューリング完全。
これきちんとまとめられているサイトが見つからないんですよね。
完全チューリングマシンを再現できることなんですが、要は有限メモリで計算ができるということみたいです。そして原著論文がUniversality in Elementary Cellular Automataです。
これきちんと読もうと思いつつ…。
まぁ、今作ってるものが終わったら読んでいく予定です。
そうなんですよね。Ruleについては結構まとめられていますけども、初期値での分類はあんまりないのでこつこつやっていきます。
というか、組み合わせ的にも初期値で研究するほうが圧倒的に時間がかかりますもんね。
スペクトル解析で1/fゆらぎの研究とかもあるみたいで、ほんとに研究しようとしたら一生かけれそうですよね。
適度なところで打ち切ろうかなと思いますけど、なかなか刺激的でした。
ひとまずは、初期値199まででやってみて個人的に好きな模様をピックアップです。
Rule30は初期値58。
Rule90は初期値47。
Rule110は初期値115。
よろしかったら、ブログランキングの向上にご協力おねがいします。
手作り・DIYランキング
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/8232247
この記事へのトラックバック