當前位置:
首頁 > 知識 > 花草茁壯於鍵盤之間——藏身數學公式中的那些美妙植物

花草茁壯於鍵盤之間——藏身數學公式中的那些美妙植物

引子

不知不覺間,李雷和韓梅梅同窗已有五年了。

李雷記性很差,經常忘帶作業(其實是忘了做,忘帶作業受到的懲罰會小點——小編注)。但他清楚地記得,那是一個秋意乍現的早晨——樹葉翠色漸退,但都不願意落葉歸根,還在同秋風做著最後的搏鬥;蟬鳴鳥叫若隱若現,想來也為假期收尾而忿忿不平;就連李雷最喜歡的荷塘也淪為一潭死水,夏日裡的蓮花齊放蜻蜓點水總有謝幕的一天。李雷撿起一塊小石子信手扔入荷塘,荷塘不情願地泛起兩層漣漪以示回禮,便沒了下文。李雷低下頭,神情間頗為沮喪。

不過沮喪的主要原因,是李雷「忘帶」暑假作業了。

李雷不會想到,當他再次抬起頭時,他的心裡從此不再波瀾不驚。正是那麼一瞬間,猝不及防的四目相對,嫣然百媚的笑顏令李雷如痴如醉,「巧笑倩兮,美目盼兮」、「為伊消得人憔悴」、「窈窕淑女,君子好逑」甚至「十年生死兩茫茫」這種一輩子都記不住的詩句如同火山爆發般噴涌而出。直到明眸巧笑隨著一身純白的輕紗漸行漸遠,李雷方才反應過來,新學期開始了,該去報到了。

這位闖入李雷心窩的少女,正是五年前剛從外校轉來的韓梅梅。李雷暗戀韓梅梅已有五年,應該有所行動了,因為李雷得知韓梅梅心中的白馬王子——吳彥煮也就快轉到他們學校了。知己知彼百戰不殆,李雷偷偷跑去廁所照鏡子,琢磨經反覆斟酌推敲對,他認為自己顏值優勢似乎並不那麼明顯:

失之東隅收之桑榆,好在李雷知道韓梅梅很喜歡植物,投其所好定可打動芳心!不過父母把自己的零花錢控制的很嚴,哪裡有那麼多錢去買花花草草啊。於是李雷找到了小編尋求良策。

古人「讀書破萬卷,下筆如有神」,到李雷這裡就變成了「遊戲過萬關,鍵盤賽機槍」,是個不折不扣的遊戲高手。小編推斷,李雷的電腦性能定然不差,於是小編建議李雷用電腦自動畫出植物的圖案,打動韓梅梅芳心。小編送給李雷的第一種方案,叫做L系統,它是計算語言學的一大成果。

下面我們來具體看看什麼是L系統。

第一部分 L系統——計算語言學的結晶

L系統是一種形式語法(Formal Grammar,也就是可以用 1.一個由符號構成的集合;2.數學規則表示出來的語法,是所有計算機語言的基礎語法),它得名於生物學家Aristid Lindenmayer。它被廣泛地用於模擬各種生物的生長過程,例如樹木、藻類、酵母菌等等。

語法怎麼會和生物的成長過程扯上關係呢?事實上作為形式語法的一個特例,L系統非常簡單,只需要幾種符號,一個數學關係式,就可以依靠迭代演算法撰出驚世巨著,例如假設符號集合為S={ F , [ , ] , + , - }(每個符號的意思見下文,符號的如何選擇完全由讀者決定),數學規則只有一個——每一次運算把字元"F 變為字元串"FF+[+F-F]-[-F+F]"。經過數次運算(迭代)以後,我們得到了個長字元串,如果把這個長字元串翻譯為圖像,一株類似於石松的植物遍誕生了:

GIF/228K

石松是現存最古老的維管植物

具體代碼和解釋如下(小編用的python):

# -*- coding: utf-8 -*-

fromturtleimport*#需要引入的包

t,d,n =22,12,3#樹枝分叉角度,樹枝長度和分叉深度

