999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于QT的粒子群優化仿真演示軟件設計

2022-05-30 06:15:02王隨蔣培培王善民吉佳紅
電腦知識與技術 2022年29期

王隨 蔣培培 王善民 吉佳紅

摘要:粒子群優化(PSO)算法是一種經典群智能優化算法,為了直觀顯示迭代過程中適應度進化過程和粒子群位置變化趨勢,文章設計了一個基于跨平臺QT的粒子群優化仿真演示軟件,使用圖形化控件支持算法參數編輯和仿真演示。首先介紹了PSO基本原理和算法步驟,然后使用QT控件進行了界面設計,基于QT類進行了算法仿真功能設計和演示功能設計。經過實驗驗證,該軟件支持PSO算法參數編輯,能顯示適應度進化曲線和粒子群位置演變過程,滿足軟件設計的要求。

關鍵詞:QT;PSO;粒子群優化;仿真演示;軟件設計

中圖分類號:TP311 ? ? ?文獻標識碼:A

文章編號:1009-3044(2022)29-0045-04

粒子群優化算法(Particle Swarm Optimization Algorithm,PSO)是由J.Kennedy和R.C.Eberhart[1-2]在1995年提出的一種群智能優化算法。該算法受自然界中鳥群和魚群行為模式啟發,具有結構簡單、收斂速度快、計算量小等特點。經過許多學者研究,PSO目前已在學術領域和工程應用領域得到廣泛應用,例如路徑規劃[3]、資源調度[4]、參數優化[5]、網絡拓撲優化[6]、成本優化[7],成為群智能優化領域的一種經典算法,也是當今研究的熱門問題之一。

本文針對在國產化平臺下進行群智能優化算法仿真驗證和仿真演示的需求,設計了一個基于QT的PSO仿真演示軟件。該軟件能動態顯示每一次迭代后適應度進化曲線變化情況和種群個體位置演變過程。QT是一個開源的跨平臺開發工具,由于其靈活性好、移植性強,目前QT在工程應用和模擬仿真中都得到廣泛使用,例如單片機程序[8]、模擬控制系統[9]。基于QT開發的軟件能方便地移植到國產化平臺下。

1 PSO

在基本PSO中,用粒子群模擬優化問題在搜索空間中的解,用適應度對粒子位置進行評價。每個粒子的位置代表多維搜索空間中一個解。假設搜索空間維數為D,當前粒子位置用[Xti]表示,[Xti]表示含有D個元素的向量,其中i表示第i個粒子,t表示迭代次數。

PSO每次迭代搜索需要計算與更新粒子的速度信息和位置信息。

粒子速度更新公式為:

[Vt+1i=ωVti+c1r1pi-Xti+c2r2pg-Xti] ? ? (1)

粒子位置更新公式為:

[Xt+1i=Xti+Vt+1i] ? ? ? ? ? ? ? ? ? ? ? ? ?(2)

其中,i表示第i個粒子,t表示迭代次數,[Vti]表示第i個粒子在第t次迭代時的速度,[Xti]表示第i個粒子在第t次迭代時的位置。ω表示慣性權重,認知因子c1和社會因子c2統稱為加速系數或學習因子,r1和r2是第t次迭代時生成的[0,1]內均勻分布的隨機數,[pi]表示第i個粒子的歷史最佳位置,[pg]表示全局最佳位置。

粒子速度更新方程中,速度的更新由三部分組成:慣性成分、個體認知成分和社會認知成分。其中慣性成分表示粒子當前運動狀態對速度更新的影響,慣性權重決定慣性衰減程度的快慢,使算法對粒子先前迭代的慣性速度進行自適應調整;個體認知部分表示粒子個體歷史最佳位置對當前速度變化趨勢的指導作用;社會認知部分表示全局最佳個體位置對當前速度變化趨勢的指導作用。學習因子c1和c2分別表示個體認知和社會認知對速度更新影響的比例系數。搜索初期,粒子擁有較大搜索速度,隨著迭代次數增加,慣性速度逐漸減小,表示粒子全局搜索能力減弱,搜索精度提高。

粒子位置更新后,通過適應度函數計算每個粒子的適應度,更新每個粒子的個體歷史最佳位置和全局最佳位置。

