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

?

基于深度強化學(xué)習(xí)的網(wǎng)絡(luò)邊緣計算多級卸載模型研究

2023-11-14 13:38:34
保山學(xué)院學(xué)報 2023年5期
關(guān)鍵詞:邊緣調(diào)度服務(wù)器

劉 敏

(湄洲灣職業(yè)技術(shù)學(xué)院信息中心,福建莆田 351119)

隨著智能化時代的到來,互聯(lián)網(wǎng)發(fā)展得到大幅度的提升,人們的生活已離不開移動設(shè)備。移動設(shè)備包括手機、電腦、VR 等交互設(shè)備[1]。隨著移動設(shè)備功能的不斷更新和完善,其功能變得更為復(fù)雜,設(shè)備所產(chǎn)生的計算任務(wù)也變得較為復(fù)雜。由于移動設(shè)備受自身儲存、容量以及電量等因素的影響,移動設(shè)備自身無法負荷高強度的中央處理單元(CPU),其計算能力較差,無法在限定時間內(nèi)處理需要大量計算的任務(wù),導(dǎo)致計算任務(wù)失效。結(jié)合邊緣計算的任務(wù)卸載方法能夠有效解決該問題,邊緣計算又稱移動邊緣計算(Mobile Edge Computing,MEC),邊緣計算能夠減少傳輸計算任務(wù)造成的延遲,并及時解決移動設(shè)備使用者發(fā)出的計算任務(wù)[2-3]。在無線網(wǎng)絡(luò)中,眾多的移動設(shè)備使用者發(fā)布大量的計算任務(wù),而這些計算任務(wù)需要在規(guī)定的時間內(nèi)完成,由于邊緣計算的處理能力具有局限性,邊緣計算服務(wù)器無法將移動設(shè)備傳輸?shù)娜康挠嬎闳蝿?wù)進行卸載計算,因此,會有多個移動設(shè)備選取同一個計算資源[4]。因此構(gòu)建一個網(wǎng)絡(luò)邊緣計算多級卸載模型,將計算資源合理分配是首要任務(wù)。

高寒等人建立基于神經(jīng)網(wǎng)絡(luò)的多級卸載模型,將多種計算任務(wù)作為該模型中深度神經(jīng)網(wǎng)絡(luò)的輸入,將網(wǎng)絡(luò)中移動設(shè)備使用者發(fā)出的所有計算任務(wù)拆開并分解,當(dāng)多級卸載模型中的卸載調(diào)度模塊做出卸載執(zhí)行的決策時,該模型的邊緣計算環(huán)境中重點考慮計算資源,利用粒子群算法調(diào)度所有的計算任務(wù),減少該卸載模型執(zhí)行計算任務(wù)所耗用的能量[5]。張海波等人建立基于邊緣計算的任務(wù)卸載模型,運用坐標(biāo)下降法優(yōu)化該模型中的卸載決策,運用貪婪、匈牙利算法分配計算任務(wù)的子信道,降低該模型中的能量損耗,提高該模型的性能[6]。上述兩種方法在做出計算任務(wù)是在移動設(shè)備自身CPU 進行本地執(zhí)行還是將該計算任務(wù)傳輸?shù)竭吘売嬎惴?wù)器進行卸載執(zhí)行的決策時,不是最優(yōu)的決策結(jié)果,導(dǎo)致邊緣計算服務(wù)器無法在規(guī)定時間內(nèi)執(zhí)行完所有的計算任務(wù),既產(chǎn)生大量的能耗又影響移動設(shè)備使用者的體驗感。

深度強化學(xué)習(xí)指的是強化學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)的統(tǒng)稱。強化學(xué)習(xí)是指在某種既定場景下運用其自適應(yīng)學(xué)習(xí)能力,做出最優(yōu)決策。深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)具有感知能力。將兩者相結(jié)合,得到的深度強化學(xué)習(xí)同時具有感知、決策能力[7]。基于此,針對未解決網(wǎng)絡(luò)邊緣計算多級卸載模型中存在的問題,本文提出基于深度強化學(xué)習(xí)的網(wǎng)絡(luò)邊緣計算多級卸載模型,以提高移動設(shè)備使用者的體驗感。

1 網(wǎng)絡(luò)邊緣計算多級卸載模型