F="FF+[+F-F]-[-F+F]"#語法形式,決定了每個樹枝的形狀

stack=[]#騰一個棧出來以儲存圖像

deff(n):# 定義遞歸函數

ifn>: L(F,n)

defL(s,n):# s是字元串,n是整數

pensize(n*2)

forcins:# c取遍s裡面的所有字元

ifc== - : lt(t)#減號代表左轉t度

elifc== + : rt(t)#加號代表右轉t度

elifc== F : f(n-1);fd(d)#遞歸併生成長度為d的樹枝

#把當前畫筆位置、角度和加(push)入棧中:

elifc== [ : stack.append((pos(),heading(),n))

elifc== ] :#結束分岔

((i,j),h,p)=stack.pop()#讀取上一個做圖點的信息

penup()#把畫筆提起來(移動時不做圖)

goto(i,j)#畫筆前往上一個做圖點

seth(h)#設置指針朝向

pensize(p)#線段

pendown()#放下畫筆(準備開始做圖)

setup(480,400);speed();ht();penup();goto(-30,-200);pendown();seth(90)

color( green , black )#設置顏色

f(n)#開始迭代做圖!

李雷看到這麼一株茁壯生長的植物,不由得心花路放。絕知此事要躬行,李雷把符號集合修改成了S={ X , F , [ , ] , + , - },把數學規則修改為X->"FF-[[X]+X]+F[+FX]-X"和F->F,然後他得到了一顆蘋果樹(當然還要重新調整顏色設定):

GIF/416K

由數學規則生成的蘋果樹,迭代次數為n=4

有興趣的讀者可以嘗試自己調整符號集合和數學規則,可以得到許多不同的奇妙植物的圖像,例如:

這幾棵樹都是用很簡單的L系統演算法得到的。圖片參考自文獻[3]

甚至三維植物:

圖片來自文獻[3]

值得一提的是,形式語法(L系統就是形式語法的一個例子)是美國社會學家喬姆斯基(Noam Chomsky)在1950年代提出的,他創立這個概念的初衷是為了更好地研究自然語言(人類語言)。或許喬姆斯基沒想到,他的理論會成為人工智慧領域的奠基石。當時美蘇正在爭霸,因此美國人自然希望能把前蘇聯的科研論文批量翻譯成英文;這時候又適逢計算機誕生不久,人們便琢磨著用計算機處理這個龐大的任務,一個全新交叉學科——計算語言學(Computational Linguistic)就這麼橫空出世了。如今各種在線翻譯工具興起,便是計算語言學的功勞。

計算語言學的例子——用遞歸神經網路(RNN)實現的AI寫詩,引用自文獻[10]。儘管詩句套路較為單一,但已有以假亂真的功力了。

在數學家眼中,形式語法無非就是自由群(Free Group)——符號集合本質上就自由群的生成元(Generator),運算規則則可以通過生成元之間的「乘法運算」來描述。利用抽象代數中的結論,人們就可以大概推算出不同的語法結構會產生怎樣不同的結果了。

第二部分 葉序(Phyllotaxis)是怎樣煉成的

李雷興高采烈地一步跨進教室,卻發現韓梅梅已經在和吳彥煮竊竊私語了。李雷一把推開吳彥煮,把自己的傑作展示給韓梅梅看,韓梅梅又驚又喜,已然被李雷所打動。然而尚未等到芳心遷都,吳彥煮有條不地地秀出了自己模擬的向日葵:

GIF/875K

其中每個圓圈代表一顆葵瓜子。吳彥煮的向日葵不盡惟妙惟肖,而且瓜子還變著色調,這自然令韓梅梅怦然心動。李雷不服,嚷嚷說吳彥煮這是花拳繡腿,哪裡有自己的蘋果樹有內涵。吳彥煮微微一笑,拿出上面這張動圖的代碼:

# -*- coding: utf-8 -*-

frommathimport*

fromturtleimport*

defdrawPhy(t, angle, size, d, petalStart):

pen(outline=1, pencolor="black", fillcolor="orange")