控制參數對PSO算法的性能具有極大影響。參數c1和r1表示粒子受個體歷史最優的影響程度,c2和r2表示粒子受全局最優的影響程度。

PSO遇到兩種情況終止搜索:1)迭代次數t達到最大值;2)最佳適應度滿足精度要求。

基本PSO算法流程描述如下:

step 1 初始化。隨機生成粒子種群,包括隨機的位置和速度。

step 2 計算每個粒子適應度,更新全局最優位置和個體歷史最優位置。

step 3 進化迭代。根據式(1)和(2)更新每個粒子的速度和位置。

step 4 終止條件判斷。判斷是否滿足搜索終止條件,若滿足則轉入step5,否則轉入step2。

step 5 迭代終止。輸出結果并結束。

基本PSO算法流程圖如圖1所示。

2 PSO仿真演示軟件設計

2.1 界面設計

Qt是一個跨平臺C++應用程序開發工具,可以快速拖動控件搭建界面生成GUI程序,可視化界面編輯器Qt Designer支持多種控件的選擇與布局。

PSO仿真演示軟件使用Windows qt 5.6.3開發,使用Qt提供的圖形界面控件,包括QLabel控件、QLineEidt控件、QListWidget控件、QComboBox控件、QPushButton控件、QChart控件、QChartView控件和QLayout控件。

通過QLineEidt控件輸入PSO算法參數,包括單次迭代時間,種群規模N,最大迭代次數G,解空間維數Dim,解空間上限U,解空間下限L,學習因子c1,學習因子c2,慣性權重ω,最大速度Vmax,最小速度Vmin;通過QComboBox控件選擇測試函數。通過QListWidget控件顯示操控信息提示和PSO每次迭代后全局最佳適應度結果。通過QChart控件和QChartView控件顯示適應度進化曲線和每次迭代后粒子種群分布情況。通過QLayout控件進行界面布局、控件對齊和控件大小自適應控制。

PSO仿真演示軟件界面如圖2所示。

2.2 算法仿真功能設計

初始化默認的PSO算法參數。程序啟動后在PSO參數編輯界面填入默認的數值,默認數值為PSO算法常用的參數數值。

初始化測試函數選項。選取CEC2017基準測試函數作為算法仿真實驗的測試函數,包括Sphere函數、Schwefel 2.22函數、Schwefel 1.2函數、Schwefel 2.21函數、Rosenbrock函數、Rastrigin函數、Ackley函數、Griewank函數。用QT實現上述基準測試函數數值計算,參數為元素個數可變的數值數組。

點擊軟件界面仿真開始按鈕后,算法仿真實驗開始。算法仿真功能流程如下:

step1:獲取界面輸入參數。同時進行邊界值和異常值檢查。當出現異常值時直接退出算法仿真流程。

step2:初始化PSO參數和測試函數參數。

step3:粒子群初始化位置和速度。采用均勻分布的隨機數生成解空間內的粒子位置和速度。

step4:檢查是否滿足搜索終止條件。若滿足,則轉到step8,否則轉到step5。

step5:依次更新每個粒子速度和位置。先根據式(1)更新粒子速度,當速度大于最大值或小于最小值時,重新設置為最靠近的邊界值;根據式(2)更新粒子位置,同樣判斷粒子每一維的位置信息是否在解空間范圍內,若超出解空間范圍則重新設置為最靠近的邊界值。

step6:依次更新每個粒子歷史最佳位置和適應度。若當前粒子適應度優于該粒子歷史最佳適應度,則更新該粒子歷史最佳位置和適應度,否則不作處理。

step7:更新全局最佳位置和適應度。將上次搜索后的全局最佳適應度與本次搜索每個粒子適應度比較,選出本次搜索全局最佳適應度。將本次搜索獲得的全局最佳適應度加入全局適應度數組中。轉到step4。

step8:PSO結束,輸出最終結果。

其中,粒子位置信息和速度信息用二維數組保存,粒子個體歷史最佳位置用二維數組保存,粒子個體歷史最佳適應度用一維數組保存,全局最佳位置用一維數組保存,全局最佳適應度用一維數組保存。

算法仿真流程step3中,粒子群初始化位置和速度,粒子位置初始化公式為:

[X0i=rand*(U-L)+L] ? ? ? ? ? ? ? ? (3)

