期貨量化軟件赫茲量化_細(xì)菌覓食優(yōu)化

細(xì)菌覓食優(yōu)化(BFO)算法是一種引人入勝的優(yōu)化技術(shù),可在極其復(fù)雜或不可能的數(shù)值函數(shù)里找到最大化/最小化問題得近似解。 該算法被廣泛認(rèn)為應(yīng)對分布式優(yōu)化和控制的全局優(yōu)化算法。 BFO 的靈感來自大腸桿菌的社會覓食行為。 BFO 已經(jīng)引起了研究人員的注意,因為它已表現(xiàn)出在多個應(yīng)用領(lǐng)域中解決實際優(yōu)化問題方面的有效性。 大腸桿菌覓食策略背后的生物學(xué),是以原始方式模擬,并作為一種簡單的優(yōu)化算法。
細(xì)菌,如大腸桿菌或沙門氏菌,是地球上最成功的生物之一。 這些靈動的細(xì)菌具有稱為鞭毛的半剛性附屬物,它們通過扭曲運動推動自己。 當(dāng)所有的鞭毛逆時針旋轉(zhuǎn)時,會產(chǎn)生螺旋槳效應(yīng),推動細(xì)菌或多或少地沿直線方向移動。 在這種情況下,細(xì)菌執(zhí)行稱為游泳的運動。 所有鞭毛都順同一方向旋轉(zhuǎn)。
鞭毛幫助大腸桿菌翻滾或游泳,這是細(xì)菌在覓食期間執(zhí)行的兩項主要操作。 當(dāng)它們順時針旋轉(zhuǎn)鞭毛時,每個鞭毛都會反向推動細(xì)胞。 當(dāng)鞭毛向不同方向旋轉(zhuǎn)時,細(xì)菌就會翻滾。 細(xì)菌在有利的環(huán)境中移動時翻滾較少,而在有害的環(huán)境中,它經(jīng)常翻滾,從而感知營養(yǎng)梯度。 鞭毛的逆時針運動有助于細(xì)菌以非常高的速度游泳。
在上述算法中,細(xì)菌的行為是由一種稱為細(xì)菌趨化性的機制決定的,該機制是這些微生物對環(huán)境中化學(xué)刺激的運動反應(yīng)。 這種機制允許細(xì)菌向引誘劑(最常見的營養(yǎng)物質(zhì))移動,并遠(yuǎn)離驅(qū)蟲劑(對細(xì)菌有潛在危害的物質(zhì))。 檢測引誘劑和驅(qū)蟲劑的受體位于細(xì)菌的兩極。
由于細(xì)菌體積小,它無法捕捉兩極之間有用和有害物質(zhì)濃度的差異。 細(xì)菌通過測量運動過程中濃度的變化來判定這些物質(zhì)的梯度。 這種運動的速度可以達(dá)到每秒幾十個細(xì)菌長度。 例如,大腸桿菌通常以每秒 10-20 倍其體長的速度移動。