phi = angle * ( pi /180.0)

xcenter =0.0; ycenter =0.0

petalSize =60#花瓣大小

forninrange (, t):

r = d * sqrt(n)#半徑大小

theta = n * phi#旋轉角度

x = r * cos(theta) + xcenter

y = r * sin(theta) + ycenter

fillcolor((255, theta%255, (n*4)%255))

up();setpos(x, y);down()

seth(n * angle)

ifn > petalStart-1:#開始畫花瓣

drawPetal(x, y, petalSize)

else: stamp()#否則繼續畫瓜子

defdrawPetal(x, y, ps):#畫菱形的花瓣

up();setpos(x, y);down()#初始化指針

begin_fill()

pen(outline=1, pencolor="black", fillcolor="yellow")

rt(20);fd(ps);lt(40);fd(ps);lt(140);fd(ps);lt(40);fd(ps);up()

end_fill()

colormode(255);setup(500,500);shape("circle");speed();ht()

drawPhy(240,137.508,3,7,200)

exitonclick()

這段代碼裡面其實大有學問,因為如果我們把迭代函數中的角度從137.508度變為其他角度,得到的模擬結果就不再滿足葵瓜子的分布圖案了。植物學家們又把葵瓜子呈現出的螺旋形排列圖案叫做螺旋葉序(Spiral Phyllotaxis)圖案。這種螺旋圖案之所以能專門冠以一個專有名詞,是因為它的分布規律可以用黃金螺線(Golden Spiral)描述[4]。

黃金分割點又是斐波拉契數列相鄰項的漸近比值,而葵瓜子的排列規律可以用斐波拉契數列描述

離中心最近的兩顆葵瓜子之間的夾角大約呈137.5度,和黃金分割點相關

事實上葉序圖案在植物界乃至整個生物界都是普遍存在的。由於葉序常常與黃金分割點相伴相隨,因此黃金分割點便被賦予了美麗而又神秘的色彩。

形形色色的葉序圖案

那麼葉序圖案是怎樣產生的呢?這個問題還沒有統一的答案,人們甚至還沒完全弄明白向日葵螺旋葉序的產生機理。有人用能量觀點(使葵瓜子之間的排斥勢能最大)來解釋[6],也有人用熵的極小化原理(基於諾貝爾化學獎得主,伊利亞?普里高津提出的耗散結構理論)來解釋[7],也有人通過生長素(Auxin)在植物器官中的分布狀況來建模等等[8]。不過關於植物圖案的生成機制,始終缺乏一種像由阿蘭?圖靈提出的,簡單卻又本質的數學模型[9](圖靈提出的模型能較為本質地解釋動物圖案的生成,這是兩個非線性發展方程,小編在《一文帶你走進全球頂尖應用數學家的世界!》中已有介紹)。

第三部分 山重水複疑無路?

李雷天生是個樂觀主義者,經此一敗後他只失望了五分鐘,便又找到小編幫忙。小編也發現吳彥煮並不簡單,若這樣下去李雷幾乎毫無勝算,必須另尋奇策。

於是小編又塞給李雷一個新的錦囊。李雷回家打開一看,裡面只有六個大字:迭代函數系統(Iterated Function System)。

迭代函數系統的概念其實很簡單,就是定義域和值域都是N維歐氏空間的M個收縮函數(Contraction,也就是任意兩點經過函數作用後,它們的距離變短了),我們把這些函數記作f_1,f_2,...,f_M。迭代函數系統的不簡單之處在於,該系統總是唯一存在一個不變集合(Fixed Set)S,使得:

該結論證明並不難,本質上就是泛函分析中壓縮映照定理(Contraction Mapping Theorem,又叫Banach不動點定理)的推廣。有興趣的讀者可參考文獻[11]的第三節。

不變集合S長什麼樣呢?假設歐氏空間是2維平面,收縮函數有四個:

那麼得到的不變集合S如下(採用Matlab做圖,在單位正方形內隨機取了20萬個點,每個點迭代20次):

GIF/381K

這就是蕨類植物的葉片

