国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPU加速的并行蟻群算法求解旅行商問題研究

2016-06-14 00:55:20楊雅寧藺勇
電腦知識(shí)與技術(shù) 2016年12期
關(guān)鍵詞:蟻群算法

楊雅寧+藺勇

摘要:蟻群算法是求解旅行商問題的有效方法之一,但是隨著蟻群規(guī)模和城市規(guī)模的增大,算法的運(yùn)行速度將大大降低,本文利用GPU在CUDA7.0環(huán)境下,對(duì)蟻群算法進(jìn)行化加速設(shè)計(jì),實(shí)驗(yàn)結(jié)果表明,該方法取得了良好的加速效果,當(dāng)蟻群規(guī)模增大時(shí),加速倍大幅度提高。數(shù)據(jù)顯示,蟻群個(gè)體和城市規(guī)模越大,加速效果越好。

關(guān)鍵詞:蟻群算法;GPU;CUDA

中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)12-0206-02

旅行商問題(Traveling Salesman Problem,簡(jiǎn)稱TSP)是一個(gè)典型的組合優(yōu)化問題。城市管道鋪設(shè)優(yōu)化、物流業(yè)的車輛調(diào)度、制造業(yè)中的切割路徑優(yōu)化等現(xiàn)實(shí)生活中的優(yōu)化問題都可以歸結(jié)為TSP求解問題。它解決從一個(gè)城市出發(fā),經(jīng)過若干個(gè)城市后又返回原城市的最優(yōu)路徑的求解問題。

螞蟻在覓食路徑上會(huì)釋放一種特殊的分泌物—“信息素”,隨著時(shí)間流逝,信息素會(huì)揮發(fā),后面的螞蟻根據(jù)路徑上的信息素濃度,選擇信息素多的路徑去覓食,這樣便形成了一個(gè)正反饋機(jī)制。在整個(gè)尋徑過程中,雖然單只螞蟻的選擇能力有限,但它們的行為具有非常高的自組織性,相互之間交換路徑,最終尋找到最優(yōu)路徑。受到蟻群系統(tǒng)信息共享機(jī)制的啟發(fā),意大利學(xué)者DorigoM于1992年首次系統(tǒng)提出了蟻群算法,并成功地將該方法應(yīng)用到求解TSP問題中[1]。該算法是啟發(fā)式搜算算法的一種,采用了分布式并行計(jì)算機(jī)制,易于與其他方法結(jié)合,具有強(qiáng)的魯棒性。同時(shí),相對(duì)于其他搜算法,對(duì)初始路線要求不高,在搜索過程中不需要人工調(diào)整。研究表明,蟻群算法是解決TSP問題有效的算法之一,因此也成為近年來的研究熱點(diǎn)。

近年來,基于GPU(圖像處理器)的大規(guī)模通用并行計(jì)算,大大提高了計(jì)算機(jī)圖形處理的效率[2]。GPU的高速浮點(diǎn)運(yùn)算能力、并行計(jì)算和可編程功能也為通用計(jì)算提供了良好的并行計(jì)算平臺(tái),同時(shí)也為蟻群算法的高速并行實(shí)現(xiàn)提供了可能。NVIDIA公司的統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA),為研究人員利用CPU進(jìn)行數(shù)據(jù)并行處理提供了便捷的手段[3]。通過GPU加速并行算法,是蟻群算法并行化、提高算法執(zhí)行速度的有效途徑之一。

1 蟻群算法基本原理

蟻群算法受蟻群行為和反應(yīng)特征的啟發(fā)而得來的。覓食的螞蟻在走過的路上釋放信息素,其他覓食螞蟻將沿著留有信息素的路徑在相同位置找到食物。因此,信息素可用來實(shí)現(xiàn)間接通信的目的[4]?;谛畔⑺氐某鞘刑街D(zhuǎn)移概率公式:

2 基于GPU并行的蟻群算法

通過對(duì)CUDA和GPU并行程序設(shè)計(jì)的研究,將基于蟻群算法的TSP求解優(yōu)化路徑問題轉(zhuǎn)化為GPU中的多線程的并行處理過程,充分利用GPU的高速浮點(diǎn)運(yùn)算和并行計(jì)算的特性, 以提高算法的速度。

在螞蟻遍歷城市的過程中,每只螞蟻獨(dú)立地建立自己的遍歷路徑,對(duì)螞蟻來說,自然地存在并行性。根據(jù)CUDA的編程模型[5],我們很自然地會(huì)將每只螞蟻個(gè)體映射到CUDA的一個(gè)線程上,用線程來模擬你螞蟻個(gè)體,每個(gè)線程完成一只螞蟻的城市周游回路。

