L-系统 简介

L-系统
 
Lindenmayer 系统简称L系统,是1968年由匈牙利生物学家林登麦伊尔(Lindenmayer)提出的有关生长发展中的细胞交互作用的数学模型,尤其被广泛应用于植物生长过程的研究。

L-system或被称为Lindenmayer system是一个相似重写系统,是一系列不同形式的正规语法规则,多被用于植物生长过程建模,但是也被用于模拟各种生物体的形态。L-system也能用于生成自相似的分形,例如迭代函数系统。L-system首创于1968年,创始人是匈牙利Utrecht大学的生物学和植物学家,Aristid Lindenmayer(1925-1989)。

作为一位生物学家,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-系统文法目前较为通用的一组符号解释:
F:按指定长度向前画一条线段
f: 按指定长度向前移动(不画)一条线段
+:逆时针旋转给定角度
-:顺时针旋转给定角度
|:反向180°
[:当前指令入栈
]:当前指令出栈
#:增加线宽
!:减小线宽
@:以线宽为半径画点
>: 按比例乘以线长
<: 按比例除以线长
&:交换+和-的符号意义
(: 按转动角度的增量减小角度的转动量
): 按转动角度的增量增加角度的转动量

 

 

增加随机因子就可成为随机L-系统


开放问题
许多涉及L-systems研究的问题有待解决,比如:

描述所有那些确定的局部连锁的上下文无关L-systems(目前已知完成解决的只有包含两个变量的这一种情况)。
给定一个结构,找出生成此结构的L-systems文法。

 

参考:http://zh.wikipedia.org/zh-hans/L%E7%B3%BB%E7%B5%B1
   李水根 照翔鹏,二维和高维空间的分形图形艺术,科学出版社

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值