1.1 多級卸載模型

邊緣計算服務(wù)器具有強大的計算功能,將該服務(wù)器放置在物聯(lián)網(wǎng)絡(luò)邊緣,為移動設(shè)備使用者提供穩(wěn)健的計算服務(wù)。邊緣計算服務(wù)器將軟件和硬件服務(wù)資源分配給每一個移動設(shè)備,以此減少移動設(shè)備的延遲以及損耗,為該設(shè)備使用者提供高質(zhì)量服務(wù)[8]。關(guān)于網(wǎng)絡(luò)邊緣計算多級卸載模型如圖1。

圖1 網(wǎng)絡(luò)邊緣計算多級卸載模型

在該模型中,多個移動設(shè)備使用者發(fā)布多級計算任務(wù),多級計算任務(wù)組成移動應(yīng)用程序,將該程序建模為有向無環(huán)圖(Directed scyclic graph,DAG),使計算任務(wù)的卸載調(diào)度決策更加精細化。計算任務(wù)可以在移動設(shè)備自身的CPU 上處理,也可以將該計算任務(wù)通過數(shù)據(jù)傳輸單元傳輸?shù)竭吘売嬎惴?wù)器中,遠程卸載執(zhí)行該計算任務(wù),而后將處理結(jié)果傳輸回移動設(shè)備。網(wǎng)絡(luò)邊緣計算多級卸載模型中卸載調(diào)度模塊決定每個移動設(shè)備發(fā)布的每個計算任務(wù)的執(zhí)行方式,執(zhí)行完該計算任務(wù)后將結(jié)果傳輸回移動設(shè)備,完成計算任務(wù)卸載調(diào)度[9]。

在該邊緣計算多級卸載模型中,移動設(shè)備以及邊緣計算服務(wù)器中的CPU 在同一時間不能進行兩個及以上操作,每次只能傳送一個計算任務(wù)或者是執(zhí)行一個計算任務(wù),若同一時間多個計算任務(wù)需要處理,將多個計算任務(wù)按照先后順序排列,等待移動設(shè)備或者邊緣計算服務(wù)器的CPU完成上一個計算任務(wù)后,按照順序執(zhí)行下一個計算任務(wù)。

1.2 問題描述

為解決移動設(shè)備自身的計算資源較差的問題,設(shè)定網(wǎng)絡(luò)邊緣計算多級卸載模型中移動設(shè)備有K個,全部設(shè)備共有N×K個待處理的計算任務(wù)。同一時間內(nèi),移動設(shè)備只能將一個計算任務(wù)傳輸?shù)竭吘売嬎惴?wù)器中。移動設(shè)備將計算任務(wù)輸送到邊緣計算服務(wù)器的傳輸速率Ri,j為:

上式中:W表示傳輸計算任務(wù)的帶寬,g0、ζ分別表示傳輸該任務(wù)的損耗常數(shù)、指數(shù),?0、?i分別表示移動設(shè)備i到邊緣計算服務(wù)器的相對、實際距離,p表示將移動設(shè)備使用者發(fā)出的計算任務(wù)傳輸?shù)竭吘売嬎惴?wù)器所用的功率,β0表示傳輸計算任務(wù)過程中的噪聲密度。

由于移動設(shè)備使用者發(fā)出的計算任務(wù)可以在移動設(shè)備自身CPU 進行本地執(zhí)行或者在邊緣計算服務(wù)器CPU 中進行卸載執(zhí)行,因此,設(shè)定X={xi,j} 表示卸載決策,代表移動設(shè)備使用者發(fā)出的計算任務(wù)被卸載的具體情況:

為避免邊緣計算服務(wù)器的CPU 傳輸計算任務(wù)時,邊緣計算服務(wù)器出現(xiàn)空載現(xiàn)象,因此,調(diào)度該服務(wù)器中全部的卸載任務(wù)[10]。將需要卸載的計算任務(wù)排序后存儲至卸載任務(wù)集合S={S1,…,Si,…,SK} 中。同理,需要本地執(zhí)行的計算任務(wù)的集合為L={L1,…,Li,…,LK}。

邊緣計算服務(wù)器卸載執(zhí)行移動設(shè)備使用者發(fā)布的計算任務(wù)所耗用的時間為:

