周強
(江西信息應(yīng)用職業(yè)技術(shù)學(xué)院,江西南昌 330043)
群智能算法(Swarm intelligence algorithm)[1]這個概念最早是由Beni和Hackwood在分子自動機系統(tǒng)中提及的,它是一種啟發(fā)式的優(yōu)化算法,是由相鄰個體之間相互作用后從而自適應(yīng)地組織起來。Bonabeau、Dorigo和Theraulaz在1999年的論文Swarm Intelligence:From Natural to Artificial Systems中對群智能算法做出比較詳細的論述,一種不是非常嚴格定義被提出:相互作用相鄰的個體的集合體都可以被描述為Swarm,由群體動物如昆蟲或者其他群體動物行為機制而激發(fā)設(shè)計出的算法或分布式解決問題的方式都可以稱為群智能算法[2]。現(xiàn)有已經(jīng)成熟的算法有蟻群算法、粒子群算法、植物花粉授算法[3]、人工螢火蟲算法[4]、人工蜂群算法、蝙蝠算法等。
云計算[5]作為20世紀80年代大型計算機到C/S轉(zhuǎn)變后,是IT界的一次計算革命的產(chǎn)物,云計算通過互聯(lián)網(wǎng)將大量的計算任務(wù)分布在大量的服務(wù)器上,并配置共享服務(wù)器虛擬化出來的硬件資源池,從而實現(xiàn)軟件資源和信息共享。云計算是一種可以按照用戶的需求定制的一種個性化定制技術(shù)。在2007年,云計算真正地被作為一種新興技術(shù),得到IT界認可,經(jīng)過十多年的發(fā)展、普及和應(yīng)用,該技術(shù)已經(jīng)走進了數(shù)以千萬計的企業(yè)和教育等數(shù)據(jù)中心,成為近年來IT世界里炙手可熱的技術(shù)門類,并且相信在未來的很長時間將繼續(xù)得到廣泛的發(fā)展[6]。
群智能算法是仿真動物群體的生活行為的一種搜索算法,相比傳統(tǒng)的算法,它不再是個體上的搜尋動作,而是通過群體協(xié)同去達到某個目的或完成某個目標(biāo),這樣不論在收斂速度,還是在精度上都會比傳統(tǒng)算法更優(yōu)。近年來,越來越多的學(xué)者都開始對群智能算法產(chǎn)生厚的興趣,不少好的想法和建議都已經(jīng)運用在現(xiàn)實的生產(chǎn)環(huán)境中,例如已成功應(yīng)用在有害氣體泄漏定位、傳感器的噪聲測試、模擬機器人以及無人機路徑規(guī)劃等方面[7-8]。
云計算作為近來廣受追捧的IT技術(shù),只要有互聯(lián)網(wǎng)的地方就可以接入“云”,它具有強大的計算能力,并且具備合理的分配計算資源,可以有效調(diào)度云的計算能力分配給每個計算任務(wù)所需的計算單元,而強大的云計算同樣具備伸縮能力,在無須大量計算的時候,可以減少資源的浪費。并且云計算可以提供個性化定制,可以根據(jù)不同用戶的需求,提供個性化的服務(wù),因為專有人士提供了個性化的定制,這樣不論你是不是專有人才,都可以方便快捷利用云計算來提高生活工作效率。例如水費電費繳費平臺就是利用云計算技術(shù),不像原來需要去指定地方繳費,現(xiàn)在只需要有網(wǎng)絡(luò)的情況下就能完成繳費,為生活提供便利。
通過對群智能算法的分析和研究,還有許多問題需要得到解決:
(1)數(shù)學(xué)理論基礎(chǔ)。群智能算法理論基礎(chǔ)還不夠完善,例如算法的收斂性還沒有辦法被證明。
(2)參數(shù)的選取。算法的控制參數(shù)很少,許多參數(shù)都是靠著經(jīng)驗去調(diào)整選取,針對不同環(huán)境特定參數(shù)也不能完全符合現(xiàn)實的環(huán)境。如何選擇合適的參數(shù),使參數(shù)對具體問題的影響減至最低是我們需要考量的問題。
(3)實際應(yīng)用問題的拓展。在一些領(lǐng)域群智能算法已經(jīng)得到了一定的應(yīng)用,但是覆蓋面還是太小,還需要將其運用在更多的領(lǐng)域。
(4)效率低。群智能算法因為是群體的搜索行為,因此搜索效率低下,所以運算問題的解決是重要的研究問題。
3.2.1 群智能算法無人機路徑規(guī)劃模型建立
無人機路徑規(guī)劃是一個實際問題,通過真實的環(huán)境(地形、風(fēng)向、濕度、數(shù)據(jù)、威脅信息和時間等)制定無人機的飛行軌跡,從而使無人機順利地通過和完成指定的任務(wù)和目標(biāo)。為了解決無人機路徑規(guī)劃問題,本文將通過函數(shù)來構(gòu)建一個數(shù)學(xué)模型,通過一些參數(shù)來設(shè)定約束條件,讓無人機能夠找到符合自己飛行的最優(yōu)的飛行軌跡。如圖1所示,通過轉(zhuǎn)換坐標(biāo)將實際的路徑路線構(gòu)建成一個函數(shù)用于優(yōu)化問題。
圖1中,在二維坐標(biāo)中,起點和目標(biāo)點連接起來,通過以下公式對坐標(biāo)軸進行轉(zhuǎn)換。按一定的順序連接起點與目標(biāo)點位置中間的點,就得到了一條最優(yōu)路線,這樣就將路徑規(guī)劃問題轉(zhuǎn)成了一個約束函數(shù)優(yōu)化問題,得到了我們所需的數(shù)學(xué)模型。
圖1 坐標(biāo)變換
3.2.2 云計算處理數(shù)學(xué)模型
根據(jù)數(shù)學(xué)模型,通過Matlab編程實現(xiàn)該數(shù)學(xué)模型。因為群智能算法是群體協(xié)助完成搜尋任務(wù),而且存在大量的隨機性,因此有著大量計算任務(wù),而實驗需要幾百次,甚至上千次的迭代任務(wù),傳統(tǒng)的方式是將算法程序運行在單臺的計算單元上,而且經(jīng)常會出現(xiàn)因為設(shè)備的計算資源不夠?qū)е驴ㄋ?,效率非常低。為了解決這些問題,我們可以將云計算的特點發(fā)揮出來。具體步驟如下:
(1)購買ECS服務(wù)器
阿里云作為國內(nèi)云計算龍頭企業(yè),在阿里云上購買3臺高性能的ECS服務(wù)器,如圖2所示。
圖2 ECS服務(wù)器
(2)環(huán)境部署
阿里云提供的ECS服務(wù)器可以幫助用戶快速搭建基礎(chǔ)環(huán)境,不論操作系統(tǒng)還是應(yīng)用軟件都可以通過視圖化的界面實現(xiàn)一鍵安裝部署,而且可以實現(xiàn)批量安裝部署,節(jié)約大量的時間,成功安裝一臺ECS服務(wù)器所需的實驗環(huán)境,另外兩臺通過克隆第一臺ECS服務(wù)器的鏡像,快速完成前期的部署工作。
(3)調(diào)試
將寫好的算法模型程序?qū)隕CS主機中,三臺主機同時運行程序。
(4)監(jiān)控、預(yù)警、閾值設(shè)定
阿里云提供了CPU和內(nèi)存等硬件資源使用情況的監(jiān)控界面,可以通過監(jiān)控界面實時查看每臺ECS上程序運行使用CPU等資源的情況,當(dāng)程序運行的過程中,用戶無須時刻盯著監(jiān)控界面,阿里云也提供了預(yù)警通知,用戶可以設(shè)定當(dāng)CPU或者內(nèi)存使用率達到用戶設(shè)定的閾值,通過短信提醒用戶[9]。
(5)彈性伸縮
阿里云提供了彈性伸縮的功能,當(dāng)ECS主機的硬件資源使用率超過某個特定的閾值時候,通過預(yù)先定義的伸縮策略,阿里云自動為ECS主機提供更大的硬件資源用于滿足實驗需求;而當(dāng)實驗無須那么多的硬件資源,ECS主機的硬件資源使用低于某個設(shè)定的閾值時,通過預(yù)先定義的縮的策略,阿里云自動減少ECS的資源,這樣可以有效減少資源浪費。阿里云的彈性伸縮功能讓用戶可以無人值守,當(dāng)程序運行結(jié)束后,可以將運算結(jié)果保存到阿里云的對象存儲中,并將ECS主機自動釋放,而群智能算法運算出來的結(jié)果可以直接從對象存儲中獲取,這樣有效節(jié)約時間和資源租借的成本。
上述步驟成功通過云計算問題解決了群智能算法運行效率低下的問題,本實驗通過三臺ECS服務(wù)器完成實驗,相比傳統(tǒng)方式運行群智能算法尋優(yōu),將效率提高了三倍,因為阿里云提供了監(jiān)控、彈性伸縮等功能,讓用戶可以實現(xiàn)無人值守,也不會出現(xiàn)實驗卡死的情況,有效地解決了大量的時間成本[10]。因為通過是租借阿里云的ECS服務(wù)器,無須一次性支付大量費用購買硬件,硬件也存在淘汰問題,而租借結(jié)束后就釋放資源,之后使用又可以購買最新資源,這樣也不會淘汰,有效地節(jié)約了經(jīng)濟成本??傊?,云計算對于解決群智能算法效率問題不論在效率和經(jīng)濟成本上都有著較大的優(yōu)勢。