L-system の構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/15 17:29 UTC 版)
「L-system」の記事における「L-system の構造」の解説
L-system の基本は再帰性で、自己相似図形やフラクタル図形のような形状を簡単に記述する事ができる。植物やその他の見た目が自然な生物構造も同様に簡単に定義でき、再帰呼出の回数を増やす事であたかも構造が「成長」し、複雑化していくように見える。L-system は人工生命の生成にもよく用いられる。 L-system の文法は en:Unrestricted grammar のものに似ている(→ チョムスキー階層)。現在では、以下のような四ツ組によって定義されることが多い。 G = {V, S, ω, P}, 各要素は、 V(文字): 置換規則(後述の P )により順次置き換えられてゆく変数の集合。L-system の再帰的な反復計算が進んでいく時に、物として「成長」してゆくのはこの V の要素からなる文字列である。 S : 計算が進んでも変化しない定数の集合。 ω : システムの初期状態を示すV の要素からなる文字列。 P : V を変化させてゆく置換規則の集合。各要素は、例えば (A → AB) のように、置換前(置換対象)の文字列と置換後の文字列の組み合わせにより記述される。 置換規則 P において、置換対象が単独の文字のみである場合、L-system は文脈自由言語である。一方、置換規則が近隣の文字との相互関係まで考慮するものである場合、L-system は文脈依存言語である。また、置換規則Pが各文字に対して毎回確実に適用される時、L-system は「決定論的」であると言われ、D0L-system(deterministic context-free L-system )などと呼ばれる。逆に、置換規則の適用が確率に左右される場合には「確率論的」L-system と呼ばれる。 L-system をグラフィックスに応用する場合、L-system が生成する文字列を、何らかの形で画面上の図形に変換しなければならない。例えば FractInt というプログラム(文末の外部リンク参照)では、LOGOのようなタートルを利用してグラフィックスを生成する。つまりプログラムが L-system の文字列をタートルの制御命令に翻訳し、図形を描画させている。
※この「L-system の構造」の解説は、「L-system」の解説の一部です。
「L-system の構造」を含む「L-system」の記事については、「L-system」の概要を参照ください。
- L-system の構造のページへのリンク