上式中:Ci,j表示移動設(shè)備本地執(zhí)行完計算任務(wù)所用的數(shù)據(jù),fi,ser表示邊緣計算服務(wù)器分配給移動設(shè)備的頻率。

上式中:fi,user表示移動設(shè)備自身CPU頻率。

上式中:Di,j表示邊緣計算服務(wù)器完成計算任務(wù)所用的數(shù)據(jù)。

移動設(shè)備自身CPU執(zhí)行計算任務(wù)所耗用的能量e(i,j),L為:

上式中:δi,L表示移動設(shè)備的電容系數(shù)。

移動設(shè)備耗用的總能量ei為:

邊緣計算多級卸載模型耗用的總時間Ti、總能量Ei分別為:

上式中:Ns、分別表示邊緣計算服務(wù)器卸載執(zhí)行完全部計算任務(wù)的總數(shù)和所耗用的時間,Nl、分別表示移動設(shè)備運用自身CPU本地執(zhí)行完全部計算任務(wù)的數(shù)量與所耗用的時間。

1.3 基于深度強化學(xué)習(xí)的多級卸載決策

強化學(xué)習(xí)是指在某種既定場景下運用其自適應(yīng)學(xué)習(xí)能力,得到最優(yōu)決策的一種算法模型。它將分配計算任務(wù)問題看作環(huán)境和智能體之間的互動,此過程中的每個移動步,環(huán)境所處的狀態(tài)均傳輸?shù)街悄荏w中,智能體做出響應(yīng),在下個移動步,通過環(huán)境的反饋,智能體便能得到新的環(huán)境狀態(tài),環(huán)境和智能體之間每完成一個交互即可獲取相應(yīng)的獎勵。強化學(xué)習(xí)為適應(yīng)環(huán)境,主動學(xué)習(xí)已獲取的獎勵中的所有知識,它以取得所有移動步的預(yù)期獎勵為目標(biāo)[11-12]。由于強化學(xué)習(xí)具有局限性,難以做出所有的決策,因此,結(jié)合強化學(xué)習(xí)和深度學(xué)習(xí),得到具有決策、感知兩大功能的深化強度學(xué)習(xí)算法。將強化學(xué)習(xí)算法和實際邊緣計算環(huán)境相結(jié)合,構(gòu)建馬爾科夫決策過程(Markov decision processes,MDP)模型,得到調(diào)度計算任務(wù)的最優(yōu)決策結(jié)果,提出基于深度Q學(xué)習(xí)網(wǎng)絡(luò)(deep Q-Learing network,DQN)的多級卸載算法,減少網(wǎng)絡(luò)邊緣計算多級卸載模型中卸載執(zhí)行計算任務(wù)所耗用的能量、時間延遲等問題。

1.3.1 MDP模型

MDP模型由狀態(tài)空間、動作空間以及獎勵函數(shù)組成。

1.3.1.1 狀態(tài)空間

MDP模型的狀態(tài)空間Z為:

上式中:G表示正在被調(diào)度的計算任務(wù),k表示已經(jīng)調(diào)度完的計算任務(wù)的數(shù)量,Ak表示k個計算任務(wù)的動作空間,用來描述前k個計算任務(wù)的具體調(diào)度情況,其公式為:

上式中:ak表示第k個計算任務(wù)的決策。若ak= 0 則運用移動設(shè)備本地CPU 執(zhí)行該任務(wù),若ak= 1則運用邊緣計算服務(wù)器進行卸載執(zhí)行該任務(wù)。

1.3.1.2 動作空間

1.3.1.3 獎勵函數(shù)

以網(wǎng)絡(luò)邊緣計算多級卸載模型中完成所有計算任務(wù)耗用的總能量、時間最小為目標(biāo),構(gòu)建MDP模型進行卸載決策的獎勵函數(shù)。根據(jù)式(9)和式(10)相結(jié)合得到的獎勵函數(shù)η為:

上式中:τ和ω分別表示完成所有計算任務(wù)耗用的總能量、時間所占用的權(quán)重。

1.3.2 DQN的多級卸載算法

基于1.3.1小節(jié)MDP模型得到的邊緣計算任務(wù)決策結(jié)果,提出DQN 的多級卸載算法,降低運用邊緣計算服務(wù)器卸載執(zhí)行計算任務(wù)所耗用的能量以及時間延遲問題,DQN 的多級卸載算法流程如下:

