科学・教育雑想コーナー 連載第19回/2004年2月25日
フラクタル理論の話(4) 
<コンピュータ・グラフィックスへの応用>
 液体または気体中の分子が任意の方向から無秩序に衝突することによって惹き起こされる微粒子の不規則運動は、「ブラウン運動」と呼ばれ、よく知られている現象のひとつです。ところで、任意の方向への直線運動の繰り返しに見えるブラウン運動ですが、この微粒子の不規則な運動様態を示す折れ線状軌跡の直線部分を拡大し、よりいっそう微視的なレベルまで観察できるとするならば、そこでは二次的なブラウン運動が起こっているのが確認できるはずなのです。意外に思われるかもしれませんが、実際のところは、認識尺度次元の違いのゆえに、一段と巨視的な次元から眺めた場合、直線に見えるだけのことなのです。しかも、さらに微視的な次元においても同様のことが延々と繰り返されているとも考えられます。
 マンデルブローは、ブラウン運動の軌跡を1次元性と2次元性を同時にそなえもつ運動だと述べていますが、現実にはその軌跡は空間的なはずですから、1次元性、2次元性、3次元性を同時にそなえもっていると考えてみることもできるでしょう。
 一般に、不規則な事象というものは、ブラウン運動の軌跡と同様、認識者の視座のとりかたに応じて0次元的(点状)にも1次元的(直線状)にも2次元的(平面状)にもそして3次元的(空間状)にも見えるものなのです。ですから、フラクタル理論において非整数次元を含む連続次元の概念の導入をはかったことは、たしかに優れた着想であったと言えるでしょう。
 実際、フラクタル理論に基づく技法を用いたコンピュータ・グラフィックスでは、基本となる比較的単純な図形(開曲線や開曲面をもとにした図形でも、閉曲線や閉曲面をもとにした図形でもかまわない)を選択決定し、そのスケール(縮尺)を変化させただけの相似図形を複数組み合わせるか、スケールばかりでなく一定範囲内で統計的に近似になるように乱数処理した相同図形を複数組み合わせるかして、複雑に見える自然事象を表現しています。不規則性を微視的かつ分析的に追いかけていくと規則性が現れてくるなら、規則性を無数に組み合わせることによって不規則性を表現できるだろうという着眼はなんとも面白いかぎりです。
 ただ、ここで、ひとつだけ注意してもらわなければならないことがあります。フラクタル理論に基づくコンピュータ・グラフィックスというものは、自然界の実事象をそのままそっくりシミュレートし、画像として再現しているわけではありません。よりわかりやすい言い方をしますと、アルプス山脈らしい画像をつくりだすことはできるのですが、アルプス山脈そのものを実物そっくりに描き出すことはできないのです。同様に、宇宙から見た地球らしきものの映像をつくりだすことはできるのですが、実際に宇宙から見た通りの地球の映像を生み出すことはできません。
 画像の色彩についてはこれまでとくに述べてはきませんでしたが、基本色調を線型図形の基本パターンに置き換えて考えてもらうようにすれば、相同図形群のかわりに微妙な変化をもつ同系色の色彩群が対応づけられることは想像に難くないでしょう。スケーリング・フラクタルという概念は乱れや揺らぎをもつもの一般に対応可能なものですから、無秩序に見える色調を表現する場合にも十分に威力を発揮するはずなのです。
 スケーリング・フラクタルの「スケーリング性」が強くなれば同系色が生じ、「フラクタル性」が強くなれば大きな色のばらつきが生じることになります。3次元的なグラフィックスにあっては色調の微妙な変化や色彩の配合の仕方で立体感を表現しますから、フラクタル理論に基づく色の制御は当然に重要な役割を担うことになってくるでしょう。
 フラクタル的手法を用いたグラフィックスで自己相同性を利用した処理が中心的な役割を果たすとすれば、当然、コンピュータ・グラフィックス用の言語としては高度な再帰処理(リカージョン)機能をもつものが必要となってきます。再帰機能とは基本的には同じ構造をもつコンピュータ・プログラムを、そこに含まれる変数値をすこしずつ変えながら果てしなく、さもなければ指定された回数だけ何度も何度も繰り返し実行する機能のことで、一般にこのような特別な処理機能をもつコンピュータ言語は高級言語と呼ばれたりしています。
 再帰機能には末尾再帰処理(テイル・リカージョン)と呼ばれるものと、埋め込み型再帰処理(エンベディッド・リカージョン)と呼ばれるものとの二種類があります。末尾再帰処理の場合には、「あるプログラムの実行が終わると、そのプログラムのなかに含まれる変数値だけを自動的に変えて(一定の割合で増減させることもあれば、乱数を用いることもある)また同じプログラムを初めから実行する」というプロセスが何度も繰り返されていくことになります。この末尾再帰処理の構造はプログラミングの初心者にとっても割合理解しやすいものなのでそう問題はないのですが、埋め込み型再帰処理の場合ですと、その構造や機能を十分に理解できるようになるまでにはそれなりのトレーニングとそのための時間とが必要です。
 詳細な説明は省略しますが、埋め込み型再帰処理においては、あるプログラムそのものの中にそのプログラム自身と同じプログラムが(ただし、スケールの違いや変数値の違いはありますが)入れ子構造として何重にも何階層にもわたって埋め込まれるという、奇妙なことが起こります。この埋め込み型再帰処理のプログラムは、部分が全体の構造を含むという、まるで生物の遺伝子と同じような構造をもっているわけで、その意味でも大変興味深いと言えるでしょう。
 ついでですから、参考までにごく初歩的な埋め込み型再帰処理プログラム(スケーリング・フラクタルCGプログラム)の一例を紹介しておくことにします。このフラクタル・CGプログラムの基本図形は正方形です。

