主頁 >  其他 > 智能優化演算法: 基于量子的鴿群優化演算法

智能優化演算法: 基于量子的鴿群優化演算法

2020-11-18 13:21:47 其他

智能優化演算法: 基于混合量子理論的鴿群優化演算法,QPIO

  • 前言
  • 一、創新點
  • 二、鴿群演算法
    • 鴿群演算法原理
      • 地圖和指南針算子(Map/compass operator)
      • 地標算子(LandMark operator)
      • 基本鴿群演算法流程(簡)
    • 實數編碼的量子表示(A real-code quantum representation)
      • 量子旋轉門(Quantum rotation gate, QRG)
  • 三、文章優勢分析
    • 對比實驗
    • 分析

前言

哈嘍,大家好,我是一枚小博士,今天得閑,所以馬不停蹄的給大家更新我疫情期間學習的一篇優化演算法文獻——基于量子的鴿群優化演算法(SCI文章),

一、創新點

這篇文獻的創新點有兩處:一、利用一種實數編碼的量子表達方式對當前迭代中的最優候選解進行重構;二、利用量子旋轉門,更新量子表達,

二、鴿群演算法

鴿群演算法原理

鴿群演算法是由北航教授段海濱等人于2014年提出的一種新的群體智能優化演算法,演算法主要由兩部分組成:地圖和指南針算子和地標算子兩部分,

地圖和指南針算子(Map/compass operator)

地圖和指南針算子是模仿太陽和地球磁場這兩種導航工具對鴿子的作用,鴿子通過磁感來感受磁場,從而在腦海中繪制地圖,并把太陽當作指南針來調整方向,隨著鴿群越來越逼近目的地,會逐步減少對太陽和磁性粒子的依賴,
在此階段,鴿群演算法有點類似于粒子群演算法(PSO),每只鴿子同樣由其位置資訊和速度資訊表示,在這里不做過多的原理性贅述,第 j j j只鴿子在第 t t t代的速度資訊和位置資訊更新策略如下:
V j ( t + 1 ) = V j , s + r a n d ? V j , c ( t ) = e ? R t V j ( t ) + r a n d [ x g b ( t ) ? x j ( t ) ] V_j(t+1)=V_{j,s}+rand*V_{j,c}(t)=e^{-Rt}V_j(t)+rand[x_{gb}(t)-x_j(t)] Vj?(t+1)=Vj,s?+rand?Vj,c?(t)=e?RtVj?(t)+rand[xgb?(t)?xj?(t)]
x j ( t + 1 ) = x j ( t ) + V j ( t + 1 ) x_j(t+1)=x_j(t)+V_j(t+1) xj?(t+1)=xj?(t)+Vj?(t+1)其中, R R R為羅盤算子,其取值為0.2,

地標算子(LandMark operator)

此階段,主要針對演算法的探索能力進行了提升優化,地標算子模仿導航工具地標對鴿子的影響,當鴿群接近目的地時,會依靠臨近地標進行導航,如果某只鴿子熟悉地標,那么以徑直飛向目的地;反之,如果不熟悉地標并且遠離目的地的情況下,該只鴿子會跟隨熟悉地標的其他鴿子飛行,從而到達目的地,
首先對鴿子的適應度值進行排序,然后每次迭代對其種群數量減半,假設中心鴿子熟悉地形,可以直接飛向目的地,其他的鴿子都在中心鴿子的引領下,向著目的地前進,位置更新策略如下:
N p ( t ) = N p ( t ? 1 ) / 2 N_p(t)=N_p(t-1)/2 Np?(t)=Np?(t?1)/2 X c = ∑ X i ( t ) ? f i t n e s s ( X i ( t ) ) N p ∑ f i t n e s s ( X c ( t ) ? X i ( t ? 1 ) ) {X_c} = \frac{{\sum {{X_i}\left( t \right) \cdot fitness\left( {{X_i}\left( t \right)} \right)} }}{{{N_p}\sum {fitness\left( {{X_c}\left( t \right) - {X_i}\left( {t - 1} \right)} \right)} }} Xc?=Np?fitness(Xc?(t)?Xi?(t?1))Xi?(t)?fitness(Xi?(t))? X i ( t ) = X i ( t ? 1 ) + r a n d ? ( X c ( t ) ? X i ( t ? 1 ) ) {X_i}\left( t \right) = {X_i}\left( {t - 1} \right) + rand \cdot \left( {{X_c}\left( t \right) - {X_i}\left( {t - 1} \right)} \right) Xi?(t)=Xi?(t?1)+rand?(Xc?(t)?Xi?(t?1))