步驟一:初始化卸載計算任務(wù)集合Ο與動作空間A。

步驟二:設(shè)定計算任務(wù)N∈一個設(shè)備和多個服務(wù)器的集合Φ。

步驟三:取得正在被調(diào)度的計算任務(wù)G,則已調(diào)度完成的計算任務(wù)數(shù)量為k,k個計算任務(wù)的動作空間為Ak;同時取得Ε在移動步t時對CPU的使用率集合Β。

步驟四:基于上述內(nèi)容構(gòu)建MDP 模型,以卸載決策的獎勵函數(shù)為目標(biāo),獲取移動步t時初始狀態(tài)空間Zt,并選擇相應(yīng)的動作at。

步驟五:如果計算任務(wù)N能在移動設(shè)備h本地執(zhí)行并從Φ移除該計算任務(wù)N,則將鍵值對<N,h>加到Ο 中;否則移動設(shè)備h 所在的網(wǎng)絡(luò)集群中選擇任意一個移動設(shè)備h’,構(gòu)建鍵值對<N,h’>,從Φ中移除該計算任務(wù)N,將鍵值對<N,h>加到Ο中。

為估計出最優(yōu)決策的動作值函數(shù)即Q值,本文提出值迭代的DQN 多級卸載算法,該DNQ 多級卸載算法運用其深度神經(jīng)網(wǎng)絡(luò)得到近似值函數(shù),該網(wǎng)絡(luò)的輸入為所有需要執(zhí)行的計算任務(wù),輸出為對計算任務(wù)的卸載決策。

DQN 多級卸載算法具有雙網(wǎng)絡(luò)結(jié)構(gòu),一個是深度神經(jīng)網(wǎng)絡(luò)的MainNet結(jié)構(gòu),另一個是目標(biāo)網(wǎng)絡(luò)的TargetNet結(jié)構(gòu)。

上式中:zt表示移動步t所處的狀態(tài),at表示執(zhí)行動作,ηt+1表示執(zhí)行動作at后MDP 模型獲取的獎勵;zt+1表示執(zhí)行上述動作后進入下一個狀態(tài),a'表示相對應(yīng)的執(zhí)行動作;γ表示MDP模型獲取累計獎勵過程中折扣系數(shù);α、θ分別表示DQN 算法的學(xué)習(xí)速率和參數(shù)。α越小,深度Q 學(xué)習(xí)網(wǎng)絡(luò)保留之前的訓(xùn)練結(jié)果越多。

DQN 多級卸載算法增加網(wǎng)絡(luò)邊緣計算多級卸載模型的搜索面積、提高其搜索速度,增加了深度Q 學(xué)習(xí)網(wǎng)絡(luò)的經(jīng)驗池和目標(biāo)網(wǎng)絡(luò),提高了深度Q 學(xué)習(xí)網(wǎng)絡(luò)的穩(wěn)定能力。經(jīng)驗池負責(zé)交互每個移動步的智能體和邊緣計算環(huán)境,獲取交互后的轉(zhuǎn)移樣本,將該樣本存儲到記憶單元。為避免計算任務(wù)分布不均現(xiàn)象,當(dāng)DQN 多級卸載算法進行訓(xùn)練時,從記憶單元中任意選取轉(zhuǎn)移樣本。運用TargetNet結(jié)構(gòu)的目標(biāo)網(wǎng)絡(luò)反復(fù)訓(xùn)練轉(zhuǎn)移樣本,得到目標(biāo)Q值。該網(wǎng)絡(luò)的結(jié)構(gòu)和DQN 網(wǎng)絡(luò)結(jié)構(gòu)一致,在同一時刻,依據(jù)神經(jīng)網(wǎng)絡(luò)的Q值和目標(biāo)Q值之間的差值得到損失函數(shù),然后再用梯度下降法反向更新DQN的神經(jīng)網(wǎng)絡(luò)的參數(shù)。DQN多級卸載算法的損失函數(shù)為:

