本發(fā)明屬于函數(shù)優(yōu)化人工智能技術(shù)領(lǐng)域,具體涉及一種二重迭代多尺度量子諧振子優(yōu)化方法。
背景技術(shù):
隨著計(jì)算機(jī)人工智能的快速發(fā)展,通過云計(jì)算平臺(tái)及大數(shù)據(jù)分析解決的問題越來越多。而在眾多需要云計(jì)算平臺(tái)解決的問題中,常常需要做的是通過收斂的方式求最優(yōu)解,如從一個(gè)地方到另一個(gè)地方用時(shí)最短,能量消耗最低,方案最優(yōu)等,一般來說,任何的問題都可以轉(zhuǎn)換成數(shù)學(xué)目標(biāo)函數(shù),通過求解目標(biāo)函數(shù)的最優(yōu)解從而使問題得到解決。然而,由于求最優(yōu)解的過程需要的計(jì)算量很大,通常需要通過云計(jì)算進(jìn)行解決。
多尺度量子諧振子算法(mqhoa)的完整模型描述最早是在2013年文獻(xiàn)(王鵬,黃焱,任超,郭又銘,多尺度量子諧振子高維函數(shù)全局優(yōu)化算法,電子學(xué)報(bào),2013,12,41(12),2468-2473)中所提出的,文獻(xiàn)中每次迭代需要完成k×m個(gè)采樣點(diǎn)的全局比對(duì),這種全局比對(duì)方法每次需要比對(duì)的采樣點(diǎn)數(shù)較多、計(jì)算效率很低,不能實(shí)現(xiàn)高維優(yōu)化,并且容易由于迭代不充分造成過早收斂。
2016年已公開專利(申請(qǐng)?zhí)枺篶n201610075134.9)和上述文獻(xiàn)中引入能級(jí)穩(wěn)定過程改進(jìn)了mqhoa算法,提出了具有能級(jí)穩(wěn)定過程的mqhoa優(yōu)化算法,這一改進(jìn)大大提高了mqhoa算法的計(jì)算效率,實(shí)現(xiàn)了高維函數(shù)的快速優(yōu)化。但由于其算法過程由三重迭代過程構(gòu)成,同時(shí)每次迭代時(shí)都需要采用算法的能級(jí)下降判據(jù)判斷兩次能級(jí)穩(wěn)定操作之間k個(gè)高斯采樣中心位置的標(biāo)準(zhǔn)差σk之差(δσk=|σk-σk′|)是否小于當(dāng)前尺度,這一做法使算法結(jié)構(gòu)復(fù)雜化,并使算法的計(jì)算效率下降。專利(申請(qǐng)?zhí)枺篶n201710237675.1)雖然提高了算法的并行性,但由于其仍然包含三重迭代過程,基礎(chǔ)算法效率并沒有得到明顯提高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于解決以上現(xiàn)有技術(shù)中存在的技術(shù)問題,提供一種在大規(guī)模計(jì)算機(jī)上可以高效運(yùn)行、運(yùn)算流程精簡、大幅度提高云計(jì)算平臺(tái)計(jì)算效率的二重迭代多尺度量子諧振子優(yōu)化方法。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種二重迭代多尺度量子諧振子優(yōu)化方法,包括步驟:
s101.設(shè)定最小標(biāo)準(zhǔn)差的值σmin,設(shè)定標(biāo)準(zhǔn)差σs的值;在目標(biāo)函數(shù)f(x)的定義域[min,max]內(nèi)隨機(jī)抽取k個(gè)第一隨機(jī)數(shù)xi,即x1,x2,x3,…,xi,…,xk;
s102.將標(biāo)準(zhǔn)差σs和k個(gè)第一隨機(jī)數(shù)xi分別代入正態(tài)分布公式
按照所述正態(tài)分布公式在定義域[min,max]內(nèi)分別生成相應(yīng)的k個(gè)第二隨機(jī)數(shù),即x1’,x2’,x3’,…,xi’,…,xk’;
s103.將所述k個(gè)第一隨機(jī)數(shù)分別代入目標(biāo)函數(shù)f(x)得到k個(gè)第一函數(shù)值,即f(x1),f(x2),f(x3),…,f(xi),…,f(xk);
將所述k個(gè)第二隨機(jī)數(shù)分別代入目標(biāo)函數(shù)f(x)得到k個(gè)第二函數(shù)值,即f(x1’),f(x2'),f(x3'),…,f(xi’),…,f(xk’);
對(duì)于任意xi和xi’,若f(xi’)<f(xi),則將xi的值用xi'的值替換;其中,i=1,2,3,…,k;
s104.將k個(gè)第一函數(shù)值中的最大值f(xworst)的自變量xworst的值,用當(dāng)前k個(gè)xi的平均值xmean進(jìn)行替換;
s105.若當(dāng)前k個(gè)第一隨機(jī)數(shù)的標(biāo)準(zhǔn)差σk大于σs,返回執(zhí)行步驟s102;若σk小于或等于σs,則將標(biāo)準(zhǔn)差σs的值縮小一倍后,執(zhí)行步驟s106;
s106.若σs大于σmin,返回執(zhí)行步驟s102;若σs小于或等于σmin,輸出最優(yōu)解;
其中,k為正整數(shù);i為正整數(shù),1≤i≤k;max為定義域的最大值;min為定義域的最小值。
進(jìn)一步的,所述的二重迭代多尺度量子諧振子優(yōu)化方法,還包括步驟s107;s107.將k個(gè)第一函數(shù)值中的最小值f(xbest)及其自變量xbest作為結(jié)果輸出,得到最優(yōu)解xbest和f(xbest)。
進(jìn)一步的,所述的二重迭代多尺度量子諧振子優(yōu)化方法,所述步驟s101中設(shè)定標(biāo)準(zhǔn)差σs的值為max與min的差值的絕對(duì)值。
本發(fā)明相對(duì)于現(xiàn)有技術(shù)的有益效果是:
1、本發(fā)明將兩次采樣之間對(duì)差解的替換認(rèn)定為能級(jí)穩(wěn)定過程,因此在差解替換后馬上進(jìn)行能級(jí)下降操作將最差坐標(biāo)位置解替換為平均坐標(biāo)位置,這樣就避免了在進(jìn)行能級(jí)穩(wěn)定判斷時(shí)計(jì)算兩次標(biāo)準(zhǔn)差的差值,并去掉了一重迭代循環(huán)過程。
2、本發(fā)明的二重迭代多尺度量子諧振子優(yōu)化方法將mqhao算法的迭代過程由三重迭代減少為二重迭代,不再需要進(jìn)行能級(jí)穩(wěn)定判斷,因此也不用再計(jì)算兩次迭代過程中的標(biāo)準(zhǔn)差的變化,減小了算法的計(jì)算量,從總體上使算法流程變的更為簡潔,實(shí)現(xiàn)更為容易,在進(jìn)行優(yōu)化工作時(shí)計(jì)算時(shí)間明顯減少;從而本發(fā)明的算法流程更為精簡,運(yùn)行效率更高。
3、本發(fā)明與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)化方法減少了一層迭代運(yùn)算,算法流程更精簡,在同樣的時(shí)間內(nèi)該方法可以運(yùn)行的次數(shù)更多,從而顯著提高算法的計(jì)算效率;而且,在每一次迭代的過程中減少了一步判斷兩個(gè)標(biāo)準(zhǔn)差大小的步驟,從而減少了多次重復(fù)計(jì)算標(biāo)準(zhǔn)差的運(yùn)算過程,從而使每一次的迭代運(yùn)算時(shí)間更短;從而本發(fā)明的算法每次運(yùn)行都比現(xiàn)有的算法更為精簡,效率更高;而實(shí)際運(yùn)行時(shí),而實(shí)際的算法在大型計(jì)算機(jī)上,往往要往復(fù)進(jìn)行幾千次甚至上萬次的迭代過程才能求得最優(yōu)解,從而本發(fā)明減少一層迭代運(yùn)算和迭代過程中減少了一步判斷兩個(gè)標(biāo)準(zhǔn)差的步驟,實(shí)際運(yùn)行時(shí)顯著的降低了算法求得最優(yōu)解的時(shí)間,顯著提高了運(yùn)算效率更高,同時(shí)本發(fā)明的優(yōu)化方法求得的最優(yōu)解更為準(zhǔn)確。
具體實(shí)施方式
以下結(jié)合實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的說明,應(yīng)當(dāng)說明的是,以下僅是本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明創(chuàng)造構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些應(yīng)當(dāng)都屬于本發(fā)明的保護(hù)范圍。
實(shí)施例1
一種二重迭代多尺度量子諧振子優(yōu)化方法,包括步驟:
s101.設(shè)定最小標(biāo)準(zhǔn)差的值σmin,設(shè)定標(biāo)準(zhǔn)差σs的值;在目標(biāo)函數(shù)f(x)的定義域[min,max]內(nèi)隨機(jī)抽取k個(gè)第一隨機(jī)數(shù)xi,即x1,x2,x3,…,xi,…,xk;
s102.將標(biāo)準(zhǔn)差σs和k個(gè)第一隨機(jī)數(shù)xi分別代入正態(tài)分布公式
按照所述正態(tài)分布公式在定義域[min,max]內(nèi)分別生成相應(yīng)的k個(gè)第二隨機(jī)數(shù),即x1’,x2’,x3’,…,xi’,…,xk’;
s103.將所述k個(gè)第一隨機(jī)數(shù)分別代入目標(biāo)函數(shù)f(x)得到k個(gè)第一函數(shù)值,即f(x1),f(x2),f(x3),…,f(xi),…,f(xk);
將所述k個(gè)第二隨機(jī)數(shù)分別代入目標(biāo)函數(shù)f(x)得到k個(gè)第二函數(shù)值,即f(x1’),f(x2'),f(x3'),…,f(xi’),…,f(xk’);
對(duì)于任意xi和xi’,若f(xi’)<f(xi),則將xi的值用xi'的值替換;其中,i=1,2,3,…,k;
s104.將k個(gè)第一函數(shù)值中的最大值f(xworst)的自變量xworst的值,用當(dāng)前k個(gè)xi的平均值xmean進(jìn)行替換;
s105.若當(dāng)前k個(gè)第一隨機(jī)數(shù)的標(biāo)準(zhǔn)差σk大于σs,返回執(zhí)行步驟s102;若σk小于或等于σs,則將標(biāo)準(zhǔn)差σs的值縮小一倍后,執(zhí)行步驟s106;
s106.若σs大于σmin,返回執(zhí)行步驟s102;若σs小于或等于σmin,輸出最優(yōu)解;
其中,k為正整數(shù);i為正整數(shù),1≤i≤k;max為定義域的最大值;min為定義域的最小值。
本發(fā)明中,k為正整數(shù);i為正整數(shù),1≤i≤k;max為定義域的最大值;min為定義域的最小值。本發(fā)明的優(yōu)化方法,根據(jù)實(shí)際所要解決的問題,如用時(shí)最短,能量消耗最低,路徑最短等確定數(shù)學(xué)模型目標(biāo)函數(shù)f(x)及其定義域[min,max],根據(jù)實(shí)際所求解問題的實(shí)際情況設(shè)定當(dāng)問題得到解決時(shí)的最小標(biāo)準(zhǔn)差的σmin;根據(jù)實(shí)際情況給標(biāo)準(zhǔn)差σs賦合適的初值。
在定義域[min,max]內(nèi)隨機(jī)抽取k個(gè)第一隨機(jī)數(shù)分別代入目標(biāo)函數(shù)f(x)中;將標(biāo)準(zhǔn)差σs和k個(gè)第一隨機(jī)數(shù)分別代入正態(tài)分布公式中,按照該公式生成相應(yīng)的k個(gè)第二隨機(jī)數(shù)xi’帶入目標(biāo)函數(shù)f(x)中。從而k個(gè)第二隨機(jī)數(shù)xi’,也是k個(gè)正態(tài)采樣中心位置。
為了加快迭代的進(jìn)程,同時(shí)又不影響求解的全面性和準(zhǔn)確性,若當(dāng)前k個(gè)第一隨機(jī)數(shù)的標(biāo)準(zhǔn)差σk大于σs,返回執(zhí)行步驟s102;若σk小于或等于σs,則將標(biāo)準(zhǔn)差σs的值縮小一倍后,執(zhí)行步驟s106;為了加快收斂的速度,同時(shí)又不影響求解的全面性和準(zhǔn)確性,將每次執(zhí)行步驟s105標(biāo)準(zhǔn)差σs縮小一倍,返回步驟102。
進(jìn)一步的,所述的二重迭代多尺度量子諧振子優(yōu)化方法,還包括步驟s107;s107.將k個(gè)第一函數(shù)值中的最小值f(xbest)及其自變量xbest作為結(jié)果輸出,得到最優(yōu)解xbest和f(xbest)。
為了在本發(fā)明的算法運(yùn)行后快捷方便的得到最優(yōu)解,在步驟s106后還包括步驟s107,將最優(yōu)解從k個(gè)第一函數(shù)值中找出,將最小值f(xbest)及其自變量xbest作為結(jié)果輸出,從而更直觀的得到最優(yōu)解xbest和f(xbest)的值。
進(jìn)一步的,所述的二重迭代多尺度量子諧振子優(yōu)化方法,所述步驟s101中設(shè)定標(biāo)準(zhǔn)差σs的值為max與min的差值的絕對(duì)值。
為了保證在迭代的過程中不錯(cuò)過最優(yōu)解,保證求解的準(zhǔn)確性和全面性,本發(fā)明中優(yōu)選地,設(shè)定標(biāo)準(zhǔn)差σs的值為max與min的差值的絕對(duì)值,作為初始值。
實(shí)施例2
本實(shí)施例將實(shí)施例1的本發(fā)明的二重迭代多尺度量子諧振子優(yōu)化方法,以如下的算法流程在計(jì)算機(jī)上運(yùn)行實(shí)驗(yàn)。
算法流程如下:
其中目標(biāo)函數(shù)為f(x),其定義域?yàn)閇min,max];σmin為指定的最小尺度即算法的停止條件;σs為算法當(dāng)前的尺度,其初始值為σs=max-min,隨著迭代的進(jìn)行通過尺度下降操作σs會(huì)以2的倍數(shù)逐步減小到σmin;xi(i=1,2l,k)為算法當(dāng)前的k個(gè)可能解,其同時(shí)也是k個(gè)正態(tài)采樣中心位置,在我們的術(shù)語中這兩個(gè)本質(zhì)是一樣的;σk為當(dāng)前k個(gè)正態(tài)采樣中心位置的標(biāo)準(zhǔn)差;
算法在迭代開始時(shí)首先對(duì)正態(tài)隨機(jī)采樣區(qū)域的個(gè)數(shù)k,當(dāng)前尺度σs和最小尺度σmin進(jìn)行設(shè)定,同時(shí)在定義域內(nèi)隨機(jī)生成k個(gè)隨機(jī)數(shù)xi(i=1,2l,k)作為初始解,k個(gè)當(dāng)前解也同時(shí)是k個(gè)正態(tài)隨機(jī)采樣的中心位置(數(shù)學(xué)期望)。
(1)能級(jí)降低過程
能級(jí)降低過程使算法在當(dāng)前尺度σs下實(shí)現(xiàn)從高能級(jí)向基態(tài)的逐步演化過程,能級(jí)下降操作由兩次采樣之間的差解替換和最差解均值替換組成。具體方法如下:
兩次采樣之間的差解替換:對(duì)所有的k個(gè)采樣中心位置xi分別按正態(tài)隨機(jī)分布
最差解均值替換:兩次采樣之間的差解替換操作后,以當(dāng)前k個(gè)解的平均值xmean替換xi中最差解的位置xworst。
能級(jí)下降過程每次迭代的計(jì)算復(fù)雜度都為k,k的典型大小為10-20左右。算法的能級(jí)下降過程要一直持續(xù)到當(dāng)前k個(gè)解的方差σk小于等于當(dāng)前尺度σs(σk≤σs)時(shí),算法認(rèn)為已達(dá)到尺度σs下的能量基態(tài)(即最低能量狀態(tài)),算法可以執(zhí)行尺度下降操作了。
(2)尺度降低操作
尺度決定了搜索的精度,當(dāng)算法達(dá)到尺度σs下的能量基態(tài)時(shí),尺度降低過程將當(dāng)前尺度減小一倍
對(duì)于高維目標(biāo)函數(shù)的優(yōu)化問題與一維目標(biāo)函數(shù)優(yōu)化問題相似,對(duì)于第i個(gè)d維空間中的一個(gè)高維采樣點(diǎn)(x1i,x2i,lxdi)新解的生成可以分別由d個(gè)一維正態(tài)隨機(jī)分布來生成,即
與現(xiàn)有技術(shù)對(duì)比測(cè)試
本發(fā)明就是重點(diǎn)針對(duì)已公開專利(201610075134.9)的改進(jìn)方法,我對(duì)這兩種方法的計(jì)算結(jié)果進(jìn)行了對(duì)比測(cè)試,測(cè)試函數(shù)為100維的復(fù)雜函數(shù)griewank,表達(dá)式如下:
函數(shù)定義域?yàn)閇-10,10],k=20,σmin=0.000001,兩個(gè)算法都重復(fù)計(jì)算30次取平均。對(duì)比實(shí)驗(yàn)結(jié)果如下(在同一臺(tái)計(jì)算機(jī)(處理器為intel酷睿i5系列)上運(yùn)行進(jìn)行比較):采用已公開專利(201610075134.9)的方法:
30次計(jì)算的平均計(jì)算時(shí)間13.6秒,30次計(jì)算中的最好結(jié)果為6.87e-011。
采用本專利方法:
30次計(jì)算的平均計(jì)算時(shí)間11.7秒,30次計(jì)算中的最好結(jié)果為6.70e-011。
從對(duì)比結(jié)果可以看出,無論從計(jì)算速度和計(jì)算效果上,本專利都優(yōu)于已有方法。
根據(jù)本說明書的記載即可較好的實(shí)現(xiàn)本發(fā)明的技術(shù)方案。