申 揚(yáng), 于 海, 尹曉華
(國(guó)網(wǎng)遼寧省電力有限公司信息通信分公司, 沈陽(yáng) 110006)
隨著中國(guó)電網(wǎng)向智能化、網(wǎng)絡(luò)化、自動(dòng)化發(fā)展,電力信息網(wǎng)絡(luò)間的信息交互愈發(fā)頻繁、深入[1]。電網(wǎng)信息通信服務(wù)器則承載著電網(wǎng)信息網(wǎng)絡(luò)信息傳輸中的核心業(yè)務(wù),其上運(yùn)行的各種應(yīng)用程序需要處理來(lái)自遠(yuǎn)程的大量小任務(wù)[2-3]。電網(wǎng)信通服務(wù)器經(jīng)常面對(duì)的是大量的用戶請(qǐng)求,而這些用戶任務(wù)所需的處理時(shí)間一般都很短。因此,信通服務(wù)器一般采用線程池技術(shù)來(lái)及時(shí)高效的響應(yīng)這些用戶請(qǐng)求。線程池技術(shù)是指服務(wù)器事先為網(wǎng)絡(luò)應(yīng)用程序創(chuàng)建一組線程,當(dāng)有用戶服務(wù)請(qǐng)求到來(lái)時(shí),可以直接調(diào)用線程池中創(chuàng)建好的線程為用戶服務(wù);當(dāng)用戶任務(wù)執(zhí)行完成后,這一組線程并不隨之銷毀,而是等待下一批用戶的服務(wù)請(qǐng)求。
線程池在提高系統(tǒng)性能的同時(shí),也提出了一個(gè)新問(wèn)題,即如何選擇一個(gè)合適的線程池大小,以獲得最佳的服務(wù)器性能。如果線程池的尺寸選擇過(guò)大,雖然會(huì)增加線程池并行處理用戶任務(wù)請(qǐng)求的能力,但同時(shí)也增加了系統(tǒng)為維護(hù)如此多數(shù)目線程而產(chǎn)生的更多的系統(tǒng)開(kāi)銷;另外,線程數(shù)目越多也必然導(dǎo)致系統(tǒng)資源的競(jìng)爭(zhēng)越發(fā)激烈,很可能會(huì)導(dǎo)致系統(tǒng)的性能反而下降。而線程池的尺寸選擇過(guò)小,又會(huì)削弱線程池并行處理用戶請(qǐng)求的能力。因此,選擇合適的線程池尺寸成為決定服務(wù)器性能的關(guān)鍵因素。
目前,對(duì)于線程池大小的選擇有很多不同的解決方法。文獻(xiàn)[4]給出了一種基于POSIX(portable operating system interface of UNIX)線程庫(kù)的線程池反饋算法;通過(guò)對(duì)線程池響應(yīng)時(shí)間和吞吐量進(jìn)行監(jiān)控,對(duì)線程池的下一步行為進(jìn)行決策,調(diào)整線程池中的線程數(shù)及線程單次處理的任務(wù)數(shù)。文獻(xiàn)[5]采用灰色系統(tǒng)理論預(yù)測(cè)算法來(lái)預(yù)測(cè)需要線程的數(shù)量,使線程池中線程的數(shù)量與所需值保持一致,為在服務(wù)器使用效率提高的同時(shí)保證用戶的服務(wù)質(zhì)量提供了一個(gè)解決方案,并將這種線程池技術(shù)應(yīng)用于電話繳費(fèi)系統(tǒng)的設(shè)計(jì),獲得了良好的效果。文獻(xiàn)[6]通過(guò)分析影響線程池性能的因素,提出了一種基于系統(tǒng)載荷變化的自適應(yīng)線程池調(diào)節(jié)策略。文獻(xiàn)[7]分析了任務(wù)在線程池中的處理過(guò)程,以及當(dāng)線程池在最佳大小時(shí)任務(wù)在線程池各階段所需時(shí)間,并給出了一種根據(jù)時(shí)間等因素來(lái)判斷系統(tǒng)性能并且動(dòng)態(tài)改變線程池大小的策略。文獻(xiàn)[8]提出一種基于反饋技術(shù)的自適應(yīng)線程池調(diào)度管理框架,該框架以系統(tǒng)管理人員的先驗(yàn)性知識(shí)為基礎(chǔ),在運(yùn)行過(guò)程中不斷學(xué)習(xí)和提取新的知識(shí),通過(guò)動(dòng)態(tài)在線調(diào)整使得線程池規(guī)模保持在與應(yīng)用需求和計(jì)算資源相適應(yīng)的合理水平。文獻(xiàn)[9]利用灰狼尋優(yōu)算法搜索支持向量機(jī)的最優(yōu)超參數(shù)來(lái)提升其預(yù)測(cè)性能,實(shí)驗(yàn)結(jié)果表明灰狼支持向量機(jī)模型具有較高的預(yù)測(cè)精度、良好的穩(wěn)定性和泛化能力。
可見(jiàn),對(duì)于線程池調(diào)優(yōu)的研究正逐漸展開(kāi),各種理論和方法從不同角度和方向上進(jìn)行研究。在此背景下提出一種基于支持向量機(jī)的線程池尺寸智能優(yōu)化模型,以適應(yīng)不同情況下需要不同的最佳線程池大小。首先通過(guò)大量的信通服務(wù)器性能實(shí)驗(yàn)數(shù)據(jù)構(gòu)造原始訓(xùn)練樣本集,然后經(jīng)過(guò)改進(jìn)的流體搜索算法優(yōu)化支持向量機(jī)的超參數(shù),最后通過(guò)訓(xùn)練好的支持向量機(jī)預(yù)測(cè)不同電網(wǎng)場(chǎng)景下的最優(yōu)線程池尺寸,從而實(shí)現(xiàn)對(duì)信通服務(wù)器動(dòng)態(tài)智能調(diào)優(yōu)。
面對(duì)電網(wǎng)信通服務(wù)器的應(yīng)用場(chǎng)景,線程池技術(shù)是解決電網(wǎng)信息網(wǎng)絡(luò)中大量生產(chǎn)管理業(yè)務(wù)的有效方案,線程池的性能直接影響了信通服務(wù)器的性能。對(duì)于線程池性能進(jìn)行優(yōu)化,便可以達(dá)到優(yōu)化服務(wù)器性能的目的。因此,首先需要對(duì)影響線程池性能的因素進(jìn)行分析,從而進(jìn)一步建立線程池性能調(diào)優(yōu)的模型。
考慮用戶任務(wù)響應(yīng)時(shí)間包括了用戶任務(wù)在任務(wù)隊(duì)列中的隊(duì)列等待時(shí)間以及任務(wù)在線程池中的池中處理時(shí)間。設(shè)用戶任務(wù)響應(yīng)時(shí)間為t響應(yīng),任務(wù)在隊(duì)列中的排隊(duì)等待時(shí)間為t排隊(duì),任務(wù)在線程池中的池中處理時(shí)間為t池,則t響應(yīng)=t排隊(duì)+t池。
一個(gè)任務(wù)在線程池中的處理時(shí)間包括任務(wù)搶占CPU(central processing unit)的運(yùn)算時(shí)間t運(yùn)算和任務(wù)因等待系統(tǒng)資源而被掛起的等待時(shí)間t等待,即t池=t運(yùn)算+t等待。因此最終用戶任務(wù)響應(yīng)時(shí)間t響應(yīng)=t排隊(duì)+t運(yùn)算+t等待。
任務(wù)排隊(duì)時(shí)間t排隊(duì)是指用戶任務(wù)進(jìn)入任務(wù)隊(duì)列排隊(duì)開(kāi)始至線程 池取走任務(wù)為止的時(shí)間。任務(wù)排隊(duì)時(shí)間一方面受用戶任務(wù)的數(shù)量即系統(tǒng)吞吐量m影響;另一方面受線程池的影響,也就是線程池在單位時(shí)間內(nèi)能取走多少任務(wù)隊(duì)列中的任務(wù)數(shù)。線程池的影響又包括兩個(gè)方面,一個(gè)是線程池尺寸n,線程池越大,容納的線程數(shù)越多,那么單位時(shí)間內(nèi)從任務(wù)隊(duì)列中取出來(lái)的用戶任務(wù)數(shù)也就越多;另一個(gè)是線程池內(nèi)任務(wù)的“流速”,也就是用戶任務(wù)在池內(nèi)所停留的時(shí)間——池內(nèi)處理時(shí)間t池。因此,任務(wù)排隊(duì)時(shí)間的數(shù)學(xué)模型為
t排隊(duì)=f(n,m,t池)=f(n,m,t運(yùn)算+t等待)
(1)
任務(wù)運(yùn)算時(shí)間t運(yùn)算是指用戶任務(wù)進(jìn)入線程池后搶占CPU執(zhí)行任務(wù)所消耗的時(shí)間。對(duì)于每個(gè)用戶任務(wù)而言,其運(yùn)算時(shí)間可認(rèn)為是一個(gè)常數(shù),與吞吐量、線程池尺寸等其他參數(shù)無(wú)關(guān),t運(yùn)算=T運(yùn)算。
任務(wù)等待時(shí)間t等待是指用戶任務(wù)在線程池內(nèi)因?yàn)榈却到y(tǒng)資源而被阻塞掛起到重新執(zhí)行所需的時(shí)間。它不僅包括因等待系統(tǒng)資源所阻塞消耗的時(shí)間T阻塞,而且包括阻塞結(jié)束進(jìn)入就緒狀態(tài)后等待CPU調(diào)度的時(shí)間。顯然,等待CPU調(diào)度的時(shí)間與線程池內(nèi)的線程個(gè)數(shù)即線程池尺寸n有關(guān),同時(shí)也與池內(nèi)線程占用CPU運(yùn)算的時(shí)間T運(yùn)算有關(guān)。因此任務(wù)等待時(shí)間的數(shù)學(xué)模型可寫為
t等待=g(n,T運(yùn)算,T阻塞)
(2)
綜上所述,反映線程池性能的用戶響應(yīng)時(shí)間的數(shù)學(xué)模型可建為
t響應(yīng)=t排隊(duì)+t運(yùn)算+t等待=
f[n,m,T運(yùn)算+g(n,T運(yùn)算,T阻塞)]+
T運(yùn)算+g(n,T運(yùn)算,T阻塞)
(3)
最后可寫成
t響應(yīng)=h(n,m,T運(yùn)算,T阻塞)
(4)
欲使線程池性能達(dá)到最優(yōu),也就是令用戶任務(wù)響應(yīng)時(shí)間t響應(yīng)取最小值。如果式(4)連續(xù)可微,則取到最小值的必要條件為
(5)
這是關(guān)于nbest、m、T運(yùn)算、T阻塞的隱函數(shù)關(guān)系,對(duì)于任意不同的3個(gè)變量,總會(huì)有最后一個(gè)變量與之對(duì)應(yīng),使得用戶任務(wù)響應(yīng)時(shí)間達(dá)到最小,也就是使得線程池的性能達(dá)到最優(yōu)。因此,可以得出,影響線程池性能的因素為吞吐量、任務(wù)運(yùn)算時(shí)間、任務(wù)阻塞時(shí)間和線程池尺寸。對(duì)于實(shí)際情況而言,吞吐量、任務(wù)運(yùn)算時(shí)間和任務(wù)阻塞時(shí)間都屬于用戶任務(wù)部分,是無(wú)法強(qiáng)制調(diào)整的。而線程池尺寸卻可以在線程池程序中動(dòng)態(tài)調(diào)整,來(lái)適應(yīng)客觀的用戶任務(wù)變化,達(dá)到線程池調(diào)優(yōu)的目的。
機(jī)器學(xué)習(xí)實(shí)質(zhì)上是通過(guò)對(duì)訓(xùn)練樣本集中各特征變量x與對(duì)應(yīng)類別變量y之間的關(guān)系進(jìn)行學(xué)習(xí),來(lái)得到特征變量與類別變量之間函數(shù)關(guān)系的一種算法。因此,可以將吞吐量、任務(wù)處理時(shí)間和任務(wù)阻塞時(shí)間看成是特征變量的3個(gè)屬性,而最佳線程池尺寸看成是分類變量,對(duì)于不同的特征變量,都可以歸到相應(yīng)的最佳線程池尺寸類別當(dāng)中。通過(guò)機(jī)器學(xué)習(xí)算法的學(xué)習(xí),來(lái)得到不同的特征變量與不同的最佳線程池尺寸之間的對(duì)應(yīng)函數(shù)關(guān)系。
機(jī)器學(xué)習(xí)中,支持向量機(jī)(support vector machine, SVM)是一種具有較強(qiáng)泛化能力的智能方法[10-11]。支持向量機(jī)的原理是,設(shè)輸入訓(xùn)練樣本點(diǎn)(xi,yi),i=1,…,n,x∈Rn,y∈{-1,+1},分開(kāi)的超平面方程為(ω·x)+b=0。該超平面方程可有無(wú)數(shù)個(gè),其中最優(yōu)超平面可由式(6)求解:
(6)
式(6)中:C為懲罰因子;ξ為松弛變量。
引入拉格朗日因子αi并將其轉(zhuǎn)化為對(duì)偶問(wèn)題可得:
(7)
(18)
于是最優(yōu)超平面方程為
(9)
式(9)中:SV為支持向量集;求和實(shí)際上只對(duì)支持向量進(jìn)行。由此可以通過(guò)判斷y的取值來(lái)對(duì)未知樣本進(jìn)行分類。
對(duì)于非線性情況,可通過(guò)引入核函數(shù)K(x·y)=φ(x)·φ(y)的辦法將其轉(zhuǎn)化為高維特征空間的線性劃分問(wèn)題,由此可得非線性支持向量機(jī)的對(duì)偶問(wèn)題為
(10)
由此,只要求出此問(wèn)題的解,即可得到最優(yōu)分類超平面。支持向量機(jī)的決策函數(shù)為
K(xi,x)=φ(xi)T·φ(x)
(11)
常用的核函數(shù)包括線性核函數(shù),多項(xiàng)式核函數(shù)以及徑向基核函數(shù)等。由于徑向基核函數(shù)更加具有將非線性分類問(wèn)題,映射為無(wú)限維空間的線性分類問(wèn)題的能力,因此在支持向量機(jī)的研究中得到了廣泛應(yīng)用。徑向基核函數(shù)的定義為
(12)
式(12)中:γ為徑向基核函數(shù)的參數(shù)。
通過(guò)實(shí)驗(yàn)得到的線程池性能數(shù)據(jù)吞吐量、任務(wù)運(yùn)算時(shí)間、任務(wù)阻塞時(shí)間以及最佳線程池尺寸,構(gòu)成訓(xùn)練樣本集中的一個(gè)樣本。其中,吞吐量、任務(wù)運(yùn)算時(shí)間、任務(wù)阻塞時(shí)間構(gòu)成了樣本中的三個(gè)特征屬性,而最佳線程池尺寸則構(gòu)成樣本的分類標(biāo)簽。通過(guò)支持向量機(jī)的學(xué)習(xí)訓(xùn)練,得到特征屬性與分類標(biāo)簽之間的對(duì)應(yīng)關(guān)系。這樣,在新的特征數(shù)據(jù)也就是測(cè)試樣本到來(lái)時(shí),便可以根據(jù)此對(duì)應(yīng)關(guān)系得到測(cè)試樣本所對(duì)應(yīng)的分類標(biāo)簽,即最佳線程池尺寸,從而為線程池的大小調(diào)整給出依據(jù)。
可見(jiàn),線程池調(diào)優(yōu)的效果直接與支持向量機(jī)訓(xùn)練樣本集的選取有關(guān),訓(xùn)練樣本選取的越全面,則得到的最佳線程池尺寸就會(huì)越精確。同時(shí),由于實(shí)際情況的復(fù)雜多變,對(duì)于事先選好的固定的訓(xùn)練樣本集也應(yīng)該有所改變,才能適應(yīng)不斷變化的新情況的出現(xiàn)。為此,將監(jiān)測(cè)得到的線程池特征數(shù)據(jù)通過(guò)一定的條件進(jìn)行判斷,符合條件的則用來(lái)動(dòng)態(tài)更新訓(xùn)練樣本集,而不符合條件的則直接舍棄。圖1給出了基于支持向量機(jī)的線程池調(diào)優(yōu)模型框架。具體步驟如下。
圖1 基于支持向量機(jī)的線程池調(diào)優(yōu)模型框架
步驟1首先通過(guò)實(shí)驗(yàn)對(duì)線程池性能特征數(shù)據(jù)進(jìn)行分類,以吞吐量、任務(wù)運(yùn)算時(shí)間和任務(wù)阻塞時(shí)間為特征變量,根據(jù)最佳線程池尺寸分為多類,構(gòu)造初始訓(xùn)練樣本集。
步驟2通過(guò)支持向量機(jī)進(jìn)行訓(xùn)練學(xué)習(xí),得到各最佳線程池尺寸的分類超平面。
步驟3將實(shí)時(shí)運(yùn)行的線程池性能監(jiān)測(cè)數(shù)據(jù)作為測(cè)試樣本輸入支持向量機(jī)中,得到所屬的最佳線程池尺寸類別。
步驟4判斷所得最佳線程池尺寸是否與當(dāng)前尺寸相符,如果不符則重新設(shè)置線程池,動(dòng)態(tài)調(diào)整線程池大小。
步驟5判斷特征數(shù)據(jù)是否滿足KKT(Karush-Kuhn-Tucker)條件,如果滿足,則替代訓(xùn)練樣本集中最違反KKT條件的點(diǎn),返回步驟2;如果違反,則舍棄忽略。
在基于支持向量機(jī)的線程池調(diào)優(yōu)模型中,將KKT條件作為訓(xùn)練樣本集更新的判定條件。如果測(cè)試樣本滿足KKT條件,說(shuō)明這個(gè)樣本也會(huì)落入支持向量的區(qū)域內(nèi),對(duì)分類決策函數(shù)會(huì)有貢獻(xiàn),需要更新訓(xùn)練樣本集,重新訓(xùn)練支持向量機(jī);反之,如果測(cè)試樣本不滿足KKT條件,則不會(huì)落入支持向量區(qū)域內(nèi),對(duì)回歸決策函數(shù)將不會(huì)起作用,也就無(wú)需再重新訓(xùn)練支持向量機(jī)。
對(duì)于訓(xùn)練樣本集,應(yīng)該維持一個(gè)固定大小的規(guī)模,而不應(yīng)該隨著新樣本的不斷引入而樣本集無(wú)限增大。因此,在引入新樣本的同時(shí),需要剔除對(duì)分類決策函數(shù)作用最小的樣本,即違反KKT條件最嚴(yán)重的樣本,這樣可以使訓(xùn)練樣本集的數(shù)目保持不變。
支持向量機(jī)的預(yù)測(cè)性能,由懲罰因子C與徑向基核函數(shù)的參數(shù)γ共同決定。因此,如何適當(dāng)?shù)倪x擇C與γ,以使得SVM的預(yù)測(cè)性能達(dá)到最優(yōu),就成為SVM研究領(lǐng)域中的一個(gè)熱門問(wèn)題[12]。比較直接的方法是采用窮舉法,但運(yùn)算量較大,且未必能搜索到最優(yōu)的參數(shù)組合。更多的方法是采用群智能優(yōu)化算法,來(lái)搜索最優(yōu)的參數(shù)組合。引入了相對(duì)較新、性能較好的流體搜索優(yōu)化算法,以期提高支持向量機(jī)的預(yù)測(cè)性能。
流體搜索優(yōu)化算法(fluid search optimization,FSO)是2018年由Dong等[13]根據(jù)流體力學(xué)伯努利原理而提出的一種新的啟發(fā)式優(yōu)化算法。根據(jù)伯努利原理,流體從高壓流向低壓,并自發(fā)地充滿整個(gè)空間?;谠撍枷?將待優(yōu)化的適應(yīng)度函數(shù)值定義為FSO中的流體壓力,優(yōu)化過(guò)程模擬流體自發(fā)地從高壓流向低壓的過(guò)程。在對(duì)不同的工程優(yōu)化問(wèn)題進(jìn)行的試驗(yàn)表明,流體搜索優(yōu)化算法在一些問(wèn)題上的優(yōu)化精度超過(guò)了其他一些常見(jiàn)的群體優(yōu)化算法[13]。但原始的FSO經(jīng)常容易陷入局部最優(yōu),且運(yùn)算量較大。因此,論文提出一種改進(jìn)的流體搜索優(yōu)化(IFSO)算法,以搜索構(gòu)造最優(yōu)的支持向量機(jī)。
基本的FSO算法步驟如下。
(1)初始化各個(gè)流體粒子的位置并調(diào)整參數(shù)。初始化流體粒子速度Vi=0,流體運(yùn)動(dòng)方向direction=0, 流體密度ρi=1,以及常壓p0=1,i=1,2,…,n。
(2)計(jì)算目標(biāo)函數(shù)值,更新最優(yōu)目標(biāo)函數(shù)值ybest,最優(yōu)位置Xbest以及最差目標(biāo)函數(shù)值yworst,計(jì)算流體粒子密度ρ=m/lD。
(4)計(jì)算其他流體粒子對(duì)當(dāng)前粒子的壓強(qiáng):
(13)
速度方向?yàn)?/p>
(14)
(6)位置更新:Xi+1=Xi+Vi。
(7)重復(fù)步驟(2)~步驟(6),直到滿足終止條件。
由于原始FSO算法的運(yùn)算量較大,且容易陷入局部最優(yōu),因此根據(jù)支持向量機(jī)優(yōu)化的實(shí)際情況,做了以下兩點(diǎn)改進(jìn)。
改進(jìn)1由于步驟(4)中壓強(qiáng)方向的計(jì)算量較大,將其簡(jiǎn)化為
(15)
改進(jìn)2為了提高流體搜索算法的精度,采用兩階段的優(yōu)化機(jī)制:即第一階段的多樣化搜索和第二階段的精細(xì)化探索。當(dāng)?shù)螖?shù)在第一階段結(jié)束時(shí)達(dá)到特定閾值M′時(shí),搜索空間會(huì)縮小到當(dāng)前最優(yōu)值附近,并且像元長(zhǎng)度會(huì)按指數(shù)減小,即l=le(M′-t)/σ進(jìn)行精細(xì)化探索,其中σ可以設(shè)置搜索的精度。
圖2給出了基于IFSO的支持向量機(jī)算法。首先通過(guò)IFSO隨機(jī)初始化SVM的超參數(shù)C與γ的值,然后賦值給SVM進(jìn)行交叉訓(xùn)練,得到的SVM分類準(zhǔn)確率作為IFSO的適應(yīng)度函數(shù)進(jìn)行迭代尋優(yōu),最終搜索到最優(yōu)的SVM超參數(shù)。
θ為密度極限比例
以遼寧省電網(wǎng)信息通信服務(wù)器(服務(wù)器主要配置:CPU為2.4 GHz Intel Xeon E5-2665,內(nèi)存為32 G,硬盤為10 T。)實(shí)時(shí)采集的吞吐量、任務(wù)運(yùn)算時(shí)間和任務(wù)阻塞時(shí)間為特征變量,通過(guò)支持向量機(jī)來(lái)智能調(diào)整線程池尺寸大小。數(shù)據(jù)采集間隔為每15 min采集一組服務(wù)器特征數(shù)據(jù),共采集一周工作日時(shí)間得到160組數(shù)據(jù)。160組特征數(shù)據(jù)通過(guò)仿真實(shí)驗(yàn),將用戶任務(wù)響應(yīng)時(shí)間作為服務(wù)器性能的評(píng)價(jià)指標(biāo),確定最佳線程池尺寸大小,構(gòu)造訓(xùn)練樣本集。
同時(shí),為了消除采集數(shù)據(jù)特征之間的量綱影響,有利于SVM的訓(xùn)練,對(duì)特征數(shù)據(jù)進(jìn)行了歸一化處理。
(16)
式(16)中:d為特征數(shù)據(jù)原始值;dmin為特征數(shù)據(jù)中的最小值;dmax為特征數(shù)據(jù)的最大值;g為歸一化后的特征數(shù)據(jù)值。歸一化后的部分訓(xùn)練樣本集數(shù)據(jù)如表1所示。
表1 歸一化后的部分訓(xùn)練樣本集數(shù)據(jù)
為了驗(yàn)證IFSO-SVM的表現(xiàn),實(shí)驗(yàn)對(duì)比了原始流體搜索算法FSO-SVM,粒子群優(yōu)化算法(particle swarm optimization,PSO-SVM)以及人工蜂群算法(artificial bee colony algorithm,ABC-SVM)的實(shí)驗(yàn)結(jié)果。支持向量機(jī)分類器采用開(kāi)源軟件LIBSVM,通過(guò)5折交叉驗(yàn)證評(píng)估模型的平均分類準(zhǔn)確率。各算法參數(shù)設(shè)置如下:粒子數(shù)目設(shè)為30,最大迭代次數(shù)為50。其中FSO與IFSO的參數(shù)設(shè)置如下[13]:密度極限比例θ=20%,多樣化搜索比例M′=0.7,σ=40;粒子群參數(shù)設(shè)置[14]如下c1=c2=2,ωbegin=0.9,ωend=0.2;人工蜂群算法參數(shù)[15]為Ponlooker=Pemployed=0.5;螢火蟲算法[16]α=0.5,βmin=0.2,γ=1。根據(jù)Lin等在文獻(xiàn)[17]中的建議,SVM中參數(shù)C的搜索范圍為[0.01,350 00],γ的搜索范圍為[0.000 1,32]。
從表2中可以看出,IFSO-SVM獲得了所有對(duì)比算法中最高的分類準(zhǔn)確率。其后依次是ABC-SVM、FSO-SVM, FA-SVM及PSO-SVM。改進(jìn)后的IFSO-SVM比原始的FSO-SVM的平均分類準(zhǔn)確率高了1.82個(gè)百分點(diǎn),比位于第二位的ABC-SVM高出了1.61個(gè)百分點(diǎn)??梢?jiàn),對(duì)FSO的改進(jìn)使其更容易搜索到全局最優(yōu)解,提升了SVM的分類準(zhǔn)確率。
圖3給出了不同算法優(yōu)化SVM得出的分類準(zhǔn)確率的迭代曲線圖。可以看出,在迭代初始時(shí),由于SVM參數(shù)由各算法隨機(jī)初始化,因此得到的分類準(zhǔn)確率基本相同,均在85%左右。隨著搜索迭代的進(jìn)行,IFSO-SVM經(jīng)過(guò)不斷提升,最終獲得了比其他優(yōu)化算法更高的分類準(zhǔn)確率,明顯高出下方的ABC-SVM和FSO-SVM的結(jié)果。值得注意的是,原始的FSO-SVM的表現(xiàn)略差于ABC-SVM,而IFSO在迭代過(guò)程中均優(yōu)于原始FSO的分類準(zhǔn)確率,說(shuō)明IFSO的改進(jìn)增強(qiáng)了FSO的搜索效果,使其更容易跳出局部最優(yōu),能夠得到更好的分類效果。
表2 各對(duì)比算法優(yōu)化支持向量機(jī)所得的分類準(zhǔn)確率
圖3 不同算法優(yōu)化SVM的迭代曲線
下面給出電網(wǎng)信通服務(wù)器某次突發(fā)訪問(wèn)量增多的性能測(cè)試結(jié)果。圖4給出了不同的優(yōu)化算法智能調(diào)整的動(dòng)態(tài)線程池與靜態(tài)線程池(線程池尺寸固定為30)性能的比較結(jié)果,動(dòng)態(tài)線程池調(diào)整間隔為1 min。整個(gè)實(shí)驗(yàn)持續(xù)了45 min,其中11~33 min為訪問(wèn)量的高峰期。從圖4中可以明顯看出,基于各種優(yōu)化算法的智能動(dòng)態(tài)池性能要明顯好于靜態(tài)池的性能。而在各種優(yōu)化算法動(dòng)態(tài)池對(duì)比中,原始的FSO-SVM與ABC-SVM的測(cè)試結(jié)果相當(dāng),與SVM訓(xùn)練時(shí)的結(jié)果類似。而基于IFSO-SVM動(dòng)態(tài)池的用戶響應(yīng)時(shí)間要比其他對(duì)比算法更少。尤其在訪問(wèn)量高峰期時(shí),IFSO-SVM動(dòng)態(tài)池的用戶響應(yīng)時(shí)間的上升明顯比其他優(yōu)化算法更加平緩,表明了IFSO對(duì)原始FSO的改進(jìn)起到了較好的效果,能夠智能地對(duì)服務(wù)器響應(yīng)時(shí)間進(jìn)行削峰的作用。
表3給出了IFSO-SVM相較于不同算法的效率提升結(jié)果,包括45 min之內(nèi)平均效率提升結(jié)果,最小效率提升結(jié)果以及最大效率提升結(jié)果??梢钥闯?動(dòng)態(tài)調(diào)優(yōu)的線程池性能比靜態(tài)池的性能均有明顯改善,且IFSO-SVM相較于其他對(duì)比算法平均會(huì)有9.12%~38.00%的提高。因此,可以得出結(jié)論,基于IFSO-SVM動(dòng)態(tài)線程池算法對(duì)信通服務(wù)器性能的智能優(yōu)化具有良好的效果。
圖4 不同算法動(dòng)態(tài)池優(yōu)化與靜態(tài)池性能的比較
表3 IFSO-SVM相較于不同算法的效率提升百分比
提出一種基于支持向量機(jī)的信通服務(wù)器動(dòng)態(tài)線程池智能調(diào)優(yōu)模型。通過(guò)大量的信通服務(wù)器性能實(shí)驗(yàn)數(shù)據(jù)構(gòu)造原始訓(xùn)練樣本集,然后采用改進(jìn)的流體優(yōu)化算法搜索支持向量機(jī)的超參數(shù),最后通過(guò)訓(xùn)練好的支持向量機(jī)預(yù)測(cè)不同電網(wǎng)場(chǎng)景下的最優(yōu)線程池尺寸,從而實(shí)現(xiàn)對(duì)信通服務(wù)器動(dòng)態(tài)智能調(diào)優(yōu)。在某省電網(wǎng)信通服務(wù)器的性能實(shí)驗(yàn)中,相較于其他優(yōu)化算法,得出以下結(jié)論。
(1)基于IFSO-SVM的動(dòng)態(tài)線程池技術(shù)獲得了更高的分類準(zhǔn)確率,提高了FSO的優(yōu)化效果,使其更容易跳出局部最優(yōu)。
(2)基于IFSO-SVM動(dòng)態(tài)池能夠智能地減少服務(wù)器的用戶響應(yīng)時(shí)間,尤其在訪問(wèn)高峰時(shí)能夠起到削峰的作用,提升了服務(wù)器的執(zhí)行效率。
但I(xiàn)FSO算法本身超參數(shù)的選擇也是一個(gè)不斷嘗試的過(guò)程,未來(lái)可進(jìn)一步研究是否可以自適應(yīng)選擇IFSO的超參數(shù),進(jìn)一步提高服務(wù)器優(yōu)化過(guò)程的智能性。