摘 要: 為提高最短路徑求解問題的效率,提出一種基于云計算的細粒度混合并行遺傳算法求解最短路徑的方法。方法采用云計算中Hadoop的MapReduce并行編程模型,提高編碼效率,同時將細粒度并行遺傳算法和禁忌搜索算法結合,提高了尋優算法的計算速度和局部尋優能力,進而提高最短路徑的求解效率。仿真結果表明,該方法在計算速度和性能上優于經典遺傳算法和并行遺傳算法,是一種有效的最短路徑求解方法。
關鍵詞: 云計算;遺傳算法;禁忌搜索算法;最短路徑
0 引言
近年來隨著社會的發展和人們生活節奏的加快,高效率、快節奏需求使得最短路徑求解成為一大新的研究課題。云計算是繼網格計算、對等計算之后產生的新的計算模式[1],其中Apache開發的Hadoop云計算平臺被廣泛應用,其核心MapReduce能夠進行并行編碼,且編碼效率高,為大規模的最短路徑求解提供了有效的解決途徑。遺傳算法[2-3](Genetic Algorithm,GA)由于具有潛在并行處理能力的特點,許多學者致力于并行遺傳算法的研究,以提高搜索和尋優的速率,同時克服GA在進化初期超常個體引起的種群過早收斂到局部最優解的問題[4-5]。為提高GA的局部搜索能力,許多學者也將GA與其他算法結合,研究了混合遺傳算法。其中禁忌搜索算法(Tabu Search Algorithm,TSA)的創始人將GA與TSA結合提出了混合遺傳算法HGA(Hybrid Genetic Algorithm),HGA提高了算法的局部搜索能力和收斂速度,得到了廣泛研究與應用[6-7]。同時混合遺傳算法在并行遺傳算法中也得到了一定研究,文獻[3]將并行遺傳貼片功率電感算法和禁忌搜索算法結合,提出了混合并行遺傳算法(Hybrid parallel genetic algorithm,HPGA),由于算法利用并行遺傳算法的特征,提高了算法效率。
針對上述研究基礎,本文在云計算中的MapR繞線電感器educe并行編碼模式基礎上,提出一種基于細粒度混合并行遺傳算法的最短路徑求解方法。算法將細粒度并行遺傳算法與禁忌搜索算法相結合,提高算法的局部尋優能力和收斂速度,進而應用到提高最短路徑的求解效率的領域,具有重要意義。
1 背景知識
1.1 MapReduce模型
MapReduce是一種開源模型,適用于處理大規模數據,并對并行模型通信問題進行了很好的處理。其主要由Map函數和Reduce函數組成,其中Map函數將任務分割為多個小任務,通過相應的任務調度分配給分布在各地的計算機,再通過Reduce操作獲得最終結果。其具體工作流程見文獻[8]。
1.2 并行遺傳算法
并行遺傳算法分為主從式模型、粗粒度模型、細粒度模型等[9]。細粒度并行遺傳算法是在群體中的每個個體分配一個處理單元,相互獨立地采用GA執行進化,然后從進化后的個體中獲得最優解。
GA的主要因素包括參數編碼、初始種群設置、適應度函數、遺傳操作設計和控制參數設置。其流程圖如圖1所示。
1.3 禁忌搜索算法
禁忌搜索算法TSA是由F.Glover在1986年首次提出的,是一種全局尋優算法。從TSA過程可以看出,其主要因素包括禁忌列表、禁忌長度、候選集、藐視規則、終止規則。其中禁忌列表是影響TSA質量的主要因素之一。禁忌長度是被禁忌的解不能訪問的步數。候選集由大量當前解的鄰居組成。藐視規則是確保搜索過程可以釋放特定的解,進而保證當所有候選解被禁忌或某一禁忌解比當前最優解要好時能夠尋找到更好的全局最優解。終止規則規定算法進行一定步數后停止。TSA的流程圖如圖2所示。
2 基于云計算的細粒度混合并行遺傳算法
2.1 編碼規則
傳統的GA采用二進制編碼的形式表述實際應用問題,但存在計算量大和精度受限的缺陷。為表述直觀清晰且能克服上述缺陷,本文采用實數編碼方式對最短路徑求解問題進行編碼,且此種方式不用解碼。
采用基因表示路網節點,而染色體則表示路徑。由于采用了實數編碼方式,染色體會隨基因變化而變化,所以做出如下規定來避免環路現象[10]:
(1)每個基因最多出現一次;
(2)染色體長度不能超過節點個數; 大功率電感廠家 |大電流電感工廠