基本鴿群演算法流程(簡)

start——
step1:初始化引數與位置資訊;
step2:設定每只鴿子隨機速度和位置資訊,比較每只鴿子的適應度,找出當前最優解;
step3:操作地圖和指南針算子,根據公式(1)(2)對鴿子的位置資訊和速度資訊進行更新,然后比較所有鴿子的適應度,找到新的最優解;
step4:如果迭代次數達到地圖和指南針算子的迭代上限,則停止當前迭代,轉而操作地標算子,否則跳轉至Step3;
step5:根據鴿子的健康值對其進行排序,根據公式(3)(4)(5)操作地標算子,存盤最佳位置以及最優函式值;
step6:判斷迭代次數是否超過迭代上限,若超過,則輸出結果,否則跳轉至Step5,
Output:最優解——end

實數編碼的量子表示(A real-code quantum representation)

一個量子可以通過“0”態和“1”態進行表示,即正態與偽態,量子位狀態被表示為如下: ∣ ψ ? = α ∣ 0 ? + β ∣ 1 ? \left| \psi \right\rangle = \alpha \left| 0 \right\rangle + \beta \left| 1 \right\rangle ψ?=α0?+β1?,其中, α \alpha α β \beta β分別代表兩種狀態的線性概率,且滿足 α i 2 + β i 2 = 1 , ( i = 1 , 2 , ? ? , n ) \alpha _i^2 + \beta _i^2 = 1,\left( {i = 1,2, \cdots ,n} \right) αi2?+βi2?=1,(i=1,2,?,n)在這里最優解被認為是兩個狀態概率的線性疊加,即“0”態和“1”態,最優解的量子表示可以更新為:在這里插入圖片描述
則每只鴿子的收斂方向可以重新被定義為: d j , c = x ^ g ? x j {d_{j,c}} = {\hat x_g} - {x_j} dj,c?=x^g??xj?其中, x ^ g {\hat x_g} x^g?是最有候選解的觀測值,文獻中引入一個復函式 ω ( x , y ) \omega \left( {x,y} \right) ω(x,y),通過計算其概率密度 ∣ ω ( x , y ) ∣ 2 {\left| {\omega \left( {x,y} \right)} \right|^2} ω(x,y)2得到最優候選解得觀測值, ∣ ω ( x i ) ∣ 2 = 1 2 π σ i exp ? ( ? ( x i ? μ i ) 2 2 σ i ) , i = 1 , 2 , ? ? , n {\left| {\omega \left( {{x_i}} \right)} \right|^2} = {1 \over {\sqrt {2\pi } {\sigma _i}}}\exp \left( { - {{{{\left( {{x_i} - {\mu _i}} \right)}^2}} \over {2{\sigma _i}}}} \right),\quad i = 1,2, \cdots ,n ω(xi?)2=2π ?σi?1?exp(?2σi?(xi??μi?)2?),i=1,2,?,n其中, μ i {\mu _i} μi? σ i {\sigma _i} σi?分別代表期望值和標準差,期望值可以用當前最優候選解表示,標準差可以用下式進行計算:在這里插入圖片描述
在這里插入圖片描述
最后,得到當前最優解得觀測值為: x ^ g = r a n d × ∣ ω ( x i ) ∣ 2 × ( x i , max ? ? x i , min ? ) {\hat x_{g}} = rand \times {\left| {\omega \left( {{x_i}} \right)} \right|^2} \times \left( {{x_{i,\max }} - {x_{i,\min }}} \right) x^g?=rand×ω(xi?)2×(xi,max??xi,min?)
綜上所示,第 j j j只鴿子在第 t t t次迭代種得速度更新公式更改為: V j ( t + 1 ) = V j , s + r a n d ? V j , c ( t ) = e ? R t V j ( t ) + d j , c V_j(t+1)=V_{j,s}+rand*V_{j,c}(t)=e^{-Rt}V_j(t)+d_{j,c} Vj?(t+1)=Vj,s?+rand?Vj,c?(t)=e?RtVj?(t)+dj,c?

