--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2011/06/12

カオスでCG2(入門)

今回は、カオス理論の関連書には必ず載っている「フラクタル図形」を描いてみたいと思います。

「フラクタル図形」を描くのに「セルオートマトン」を用いるものがあり、参考図書、参考サイトをもとにプログラムを組んでみたいと思います。

では、その前にセルオートマトンについて説明します。以下①・②はセルオートマトンを用いて描かれた画像。

セルオートマトン2   セルオートマトンで作ったフラクタル図形
①                   ②


① http://members.jcom.home.ne.jp/tom3d/pov840/ilpov84j.htm 数想空間 / CELLULAR AUTOMATON 0
② http://www001.upp.so-net.ne.jp/suzudo/tutorial.html セルオートマトンと複雑系   より画像を引用。

セルオートマトンとは、「内部状態を持ったセルが他のセルとの相互作用によって時間的に変化してゆくというモデル」です。少し説明が足りないので付け加えていきます。以下③・④を参照。

セルオートマトンの世界には、複数のセル(細胞、小部屋)があります。図③では4つのセルを描きました。それぞれのセルはある時刻tにおいて個別の内部状態を持ち、時間の経過とともに他のセル同士と相互作用をして内部状態を変化させていきます。図では時刻tにおける各々の内部状態をA1(t)、A2(t)、A3(t)、A4(t)のように表記しました。


セルオートマトン模式図

dt後

セルオートマトン模式図2

さらにdt後…


時間dtが経過した時点でセルは一斉に状態を更新します。(④)その状態の変化は上に述べたように、隣り合うセルの影響を受けて生じます。つまり時刻tにおける近くのセルの状態により、自身の時刻t+dtにおける内部状態が決定されるのです。

こうやって更新されたセルたちは、またさらに時間が経ったときに更新されます。自分に影響を与えた他のセルへ、今度はその影響も含めて自分の内部状態を他のセルへ伝播していくのです。

これが、セルオートマトンの概略です。

他の影響を受け、それに従いまた他に影響をおよぼす。これはまさに、生物界のやりとりに似ています。
それもそのはず、セルオートマトンは生物の活動そのもの、また遺伝などの複雑な生命現象を、簡潔な理念的モデルとして表せるか?との試みから作られたものなのです。


簡単な説明を終えたので、実際に②のような図をプログラムを用いて描いてみたいと思います。ただ、自分にはまだ完全にプログラムを自作する能力がないので、「小高知宏『Cによる数値計算とシュミレーション』オーム社」からソースコードを抜粋します。


プログラムのソースコードや描画の流れなどは、次のリンクから見ることができます。
セルオートマトンのプログラム




以下に示す図が、私がセルオートマトンのプログラムを用いて作成したフラクタル図形です。

セルオートマトン


最初にはピラミッドの頂点にしか点がなかったものが、時間とともに下へ向かうにつれて、美しく構造化されていきます。

プログラムでは、各々の点が自分自身、右隣、左隣の3つの点が0か1かによって、次の時刻における自身のあり方を決める単純な「ルール」を定めました。 例)赤色が自身とする。 0 1 0ならば0、 1 0 1ならば1…など

ただそれだけのことで、時間とともに繰り返すような構造が生まれてきます。ルールを変えたり、初期位置を変えたりすることで、また複雑な図形が描かれることもありました。(以下の図は左からルール30、ルール60)

ルール30ルール60



簡単なルールから、複雑な構造が生まれて来る。このことは、カオス理論の一翼を担う概念です。

近代の科学は、複雑な現象を観測すれば、とかく要素に分解して、それぞれの性質を調べれば分かるとの信念のもとに進んできました。しかし、いくら分解した物の性質が分かったとしても、それらが寄り集まったときのふるまいは、ただの総和にはならないのです。要素同士が相互に作用するからです。


いかに複雑な現象といえども、実は根底に非常に簡単なルールが隠されているかもしれない。そんな期待をカオス理論は持たせてくれます。今回セルオートマトンを用いて図形を描いてみて、それをひしと実感しました。


最後まで読んで下さりありがとうございます。ではまた次の記事で。


関連記事
スポンサーサイト

コメント

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。