粒子速度初始化公式為:

[V0i=rand*(Vmax-Vmin)+Vmin] ? ? ? ? (4)

其中下標i表示第i個粒子,上標0表示第0次迭代為初始化數值,U表示搜索空間上限、L表示搜索空間下限,Vmax表示最大速度、Vmin表示最小速度。

算法仿真功能流程如圖3所示。

2.3 演示功能設計

算法演示功能依托于算法仿真功能,在仿真過程中同步進行數據可視化顯示。在算法仿真實驗運行過程中,每次搜索迭代后更新適應度進化曲線和粒子群分布情況,分別用折線圖和點圖形式顯示。Qt5.6.3提供QChat類用于圖表功能設計和顯示,用QScatterSeries類存儲圖表數據,用QChartView類提供視圖接口和視圖顯示,用QChat類實現圖表的坐標軸范圍、坐標軸刻度、坐標軸網格線、標題、數據類型、顯示類型、數據點樣式等顯示設置。用QChartView類綁定QChat類實現圖表的數據管理和視圖顯示功能。

在算法仿真功能流程的step4中,同步進行存儲數據的圖形化顯示和信息提示,包括適應度進化曲線刷新顯示、粒子群分布情況刷新顯示和結果顯示界面當前迭代結果信息打印顯示。

以一維數組形式存儲的全局最佳適應度信息讀取數組最后一個元素,作為最新一次迭代的全局最佳適應度,寫入到適應度進化曲線的數據存儲QScatterSeries中,同時更新對應的QChartView,實現適應度進化曲線更新顯示。在表示結果顯示的QListWidget控件中,同步打印當前迭代后最佳適應度具體數值結果。

將以二維數組形式存儲的粒子群位置信息取前兩個維度信息形成N個點的二維坐標Pi (xi, yi),其中Pi 表示點,i表示第i個粒子,xi表示橫軸坐標,yi表示縱軸坐標。每次迭代搜索結束后,將粒子群分布情況的數據存儲QScatterSeries中數據清空,并寫入當前迭代后新的二維坐標Pi信息,同時更新對應的QChartView,實現粒子群位置分布情況更新顯示。

為了可觀測算法仿真過程中種群位置動態變化過程,使用QTimer類作為算法迭代定時器,根據界面輸入信息,設置觸發間隔,即每當執行到算法仿真功能流程的step4,會暫停在步驟,直到定時器喚醒才會繼續執行后續判斷和操作。

3 實驗結果與分析

PSO仿真演示軟件啟動后,算法參數編輯框會顯示默認值。設置單次迭代時間、種群規模N、最大迭代次數G、測試函數類型、搜索空間維數Dim、搜索空間上限U、搜索空間下限L、學習因子c1、學習因子c2、慣性權重ω、最大速度Vmax、最小速度Vmin等參數后,點擊仿真開始按鈕,軟件開始進行PSO仿真實驗。

PSO仿真實驗開始后,每次搜索迭代都會根據當前最佳適應度和當前粒子群位置更新軟件右側的適應度進化曲線顯示和粒子群分布情況顯示。

點擊暫停按鈕可以暫停算法仿真實驗,同時暫停按鈕變為繼續按鈕;再次點擊繼續按鈕,仿真實驗繼續上次暫停處運行。點擊終止按鈕可以人為干涉終止算法仿真實驗。

當測試函數為Shpere,搜索空間維數Dim為10,其他參數為默認情況時,進行PSO算法仿真實驗。當迭代次數t分別為1、30、100、200時,粒子種群分布情況如圖4所示。

當迭代次數t達到最大值時算法停止搜索,此時軟件界面和實驗結果如圖5所示。

4 結束語

本文通過Windows QT開發工具,使用QT Designer設計和實現了一個PSO仿真演示軟件。該軟件可以編輯算法控制參數和顯示算法仿真實驗過程中每次迭代后的粒子群分布情況。文中首先介紹了PSO基本原理和步驟,然后描述了界面設計、算法仿真實現流程和動態演示流程,對仿真演示過程進行了詳細說明。最后通過實驗驗證,該PSO仿真演示軟件很好地進行PSO算法仿真和顯示每次迭代搜索后適應度進化曲線和粒子種群分布情況,仿真演示軟件功能待后續進一步增強。

