【智能算法】河馬優化算法(HO)原理及實現

目錄

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法過程
    • 3.結果展示
    • 4.參考文獻
    • 5.代碼獲取


1.背景

2024年,MH Amiri受到自然界河馬社會行為啟發,提出了河馬優化算法(Hippopotamus Optimization Algorithm, HO)。

在這里插入圖片描述
在這里插入圖片描述

2.算法原理

2.1算法思想

HO從河馬社會行為中汲取靈感,模擬了它們在河流或池塘中的位置更新、對捕食者的防御策略和逃避策略。

在這里插入圖片描述

2.2算法過程

河馬在河流或池塘中的位置更新(探索)

河馬群體結構復雜,由若干成年雌性、幼崽、多只成年雄性以及一只占統治地位的雄性(即群體的領導)組成。群體中的領導雄性負責保護群體和領域免受外來威脅。在河馬的社交結構中,雌性通常被置于雄性的保護之下。隨著成年雄性河馬的成長,它們往往會被領導雄性趕出原有的群體,這些雄性河馬則需要通過吸引雌性或與其他成熟雄性競爭以建立自己的領導地位。

其中,χimhippo表示雄性河馬的位置,Dhippo表示優勢河馬的位置。參數為:

式(6)和(7)描述了雌性或未成熟河馬在獸群中的位置(χiFBhippo)。大多數未成熟的河馬都靠近它們的母親,但由于好奇,有時未成熟的河馬會與獸群分開或遠離它們的母親。當T大于0.6時,表示未成熟的河馬已經離開了母親(式5)。當r6大于0.5時,表示未成熟的河馬已經離開了母親,但仍在獸群內或附近(式7),否則表示未成熟的河馬已經離開了獸群。未成熟河馬和雌性河馬的這種行為是根據方程建立模型的。(6)、(7)。h1、h2是從h方程中五種場景中隨機選取的數字或向量。在式(7)中,r7是0到1之間的隨機數。式(8)、(9)描述了雄性和雌性或未成熟河馬在群體中的位置更新。Fi為目標函數值。

在這里插入圖片描述
在這里插入圖片描述
使用h向量,I1和I2場景增強了算法的全局搜索,提高了算法的探索能力。

河馬防御掠食者(探索)

河馬采用的主要防御策略是迅速轉向捕食者,并發出響亮的叫聲,以阻止捕食者靠近它們。在這個階段,河馬可能會表現出接近捕食者的行為,以誘導其撤退,從而有效地抵御潛在的威脅。

在這里插入圖片描述
在這里插入圖片描述
式(11)表示第i只河馬到捕食者的距離。在這段時間里,河馬采取了一種基于fpredator因子的防御行為來保護自己免受捕食者的攻擊。如果f捕食者j小于Fi,表明捕食者離河馬非常近,在這種情況下,河馬迅速轉向捕食者并向其移動,使其撤退。如果f捕食者j較大,則表明捕食者或入侵實體距離河馬的領地較遠。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

如果F HippoR i大于F,則表示該河馬已被獵殺,將有另一頭河馬在群中取而代之,否則獵人逃跑,該河馬將返回群中。在第二階段,在全局搜索過程中觀察到顯著的增強。第一階段和第二階段相輔相成,有效地降低了陷入局部最小值的風險。

在這里插入圖片描述

河馬逃離捕食者(開發)

河馬面對捕食者的另一種行為是當河馬遇到一群捕食者或無法用防御行為擊退捕食者時。在這種情況下,河馬會試圖離開該區域。

在這里插入圖片描述
從三種場景中隨機選擇:

在這里插入圖片描述

偽代碼

在這里插入圖片描述

3.結果展示

在這里插入圖片描述

在這里插入圖片描述

4.參考文獻

[1] Amiri M H, Mehrabi Hashjin N, Montazeri M, et al. Hippopotamus optimization algorithm: a novel nature-inspired optimization algorithm[J]. Scientific Reports, 2024, 14(1): 5032.

5.代碼獲取

資源清單

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11913.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態IP的應用場景

動態IP適用于網絡設備規模較小、需要靈活連接網絡、經濟條件有限或者需要臨時建立網絡的場景。

【C++】AVL

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 目錄 前言 一、AVL 樹 1.1、AVL樹的概念 1.2、AVL樹節點的定義 1.3、AVL樹的插入 1.4、AVL樹的旋轉 1.4.1、新節點插入較高左子樹的左側---左左:右單旋 1…

Spring整體流程源碼分析

DisableEncodeUrlFilter 防止sessionId被泄露 包裝器模式 WebAsyncManagerIntegrationFilter WebAsyncManagerIntegrationFilter通常與Spring MVC的異步請求處理機制一起使用,確保在使用Callable或DeferredResult等異步處理方式時,安全上下文能夠正…

CSP備考---位運算

前言 本期我們將學習位運算,與本期類型的考點(二進制轉換)反碼、補碼、原碼。 1、位運算是什么 首先我們需要先了解位運算是什么。 我們知道,計算機中的數在內存中都是以二進制形式進行存儲的 ,而位運算就是直接對整…

332_C++_mmap 映射文件或設備到進程的地址空間,或者創建一個新的映射區域

mmap : 映射文件或設備到進程的地址空間,或者創建一個新的映射區域(通常是匿名的) mmap 是 Linux 和其他類 Unix 系統中的一個系統調用,用于映射文件或設備到進程的地址空間,或者創建一個新的映射區域(通常是匿名的)。mmap 提供了靈活的方式來管理內存,它經常用于實現…

打造本地GPT專業領域知識庫AnythingLLM+Ollama