編輯切換為居中
圖例 1. 復(fù)制:分為原始(保持運動向量)和克?。ㄟ\動向量變化)細(xì)菌。 翻滾 - 細(xì)菌運動向量的變化
如果細(xì)菌選擇的運動方向?qū)?yīng)于引誘劑濃度的增加(驅(qū)蟲劑濃度的降低),則至下一次翻滾之前的時間增加。 由于細(xì)菌體形小,其運動受到布朗運動的強烈影響。 結(jié)果就是,細(xì)菌只平均朝著有益物質(zhì)的方向移動,遠(yuǎn)離有害物質(zhì)。
所研究的細(xì)菌運動機制并不是唯一的。 有些細(xì)菌有一個鞭毛。 在這種情況下,細(xì)菌運動的變體提供了不同的旋轉(zhuǎn)和停止模式。 然而,在所有情況下,如果細(xì)菌朝正確的方向移動,那么這種運動的持續(xù)時間就會增加。 因此,一般來說,細(xì)菌趨化性可以定義為游泳和翻滾的復(fù)雜組合,它允許細(xì)菌停留在營養(yǎng)物質(zhì)濃度高的地方,躲避不可接受的有害物質(zhì)濃度。
在搜索引擎優(yōu)化問題的背景下,細(xì)菌趨化性也可以解釋為一種機制,用于優(yōu)化細(xì)菌對已知食物資源的利用,并尋找新的、潛在的、更有價值的區(qū)域。足夠豐度的細(xì)菌種群可以形成復(fù)雜的時空結(jié)構(gòu) — 在細(xì)菌種群中形成的結(jié)構(gòu)影響。 這種影響可能是由趨化性和許多其它原因引起的。
對于一些細(xì)菌,這種結(jié)構(gòu)的形成可以通過其代謝產(chǎn)物的調(diào)節(jié)特性來解釋。 基于磁性(對磁場的敏感性)、生物對流、負(fù)地質(zhì)趨向性(微生物對重力方向的優(yōu)先運動)、和其它現(xiàn)象,類似的效果是可能的。 常規(guī)下,細(xì)菌在友好的環(huán)境中能傳播更遠(yuǎn)的距離。 當(dāng)它們獲得足夠的食物時,它們的長度會更長,并在適當(dāng)?shù)臏囟认聫闹虚g斷裂,變成自己的精確復(fù)制品。
這種現(xiàn)象激發(fā)了帕西諾(Passino)將繁衍事件引入BFO。 由于環(huán)境的突然變化或攻擊,趨化過程可能會被破壞,那么細(xì)菌群落可以移動到其它地方。 這代表了真實細(xì)菌種群中的消除和擴散事件,當(dāng)該區(qū)域中的所有細(xì)菌死亡、或一組細(xì)菌擴散到環(huán)境的新部分時。 此外,所研究的趨化性和繁衍過程通常不足以找到多極值目標(biāo)函數(shù)的全局最大值,因為這些過程不允許細(xì)菌離開它們發(fā)現(xiàn)的該函數(shù)的局部最大值。 消除和擴散過程旨在克服這一缺點。 根據(jù)自然選擇(適者生存),適應(yīng)性差的細(xì)菌將會消亡,適應(yīng)性較高的細(xì)菌會自我繁衍。
2. 算法說明
BFO 的規(guī)范版本包括以下主要步驟:
初始化細(xì)菌群落。
趨化性。
聚集。
繁衍。
流動和分群。
1. 初始化細(xì)菌群落。 細(xì)菌可以在一些半固體營養(yǎng)物質(zhì)中形成復(fù)雜、穩(wěn)定的時空模式,如果最初一同安置在中心,它們就可以在環(huán)境中生存。 甚至,在某些條件下,它們會分泌細(xì)胞間引誘信號,以便它們相互聚集和保護(hù)。 2. 趨化性。 細(xì)菌尋找食物的運動特征可以通過兩種方式判定,即一同游動和翻滾被稱為趨化性。 據(jù)說細(xì)菌如果朝正確的方向移動,就會“游動”,如果它向環(huán)境惡化的方向移動,就會“翻滾”。
3. 聚集。 細(xì)菌為了到達(dá)食物最豐富的地方,希望在搜索期間最佳細(xì)菌于某個時間點嘗試吸引其它細(xì)菌,如此它們就能更快地在所需位置聚合在一起。 為此,根據(jù)每個細(xì)菌從適者菌落到此搜索持續(xù)時間的相對距離,在原始成本函數(shù)中添加一個懲罰函數(shù)。 最后,當(dāng)所有細(xì)菌融合到?jīng)Q策點時,這個懲罰函數(shù)變?yōu)榱恪?聚集的效果是細(xì)菌成群聚攏,并以同心模式移動,細(xì)菌密度高。
4. 繁衍。 最初的一組細(xì)菌經(jīng)過幾個趨化階段,達(dá)到繁衍階段。 此刻,最好的一組細(xì)菌分為兩組。 更健康的一半被另一半細(xì)菌所取代,尋找食物能力較低的則消亡。 這令細(xì)菌的數(shù)量在進(jìn)化過程中保持不變。
5. 消除和擴散。 在進(jìn)化過程中,可能會發(fā)生突然的不可預(yù)見的事件,該事件可以極大地改變進(jìn)化過程的順暢,并導(dǎo)致許多細(xì)菌的消除和/或它們擴散到新的環(huán)境中。 具有諷刺意味的是,這種未知事件并不會破壞一組細(xì)菌的正常趨化性生長,反而可能會令較新的一組細(xì)菌更接近食物的位置。 從廣義上講,消除和擴散是種群長距離行為的一部分。 當(dāng)應(yīng)用于優(yōu)化時,這有助于減少此類并行搜索算法中常見的停滯。
我實現(xiàn)的 BFO 與規(guī)范版本略有不同。 在研究代碼的特定部分時,除了需要這些更改的理由外,我還將詳細(xì)介紹差異。 一般來講,實現(xiàn)中的修改不能被認(rèn)為是重要的,因此我不會將 “m”(修改版本)標(biāo)記分配給算法名稱。 我只想提示,已實現(xiàn)的修改改善了結(jié)果。
接下來,研究我實現(xiàn)的算法和代碼。
算法步驟:
1. 細(xì)菌菌落初始化。 2. 測量細(xì)菌健康(適應(yīng)度)。 3. 繁衍? 3.1. 是的。 執(zhí)行繁衍。 3.2. 不。 第四步。 4. 老化 (達(dá)到生命極限)? 4.1. 是的。 執(zhí)行翻滾(更改移動矢量)。 4.2. 不。 第五步。 5. 移至正確方向? 5.1. 是的。 按相同矢量繼續(xù)移動。 5.2. 不。 執(zhí)行翻滾 (改變運動矢量)。 6. 測量細(xì)菌健康(適應(yīng)度)。 7. 從地三步繼續(xù),直到滿足停止條件。
