python:五種算法(DBO、WOA、GWO、PSO、GA)求解23個測試函數(python代碼)

一、五種算法簡介

1、蜣螂優化算法DBO

2、鯨魚優化算法WOA

3、灰狼優化算法GWO

4、粒子群優化算法PSO

5、遺傳算法GA

二、5種算法求解23個函數

(1)23個函數簡介

參考文獻:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

(2)部分python代碼

from FunInfo import Get_Functions_details
from WOA import WOA
from GWO import GWO
from PSO import PSO
from GA import GA
from DBO import DBO
import matplotlib.pyplot as plt
from func_plot import func_plot
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#主程序
function_name =8 #測試函數1-23
SearchAgents_no = 50#種群大小
Max_iter = 100#迭代次數
lb,ub,dim,fobj=Get_Functions_details(function_name)#獲取問題信息
BestX1,BestF1,curve1 = WOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#問題求解
BestX2,BestF2,curve2 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#問題求解
BestX3,BestF3,curve3 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#問題求解
BestX4,BestF4,curve4 = GA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#問題求解
BestX5,BestF5,curve5 = DBO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#問題求解
#畫函數圖
func_plot(lb,ub,dim,fobj,function_name)#畫函數圖
#畫收斂曲線圖
Labelstr=['WOA','GWO','PSO','GA','DBO']
Colorstr=['r','g','b','k','c']
if BestF1>0:plt.semilogy(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])plt.semilogy(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])plt.semilogy(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])plt.semilogy(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])plt.semilogy(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])
else:plt.plot(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])plt.plot(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])plt.plot(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])plt.plot(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])plt.plot(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])plt.xlabel("Iteration")
plt.ylabel("Fitness")
plt.xlim(0,Max_iter)
plt.title("F"+str(function_name))
plt.legend()
plt.savefig(str(function_name)+'.png')
plt.show()

(3)部分結果

三、完整python代碼

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

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

相關文章

【小白專用】php執行sql腳本 更新23.12.10

可以使用 PHP 的 mysqli 擴展來執行 SQL 腳本。具體步驟如下: 連接到數據庫;打開 SQL 腳本文件并讀取其中的 SQL 語句;逐條執行 SQL 語句;關閉 SQL 腳本文件;關閉數據庫連接。 以下是通過 mysqli 執行 SQL 腳本的示例…

生產問題: 利用線程Thread預加載數據緩存,其它類全局變量獲取緩存偶發加載不到

