本發(fā)明涉及電力領域,尤其涉及一種蟻群尋優(yōu)方法及裝置。
背景技術:
近些年來,智能算法得到了較快的發(fā)展,該類算法具有良好的全局尋優(yōu)能力,并且適用于大規(guī)模的計算。其中蟻群算法是應用比較廣泛的一種算法。
蟻群中的螞蟻對網(wǎng)絡拓撲結構尋優(yōu)的過程中,螞蟻會通過網(wǎng)絡拓撲結構中的“信息素”選擇路徑,一般某支路上的信息素濃度越高,選擇該支路的螞蟻數(shù)量越多,通過螞蟻不斷尋優(yōu)的過程,最終在網(wǎng)絡拓撲結構中找到最優(yōu)解,該最優(yōu)解可以是最短路徑或者是最符合條件的網(wǎng)絡拓撲結構。
但是,隨著計算復雜程度的增加,螞蟻的數(shù)量要求越來越多,而隨著螞蟻數(shù)量的增加,蟻群算法的計算速度越來越慢。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例公開了一種蟻群尋優(yōu)方法及裝置,通過該不斷削減蟻群中螞蟻數(shù)量的方法,提高了蟻群算法尋優(yōu)的運算效率。
本發(fā)明實施例提供了一種蟻群尋優(yōu)方法,該方法包括:
一種蟻群尋優(yōu)方法,其特征在于,包括:
依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解;
依據(jù)所述當前目標解和歷史全局最優(yōu)解,獲得當前全局最優(yōu)解;
依據(jù)所述當前目標解和預設的削減速率,計算削減因子;
依據(jù)所述削減因子削減所述目標蟻群中螞蟻的數(shù)量
判斷所述目標蟻群中螞蟻的數(shù)量是否達到了預設的閾值;
若所述目標蟻群中螞蟻的數(shù)量未達到預設的閾值,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解。
可選的,在依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的拓撲結構中尋找當前目標解,之前還包括:
設置所述目標蟻群中螞蟻的數(shù)量、設置最大迭代次數(shù)和初始化所述待尋優(yōu)的網(wǎng)絡拓撲結構中每個支路上信息素的值。
可選的,還包括:
若所述目標蟻群中螞蟻的數(shù)量達到了預設的閾值,判斷是否達到了所述最大的迭代次數(shù);
若未達到預設的迭代次數(shù),增加所述待尋優(yōu)的網(wǎng)絡拓撲結構中的每條支路上信息素的值,并重新設置目標蟻群中螞蟻的數(shù)量,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在所述待尋優(yōu)的網(wǎng)絡拓撲結構中尋找目標解;
若達到了預設的迭代次數(shù),輸出所述當前全局最優(yōu)解。
可選的,所述依據(jù)所述當前目標解和預設的削減速率,計算削減因子,包括:
計算相似變量比;其中所述相似變量比為目標蟻群中找到相同目標解的螞蟻數(shù)量的最大值占所述目標蟻群中螞蟻數(shù)量的比例;
依據(jù)所述相似變量比和預設的削減速率計算削減因子。
獲取待尋優(yōu)的所述網(wǎng)絡拓撲結構中每條支路上的信息素的最大值,得到信息素積累要素;
在預設的隨機范圍中,獲取一個隨機值作為信息素增大倍數(shù);
依據(jù)所述信息素增大倍數(shù)增大所述信息素累計因子,得到信息素積累因子;
將所述信息素積累因子累加到所述網(wǎng)絡拓撲結構中的每條支路上。可選的,還包括:
基于預設的揮發(fā)規(guī)則,減少所述待尋優(yōu)的饋線網(wǎng)絡中每條支路上的信息素的值;
依據(jù)全局最優(yōu)網(wǎng)損,對所述全局最優(yōu)解所在的支路進行信息素的修正。
可選的,當所述方法應用于配電網(wǎng)重構時,所述待尋優(yōu)的網(wǎng)絡拓撲結構為待尋優(yōu)的饋線網(wǎng)絡拓撲結構;
所述最優(yōu)解為最小網(wǎng)損。
可選的,還包括:
所述待尋優(yōu)的饋線網(wǎng)絡拓撲結構為單饋線網(wǎng)絡拓撲結構。
本發(fā)明實施例還提供了一種蟻群尋優(yōu)裝置,該裝置包括:
尋優(yōu)單元,用于依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解;
全局最優(yōu)解獲得單元,用于依據(jù)所述當前目標解和歷史全局最優(yōu)解,獲得當前全局最優(yōu)解;
計算單元,用于依據(jù)所述當前目標解和預設的削減速率,計算削減因子;
削減單元,用于依據(jù)所述削減因子削減所述目標蟻群中螞蟻的數(shù)量
第一判斷單元,用于判斷所述目標蟻群中螞蟻的數(shù)量是否達到了預設的閾值;
第一返回單元,用于若所述目標蟻群中螞蟻的數(shù)量未達到預設的閾值,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解。
可選的,該裝置還包括:
第二判斷單元用于若所述目標蟻群中螞蟻的數(shù)量達到了預設的閾值,判斷是否達到了所述最大的迭代次數(shù);
信息素增加單元,用于若未達到預設的迭代次數(shù),增加所述待尋優(yōu)的網(wǎng)絡拓撲結構中的每條支路上信息素的值,并重新設置目標蟻群中螞蟻的數(shù)量,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在所述待尋優(yōu)的網(wǎng)絡拓撲結構中尋找目標解;
輸出單元,用于若達到了預設的迭代次數(shù),輸出所述當前全局最優(yōu)解。
可選的,所述計算單元,包括:
相似變量比計算子單元,用于計算相似變量比;其中所述相似變量比為目標蟻群中找到相同目標解的螞蟻數(shù)量的最大值占所述目標蟻群中螞蟻數(shù)量的比例;
削減因子計算子單元,用于依據(jù)所述相似變量比和預設的削減速率計算削減因子。
本發(fā)明實施例中,在通過預設的蟻群算法和目標蟻群對待尋優(yōu)的網(wǎng)絡拓撲結構尋優(yōu)的過程中,通過計算目標蟻群中找到相同目標解的螞蟻數(shù)量的最大值占所述目標蟻群中螞蟻數(shù)量的比例,得到相似變量比,通過相似變量比和預設的削減速率得到削減因子,并依據(jù)該削減因子削減目標蟻群中螞蟻的數(shù)量。這樣隨著迭代次數(shù)的增多,算法越來越收斂時,慢慢減少蟻群中螞蟻的數(shù)量,提高了運算速度。當目標蟻群中螞蟻的數(shù)量削減到預設的閾值時,修正待尋優(yōu)的網(wǎng)絡拓撲結構中的每條支路信息素的值,重新設置目標蟻群中螞蟻的數(shù)量,并有方向性的對待尋優(yōu)的網(wǎng)絡拓撲結果進行新一輪的尋優(yōu)。通過增加待尋優(yōu)的網(wǎng)絡拓撲結構中每條支路上信息素的值,使蟻群尋優(yōu)的過程中避免陷入局部最優(yōu),增加信息素少的支路被選中的概率,增大了得到全局最優(yōu)解的概率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1示出了本發(fā)明實施例1提供的一種蟻群尋優(yōu)方法的流程示意圖;
圖2示出了發(fā)明實施例2提供的一種蟻群尋優(yōu)方法的流程示意圖;
圖3示出了單饋線網(wǎng)絡的示意圖;
圖4示出了不同削減速率蟻群中螞蟻數(shù)量的削減情況示意圖;
圖5示出了本發(fā)明實施例提供的一種蟻群尋優(yōu)裝置的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參考圖1,示出了本發(fā)明實施例1提供的一種蟻群尋優(yōu)方法的流程示意圖,在本實施例中,該方法包括:
s101:依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解;
需要說明的是,在執(zhí)行s101之前,還包括設置目標蟻群中螞蟻的數(shù)量、最大迭代次數(shù)、信息素揮發(fā)系數(shù)并初始化待尋優(yōu)的網(wǎng)絡拓撲結構中每個支路上的信息素的值。除此之外,還需要設置信息啟發(fā)因子、期望啟發(fā)因子等。其中,在s101之前執(zhí)行的該過程可以表示為初始化過程。
本實施例中,蟻群算法包括多種方法,預設的蟻群算法可以是根據(jù)實際需要選擇的其中任意一種算法。本實施例中,以經(jīng)典蟻群算法為例說明,但是不僅僅限于經(jīng)典蟻群算法。
本實施例中的方案可以用于尋找最短路徑或者尋找最優(yōu)的網(wǎng)絡拓撲結構等,可以應用于通信、電力等諸多領域。
本實施例中,若是執(zhí)行第一次迭代,即第一次執(zhí)行s101的步驟,則目標蟻群中螞蟻的數(shù)量為初始化時設置的,各支路上信息素的值也為初始化時設置的。若不是第一次迭代,則目標蟻群中螞蟻的數(shù)量為經(jīng)過更新后的螞蟻的數(shù)量,各支路上信息素的值為經(jīng)過更新后的信息素的值。
本實施例中,每執(zhí)行一次s101,各支路上信息素的值都會更新,隨著迭代次數(shù)的增加,各支路上信息素的值會不斷揮發(fā),一般情況下,對信息素進行更新時,是將所有螞蟻經(jīng)過的支路上的信息素累加起來作為修正量,并通過該修正量更新各支路上的信息素,但是通過該種方法,不利于尋找最優(yōu)解,為了提高尋找到最優(yōu)解的效率,可以增加得到最優(yōu)解的支路上的信息素,具體的,包括:
基于預設的揮發(fā)規(guī)則,對待尋優(yōu)的饋線網(wǎng)絡中每條支路上的信息素執(zhí)行揮發(fā)操作;
依據(jù)全局最優(yōu)解,對全局最優(yōu)解所在的支路進行信息素的修正。
本實施例中,預設的揮發(fā)規(guī)則可以是經(jīng)典蟻群算法中的對信息素的揮發(fā)算法,每迭代一次后,各支路都需要執(zhí)行該揮發(fā)算法對信息素進行更新。但是,對于得到全局最小網(wǎng)損的支路,可以依據(jù)該最小網(wǎng)損進行修正。
其中,可以通過以下公式5)對各支路上的信息素進行修正:
其中,ρ表示信息素揮發(fā)程度,通常ρ<1,
其中,q為一常數(shù),fbest=minploss,ploss為本次迭代得到的全局最優(yōu)解。
s102:依據(jù)當前目標解和歷史全局最優(yōu)解,獲得當前全局最優(yōu)解;
需要說明的是,歷史全局最優(yōu)解是在執(zhí)行本次迭代之前,得到的全局最優(yōu)解,或者可以理解為,歷史全局最優(yōu)解為上次迭代得到的全局最優(yōu)解。
本實施例中,比較本次迭代得到的當前目標解和歷史全局最優(yōu)解,找到最符合預設條件的解作為當前全局最優(yōu)解。
舉例說明:經(jīng)過了第一次迭代后,目標蟻群中的每只螞蟻都尋找到了一個當前目標解,假設最終的全局最優(yōu)解為每次迭代得到的目標解中的最小值,將第一次迭代得到的目標解進行比較,將最小的目標解作為本次迭代得到的最優(yōu)解。經(jīng)過第二次迭代后,得到第二次迭代的目標解,對第二次迭代得到的目標解進行比較,得到其中最小的目標解,并將第二次迭代后得到的最小的目標解與上次迭代得到的歷史最優(yōu)解進行比較,并將二者中的較小值作為當前全局最優(yōu)解;其中,相對于第二次迭代來說,第一次迭代得到的全局最優(yōu)解即為歷史全局最優(yōu)解。
具體的,s102包括:
根據(jù)本次迭代得到的目標解和上次迭代得到的全局最優(yōu)解進行比較;
將符合預設條件的解作為本次迭代的全局最優(yōu)解。
s103:計算相似變量比;其中相似變量比為目標蟻群中找到相同目標解的螞蟻數(shù)量的最大值占本次迭代時目標蟻群中螞蟻數(shù)量的比例;
本實施例中,每執(zhí)行一次s101的步驟,目標蟻群中的每只螞蟻都會尋找到一個目標解,并且,可能會出現(xiàn)同一個目標解由不同的螞蟻找到的情況。
舉例說明:假設本次迭代是第t次迭代,第t次迭代時蟻群中螞蟻的數(shù)量假設為mn(t),假設第t次迭代時,蟻群中的螞蟻根據(jù)本次迭代時的信息素找到的拓撲結構包括:l1(t)…ln(t),每一個拓撲結構對應一個目標解,找到這些拓撲結構的螞蟻數(shù)量分別是m1(t)…mn(t),其中,找到相同拓撲結構螞蟻數(shù)量的最大值為ax(t)=max{m1(t)…mn(t)}。假設,相似變量為為φ(t),則,相似變量比如公式1所示:
s104:依據(jù)相似變量比和預設的削減速率計算削減因子;
舉例說明:假設本次迭代為第t次迭代,削減因子表示為λ,削減速率表示為a,削減因子可以通過如下公式2)獲得:
2)λ=-aφ(t)+a;其中a為常數(shù)。
s105:根據(jù)得到的削減因子削減目標蟻群中螞蟻的數(shù)量;
舉例說明:假設本次迭代為第t次迭代,mn(t+1)為削減后的目標蟻群中螞蟻的數(shù)量,mn(t)為本次迭代時目標蟻群中螞蟻的數(shù)量,則削減后的目標蟻群中螞蟻的數(shù)量可通過以下的公式3)表示:
3)mn(t+1)=λ·mn(t);
需要說明的是,削減速率越小,螞蟻數(shù)量削減的越慢,不需要頻繁的重置螞蟻數(shù)量,即不需要頻繁的執(zhí)行s107,計算速度越快,但是找到全局最優(yōu)解的概率相對較低;削減速率越高、螞蟻數(shù)量的削減速度越快,需要頻繁的重置螞蟻數(shù)量,計算速度會減低,找到最優(yōu)解的概率也就越高。
s106:判斷所述目標蟻群中螞蟻的數(shù)量是否達到了預設的閾值;
s107:若目標蟻群中螞蟻的數(shù)量未達到預設的閾值,返回執(zhí)行s101。
本實施例中,在初始階段,由于各支路上信息素分布均勻,目標蟻群中的螞蟻找到相同目標解的概率較低,此時相似變量比的值比較小,削減因子較大,隨著迭代次數(shù)的增多,信息素不斷更新,目標蟻群中的螞蟻找到相同目標解的概率較高,此時相似變量比的值變大,削減因子變小,目標蟻群中螞蟻的數(shù)量不斷減少。
本實施例中,當相似變量比較小時,說明算法收斂程度較低,此時目標蟻群中螞蟻數(shù)量減少的相對較慢,當相似變量比越來越大時,說明算法的收斂程度越來越高,目標蟻群中螞蟻的數(shù)量越來越少,當目標蟻群中螞蟻的數(shù)量減小到預設的閾值時,表明得到了全局最優(yōu)解或者局部最優(yōu)解。
本實施例中,重復執(zhí)行s01~s106的步驟,每執(zhí)行一次s01~s106的步驟,即每迭代一次,目標蟻群中螞蟻的數(shù)量都會減少,直到減少到預設的閾值,跳轉(zhuǎn)到執(zhí)行s108的步驟。
s108:當目標蟻群中螞蟻的數(shù)量達到了預設的閾值時,判斷是否到了最大的迭代次數(shù);
s109:若未達到最大的迭代次數(shù),增加所述待尋優(yōu)的網(wǎng)絡拓撲結構中的每條支路信息素的值,并重新設置目標蟻群中螞蟻的數(shù)量,返回執(zhí)行s101;
本實施例中,目標蟻群中的螞蟻的數(shù)量削減到預設的閾值時,得到的最優(yōu)解可能是全局最優(yōu)解也有可能是局部最優(yōu)解,但是此時,尋找到的該最優(yōu)解的支路上信息素的濃度很高,目標蟻群中的螞蟻很難跳出去尋找新的目標解,因此可以通過增加各個支路上信息素的濃度,提高螞蟻尋找其它目標解的概率。
具體的,s109包括:
獲取待尋優(yōu)的所述網(wǎng)絡拓撲結構中每條支路上的信息素的最大值,得到信息素積累要素;
在預設的隨機范圍中,獲取一個隨機值作為信息素增大倍數(shù);
計算所述隨機值和所述積累要素的乘機,得到積累因子;
將所述積累因子累加到所述網(wǎng)絡拓撲結構中的每條支路上。
舉例說明:假設該信息素的最大值為δτmax(t),對每一條支路進行信息素累加的公式可以通過以下的公式4)表示:
4)τij(t+n)=τij(t)+θ·δτmax(t);
其中,τmax(t)為信息素積累要素,δτmax(t)=max{τij(t)},θ為信息素增大的倍數(shù),θ的值是在一個隨機的范圍中隨機選取的,θ·δτmax(t)表示信息素積累因子。
其中,累加之后各支路的信息素不完全相同,相當于為新一輪蟻群算法進行了方向引導,其中θ代表了引導程度。
s110:若達到了預設的迭代次數(shù),輸出所述當前全局最優(yōu)解。
本實施例中,在蟻群尋優(yōu)的過程中,通過計算得到的削減因子不斷的削減目標蟻群中螞蟻的數(shù)量,提高了運算的效率。在蟻群中螞蟻數(shù)量削減到預設的閾值時,重新設置蟻群中螞蟻的數(shù)量,并增加每條支路信息素的值,使蟻群尋優(yōu)的過程中,避免陷入局部最優(yōu)解,增加信息素少的支路被選中的概率,增大得到全局最優(yōu)解的概率。
參考圖2,示出了本發(fā)明實施例2提供的一種蟻群尋優(yōu)方法的流程示意圖,在本實施例中,該方法應用于配電網(wǎng)重構,該方法包括:
s201:依據(jù)預設的蟻群算法和目標蟻群對待尋優(yōu)的饋線網(wǎng)絡拓撲結構進行尋優(yōu),得到目標支路;
需要說明的是,該待尋優(yōu)的饋線網(wǎng)絡拓撲結構為單饋線網(wǎng)絡拓撲結構,但是一般情況下,配電網(wǎng)重構的饋線網(wǎng)絡為多饋線網(wǎng)絡,但是由于多饋線網(wǎng)絡結構復雜、電源節(jié)點眾多,不利于蟻群尋優(yōu),因此,為了方便蟻群尋優(yōu),可以將多饋線網(wǎng)絡拓撲結構轉(zhuǎn)換為單饋線網(wǎng)絡拓撲結構。
本實施例中,如圖3所示,為一單饋線網(wǎng)絡拓撲結構,其中①②③④⑤⑥⑦,為該單饋線網(wǎng)絡拓撲結構中的7條支路,蟻群尋優(yōu)的過程,就是從這些支路中找到一條包括所有的節(jié)點,但是不包含環(huán)路的網(wǎng)絡拓撲結構。
需要說明的是,預設的蟻群算法可以是經(jīng)典蟻群算法。
其中,在執(zhí)行s201之前,還需要設置目標蟻群中螞蟻數(shù)量,最大的迭代次數(shù),以及初始化每條支路上的信息素的值。
本實施例中,每執(zhí)行一次s201,各支路上信息素的值都會更新,隨著迭代次數(shù)的增加,各支路上信息素的值會不斷揮發(fā),一般情況下,對信息素進行更新時,是將所有螞蟻經(jīng)過的支路上的信息素累加起來作為修正量,并通過該修正量更新各支路上的信息素,但是通過該種方法,不利于尋找最優(yōu)解,為了提高尋找到最優(yōu)解的效率,可以增加得到最優(yōu)解的支路上的信息素,具體的,包括:
基于預設的揮發(fā)規(guī)則,對待尋優(yōu)的饋線網(wǎng)絡中每條支路上的信息素執(zhí)行揮發(fā)操作;
依據(jù)全局最小網(wǎng)損,對全局最小網(wǎng)損所在的支路進行信息素的修正。
本實施例中,預設的揮發(fā)規(guī)則可以是經(jīng)典蟻群算法中的對信息素的揮發(fā)算法,每迭代一次后,各支路都需要執(zhí)行該揮發(fā)算法對信息素進行更新。但是,對于得到全局最小網(wǎng)損的支路,可以依據(jù)該最小網(wǎng)損進行修正。
其中,可以通過以下公式5)對各支路上的信息素進行修正:
其中,ρ表示信息素揮發(fā)程度,通常ρ<1,
其中,q為一常數(shù),fbest=minploss,ploss為本次迭代得到的最小網(wǎng)損。
s202:計算每條當前目標支路的網(wǎng)損,并依據(jù)當前目標支路的網(wǎng)損及歷史全局最小網(wǎng)損,得到當前全局最小網(wǎng)損;
本實施例中,可以通過潮流計算的方法計算每條支路上的網(wǎng)損。
每次迭代后,目標蟻群中的螞蟻都會得到一個目標支路,每個目標支路都可以計算得到一個網(wǎng)損,若是執(zhí)行第一次迭代,比較得到的每個支路的網(wǎng)損,得到最小的網(wǎng)損,并將該最小的網(wǎng)損作為全局最優(yōu)網(wǎng)損,執(zhí)行第二次迭代后,比較第二次得到的每個支路的網(wǎng)損,得到第二次迭代的最小的網(wǎng)損,并將第二次得到的最小網(wǎng)損與上次迭代得到的全局最小網(wǎng)損進行比較,將二者中較小的網(wǎng)損作為當前全局最小網(wǎng)損。
s203:計算相似變量比;其中相似變量比為目標蟻群中找到相同支路的螞蟻數(shù)量的最大值占目標蟻群中螞蟻數(shù)量的比例;
本實施例中,相似變量比的計算方法和實施例1中s103的方法是一致的,在這里就不再贅述。
s204:依據(jù)相似變量比和預設的削減速率計算削減因子;
本實施例中s204的步驟和實施例1中s104的步驟是一致的,在這里不再贅述。
本實施例中,不同的削減速率影響削減幅度,如圖4所示,削減速率越大,則螞蟻數(shù)量削減的速度越快。
在本實施例中,削減因子可以通過以下的公式7)表示:
7)λ=-aφ(t)+a;
其中,為了方便用戶查看公式7)中的參數(shù)可以設置為:a=2,0<a<2;且由于0≤φ(t)≤1,則0<λ≤1。
s205:根據(jù)削減因子削減目標蟻群中螞蟻的數(shù)量;
需要說明的是,削減速率越小,螞蟻數(shù)量削減的越慢,計算速度越快,并且不需要頻繁的重置螞蟻數(shù)量,即需要頻繁的執(zhí)行s207,但是找到全局最優(yōu)解的概率相對較低;削減速率越高、螞蟻數(shù)量的削減速度越快,計算速度會減低,但是需要頻繁的重置螞蟻數(shù)量,找到最優(yōu)解的概率也就越高。
s206:判斷所述目標蟻群中螞蟻的數(shù)量是否達到了預設的閾值;
s207:若目標蟻群中螞蟻的數(shù)量未達到預設的閾值,返回執(zhí)行s201。
本實施例中,在初始階段,由于各支路上信息素分布均勻,目標蟻群中的螞蟻找到相同目標解的概率較低,此時相似變量比的值比較小,削減因子較大,隨著迭代次數(shù)的增多,信息素不斷更新,目標蟻群中的螞蟻找到相同目標解的概率較高,此時相似變量比的值變大,削減因子變小,目標蟻群中螞蟻的數(shù)量不斷減少。
本實施例中,當相似變量比較小時,說明算法收斂程度較低,此時目標蟻群中螞蟻數(shù)量減少的相對較慢,當相似變量比越來越大時,說明算法的收斂程度越來越高,目標蟻群中螞蟻的數(shù)量越來越少,當目標蟻群中螞蟻的數(shù)量減小到預設的閾值時,表明得到了全局最小網(wǎng)損或者局部最小網(wǎng)損。
本實施例中,重復執(zhí)行s201~s206的步驟,每執(zhí)行一次s201~s206的步驟,即每迭代一次,目標蟻群中螞蟻的數(shù)量都會減少,直到減少到預設的閾值,跳轉(zhuǎn)到執(zhí)行s208的步驟。
本實施例中,預設的閾值可以為1。
s208:當目標蟻群中螞蟻的數(shù)量達到了預設的閾值時,判斷是否到了預設迭代次數(shù);
s209:若未達到預設的迭代次數(shù),對該待尋優(yōu)的饋線網(wǎng)絡拓撲結構中每條支路進行信息素的累加,重新設置目標蟻群中螞蟻的數(shù)量,并返回執(zhí)行s201;
本實施例中,目標蟻群中的螞蟻數(shù)量削減到預設的閾值時,得到的最小網(wǎng)損可能是全局最小網(wǎng)損也可能是局部最小網(wǎng)損,但是此時,尋找到的該最優(yōu)解的支路上信息素的濃度很高,目標蟻群中的螞蟻很難跳出去尋找新的目標支路,因此可以通過增加各支路上信息素的濃度,提高螞蟻尋找其它支路的概率。
具體的,s209包括:
獲取待尋優(yōu)的饋線網(wǎng)絡中每條支路上的信息素的最大值,得到信息素積累要素;
在預設的隨機范圍中,獲取一個隨機值作為信息素增大倍數(shù);
計算所述隨機值和所述積累要素的乘機,得到積累因子;
將所述積累因子累加到所述網(wǎng)絡拓撲結構中的每條支路上。
舉例說明:假設該信息素的最大值為δτmax(t),對每一條支路進行信息素累加的公式可以通過以下的公式4)表示:
4)τij(t+n)=τij(t)+θ·δτmax(t);
其中,τmax(t)為信息素積累要素,δτmax(t)=max{τij(t)},θ為信息素增大的倍數(shù),θ的值是在一個隨機的范圍中隨機選取的,θ·δτmax(t)表示信息素積累因子。
其中,累加之后各支路的信息素不完全相同,相當于為新一輪蟻群算法進行了方向引導,其中θ代表了引導程度。
需要說明的是,重新設置的蟻群中螞蟻的數(shù)量可以是與初始化時設置為一樣的數(shù)值,也可以是不一樣的,具體根據(jù)實際需要進行設置。
s210:當達到所述最大的迭代次數(shù)時,輸出當前全局最小網(wǎng)損。
本實施例中,采用蟻群算法在配電網(wǎng)重構的饋線網(wǎng)絡拓撲結構中尋優(yōu)時,通過計算得到的削減因子不斷的削減目標蟻群中螞蟻的數(shù)量,提高了運算的效率。在蟻群中螞蟻數(shù)量削減到預設的閾值時,重新設置蟻群中螞蟻的數(shù)量,并增加每條支路信息素的值,使蟻群尋優(yōu)的過程中,跳出局部最優(yōu),增大得到全局最小網(wǎng)損的概率。
參考圖5,示出了本發(fā)明實施例還提供了一種蟻群尋優(yōu)裝置的結構示意圖,該裝置包括:
尋優(yōu)單元401,用于依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解;
全局最優(yōu)解獲得單元402,用于依據(jù)所述當前目標解和歷史全局最優(yōu)解,獲得當前全局最優(yōu)解;
計算單元403,用于依據(jù)所述當前目標解和預設的削減速率,計算削減因子;
削減單元404,用于依據(jù)所述削減因子削減所述目標蟻群中螞蟻的數(shù)量
第一判斷單元405,用于判斷所述目標蟻群中螞蟻的數(shù)量是否達到了預設的閾值;
第一返回單元406,用于若所述目標蟻群中螞蟻的數(shù)量未達到預設的閾值,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在待尋優(yōu)的網(wǎng)絡拓撲結構中尋找當前目標解。
可選的,該裝置還包括:
第二判斷單407,用于若所述目標蟻群中螞蟻的數(shù)量達到了預設的閾值,判斷是否達到了所述最大的迭代次數(shù);
信息素增加單元408,用于若未達到預設的迭代次數(shù),增加所述待尋優(yōu)的網(wǎng)絡拓撲結構中的每條支路上信息素的值,并重新設置目標蟻群中螞蟻的數(shù)量,返回執(zhí)行所述依據(jù)預設的蟻群算法和目標蟻群,在所述待尋優(yōu)的網(wǎng)絡拓撲結構中尋找目標解;
輸出單元409,用于若達到了預設的迭代次數(shù),輸出所述當前全局最優(yōu)解。
可選的,還包括:
初始化單元,用于設置所述目標蟻群中螞蟻的數(shù)量、最大迭代次數(shù)、信息素揮發(fā)系數(shù)并初始化所述待尋優(yōu)的網(wǎng)絡拓撲結構中每個支路上信息素的值。
可選的,所述計算單元,包括:
相似變量比計算子單元,用于計算相似變量比;其中所述相似變量比為目標蟻群中找到相同目標解的螞蟻數(shù)量的最大值占所述目標蟻群中螞蟻數(shù)量的比例;
削減因子計算子單元,用于依據(jù)所述相似變量比和預設的削減速率計算削減因子。
可選的,所述信息素增加單元,包括:
信息素積累要素獲取子單元,用于獲取待尋優(yōu)的所述網(wǎng)絡拓撲結構中每條支路上的信息素的最大值,得到信息素積累要素;
信息素增大倍數(shù)獲取子單元,用于在預設的隨機范圍中,獲取一個隨機值作為信息素增大倍數(shù);
信息素積累因子計算子單元,用于依據(jù)所述信息素增大倍數(shù)增大所述信息素累計因子,得到信息素積累因子;
信息素增加子單元將所述信息素積累因子累加到所述網(wǎng)絡拓撲結構中的每條支路上。
可選的,還包括:
揮發(fā)子單元,用于基于預設的揮發(fā)規(guī)則,減少所述待尋優(yōu)的饋線網(wǎng)絡中每條支路上的信息素的值;
修正子單元,用于依據(jù)全局最優(yōu)網(wǎng)損,對所述全局最優(yōu)解所在的支路進行信息素的修正。
通過本實施例的裝置,在蟻群尋優(yōu)的過程中,通過計算得到的削減因子不斷的削減目標蟻群中螞蟻的數(shù)量,提高了蟻群算法的計算速度。在蟻群中螞蟻數(shù)量削減到預設的閾值時,有方向性的對待尋優(yōu)的網(wǎng)絡拓撲結果進行新一輪的尋優(yōu),并增加每條支路信息素的值,使蟻群尋優(yōu)的過程中,避免陷入局部最優(yōu)解,增加信息素少的支路被選中的概率,增大得到全局最優(yōu)解的概率。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。