設(shè)螞蟻個(gè)數(shù)為M,城市個(gè)數(shù)為N,CUDA中Block個(gè)數(shù)為4,蟻群算法的GPU并行化模型中,總線程個(gè)數(shù)為M,每個(gè)Block中線程個(gè)數(shù)為M/4,如圖3所示。在模型中,將路徑狀態(tài)初始化、路徑轉(zhuǎn)移概率計(jì)算、路徑長(zhǎng)度計(jì)算、更新信息素定義為CUDA函數(shù)。首先,M個(gè)線程被分配在4個(gè)Block中,同時(shí)啟動(dòng),計(jì)算各自的城市轉(zhuǎn)移概率,尋找轉(zhuǎn)移城市;其次,由N個(gè)線程分成N個(gè)Block,計(jì)算路徑上信息素增量;再次,用一個(gè)線程計(jì)算路徑長(zhǎng)度和最優(yōu)路徑;最后N個(gè)線程分成N個(gè)Block,更信路徑信息素。

3 實(shí)驗(yàn)與分析

實(shí)驗(yàn)結(jié)果表明,采用GPU并行化蟻群算法取得了良好的加速效果,當(dāng)蟻群規(guī)模由256增大到1024、城市規(guī)模由21增大到76時(shí),加速倍數(shù)由3.0增大到10.75。數(shù)據(jù)顯示,問題規(guī)模越大,蟻群個(gè)體和城市規(guī)模越大,加速效果越好,對(duì)于更大規(guī)模的復(fù)雜問題,基于GPU的并行化蟻群算法將取得更高的加速比。

4 結(jié)束語

本文研究了基本蟻群算法的原理,并基于GPU和CUDA高速并行計(jì)算模型,利用GPU在CUDA7.0環(huán)境下,對(duì)蟻群算法進(jìn)行化加速設(shè)計(jì),實(shí)驗(yàn)結(jié)果表明,該方法取得了良好的加速效果,當(dāng)蟻群規(guī)模增大時(shí),加速倍大幅度提高。數(shù)據(jù)顯示,蟻群個(gè)體和城市規(guī)模越大,加速效果越好。

參考文獻(xiàn):

[1] 宗德才, 王康康, 丁勇. 蟻群算法求解旅行商問題綜述[J]. 計(jì)算機(jī)與數(shù)字工程, 2014(11).

[2] 占正鋒, 李戈, 張學(xué)賀, 伊旭悅. 基于CUDA的圖像預(yù)處理并行化研究[J]. 智能工程, 2014.

[3] 李建明, 胡祥培, 龐占龍, 錢昆明. 一種基于GPU 加速的細(xì)粒度并行蟻群算法[J]. 控制與決策, 2009(8).

[4] Shi-An Li,Min-Hao Yang,Chung-Wei Weng,Yi-Hong Chen,Chia-Hung Lo,Ching-Chang Wong. Ant Colony Optimization algorithm design and its FPGA implemention[J]. IEEE International Symposium on Intelligent Signal Processing and Communication Systems, 2012.

[5] David B.KirK, Wen-mei W. Hwu. 大規(guī)模并行處理器編程實(shí)戰(zhàn)[M]. 北京: 清華大學(xué)出版社, 2013.

猜你喜歡
蟻群算法
測(cè)控區(qū)和非測(cè)控區(qū)并存的配電網(wǎng)故障定位實(shí)用方法
遺傳模擬退火算法
CVRP物流配送路徑優(yōu)化及應(yīng)用研究
云計(jì)算中虛擬機(jī)放置多目標(biāo)優(yōu)化
基于蟻群算法的一種無人機(jī)二維航跡規(guī)劃方法研究
蟻群算法基本原理及綜述
一種多項(xiàng)目調(diào)度的改進(jìn)蟻群算法研究
科技視界(2016年18期)2016-11-03 00:32:24
能量高效的WSN分簇路由協(xié)議研究
蟻群算法求解TSP中的參數(shù)設(shè)置
蟻群算法聚類分析研究
历史| 临沂市| 荔波县| 横山县| 南投市| 泽库县| 洞口县| 土默特左旗| 农安县| 金溪县| 平泉县| 永川市| 启东市| 长沙市| 泸西县| 社会| 三都| 崇州市| 曲麻莱县| 萨嘎县| 黔江区| 山东省| 徐汇区| 隆德县| 岳池县| 海盐县| 宾川县| 象山县| 黄陵县| 七台河市| 米泉市| 华蓥市| 瓦房店市| 平昌县| 和硕县| 讷河市| 辰溪县| 怀集县| 枣庄市| 瑞安市| 太保市|