CROSS :X :R :N (:X=正方形の一辺の長さ、:R=拡大・縮小比率、:N=階層数値)
IF :N=0 [STOP](階層値が0になったら演算実行を終了させる指示)
FD :X RT 90(描線用マークを:Xだけ前進させ、右に90度曲がらせる指示)
CROSS :X*:R :R :N-1(変数:X値を:R倍し、変数:Nを1減じて原プログラムを実行)
FD :X RT 90(前記説明に同じ)
CROSS :X*:R :R :N-1(前記説明に同じ)
FD :X RT 90(前記説明に同じ)
CROSS :X*:R :R :N-1(前記説明に同じ)
FD :X RT 90(前記説明に同じ)
CROSS :X*:R :R :N-1(上記説明に同じ)
END(演算実行終了の指示)
{註:FDはFORWARD(前進)の略、RTはRIGTH(右に曲がれ)の略で、FD :Xは「:Xの値だけ前進せよ」、また、RT 90は「90度右に曲がれ」という指示である}

「CROSS」というこのプログラムの中に四箇所ある「CROSS :X*:R :R :N-1」という指示部が、いわゆる入れ子構造、すなわち、もとのプログラム自身と同じ構造のプログラムを自らの中に埋め込むという「エンベディッド・リカージョン処理」を施したところです。ちょっと話が難しくなりますが、この「CROSS :X*:R :R :N-1」という埋め込み部分は、実際には、

CROSS :X*R :R :N-1
IF :N=0 [STOP]
FD :X*:R RT 90(描線用マークを:X*:Rだけ前進させ、右に90度曲がらせる指示)
CROSS :X*:R*:R :R :N-2(:X*:Rがさらに:R倍され、階層値:Nが2減少している)
FD :X*:R RT 90
CROSS :X*:R*:R :R :N-2
FD :X*:R RT 90
CROSS :X*:R*:R :R :N-2
FD :X*:R RT 90
CROSS :X*:R*:R :R :N-2
END

