BOB1.山东师范大学 信息科学与工程学院,山东 济南 250014; 2.山东省分布式计算机软件新技术重点实验室,山东 济南 250014
植物学家提出的23种结构定义了植物形态发生的方式和最终生长的形态,能够形象而准确地对植物形态发生进行归纳和分类,但缺乏对植物形态可视化表达的有效手段和方法。因此,本文为再现植物的动态生长过程,基于构筑模型,遵循双尺度自动机的基本原理,应用微分L-系统构建植物连续生长过程的动态模型,并在计算机进行了三维可视化实现。提出的方法拓展了构筑模型的应用,仿真结果表明该方法在植物形态的建模上确实行之有效。
摘 要: 植物学家提出的23种结构定义了植物形态发生的方式和最终生长的形态,能够形象而准确地对植物形态发生进行归纳和分类,但缺乏对植物形态可视化表达的有效手段和方法。因此,本文为再现植物的动态生长过程,基于构筑模型,遵循双尺度自动机的基本原理,应用微分L-系统构建植物连续生长过程的动态模型,并在计算机进行了三维可视化实现。提出的方法拓展了构筑模型的应用,仿真结果表明该方法在植物形态的建模上确实行之有效。
植物动态生长模型是指利用计算机形象直观地再现植物生长过程。在计算机建模时,如何形象地体现植物的这种“生命”特征,使植物真正具有生长的现象已成为研究者广泛关注的焦点。因此,植物的模拟是在植物生长特征表达的基础上实现从拓扑结构到几何形态建模的过程[1]。植物学家以分类为目的,提出的植物构筑模型是指植物形态发生的方式以及最终长成的形态[2]。根据植物构造模型可以在一个更高的层次上准确地描述植物的结构特点,分析和模拟植物的生长过程,该项研究被认为是植物拓扑结构研究中的经典工作[3]。
为了实现从拓扑结构到几何形态建模的过程,国内外研究学者提出了多种植物建模方法,其中以著名的L-系统的出现为标志。最初的L-系统是D0L系统,它只能描述形状规则的植物模型[4]。之后,加拿大学者Prusinkiewicz对L-系统进行了扩展,提出开放L-系统(Open L-system)[5]和随机L-系统(Stochastic L-system)[6]以及微分L-系统等[7]。在此期间又出现了基于分形理论的一系列植物建模方法,如叠代函数系统(IFS)、分支矩阵、粒子系统,以及由DeReffye提出的自动机模型(参考轴技术)和在此基础上进一步发展提出的双尺度自动机模型等。BOB其中微分L-系统是一种发展得较完善的L-系统方法,是参数L-系统的扩展[8]。在该系统中,产生式用于表达模型数量上的变化(比如植物新分支的产生),而微分方程求解过程则描述连续生长过程(比如茎的渐渐伸长)。双尺度自动机模型是为了表现植物的生长机理,由赵星等人从植物学的角度提出的。尽管各种建模方法的目的和尺度不同,在建模原理和仿真的真实性要求上有很大的差异,但在计算机建模时,如何形象地体现植物的“生命”特征,使植物真正具有生长的现象已成为研究者共同关注的焦点。
综上可知,构筑模型能够给出植物形态发生方式和最终形态,但并不能体现出植物生长过程的周期性,且缺乏对植物形态可视化表达的有效手段和方法,微分L-系统虽然可以进行可视化表达,但其必须基于确定生长算法。因此本文在构筑模型的基础上进一步引入双尺度自动机原理,给出更能表达植物真实生长过程的动态生长算法,并使用微分L-系统进行描述,最终形成一个基于构筑模型的完整连续且具有周期性的动态发生模型。
引用双尺度自动机原理,势必要用到描述植物周期的一系列概念。下面将对之后要用到的周期性概念做出详细的定义描述。
植物的主体结构由轴组成,植物的主干称为主轴;分枝用不同级的轴命名,如1级侧轴、2级侧轴等。如图1所示,轴上生叶的部位称为节,节与节之间的那段轴称为节间。一般来说节和节间以及节上的侧生器官(叶、花或者果实)的集合,植物学上称为植物分生单位,长成一个新分生单位的时间称之为节周期(Syllepticshoot)[10]。
另外,将枝条开始生长到产生分支之前的这段时间称为一个生理周期。每个生理周期包含若干个节周期,节周期长短及每个生理周期包含节周期数视不同植物而定。在此,选择的Leeuwenberg模型的生长特征为:每个生长单元都生有花序,而生长单元的生长就终止于花序,因此,参考现在比较流行的观点:将花朵看成一个节点缩短的短枝。在对模型进行周期性划分时,特别将生殖生长阶段作为一个单独的节周期来处理[11]。
植物生长动态模拟过程中,对于植物量形成规律的描述,BOB常需要借助于数学模型[12]。实验中把节间生长的时间与生长长度的关系用直角坐标图来表示,就会得到一条形状像“S”的曲线,这条S曲线即为节间生长曲线。进一步的研究发现许多植物在其节周期内的生长过程遵循这个模式,为了得到一个最为合适的函数模型,进行了大量的研究。最终,决定利用“S”型玻尔兹曼函数[13],这个函数形式如下:
其中A是节间最大或最终长成后的尺寸,tm是当其长到最大尺寸的一半时所用的时间,k控制其相关的生长率,也可以看作是特定的生长率。每一个生长模块(如茎秆、花朵、叶片)具有不同的生长速率,因此需要使用不同的数学模型来描述(在此主要由不同的k值体现)。例如大多数大戟科植物主干生长速率k为0.6±0.07d-1[10],则其生长函数为:
其中y是关于t的函数,代表生长函数,结合有限差分方法,且在方程(4)中使用从t轴上等距抽样得来的数值:tj=t0+jΔt(j=0,1,…),并在区间[tn,tn+1]中近似地使用差商代替微商,因此方程(4)最终可以写为:
对于任意的i值,可以将方程(5)看做分配一个新值yi到变量yi-1,并在前邻采样点取值yi-1。t轴上的任意采样点(除了边界值)属性作用类似,因此方程(4)可以写成L-系统产生式的形式:
大千世界的植物种类繁多,为了便于归纳和分类,植物学家给出下述四组简单形态描述:(1)分支方式;(2)轴的形态特征;(3)性特征位置;(4)生长模式[14]。将其中的一组或者几组进行组合,可以得到庞大的组合数目。然而在自然界仅发现23种植物构造模型,为了不额外增大植物学名词量从而增加记忆负担,每种构筑模型都以植物学家的名字命名[2,9]。如Holttum模型、Corner模型、Tomlinson模型等。自然界中任何一种植物都可以由其中一种或者几种模型组合进行描述。
本文主要研究大戟科植物,因此需要用Leeuwenberg模型描述,该模型主要特点为合轴非线性分支,每个模块有两个或多个分支,后继模块重复其父模块的生长发育特点,但是这个重复是定性的,非定量的,BOB表现为:后继模块的长度和分叉角度是递减的。图3为植物学家给出的Leeuwenberg模型的图形化描述。
通过这些模型,植物学家不仅形象而又准确地描述了各种类型植物的形态结构特点,而且进一步研究了植物的生长过程及其生长规律,这些结构模型对树木状和草本状植物都适用。因此,利用植物的构造模型,对植物形态进行仿真,不失为一种简便快捷而又有效的方法[14]。
然而构筑模型不能体现植物生长过程中表现出来的明显周期性特性,因此要结合双尺度自动机原理得出更贴近植物真实生长过程的动态生长算法,这样可以有效增强整个动态模型的线 微分L-系统
在对植物动态生长研究过程中,寻找一种方法来对植物形态进行可视化表达,从而建立更逼真、完整、有效的植物生长模型是必要的。在此选用微分L-系统进行表达,它将传统的L-系统产生式和微分方程合为一体,成功模拟了植物生长过程中的离散、连续情况。
微分L-系统是在参数化L-系统的基础上,通过引入连续的时间流的信息来取代一系列离散变换过程,比如,模块A(w)只要参数w的取值范围在定义域DA中,这个模块就会连续地变化,如果w的值达到了DA边界,就会触发一个产生式产生离散的变换,这个时候A(w)就会被其子孙模块替换[8]。
在t?琢时刻模块A的结构可以用一个连续的字符串表示:u=A1(w1)A2(w2)…An(wn)。其模块增量的产生可能与其紧邻的前后两个模块有关系,也可能只与其中的某个模块有关,也可能只与该模块本身状态有关。在此假设后一个模块增量的产生只与其紧邻的前一个模块状态有关,在此称之为其左邻居(没有左邻居的第一个模块其w值为预先给出的定值),在上式中,Ai-1(wi-1)是Ai(wi)的左邻居,下面用l来指代A(w)的左邻居。A(w)模块内部的连续变化规律可以通过w关于时间t的微分方程来描述,其微分方程为:
,BOB其中A(w)称为前驱,后面跟有条件表达式,最后的Bk,1(wk,1)Bk,2(wk,2)…
称为后继,k可以取大于1的任意正数值表明以A(w)为前驱的产生式可能不止一个,当w到达不同区域的边界
总之,微分L-系统通过把微分方程引入到参数L-系统中,用来描述植物生长过程中的器官的连续变化性质,是对参数L-系统进行植物建模的扩展。
为了快速有效地模拟大戟科植物动态生长过程中的生长细节和生长特性,在Leeuwenberg模型的基础上,遵循双尺度自动机原理对植物动态生长模型进行构建,其算法过程如图4所示。
基于以上生长算法,选用微分L-系统具体到每个节间的生长细节来模拟整个生长过程。为了实现这个目标,设定每个节间长度、叶片大小及花序大小的初值均大于0,其边界值为定值,在一个生理周期(包含n个节周期)内节间长度一定。
将每个生理周期生长单元看作一个模块M,参数y代表节间的长度,s是叶片大小,f是花序当前生长量,n为一个生理周期包含的若干个节周期。而其营养生长和生殖生长速率的不同用不同的k值界定(节间为k,叶片为kl,花序为kf)。p1主要是指节间从初始长度y0到最大长度ymax的连续生长过程;p2指本节间生长完成进入下一个节周期;p3指在该生理周期的倒数第二个节周期内同时进行茎秆和叶片的生长;p4指本生长单元营养生长完成进入生殖生长阶段;p5代表产生新的分支;y′,f′,s′方程主要管理节间、花序和叶片具体生长节奏,BOB一般约定y、f、s初值恒为正数,p用于控制参数q的变化情况。
应用该方法在VS2010+openGL环境下实现的Leeuwenberg模型在5个生理周期内的生长细节如图5、图6、图7所示。
综上所述,模拟植物的真实动态生长过程,应该采用基于植物生长原理的模型(在此采用Leeuwenberg模型),因其能够准确描述植物生长过程及其生长规律,而与双尺度自动机原理的结合更有助于表达植物生长细节和生长特性。另外,这种将参数L-系统与微分方程结合并综合考虑了植物生长特征形成的新式微分L-系统,在表述植物生长过程时的主要优点是:其可以将植物的生长过程细化到每个节周期,而其中的参数可控性更是使处于不同生理周期的节间的不同生长特性得以体现。其能够更加真实具体地反应植物的动态生长过程,尤其是“S”型玻尔兹曼函数的使用,使得对于节间生长过程的模拟更加贴近真实。