L系統
Lindenmayer 系統,簡稱L 系統,是由荷蘭烏特勒支大學的生物學佮植物學家,匈牙利裔的林登麥伊爾(Aristid Lindenmayer)佇一九六八年提出的有關生長發展中的細胞交互作用的數學模型,尤其被廣泛應用植物生長過程的研究。
L-system 是一系列無仝形式的正規語法規則,多被用佇植物生長的過程建模,但是嘛予人用佇模擬各種生物體的形態。L-system 也會當用著生成自相仝的分形,迵天代函數系統。
起源
做一个生物學家,Lindenmayer 做工課的內容是酵母菌佮絲的情形真菌,閣研究足濟種類型的海草的生長模式,譬如講藍綠細菌項項藻(_ Anabaena catenula _,淡水藻類的一種)。 上代先,L 系統予人設計變做是用提供一種關於簡單細胞生物體成長的正規描述,而且試圖證明植物細胞之間的關係。無偌久以後,這个系統予人楦闊做描述高等植物佮其複雜枝椏結構。
L-system 結構
L-system 的自然遞歸規則致使自相似性,毋才會當予伊分形一類的形式會當真容易的使用 L-system 是咧講。植物模型佮自然界的有機結構生成,欲仝欲仝並真容易予人定義,因此通過增加遞歸的層數,會當沓沓仔生長閣愈來愈複雜。L-system 仝款佇製造人造性命領域。 L-system 語法佮 Chomsky 語法欲仝欲仝,講甲 L-system 通常指出就是紮參數的 L-system,定義如下:
G={ V , S , ω , P } ,
V : 變量符號集合
S:捷量符號集合
ω:初狀態攕
P:產生式的規則自初狀態迵天代套入去 L-system 的文法規則,佮正規文法所產生的語言無仝佇咧,L-system 佇迵天代內底會當同時套用真濟無仝的文法規則。迵天若迵天內干焦會當套一个文法規則,產生出來的後果去予人叫做語言毋是 L-system。由此會當知影,L-system 為正規文法所產生出的語言的子集合。
L 系統的例
例一:海草的生長
Lindenmayer 研究海草生長模式的時陣提出的上早的 L-系統:
- 變量 : A B
- 常量: 沒有
- 公理 : A
- 規則 : ( A → AB ) , ( B → A )
迵天代過程:
- _ n _=零 : A
- _ n _=一 : AB
- _ n _=二 : ABA
- _ n _=三 : ABAAB
- _ n _=四 : ABAABABA
- _ n _=五 : ABAABABAABAAB
- _ n _=六 : ABAABABAABAABABAABABA
- _ n _=七 : ABAABABAABAABABAABABAABAABABAABAAB
例一的解說
` ` ` n=零 : A 鋪排 ( 公理 / 起先摃 ) / \ n=一 : A B 烏白亂抹啦 ( A → AB ) 起先摃 A 開展做 AB,由于起始允准有 B,鋪排 ( B → A ) 交易有予用著 / | \ n=二 : A B A AB 中的 A 開展做 AB,B 又閣𠢕崩 A,于是得著了後 ABA / | | | \ n=三 : A B A A B 可以看到每一個 A 攏是一个新的子侍的根,按呢引誘出和整休抹抹同學的子抹著。 / | | | \ | \ \ n=四 : A B A A B A B A ` ` `
若咱觀察這个序列的長度就會發現這是一个斐波彼契數列—— 一二三五八十三二十一三十四五十五八十九 . . . ( 因為阮選擇對 A 開始,故第一个一少去矣) 若是咱共 A 成年兔仔,B 看做未成年兔仔,啊這个構造佮彼个出名的兔生兔的構造是一致的。 即逐個月 B 會成長成 A,而且 A 逐個月閣會生出一个 B。
開放問題
足濟牽連著 L-systems 研究的問題愛等解決,比如講:
- 所有的所有彼款局部連鎖的頂下文無關 L-systems(目前已經知完成解決的只有包含兩个變量的這个狀況)。
- 予定一个結構,揣出世做這結構 L-systems 文法。
參考文獻
外部連結
- David J . Wright's article on L-systems
- Algorithmic Botany at the University of Calgary
- Branching : L-system Tree A Java applet of the botanical tree growth simulation using the L-system .
- Fractint L-System True Fractals
- " An introduction to Lindenmayer systems " , by Gabriela Ochoa。Brief description of L-systems and how the strings they generate can be interpreted by computer .
- " powerPlant " an open-source landscape modelling software
- _ Fractint _ home page
- L-Systems in Architecture
- A simple L-systems generator ( Windows )
- Lyndyhop : another simple L-systems generator ( Windows & Mac )
- An evolutionary L-systems generator ( anyos \ * )
- " LsystemComposition " . Page at Pawfal ( " poor artists working for a living " ) about using L-systems and genetic algorithms to generate music .
- eXtended L-Systems ( XL ) , Relational Growth Grammars , and open-source software platform GroIMP .
- A JAVA applet with many fractal figures generated by L-systems .
- Another L-system applet , supporting programming , with explanation and examples .
- L-systems in Architecture ; genetic housing .
- L-systems in Plant Growth , Simulation and Visualization ( PlantVR ) .
- Musical L-systems : Theory and applications about using L-systems to generate musical structures , from waveforms to macro-forms .
- L-system digital sound synthesis :'Do Digital Monkeys Inhabit Virtual Trees ?'Electronic music piece composed with L-systems .
- LSys / JS-Interactive L-System interpreter using the Canvas HTML element。
- Lindenmayer System for plant visualisation ( Java Applet )。
- Fractal Grower : Free Java paper folding L-System intended for elementary and middle school students .
- Programmatic animations in actionscript showing various L-systems .
- Java applet showing random L-Systems while driving down Lindenmayer Boulevard
- Magic Garden-Artificial Plants Laboratory-free plants generator using L-Systems
- Inkscape a free software vector graphics program which implements , among its plugins , an L-system generator
- Garabatos,an interactive evolutionary image generator based in L-Systems
- Online experiments with L-Systems using JSXGraph ( JavaScript )
參見
- 碎形
- 迵天代函數系統
- 希爾伯特曲線
- 圖靈機
- 圖靈歸約
- 交互式證明系統
- 隨機預言機