花授粉算法(Flower Pollination Algorithm,FPA)是一種模擬自然界花朵授粉過程的最佳化算法。它由英國劍橋大學的學者X.S. Yang於2012年提出,旨在模擬自然界中有花植物的授粉行為,包括自花授粉和異花授粉。
自花授粉是指一株植物的花粉對同一個體的雌蕊進行授粉,或者一株植物的不同花之間進行授粉的現象。這種授粉方式通常涉及較短的距離,如通過風力或水媒完成。
異花授粉則是指雄蕊和雌蕊不長在同一朵花或同一株植物上的授粉方式,通常需要昆蟲或鳥類等生物進行遠距離傳播。
在花授粉算法中,這兩種授粉機制分別對應於局部搜尋過程和全局搜尋過程。算法通過引入一個切換機率P(p ∈ ),來權衡全局搜尋過程與局部搜尋過程之間的比重關係。當隨機數小於切換機率p時,執行自花授粉;否則執行異花授粉。
異花授粉過程中,傳粉者通過Levy飛行進行花粉的傳播,這是一種步長機率分布為重尾分布的隨機行走,使得算法能夠在搜尋過程中進行大跨步的跳躍。
花的恆常性在算法中被視為授粉過程中兩朵花的繁殖機率與相似度的比例。這種特性反映了某些傳粉者偏好某些特定種類的花朵,而忽略其他種類的花朵。
花授粉算法具有結構簡單、參數少、魯棒性較強和性能穩定等特點,已被成功套用於解決各種最佳化問題,如工程實例求解和無限感測網路的最佳化等。