という構造をしていることになります。そしてさらに、「CROSS :X*:R*:R :R :N-2」の中には四箇所「CROSS :X*:R*:R*:R :R :N-3」という埋め込みがあることになります。以下何階層にもわたって同じことが繰り返されていくというわけです。
 ちなみにこのプログラムを「CROSS 27 1/3 0」として実行しますとなにも描かれません。階層値:Nが0であるため、「IF :N=0 [STOP]」という演算実行終了命令がはたらくからです。続いて、「CROSS 27 1/3 1」を実行しますと一辺が27の正方形が描かれます。さらに「CROSS 27 1/3 2」を実行しますと、一辺27の正方形の四隅に一辺9の正方形が四個描かれ、その結果として、一辺27の正方形の中央に縦横の長さ27、幅9の十字架模様が1個できあがります。
 もう一段階層値を上げ、「CROSS 27 1/3 3」を実行してみますと、今度は一辺27の正方形の四隅にある一辺9の正方形の各正方形の四隅に、さらに一辺3の正方形が描かれます。一辺27の正方形が1個、一辺9の正方形が4個、そして一辺3の正方形が16個、合計21個の大小の正方形が描かれるわけです。その結果、縦横の長さ27、幅9の十字架模様1個と、縦横の長さ9、幅3の十字架模様4個、合計5個の十字架模様ができあがります。もっと階層値:Nを大きくしていくと、そのもとになっているのが単純な正方形であるなどとはとても思われない複雑かつ精緻な図形が描き上がります。十字架模様の部分だけを着色するような命令を組み込んでおくと、その図柄はさらに見事なものになることでしょう。
 この一連の話の第一回目で紹介したフォトニック・フラクタルをデザインしたりするためのコンピュータ・プログラムにも、このような埋め込み型再帰処理法が用いられているわけです。もちろん、基本図形を立方体にし、さらに描画処理も3次元的にしなければなりませんけれども、その考え方や論理的な構造にはほとんど違いはありません。
 なお、スケーリング・フラクラルにおける相似性や相同性の現れかたは、おおよそのところ、次のような三つのケースに分類することができるでしょう。

(1) 相似図形がスケーリングの違いだけで反復的に現れるケース
(2) 階層構造をもつ相同図形(厳密な意味での相似図形ではないが構造が同じ図形)が現れ、熟視したり熟考したりすればその事実を確認することができるにもかかわらず、一見したかぎりでは全体的な図形(巨視的図形)が部分的な基本図形(微視的図形)と相同的であるとは見えにくいケース
(3) 構造上の相同性はあるが、どうやっても視覚的には相同性が存在するとは認知し難いケース

<フラクタル理論の今後>
 ある事象が規則的であるか否か、またある一群の対象物に相同性があるか否かということについての判断は、時代の眼や人間の認識能力の深まりに応じて変わっていくものです。したがって、無秩序性の解明とそれらの記述処理を主目的とするフラクタル理論、さらにはその延長上にあるカオス理論の今後の展望については予断を許さぬものがあると言わざるをえません。
 当面予想されるそれらの理論の応用面としては、コンピュータ・グラフィックスのほかに、統計学や統計力学への適用、量子論や分子遺伝学などにおける「偶然性」の問題の処理と意味づけ、社会構造や言語構造のような抽象的かつ多元的な構造のもつ秩序性や無秩序性の研究への活用などが考えられるところです。
 また、もしもこのフラクタル理論がさらなる発展を遂げ、マンデルブローの思惑通りに超トポロジー次元の空間理論を実際に切り開くことに成功するならば、科学史全体からみてもそれは画期的なできごととなり、「フラクタル・ジオメトリー(フラクタル幾何学)」は燦然と不滅の輝きを放つことになるでしょう。                            (ほんだ・しげちか)


....................................................................................................................................................................................................................
(C) Honda Shigechika 2004. All rights reserved.