反復関数系(IFS)
反復関数系(Iterated Function System、IFS)は、フラクタル図形を定義し、生成するための数学的な手法です。特に二次元空間におけるフラクタルの描画や計算によく利用されます。IFSによって定義されるフラクタルは、自分自身のいくつかの縮小されたコピーの和集合として成り立っているという顕著な特徴を持ちます。これらのコピーは、系に含まれる特定の関数群によって変形(縮小、回転、平行移動など)されています。
この手法の典型的な例としては、
シェルピンスキーのギャスケットや、後述するような複雑なシダの図形などがあります。IFSを構成する関数は、一般に空間内の点同士の距離を縮める性質を持つ
収縮写像です。したがって、IFSフラクタルは、自身の小さな写しを重ね合わせたものであり、図形の一部を拡大して見ると、それが再び元の図形と同じ形をしているという、フラクタル特有の
自己相似性が無限に続きます。
定義
形式的には、反復関数系は、ある空間(例えばn次元ユークリッド空間$\mathbb{R}^n$)の部分集合Sが、そこに含まれるN個の関数$f_1, f_2, ..., f_N$を用いて、次のような関係を満たす集合として定義されます。
$$S = \bigcup_{i=1}^{N} f_i(S)$$
ここで、$f_i$はすべて$\mathbb{R}^n$から$\mathbb{R}^n$への関数です。この定義は、集合Sが、各関数$f_i$によって集合Sの各点を変換して得られる点の集まり($f_i(S)$)のすべてを合わせたもの(和集合)と一致することを示しています。このような性質を持つ集合Sは、与えられた関数群から導かれる
ハッチンソンオペレータという変換の
不動点(または固定点)と呼ばれます。
属性
IFSを構成する関数群$f_i$に連続して関数を適用していく、つまり関数を合成していく操作は、数学的には
モノイドという代数構造を形成します。もし関数が2つだけなら、これは二項モノイドとなります。これらの関数合成の連なりは、無限の
二分木として視覚的に捉えることもできます。一般にP個の関数があれば、これは
P進数に対応する木構造として理解できます。
興味深いことに、この関数合成のパターンは、
P進数の構造と非常に似ています。モノイドの各要素(関数の合成列)は、
P進数の一つの数字がどの関数を適用するかを示すかのように、
P進数と同型であると見なせます。
さらに、二項モノイドの自己同型群は
合同群(modular group)と呼ばれる群と同型になります。この数学的な関連性は、
カントール集合のような特定のフラクタルが持つ複雑な
自己相似構造の根源を説明する一助ともなり得ます。
関数の種類と生成アルゴリズム
IFSで用いられる関数は、多くの場合、
線型写像、特に
アフィン変換(線型変換と平行移動の組み合わせ)です。アフィン変換は
行列によって表現できるため、計算が比較的容易です。しかし、IFSは必ずしも線型関数に限定されるわけではありません。
投影変換や
メビウス変換といった
非線型関数から構築されるIFSも存在します。
フラクタルフレームは、非線型関数を用いたIFSの美しい例の一つです。
IFSフラクタルを図形として計算し描画するための最も一般的なアルゴリズムは、「
カオスゲーム」として知られています。この手法では、まず空間内のどこかにランダムに点を一つ取ります。次に、IFSに含まれる関数群の中から一つを無作為に選び、その点に適用して新しい点を求めます。この新しい点を描画し、さらにその点に対して再び関数群から一つをランダムに選んで適用する、というプロセスを何万回、何十万回と繰り返します。点の座標が関数によって繰り返し変換される軌跡が、最終的にIFSフラクタルの形を描き出します。
カオスゲーム以外の生成方法としては、考えられるすべての関数合成の列を生成し、それぞれを初期図形に適用して描画する、というアルゴリズムもあります。これらのアルゴリズムは、フラクタル全体の形状を効率的に把握するのに適しています。
ただし、これらの一般的な手法には課題もあります。例えば、フラクタルのごく一部を拡大して詳細に描画しようとする場合、カオスゲームで生成される点の多くが描画範囲外になってしまい、非常に非効率です。IFSの微小部分をズームして表示するには、計算対象の軌道に基づいて必要な部分だけを計算するような、より局所的な構築手法が必要となりますが、一般的なIFSソフトウェアではそのような手法はあまり採用されていません。
具体例:シダのフラクタル
IFSを用いた図形生成の有名な例として、「シダ」のフラクタルがあります。これは、特定の4つのアフィン変換とその適用確率を組み合わせることで生成されます。
1.
第1の変換(確率1%): シダの「茎」にあたる細い中心線を描き出します。
2.
第2の変換(確率7%): シダの左下にある小さな葉を生成します。
3.
第3の変換(確率7%): シダの右下にある小さな葉を生成します。
4.
第4の変換(確率85%): これまでの3つの変換で生成された部分全体を縮小し、わずかに傾けてコピーすることで、シダ全体の形を作り出す主要な変換です。
カオスゲームアルゴリズムで、ランダムに選ばれた点に対し、これらの4つの変換のいずれかを指定された確率で選択し、繰り返し適用していくと、やがてシダの美しいフラクタル形状が現れます。このシダのフラクタルは、その全体が、それぞれの葉(第2、第3の変換でできる部分)やそのさらに細かい構造の拡大コピーになっているという、IFSの
再帰的で
自己相似的な性質を見事に示しています。
歴史
反復関数系の概念は、1957年にジョルジュ・ド・ラームが
自己相似な曲線である
ド・ラーム曲線を考案したことに端を発します。さらに遡れば、1884年に登場した
カントール集合の考え方もその先駆けと言えます。現在のような形式でのIFSを数学的に定式化したのは、ジョン・ハッチンソンであり、1981年のことでした。その後、マイケル・バーンズリーの著書『Fractals Everywhere』(1988年)によって広く一般に知られるようになり、フラクタル研究において重要な位置を占めるようになりました。
関連項目
L-system
フラクタル圧縮
* フラクタルフレーム