如果你覺得openai的gpt沒有隱私,或者需要離線使用gpt,還是打造專業領域知識,可以借用AnythingLLMOllama輕松實現本地GPT. AnythingLLMOllama 實現本地GPT步聚: 1 下載 AnythingLLM軟件 AnythingLLM官網地址: Anythi…

功能卓越,未來可期!實在Agent智能體公測圓滿收官

“被需要的智能才是實實在在的智能。”一直以來,實在智能始終堅持從行業本質出發思考如何圍繞客戶需求打造更智能、更普惠的智能體數字員工,切實關注用戶真實的使用體驗與感受。 自2020年7月起,實在智能率先推出第一代實在RPA數字員工&#…

SpringBoot設置默認文件大小

1、問題發現 有個需求,上傳文件的時候,發現提示了這個錯誤,看了一下意思是說,文件超過了1M。 看我們文件的大小: 發現確實是,文件超出了1M,查了一下資料,tomcat默認上傳文件大小為1M…

Python環形數組

在編程中,環形數組(Circular Array)是一種特殊的數組結構,其中最后一個元素連接到第一個元素,形成一個環形。這種結構在某些算法問題中很有用,例如約瑟夫環問題(Josephus Problem)。…

簡單粗暴的翻譯英文pdf

背景:看書的時候經常遇到英文pdf,沒有合適的翻譯軟件可以快速翻譯全書。這里提供一個解決方案。 Step 1 打開英文pdfCTRLA全選文字CTRLC復制打開記事本CTRLV復制保存為data.txt Step 2 寫一個C腳本 // ToolPdf2Html.cpp : 此文件包含 "main&quo…

大型語言模型自我進化綜述

24年4月來自北大的論文“A Survey on Self-Evolution of Large Language Models”。 大語言模型(LLM)在各個領域和智體應用中取得了顯著的進步。 然而,目前從人類或外部模型監督中學習的LLM成本高昂,并且隨著任務復雜性和多樣性的…

子模塊介紹,開發規范說明和工具類封裝

在上一章的內容中&#xff0c;我們完成了聚合工程的搭建以及工程依賴的導入 當然我們會延續上一章的傳統提供一個傳送門給各位&#xff0c;如未完成上一章內容&#xff0c;請點擊左側->傳送門 概述子模塊 上一章我們已經創建了整個聚合工程 該聚合工程有以下子模塊 <…

如何將一個Web應用部署到 Kubernetes 集群

Kubernetes&#xff08;常簡稱為 k8s&#xff09;是一個是一個開源的容器編排平臺&#xff0c;由 Google 設計并捐贈給 Cloud Native Computing Foundation&#xff08;CNCF&#xff09;的開源平臺。它旨在提供一個標準化的容器部署流程&#xff0c;讓部署、擴展和管理應用程序…

C# WinForm —— 18 NumericUpDown 介紹

1. 簡介 數字顯示框&#xff0c;通過向上、向下按鈕來 增加/減小 顯示的數值 2. 常用屬性 屬性解釋(Name)控件ID&#xff0c;在代碼里引用的時候會用到,一般以 numUD 開頭Hexadecimal數值 up-down 控件的值是否應以十六進制顯示Increment每單擊一下按鈕&#xff0c;增加或減…

springboot基本使用十(搭建jpa)

jpa底層是hibernate,(ORM)對象關系映射技術 jpa依賴: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> 配置文件: server:port: 8088Spring:datasou…

音源分離|Music Source Separation in the Waveform Domain

一、文章摘要 本文中&#xff0c;比較了兩種時域結構。首先將最初為語音源分離而開發的卷積tasnet應用于音樂源分離任務。雖然ConvTasnet擊敗了許多現有的頻域方法&#xff0c;但正如人類評估所顯示的那樣&#xff0c;它存在明顯的artifacts。本文提出了一種新的時域模型Demucs…

鴻蒙內核源碼分析 (協處理器篇) | CPU 的好幫手

本篇很重要&#xff0c;對CP15協處理所有16個寄存器一一介紹&#xff0c;可能是全網介紹CP15最全面的一篇&#xff0c;鴻蒙內核的匯編部分(尤其開機啟動)中會使用&#xff0c;熟練掌握后看匯編代碼將如虎添翼。 協處理器 協處理器 (co-processor) 顧名思義是協助主處理器完成…

服務器渲染和客戶端渲染:解析服務器渲染(SSR)和客戶端渲染(CSR)的概念,各自的優點和缺點,并比較如Next.js, Nuxt.js等解決方案

首先從概念上區分&#xff0c;服務器渲染&#xff08;Server-side Rendering&#xff0c;簡稱 SSR&#xff09;和客戶端渲染&#xff08;Client-side Rendering&#xff0c;簡稱 CSR&#xff09;主要的區別在于頁面的渲染地點不同&#xff1a; 服務器渲染&#xff0c;即 SSR&am…

韻搜坊(全棧)-- 前后端初始化

文章目錄 前端初始化后端初始化 前端初始化 使用ant design of vue 組件庫 官網快速上手&#xff1a;https://www.antdv.com/docs/vue/getting-started-cn 安裝腳手架工具 進入cmd $ npm install -g vue/cli # OR $ yarn global add vue/cli創建一個項目 $ vue create ant…

社交媒體數據恢復:默往

如果你在默往社交軟件中丟失了重要的數據&#xff0c;不要著急&#xff0c;以下是一些步驟可以幫助你進行數據恢復&#xff1a; 登錄賬號&#xff1a;首先&#xff0c;你需要登錄默往社交軟件賬號&#xff0c;確保你已經登錄了正確的賬號&#xff0c;因為如果你登錄了錯誤的賬號…