生產問題: 利用線程Thread預加載數據緩存偶發加載不到 先上代碼 public class ThreadTest {//本地緩存Map<String, Object> map new HashMap<String, Object>();class ThreadA implements Runnable{Overridepublic void run() {System.out.println("Thread…

RT-Thread學習筆記(六):RT_Thread系統死機日志定位

RT_Thread系統死機日志定位 一、RT_Thread系統死機日志定位二、Cortex-M3 / M4架構知識2.1 Cortex-M3 / M4架構概述2.2 寄存器用途 三、排查步驟 一、RT_Thread系統死機日志定位 RT-Thread 系統發生hardfault死機時&#xff0c;系統默認會打印出一系列寄存器狀態幫助用戶定位死…

XML學習及應用

介紹XML語法及應用 1.XML基礎知識1.1什么是XML語言1.2 XML 和 HTML 之間的差異1.3 XML 用途 2.XML語法2.1基礎語法2.2XML元素2.3 XML屬性2.4XML命名空間 3.XML驗證3.1xml語法驗證3.2自定義驗證3.2.1 XML DTD3.2.2 XML Schema3.2.3PCDATA和CDATA區別3.2.4 參考 1.XML基礎知識 1…

AWR1642 boost開發板支持的TI參考設計

打開radar_toolbox_1_30_00_05\source\ti\examples\examples_overview,通過輸入“1642”查找AWR1642 BOOST支持的參考設計,通過篩選,支持AWR1642 BOOST的參考設計如下: 挑選出兩個參考設計上手,一個是“nonos_oob_16xx",不帶OS;另一個是”short range radar“,比較…

Sbatch, Salloc提交任務相關

salloc 申請計算節點&#xff0c;然后登錄到申請到的計算節點上運行指令&#xff1b; salloc的參數與sbatch相同&#xff0c;該部分先介紹一個簡單的使用案例&#xff1b;隨后介紹一個GPU的使用案例&#xff1b;最后介紹一個跨節點使用案例&#xff1b; 首先是一個簡單的例子&a…

基于Java健身房課程管理系統

基于Java健身房課程管理系統 功能需求 1、課程信息管理&#xff1a;系統需要能夠記錄和管理所有課程的詳細信息&#xff0c;包括課程名稱、教練信息、課程時間、課程地點、課程容量等。管理員和教練可以添加、編輯和刪除課程信息。 2、會員信息管理&#xff1a;系統需要能夠…

無服務器監控工具的演變:提高效率和性能

無服務器計算的興起改變了應用程序的構建和部署方式&#xff0c;提供了無與倫比的可擴展性&#xff0c;減少了基礎設施管理并提高了成本效率。隨著無服務器架構變得越來越流行&#xff0c;對有效監控工具的需求對于確保最佳性能和可靠性變得至關重要。 在本文中&#xff0c;我…

Go開發運維:Go服務發布到K8S集群

目錄 一、實驗 1.Go服務發布到k8s集群 二、問題 1.如何從Harbor拉取鏡像 一、實驗 1.Go服務發布到k8s集群 &#xff08;1&#xff09;linux機器安裝go(基于CentOS 7系統) yum install go -y &#xff08;2&#xff09;查看版本 go version &#xff08;3&#xff09;創…

【參天引擎】華為參天引擎內核架構專欄開始更新了,多主分布式數據庫的特點,類oracle RAC國產數據開始出現了

cantian引擎的介紹 ?專欄內容&#xff1a; 參天引擎內核架構 本專欄一起來聊聊參天引擎內核架構&#xff0c;以及如何實現多機的數據庫節點的多讀多寫&#xff0c;與傳統主備&#xff0c;MPP的區別&#xff0c;技術難點的分析&#xff0c;數據元數據同步&#xff0c;多主節點的…

Python 中 4 個高效的技巧(建議收藏)

今天我想和大家分享 4 個省時的 Python 技巧&#xff0c;可以節省 10~20% 的 Python 執行時間。 反轉列表 Python 中通常有兩種反轉列表的方法&#xff1a;切片或 reverse() 函數調用。這兩種方法都可以反轉列表&#xff0c;但需要注意的是內置函數 reverse() 會更改原始列表…

【數據結構】C語言結構體詳解

目錄 前言 一、結構體的定義 二、定義結構體變量 三、結構體變量的初始化 四、使用typedef聲明新數據類型名 五、指向結構體變量的指針 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1…

做題筆記:SQL Sever 方式做牛客SQL的題目--查詢每天刷題通過數最多的前二名用戶

----查詢每天刷題通過數最多的前二名用戶id和刷題數 現有牛客刷題表questions_pass_record&#xff0c;請查詢每天刷題通過數最多的前二名用戶id和刷題數&#xff0c;輸出按照日期升序排序&#xff0c;查詢返回結果名稱和順序為&#xff1a; date|user_id|pass_count 表單創建…

Spring JDBC和事務管理

Spring JDBC是Spring框架用來處理關系型數據庫的模塊&#xff0c;對JDBC的API進行了封裝。 Spring JDBC的核心類為JdbcTemplate&#xff0c;提供數據CRUD方法 Spring JDBC使用步驟 Maven工程引入依賴spring-jdbc <dependency><groupId>org.springframework<…

springboot 整合nacos

Spring Boot整合Nacos 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我將帶領大家探索一個讓微服務架構更加便捷的利器——Spring Boot整合Nacos。在當今快速發展的互聯網時代&#…

應用安全:JAVA反序列化漏洞之殤

應用安全:JAVA反序列化漏洞之殤 概述 序列化是讓Java對象脫離Java運行環境的一種手段&#xff0c;可以有效的實現多平臺之間的通信、對象持久化存儲。Java 序列化是指把 Java 對象轉換為字節序列的過程便于保存在內存、文件、數據庫中&#xff0c;ObjectOutputStream類的 wri…

MYSQL創建用戶以及解決MYSQL新建數據庫看不到相關數據庫信息的解決方案

MYSQL創建用戶以及解決MYSQL新建數據庫看不到相關數據庫信息的解決方案 首先 我們在root用戶下&#xff0c;創建一個mysql用戶賬戶 如創建一個test用戶 密碼123456 命令如下&#xff1a; CREATE USER ‘test’‘localhost’ IDENTIFIED BY ‘123456’; 創建了一個db1的數據庫 …

唯創知音WTN6040F-8S語音芯片在空氣消毒機中的應用:提升用戶體驗與健康保障

在現代生活中&#xff0c;空氣質量成為人們越來越關注的問題。空氣消毒機作為一種能夠凈化空氣、殺滅病毒細菌的設備&#xff0c;受到了廣大消費者的青睞。然而&#xff0c;對于很多用戶來說&#xff0c;操作空氣消毒機可能存在一定的困惑和不便。為了解決這一問題&#xff0c;…

對Spring源碼的學習:Bean實例化流程

目錄 SpringBean實例化流程 Spring的后處理器 Bean工廠后處理器 Bean后處理器 SpringBean實例化流程 Spring容器在進行初始化時&#xff0c;會將xml配置的<bean>的信息封裝成一個BeanDefinition對象&#xff0c;所有的BeanDefinition存儲到一個名為beanDefinitionMa…

Docker容器的可視化管理工具—DockerUI本地部署與遠程訪問

文章目錄 前言1. 安裝部署DockerUI2. 安裝cpolar內網穿透3. 配置DockerUI公網訪問地址4. 公網遠程訪問DockerUI5. 固定DockerUI公網地址 前言 DockerUI是一個docker容器鏡像的可視化圖形化管理工具。DockerUI可以用來輕松構建、管理和維護docker環境。它是完全開源且免費的。基…