量子旋轉門(Quantum rotation gate, QRG)

在量子遺傳演算法中,由于量子編碼作用下的染色體不再是單一狀態,遺傳操作不能繼續采用傳統的選擇、交叉、變異操作,繼而采用量子旋轉門作用于量子染色體的基態,使其相互干擾、發生相位變化,從而改變 α i \alpha_i αi?的分布域,
這里同樣使用QRG對最優解的概率幅值進行更新,通過增加旋轉角度,提高 α i \alpha_i αi?的概率幅值,進而提高了個體朝全域最佳解的收斂速度,演算法開始時, α i \alpha_i αi? β i \beta_i βi?所對應的概率幅值均為 2 / 2 \sqrt2 /2 2 ?/2,如果全域最優解在迭代結束之后發生改變,則通過量子旋轉門增加 α i \alpha_i αi?;否則,將概率幅值全部重置為初始值,防止演算法陷入區域最優,QRG具體更新策略如下:
α i ( t + 1 ) = [ cos ? ( Δ θ ) ? sin ? ( Δ θ ) ] [ α i ( t ) 1 ? [ α i ( t ) ] 2 ] {\alpha _i}\left( {t + 1} \right) = \left[ {\cos \left( {\Delta \theta } \right) - \sin \left( {\Delta \theta } \right)} \right]\left[ {{{{\alpha _i}\left( t \right)} \over {\sqrt {1 - {{\left[ {{\alpha _i}\left( t \right)} \right]}^2}} }}} \right] αi?(t+1)=[cos(Δθ)?sin(Δθ)]???1?[αi?(t)]2 ?αi?(t)????在這里插入圖片描述
這里大家對RCQ和QRG還有疑問得地方,可以去看一下這篇文章,https://blog.xupengit.top/index.php/20181210/cid=35.html

三、文章優勢分析

這篇文章得主要賣點在于用最少的個體,表達最多得種群特性,因此,QPIO演算法可以用最小的種群數量解決大規模優化問題,這樣就減少了演算法的時間復雜度

對比實驗

老規矩,使用CEC測驗函式Sphere進行測驗,其中,將種群數量population size都設定為6,觀察對比結果,在這里插入圖片描述

圖1. PIO演算法(population size = 6)

在這里插入圖片描述

圖1. QPIO演算法(population size = 6)

分析

通過對比圖片中的收斂情況,讀者應該有一個直觀的認識,即量子鴿群演算法,可以用最少的種群來解決大規模問題,且具有更加優秀的演算法性能,
這篇文章為SCI一區特刊論文,具有非常強的實用性和可拓展性,可以將此方法RCQ和QRG嫁接至其他群體智能優化演算法上,繼而發表一些高質量論文,

具體Matlab代碼鏈接如下:
https://mianbaoduo.com/o/bread/aZ2ckpw=

前一段時間給大家分享的海鷗演算法(SOA),就可以與這篇文章的思路進行結合,發表一篇SCI文章,我覺得應該是沒問題噠,祝大家識訓滿滿!

具體Matlab代碼鏈接如下:
https://mianbaoduo.com/o/bread/aZqamJc=

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/223932.html

標籤:AI

上一篇:你還在焦慮和迷茫嗎? 請讀讀這些句子吧——

下一篇:微軟 VS Code 重大更新!Jupyter 插件不再是 Python 專屬

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more