上式中:θ-表示目標(biāo)網(wǎng)絡(luò)的更新參數(shù);(st,at;θ)表示深度Q 學(xué)習(xí)網(wǎng)絡(luò)的輸出結(jié)果,(st+1,a';θ-)表示目標(biāo)網(wǎng)絡(luò)的輸出結(jié)果。

2 實驗分析

本文實驗采用Java開發(fā)的iFogSim仿真平臺,仿真參數(shù)如表1。

表1 實驗仿真參數(shù)

首先驗證本文模型運用深度Q 學(xué)習(xí)網(wǎng)絡(luò)對計算任務(wù)執(zhí)行多級卸載時,深度Q 學(xué)習(xí)網(wǎng)絡(luò)的經(jīng)驗池大小以及學(xué)習(xí)速率兩個參數(shù)值不同時,對本文模型的收斂能力的影響。在本文模型處理120 個計算任務(wù)的過程中,將每次訓(xùn)練得到的獎勵記錄整合,得到相應(yīng)的累計獎勵曲線,用Episodes表示開始執(zhí)行計算任務(wù)到完成該計算任務(wù),獲取相應(yīng)獎勵的一個回合。

在經(jīng)驗池的大小分別為256、512、1 024時,本文模型進行多級卸載計算任務(wù)時得到的累積獎勵曲線如圖2。

圖2 不同大小經(jīng)驗池的累計獎勵

分析圖2 可知,隨著本文模型中深度Q 學(xué)習(xí)網(wǎng)絡(luò)經(jīng)驗池和Episodes 的增加,深度Q 學(xué)習(xí)網(wǎng)絡(luò)對計算任務(wù)執(zhí)行多級卸載獲取的累計獎勵增加。上述三種大小的經(jīng)驗池中,深度Q 學(xué)習(xí)網(wǎng)絡(luò)在256的經(jīng)驗池下執(zhí)行多級卸載計算任務(wù)獲取的累計獎勵最小,其性能最差;當(dāng)Episodes 為300時,深度Q 學(xué)習(xí)網(wǎng)絡(luò)在512 的經(jīng)驗池和1 024 的經(jīng)驗池下執(zhí)行多級卸載計算任務(wù)所獲取的累計獎勵相同;當(dāng)Episodes超過300時,深度Q 學(xué)習(xí)網(wǎng)絡(luò)在512的經(jīng)驗池明顯比1 024的經(jīng)驗池下執(zhí)行多級卸載計算任務(wù)所獲取的累計獎勵高。實驗說明,本文模型應(yīng)用深度Q 學(xué)習(xí)網(wǎng)絡(luò)具有較優(yōu)的收斂能力,應(yīng)當(dāng)選取大小為512的經(jīng)驗池的網(wǎng)絡(luò),用于計算任務(wù)多級卸載。

而后驗證學(xué)習(xí)速率分別為0.02、0.002、0.000 2時,本文模型應(yīng)用深度Q 學(xué)習(xí)網(wǎng)絡(luò)執(zhí)行多級卸載計算任務(wù)時所獲取的累計獎勵曲線如圖3。

圖3 不同學(xué)習(xí)速率的累計獎勵

分析圖3 可知,在Episodes 在前300 時,本文模型中深度Q 學(xué)習(xí)網(wǎng)絡(luò)以0.02 的學(xué)習(xí)速率執(zhí)行多級卸載計算任務(wù)所獲取的累計獎勵最高;在Episodes 為300 時,深度Q 學(xué)習(xí)網(wǎng)絡(luò)通過三種學(xué)習(xí)速率執(zhí)行多級卸載計算任務(wù)獲取的累計獎勵均為-4.2;Episodes 超過450 以后,深度Q 學(xué)習(xí)網(wǎng)絡(luò)在0.002 的學(xué)習(xí)速率下執(zhí)行多級卸載計算任務(wù)獲取的累計獎勵最高,高達近3.75。實驗說明,本文模型中深度Q學(xué)習(xí)網(wǎng)絡(luò)的學(xué)習(xí)速率為0.002時,其收斂能力最優(yōu)。

驗證網(wǎng)絡(luò)傳輸計算任務(wù)的速度和邊緣計算服務(wù)器中CPU 的運行速度對本文模型調(diào)度完所有計算任務(wù)所耗用的平均時間(平均調(diào)度延時)的影響,結(jié)果如圖4。

圖4 傳輸速度、CPU運行速度不同時的平均調(diào)度延時

分析圖4 可知,隨著網(wǎng)絡(luò)傳輸計算任務(wù)的速度以及邊緣計算服務(wù)器中CPU 的運算速度的增加,降低本文模型調(diào)度完所有計算任務(wù)產(chǎn)生的平均調(diào)度延時。網(wǎng)絡(luò)傳輸計算任務(wù)的速度達到12 Mbps 時,本文模型調(diào)度完所有計算任務(wù)產(chǎn)生的平均調(diào)度延時降低了約800 ms;邊緣計算服務(wù)器中CPU的運行速度為6 GHz時,本文模型調(diào)度完所有計算任務(wù)產(chǎn)生的平均調(diào)度延時已達到最低,低至150 ms以下。實驗說明,本文模型在網(wǎng)絡(luò)傳輸計算任務(wù)的速度和邊緣計算服務(wù)器中CPU 的運行速度不同的情況下,具有較好的適應(yīng)性,速度越大,調(diào)度性能越好。

為驗證本文模型的實用性,運用本文模型對所有計算任務(wù)進行調(diào)度,展示其中部分任務(wù)的調(diào)度結(jié)果如圖5。

圖5 調(diào)度結(jié)果

分析圖5可知,本文模型可有效獲取各計算任務(wù)調(diào)度情況以及相應(yīng)的完成狀況,本文模型按照收到計算任務(wù)的時間進行排序,而后通過本文模型的卸載調(diào)度模塊做出決策,展示出的計算任務(wù)中,有4個計算任務(wù)由移動設(shè)備本身CPU 進行本地執(zhí)行,剩余7個計算任務(wù)則被傳輸至邊緣計算服務(wù)器進行卸載執(zhí)行;在限定的時間內(nèi),所有計算任務(wù)執(zhí)行完畢。實驗證明,本文模型具有良好的實用性。

3 結(jié)論

隨著移動設(shè)備功能的不斷更新和完善,其計算任務(wù)變得較為復(fù)雜。且由于移動設(shè)備受自身儲存、容量以及電量等因素的影響,使得無法在限定時間內(nèi)處理需要大量計算的任務(wù),導(dǎo)致計算任務(wù)失效,對此,本文提出基于深度強化學(xué)習(xí)的網(wǎng)絡(luò)邊緣計算多級卸載模型,實驗表明,本文模型運用深度Q 學(xué)習(xí)網(wǎng)絡(luò)對計算任務(wù)進行多級卸載時,應(yīng)當(dāng)選取大小為512的經(jīng)驗池,選取最佳學(xué)習(xí)速率為0.002,此時本文模型的收斂性能最佳;在網(wǎng)絡(luò)傳輸速度和邊緣計算服務(wù)器CPU 運行速度不同的情況下,本文模型具有良好的適應(yīng)性;本文模型能夠在既定的時間內(nèi),執(zhí)行完所有的計算任務(wù),實用性較好。

猜你喜歡
邊緣調(diào)度服務(wù)器
《調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)維護手冊》正式出版
通信控制服務(wù)器(CCS)維護終端的設(shè)計與實現(xiàn)
一種基于負載均衡的Kubernetes調(diào)度改進算法
虛擬機實時遷移調(diào)度算法
一張圖看懂邊緣計算
得形忘意的服務(wù)器標(biāo)準(zhǔn)
計算機網(wǎng)絡(luò)安全服務(wù)器入侵與防御
SVC的RTP封裝及其在NS2包調(diào)度中的應(yīng)用研究
積分刷刷刷-FTP服務(wù)器篇
在邊緣尋找自我
雕塑(1999年2期)1999-06-28 05:01:42
桦南县| 柘荣县| 宝山区| 睢宁县| 塘沽区| 千阳县| 吉林省| 正镶白旗| 同心县| 安仁县| 永德县| 慈溪市| 安福县| 封开县| 彭山县| 米脂县| 云南省| 通海县| 崇仁县| 潞城市| 工布江达县| 乌审旗| 社会| 贡嘎县| 永州市| 大同市| 丹巴县| 乾安县| 潼关县| 长宁区| 博白县| 环江| 南丹县| 昌图县| 松溪县| 琼海市| 和静县| 公主岭市| 彭泽县| 依兰县| 吉林市|