昨天介紹了基於人類行為的最佳化演算法,這些演算法基本上都是模擬人類社會中有的群體行為,無論是對抗疫情(CHIO)或是團隊合作(TOA)都一樣。今天要來介紹的是基於生物學的幾個演算法,和基於粒子的演算法不同,基於粒子的演算法著重探討「個體」的行為;今天介紹的基於生物學的演算法更著重於整個生物群集和環境、生態系等的不同交互,不過廣義來說它們可以視為相同分類的啟發式演算法。
無論如何,這些演算法都能夠對之後我們實作的模型最佳化有著很好的幫助!
BBO是一個討論自然生物地理學及其數學的演算法,在2008年提出,根據原始論文介紹研究者的心態是「我們可以向大自然學習」。BBO和其他演算法例如PSO、GA等有共同的特徵,所以BBO也適用於PSO、GA等相同類型的問題。
BBO描述了生物物種如何進行遷移、新的物種是如何演化出現的、以及物種為何滅絕、如何滅絕,看起來就是更廣義的GA+PSO等演算法加起來。
在生物地理學中,適合生物居住的區域可以說是有很高的棲息地適宜度指標(Habitat Suitability Index, HSI)另外可以用來評估該地區是否可居住的指標為適宜性指標變數(Suitability Index Variable, SIV)。
下圖是論文中提出的生物地理學的數學建模,從遷入率(immigration)和遷出率(emigration)反映該地區的物種數量,一般來說HSI高代表物種可能會越多,當該地區物種飽和後,物種就會傾向遷出去尋找新的資源肥沃的地區;反之亦然,HSI低代表物種數量少,所以來自其他地方流浪的物種就會傾向於入住該地區。
但如果該地區的HSI一直很低代表那裏根本不適合居住,所以久而久之那邊的物種就有可能會滅絕。
圖. 單一棲息地的物種模型關係,圖源為原始論文。
觀念上來說,BBO中將要帶入問題的整個解比喻為一個地區,解中的不同因素、特徵比喻為該地區的物種,而適應值(fitness value)比作為HSI。
高HSI的地區會比較穩定,而低HSI的地區會受到高HSI的地區分享的物種,從而提升該地區的品質。
對照來說就是:高適應值的解會比較穩定,解與適應值不容易有大幅度的變化,而低適應值的解會受到高適應值的解分享的特徵,從而提升解的品質。
理解了概念之後就要來介紹BBO的演算法原理了,圍繞著遷入率、遷出率、HSI等概念,接下來讓我來介紹BBO的流程吧。
圖. 地區物種數量與遷移率的關係圖,圖源為原始論文。
BBO是一個很有趣的演算法,透過模擬很多地區的生態來尋求解,並考慮了許多因素來模擬自然環境中的演化。為此我也查閱了一些生物地理的相關文獻,發現作者確實有很好的從大自然中汲取靈感,並將之與個人的專業研究進行融合。
BBO研究據作者所述並沒有特別驗證過,來獲得普遍優秀於其他方法的結論,所以未來也可以嘗試以此為方向去比較看看其他演算法再來討論看看BBO有沒有可以改良的部分。
雜草演算法應該也是有一段時間的演算法了,它是一種受到野外雜草互相侵略、殖民、生長的啟發而成的演算法。根據一些研究顯示雜草再殖民、侵略時的生長穩定性較高、適應性佳、又具備隨機性,所以這個以雜草為基準的演算法也能表現出上述特性。
IWO來自於一群野草的繁殖,這些野草可以透過有性生殖與無性生殖來繁殖,不過IWO著重探討有性生殖的開化結果,產生種子,生出種子後就會透過各種形式向外傳播,並找到其他適合生存的空間,不斷循環。通常IWO會歷經6個步驟來進行最佳化,以下是IWO的演算步驟。
IWO是將不同雜草族群當作要代入問題的解,而適應值就是適應值,似乎沒有特別的比喻,若有錯誤再麻煩糾正了><
圖. 一群雜草群的種子生產關係,圖源於其論文。
IWO也是一個不錯的演算法,與其它演算法不同的是一些演算法基本上族群數量會一直都是固定值,而IWO會透過播種來讓解的數量暫時變多,不過考量到平衡會再將劣勢的雜草淘汰。藉此可以更大量的保留最佳解,跟珊瑚礁演算法有點類似。這種做法還讓原本劣勢的雜草有繁殖後代的機會,說不定那些雜草的後代會一鳴驚人呢!所以這個機制基本上也是會鼓勵雜草們不要陷於局部最佳位置。
總得來說IWO是一個相當穩定、且適應性佳又同時具備隨機性的演算法。
這四天根據不同的基礎介紹了許多演算法,基本上還有許多雜七雜八的演算法,過於特殊導致在分類上比較少同性質的演算法,或是其他原因導致該演算法的特殊性,所以礙於篇幅就沒辦法在原理介紹中登場了,不過很多冷門的演算法都有包含在MealPy中,各位若有興趣在之後帶各位入門MealPy之後各位可以在嘗試使用更多不同的演算法來測試看看自己所應用到的問題喔!
我們可以向大自然學習 --Dan Simon(BBO論文作者)