稍微修改一下參數,可以得到各種蕨類植物的葉片:

圖片來自文獻[12]

我們知道,蕨類植物是很初等的植物,器官只有根莖葉。有沒有辦法用迭代函數系統畫出高等一些的植物呢?事實上如果我們只需要把收縮函數的個數改成六個,並適當選取參數,一顆漂亮的參天大樹就躍然於屏幕上了:

這張圖由10萬個迭代點生成

在數學上,函數迭代系統是分形(Fractal)的一個特例。分形可謂是數學與藝術的結晶,許多由計算機生成的圖像都依靠分形演算法,限於篇幅這裡不再展開介紹。此外,物理學家眼中的分形是自相似特性(Self Similarity)的一個體現,自相似性一個著名的例子就是海岸線悖倫(Coastline Paradox):

英國海岸線的長度有多長:用越細的尺度測量海岸線,得到的總長度越大,直到無窮

小編認為,蕨類植物的葉片之所以呈自相似結構,就是為了儘可能使其葉片表面積最大化,以便於葉片的光合作用。小編會在以後的文章中進一步介紹自相似性。

結語

看了許多奇特的植物模擬圖像,相比讀者們已經大開眼界了。一飽眼福之後我們來回味一下這篇文章介紹的幾種植物建模方法,大致總結如下:

有經驗的讀者可以從上述總結中看出,在數學上這三種建模方法都屬於離散動力系統(Discrete Dynamical System)的範疇。離散動力系統用函數(或運算元)的迭代代替了連續動力系統中對時間求導的過程,因而使得離散和連續動力系統的分析手段和結論存在很大差異。能不能提出一個「離散版本」的圖靈模型來描述植物的形態發生過程?離散和連續動力系統這兩兄弟最終能否得以相聚?這正是小編所樂見的結果。

---------------華麗麗的分割線---------------

聽完了小編的講解,李雷躊躇滿志,胸有成竹地找韓梅梅去了。讀者們認為,結果到底會如何呢(以下統計純屬玩笑)?

參考文獻:

[1] John Hutchins:Retrospect and prospect in computer-based translation. Proceedings of MT Summit VII, 1999.

[2] Aristid Lindenmayer,Mathematical models for cellular interaction in development, 1968.

[3] P. Prusinkiewicz and A. Lindenmayer,Algorithmic Beauty of Plants, Springer 1996.

[4] https://en.wikipedia.org/wiki/Golden_spiral

[5] S. Douady and Y. Couder,Phyllotaxis as a Physical Self-Organized Growth Process, Phys. Rev. Lett. 1992.

[6] LS. Levitov,Energetic Approach to Phyllotaxis. Europhys. Lett 1991.

[7] R. Jean,A systemic model of growth in botanometry, Journal of Theoretical Biology 1980.

[8] RS. Smith,The role of Auxin Transport in Plant Patterning Mechanisms. PLoS Biol 2008.

[9] A. Turing,The chemical basis of morphogenesis, 1952.

[10] http://www.aclweb.org/anthology/D14-1074

[11] John Hutchinson, Fractals and Self-Similarity, Indiana Univ. Math. J. 30 No. 5, 1981.

[12] T. Darmanto et. al,Metamorphic Animation of 3D Fern-like Fractal Images based on a Family of Transitional 3D IFS Code Approach, 2013 ICoICT.

中國生物技術網誠邀生物領域科學家在我們的平台上,發表和介紹國內外原創的科研成果。

本公眾號由中國科學院微生物研究所信息中心承辦

微信公眾號:中國生物技術網

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 幹細胞 的精彩文章:

裴鋼院士:要研發出更多幹細胞藥品和服務,幫助更多患者維護健康,延長壽命
國際首例幹細胞新技術治療早衰症女孩臨床最新進展
好消息!STEMdiff造血試劑盒
裴鋼院士:幹細胞具有改變每個人的命運和整個人類社會的潛力
Adv.Mater.:通過調節分子間相互作用實現可見光激發的超長有機磷光

TAG:幹細胞 |