欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于計算機機群的并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法

文檔序號:6614867閱讀:203來源:國知局
專利名稱:基于計算機機群的并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種基于計算機機群的并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法, 屬于計算機并行計算技術(shù)領(lǐng)域。
背景技術(shù)
隨著我國經(jīng)濟實力的增強和信息技術(shù)的迅猛發(fā)展,計算機已經(jīng)走入了千家萬戶。 由于我國人口眾多,各個文化層次水平的人員參差不齊,對于千千萬萬的普通老百姓,基本上只是使用計算機上網(wǎng),玩游戲,多媒體等等的基本功能,而使大量的計算機資源被閑置。 然而,與此同時,在高校,科研院所,企業(yè)等等產(chǎn)品研發(fā)基地和科研機構(gòu),卻面臨著巨大地計算資源短缺的情況。如何平衡這些計算資源的分配不均,成了擺在科學(xué)家和工程師們亟待解決的問題。為了解決這類的問題,提出了一種并行計算的方法。并行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程。為執(zhí)行并行計算,計算資源應(yīng)包括一臺配有多處理機(并行處理)的計算機、一個與網(wǎng)絡(luò)相連的計算機專有編號,或者兩者結(jié)合使用。并行計算的主要目的是快速解決大型且復(fù)雜的計算問題。此外還包括利用非本地資源,節(jié)約成本,使用多個“廉價”計算資源取代大型計算機,同時克服單個計算機上存在的存儲器限制。為了使并行計算技術(shù)成為現(xiàn)實,一個由美國Argonne國家實驗室開發(fā)完成的MPICH軟件由1994年出現(xiàn),并成為了現(xiàn)在實現(xiàn)并行計算的代表性技術(shù)。Linux 是一個以網(wǎng)絡(luò)為核心的支持多用戶、多任務(wù)、多線程、多CPU的操作系統(tǒng),是目前科學(xué)研究和大型企業(yè)普遍使用的操作系統(tǒng)之一。其在穩(wěn)定性和可靠性方面的突出表現(xiàn),使其被選做服務(wù)器的操作系統(tǒng)?;谝陨系母拍詈蛙浖?,可以在Linux操作系統(tǒng)上實現(xiàn)多個普通計算機的并行計算,完成了對于計算機閑置資源的最大利用。人工蜂群算法Artificial Bee Colony Algorithm (ABCA)是一種群體智能模型算法,它由土耳其學(xué)者Karaboga在2005年提出,該算法是一種模擬蜜蜂群體尋找優(yōu)良蜜源的仿生智能計算方法。算法模型具有很多優(yōu)良的性能,如算法復(fù)雜度低,魯棒性強,每次迭代都進行全局和局部搜索,從而在較大程度上避免了局部最優(yōu)?;谄渥吭降男阅?,常常被用來解決復(fù)雜的優(yōu)化問題,當然也包括復(fù)雜函數(shù)最值的求解。正如 Department of Computer Science and Engineering, College of Engineering, Guindy, Anna University 的 Harikri shna Narasimhan,在論文ParalIel Artificial Bee ColonyAlgorithm (Nature&BiologicalIy Inspired Computing, 2009. NaBIC 2009. WorldCongress on, Page (s) :306-311)中,使用一臺共用存儲器結(jié)構(gòu)的多核計算機,利用openMP軟件實現(xiàn)了并行人工蜂群算法求解復(fù)雜函數(shù)最值的問題。但是在該問題中存在兩個個嚴重的問題,第一是他們使用的這種多核計算機是一種比一般計算機更為先進和性能優(yōu)秀的計算機設(shè)備,這中方法并不能夠解決之前提到的那種利用普通用戶閑置的計算機資源求解問題的效果,而是花費更大量的資金購買新的設(shè)備;第二,在設(shè)計并行的算法時,采用的共用存儲器結(jié)構(gòu),這種結(jié)構(gòu)就限定了算法只能在同一個計算機,共用同一個存儲器的時候才能夠進行,不能將計算資源分配到不同的計算機上。基于上面存在的兩個問5題,我們設(shè)計提出了使用MPI這種消息傳遞方式進行并行人工蜂群算法求解函數(shù)最優(yōu)解問題的方法,有效地解決了上面存在的兩個問題,并且在實質(zhì)上提高了算法求解復(fù)雜函數(shù)最值的效率和精確度。發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的缺陷和不足,以解決普通串行算法在求解復(fù)雜最優(yōu)化問題時,計算時間太長、計算精度不高的問題,本發(fā)明提出了一種基于并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法。
本發(fā)明的技術(shù)方案是采用如下方式來實現(xiàn)的。
一種基于并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法,包括多臺參與計算的計算機,每臺計算機上安裝Linux操作系統(tǒng)和相關(guān)的MPICH軟件,將每根網(wǎng)線的一端插入計算機的網(wǎng)口,另一端接入同一個局域網(wǎng)的路由器上中,并配置Linux的SSH使各個計算機相互之間能夠不需要密碼的訪問,并選擇其中一臺計算機為主控計算機,負責(zé)數(shù)據(jù)和任務(wù)的收集與分發(fā)、計算結(jié)果的顯示這些輔助工作,同時它也作為一個計算節(jié)點參與計算,其余的計算機均只負責(zé)計算功能;通過上述完成了并行計算的硬件連接和軟件的配置;在設(shè)計人工蜂群算法時,將計算的參數(shù)均勻的分配到每個參與計算的計算機上,并根據(jù)MPI軟件包提供的通信接口函數(shù)在程序運行的適當時間進行必要參數(shù)的通信與交流,該方法步驟如下
I)人工蜂群初始化在主控計算機上中,對所需要的參數(shù),包括算法中的種群數(shù)量、迭代次數(shù)、算法中的采蜜蜂機制在同一位置的最大搜索次數(shù)、不同計算機之間在運算過程中需要通信的次數(shù)進行設(shè)置,對要求解的函數(shù)問題進行數(shù)學(xué)公式的描述;
2 ) MPI并行計算環(huán)境的初始化;調(diào)用MPI配置并行環(huán)境的函數(shù),包括MPI_ Init, MPI_Comm_size, MPI_Comm_rank, MPI_Get_processor_name, MPI_Finalize 進行并行環(huán)境的設(shè)置和計算機名,計算機編號,計算機總數(shù)這些必要參數(shù)的讀取;
3)主控計算機根據(jù)上述配置的情況,計算每個作為計算節(jié)點的計算機的參數(shù),包括每個節(jié)點計算機上的種群數(shù)量,迭代次數(shù),何時進行通信,并將這些參數(shù)通過MPI的廣播函數(shù)MPI_Bcast廣播到每個節(jié)點計算機,必要的計算方法和公式表示如下
權(quán)利要求
1.一種基于并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法,包括多臺參與計算的計算機,每臺計算機上安裝Linux操作系統(tǒng)和相關(guān)的MPICH軟件,將每根網(wǎng)線的一端插入計算機的網(wǎng)口,另一端接入同一個局域網(wǎng)的路由器上中,并配置Linux的SSH使各個計算機相互之間能夠不需要密碼的訪問,并選擇其中一臺計算機為主控計算機,負責(zé)數(shù)據(jù)和任務(wù)的收集與分發(fā)、計算結(jié)果的顯示這些輔助工作,同時它也作為一個計算節(jié)點參與計算,其余的計算機均只負責(zé)計算功能;通過上述完成了并行計算的硬件連接和軟件的配置;在設(shè)計人工蜂群算法時,將計算的參數(shù)均勻的分配到每個參與計算的計算機上,并根據(jù)MPI軟件包提供的通信接口函數(shù)在程序運行的適當時間進行必要參數(shù)的通信與交流,該方法步驟如下 O人工蜂群初始化在主控計算機上中,對所需要的參數(shù),包括算法中的種群數(shù)量、迭代次數(shù)、算法中的采蜜蜂機制在同一位置的最大搜索次數(shù)、不同計算機之間在運算過程中需要通信的次數(shù)進行設(shè)置,對要求解的函數(shù)問題進行數(shù)學(xué)公式的描述; 2)MPI并行計算環(huán)境的初始化;調(diào)用MPI配置并行環(huán)境的函數(shù),包括MPI_Init, MPI_Comm_size, MPI_Comm_rank, MPI_Get_processor_name, MPI_Finalize 進行并行環(huán)境的設(shè)置和計算機名,計算機編號,計算機總數(shù)這些必要參數(shù)的讀取; 3)主控計算機根據(jù)上述配置的情況,計算每個作為計算節(jié)點的計算機的參數(shù),包括每個節(jié)點計算機上的種群數(shù)量,迭代次數(shù),何時進行通信,并將這些參數(shù)通過MPI的廣播函數(shù)MPI_Bcast廣播到每個節(jié)點計算機,必要的計算方法和公式表示如下 、"/_,S7V=~^~[I]_ /min ,ioial iteraiion sub _ Ueraiion --=--2 ~coimini _ hum 其中公式I中sub_SN表示每個計算機分配到的種群數(shù)量,SN表示在主控計算機上設(shè)置的種群總數(shù),num是參與計算的計算機的總數(shù);由此可以看出,對每個計算機種群的分配是采用的平均分配的原則;公式2表示每臺計算機上完成每次通信前算法要進行的迭代次數(shù),在完成了這個指定次數(shù)的迭代后,各個計算機之間進行通信,交流信息,其中sub-iteration表示每個計算機的迭代次數(shù),total_iteration表示在主控計算機上設(shè)置的迭代次數(shù),Comuni_num主控計算機設(shè)置的不同計算機之間在運算過程中需要通信的次數(shù);由此可以看出,每個計算機是在每次完成了固定迭代次數(shù)后進行通信; 4)每個計算機接收主控計算機分配的數(shù)據(jù)并保存; 5)每個計算機在各自的機器上,根據(jù)所要生成的可行性解的范圍初始化自己的隨機解,計算其適應(yīng)度函數(shù),找出適應(yīng)度函數(shù)的最大值、最小值及其在人工蜂群算法記錄可行性解的這個矩陣變量中對應(yīng)的位置,同時將適應(yīng)度函數(shù)最大的可行性解更新到每個計算機自己的種群用來記錄全局最優(yōu)解的變量中,其中最優(yōu)解是指使某個待求解的數(shù)學(xué)問題達到最優(yōu)值即最大值或最小值時的任一可行解,全局最優(yōu)解記錄的是從這個計算機程序運行開始,到目前為止得到的適應(yīng)度函數(shù)最大的可行解;以計算函數(shù)最小值為例,給出計算適應(yīng)度函數(shù)的表達式描述如下 \ valuevalue < O fiincss - <! ]r Qi-,value >=0ν λyalue^X其中value表示的是函數(shù)值,fitness表示的是適應(yīng)度函數(shù)值,由此可以保證函數(shù)值越小,適應(yīng)度函數(shù)越大; 6)每個計算機獨自進行人工蜂群算法的采蜜蜂模式,采蜜蜂模式是指一個采蜜蜂,根據(jù)其現(xiàn)在的可行解在限定的鄰域內(nèi)進行搜索并產(chǎn)生新的可行解,測試新產(chǎn)生的可行解的適應(yīng)度函數(shù)值,它的數(shù)學(xué)表達由下式給出, V/=X^+A(Xf-Xi)4
上式中P表示的是新的可行解,I/表示的是現(xiàn)有的可行解,i第i個可行解,j表示第i個可行解的第j個參數(shù),λ是一個隨機數(shù),并有λ e [_1,1],1^表示第1^個可行解,并且有k# i,由此看出,采蜜蜂所采用的在限定的鄰域內(nèi)進行搜索,是對這個可行解中隨機選出的一個參數(shù),根據(jù)與別的可行解中的數(shù)據(jù)進行運算得到的;如果新的可行解的適應(yīng)度函數(shù)比其現(xiàn)有的適應(yīng)度函數(shù)高,則由貪婪準則,用新的可行解值覆蓋現(xiàn)有的可行解,并將步驟O中提到的記錄算法中的采蜜蜂機制在同一位置的最大搜索次數(shù)這個變量設(shè)置為O,如果新的可行解的適應(yīng)度函數(shù)的值小于等于現(xiàn)有的適應(yīng)度函數(shù)的值,那么步驟I)中提到的記錄算法中的采蜜蜂機制在同一位置的最大搜索次數(shù)這個變量加1,現(xiàn)有的可行解不變; 7)每個計算機進行人工蜂群算法的概率計算模式,選用的概率選擇數(shù)學(xué)模型由下式給出,
全文摘要
基于計算機機群的并行人工蜂群算法求解復(fù)雜函數(shù)最值的方法,屬于計算機并行計算技術(shù)領(lǐng)域。該方法在Linux操作系統(tǒng)下,結(jié)合MPI軟件包,實現(xiàn)了在多臺計算機上通過并行人工蜂群算法求解復(fù)雜函數(shù)最值的問題,實驗結(jié)果表明,在求解復(fù)雜函數(shù)的最值時,并行人工蜂群算法可以比普通的串行算法具有更高的準確性和更快的速度,極大地提高了計算函數(shù)最值的效率。
文檔編號G06F9/38GK102982008SQ20121043199
公開日2013年3月20日 申請日期2012年11月1日 優(yōu)先權(quán)日2012年11月1日
發(fā)明者江銘炎, 徐昆, 袁東風(fēng), 賁晛燁 申請人:山東大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
斗六市| 怀集县| 东明县| 镇赉县| 新密市| 太原市| 乌审旗| 托克逊县| 台江县| 仁怀市| 池州市| 华亭县| 神木县| 河东区| 南投市| 龙陵县| 汶川县| 无锡市| 岳池县| 宜都市| 繁昌县| 屏山县| 尚志市| 琼海市| 汤原县| 昌图县| 双峰县| 凤凰县| 乐清市| 长岛县| 政和县| 仁化县| 河北省| 晋江市| 洪洞县| 景德镇市| 隆子县| 江油市| 南岸区| 吉安市| 兰坪|