參考文獻:

[1] Kennedy J,Eberhart R.Particle swarm optimization[C]//Proceedings of 1995 IEEE International Conference on Neural Networks.Piscataway,NJ:IEEE Press,2002:1942-1948.

[2] Shi Y,Eberhart R C.Empirical study of particle swarm optimization[C]// Proceedings of the 1999 Congress on Evolutionary Computation.Piscataway,NJ:IEEE Service Center,1999:1945-1950.

[3] 屈新懷,單笛,孟冠軍.基于靠近目標粒子群算法的AGV路徑規劃[J].合肥工業大學學報(自然科學版),2022,45(1):1-6.

[4] 劉俊賢,王宏強,陶新龍.基于改進多目標粒子群優化算法的雷達資源分配方法[J].中國電子科學研究院學報,2022,17(6):549-556,565.

[5] 朱春夢,藍興英.基于粒子群優化算法的化工穩態流程模擬參數優化[J].石油科學通報,2022,7(1):50-60.

[6] 黃紅波,王勇智.基于離散粒子群算法的無線傳感器網絡拓撲優化[J].電腦知識與技術,2021,17(22):10-12.

[7] 董翔逸,邵曉根,管瑞林.基于粒子群算法的家庭能量管理系統成本優化問題[J].電腦知識與技術,2021,17(19):122-124.

[8] 徐敬.基于QT的Mifare IC卡讀卡器上位機軟件設計與實現[J].電腦知識與技術,2021,17(33):124-126.

[9] 許夢華.基于Qt的地面模擬飛行控制系統軟件設計與實現[J].電子測試,2022(1):29-31,101.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 亚洲欧美一区二区三区麻豆| 色综合激情网| 国产产在线精品亚洲aavv| 在线国产毛片手机小视频| 久久综合干| 亚洲乱强伦| 99ri国产在线| 欧美日韩一区二区三| 国产小视频免费观看| 伊人久久精品无码麻豆精品| 国产91丝袜| 午夜a视频| 国产福利免费观看| 色天天综合久久久久综合片| 丰满少妇αⅴ无码区| 国产精品视屏| 无遮挡一级毛片呦女视频| 天天综合网亚洲网站| 国产美女精品一区二区| 欧美国产精品不卡在线观看| 亚洲va视频| 9999在线视频| 尤物成AV人片在线观看| 91蝌蚪视频在线观看| 免费无遮挡AV| igao国产精品| 国产一级小视频| 亚洲九九视频| 国产精品无码影视久久久久久久 | 日本欧美成人免费| 免费看黄片一区二区三区| 国产打屁股免费区网站| 18禁黄无遮挡网站| 欧美中文字幕在线视频| 操操操综合网| 亚洲综合在线最大成人| 欧美日韩专区| 久久99久久无码毛片一区二区| 午夜啪啪网| 国产精品女同一区三区五区 | 9cao视频精品| 中文字幕在线视频免费| 欧美另类精品一区二区三区| 精品人妻一区二区三区蜜桃AⅤ| 日韩精品高清自在线| 国产尹人香蕉综合在线电影| 丁香五月亚洲综合在线| 91麻豆精品国产91久久久久| 老司机精品久久| 精品精品国产高清A毛片| 国产中文一区二区苍井空| 亚洲天堂视频在线播放| 不卡视频国产| 日韩在线播放欧美字幕| 国产免费精彩视频| 99久久精品免费观看国产| 热思思久久免费视频| 最新国产网站| 久久综合亚洲鲁鲁九月天| 亚洲永久色| 伊人色综合久久天天| 欧美日韩中文字幕在线| 日韩A∨精品日韩精品无码| 99久久精品久久久久久婷婷| 2021国产精品自拍| 在线不卡免费视频| 久草青青在线视频| 久久国语对白| 色成人综合| 亚洲精品制服丝袜二区| 国产区福利小视频在线观看尤物| 精品夜恋影院亚洲欧洲| 久久婷婷色综合老司机| 福利姬国产精品一区在线| 国产男人天堂| 欧美日韩在线亚洲国产人| 日韩高清欧美| 麻豆国产原创视频在线播放| 熟女成人国产精品视频| 欧美成人看片一区二区三区 | 在线网站18禁| 在线亚洲精品福利网址导航|