范人勝,杜紅濤,周丹,吳洪,陳俊,何勇
(1.廣東省農(nóng)村信用社聯(lián)合社,廣州 510000;2.珠海市長陸工業(yè)自動控制系統(tǒng)股份有限公司,珠海 519090)
選址問題是運(yùn)籌學(xué)和管理科學(xué)中經(jīng)典的決策問題,有著巨大的經(jīng)濟(jì)和社會研究價(jià)值,其主要研究選擇設(shè)施的數(shù)目同和確定設(shè)施的最優(yōu)位置,實(shí)現(xiàn)為用戶提供優(yōu)質(zhì)服務(wù)價(jià)值的目的。自1964年Hakimi提出選址問題[1]后,大大激發(fā)了選址問題的研究,許多學(xué)者投身到選址問題的理論研究中。Hedetniemi等人[2]在一個(gè)無權(quán)重的網(wǎng)絡(luò)中選擇一個(gè)設(shè)施點(diǎn),并新設(shè)計(jì)了算法解決此類問題,文獻(xiàn)[3]提出可變領(lǐng)域搜索和禁忌搜索結(jié)合的算法求解離散選址問題。Goldman研究在樹狀網(wǎng)上選擇設(shè)施點(diǎn)的中值問題[4],其方法為先任選網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn),計(jì)算該節(jié)點(diǎn)的權(quán)重是否超過所有節(jié)點(diǎn)權(quán)重的一半,是則選為中值點(diǎn)。Berman等人[5]利用最大覆蓋模型求解距離,并針對不同情形做了改進(jìn)。在選址模型的應(yīng)用中,大部分用于物流中心、醫(yī)院、消防站等公共服務(wù)領(lǐng)域,在銀行選址方面的應(yīng)用研究相對較少[6]。
銀行網(wǎng)點(diǎn)作為一種服務(wù)類公共商業(yè)設(shè)施,其服務(wù)理念是“以客戶為中心”,銀行網(wǎng)點(diǎn)選址合理與否不僅影響到人民的生活質(zhì)量,也關(guān)系到企業(yè)的戰(zhàn)略發(fā)展[7],合理的銀行網(wǎng)點(diǎn)選址在給人民帶來生活便利的同時(shí),也給企業(yè)帶來更大的收益。銀行選址作為一門重要的研究課題,學(xué)者們用不同的理論和方法對其做了探索和研究。文獻(xiàn)[8]設(shè)計(jì)了基于LBI的網(wǎng)點(diǎn)選址算法對網(wǎng)點(diǎn)進(jìn)行部署。楊柳等人[9]提出用GIS技術(shù)確定ATM機(jī)的布局。文獻(xiàn)[10]利用復(fù)雜網(wǎng)絡(luò)方法,提出基于復(fù)雜網(wǎng)絡(luò)的網(wǎng)點(diǎn)選址優(yōu)化模型。Richard[11]利用GIS空間交互模型進(jìn)行網(wǎng)點(diǎn)選址研究。Philip等人[12]采用了Huff模型構(gòu)建銀行網(wǎng)點(diǎn)選址模型。目前大多數(shù)銀行選址研究都是基于離散型的,即在給定的網(wǎng)絡(luò)節(jié)點(diǎn)上選取銀行網(wǎng)點(diǎn)的部署位置;而連續(xù)型選址研究較少,其是指在給定的整個(gè)備選區(qū)域選取最優(yōu)的位置。連續(xù)型選址相對于離散型選址來說,位置的選取是全局范圍內(nèi)尋找,對于環(huán)境的適應(yīng)性更強(qiáng),求解的難度更大[13],連續(xù)型選址屬于NP難問題。本文研究的銀行網(wǎng)點(diǎn)選址是基于連續(xù)型的,考慮到經(jīng)濟(jì)實(shí)用性以及成本問題,以銀行網(wǎng)點(diǎn)到居民點(diǎn)的路徑長度最小作為優(yōu)化目標(biāo)。
差分進(jìn)化(DE)算法是一種啟發(fā)式優(yōu)化算法,具有受控參數(shù)少、魯棒性強(qiáng)等特點(diǎn),在約束優(yōu)化、聚類優(yōu)化和神經(jīng)網(wǎng)絡(luò)優(yōu)化等方面得到了廣泛應(yīng)用[14-16]。該算法在變異方面使用了差分策略,提高算法的搜索效率,避免了變異方式的不足,其具備全局并行和高效搜索的特性[17-18],適合解決連續(xù)優(yōu)化問題。但初始種群的個(gè)體分布會影響到算法的全局收斂能力[19],為此本文找尋了可以縮小網(wǎng)絡(luò)覆蓋半徑的均值點(diǎn),作為差分進(jìn)化算法的初始位置,從而提出解決連續(xù)K中心網(wǎng)點(diǎn)選址問題的均值點(diǎn)差分進(jìn)化(Mean Points DE,MDE)算法。
本文采用幾何方式,將網(wǎng)點(diǎn)選址問題轉(zhuǎn)化為圖論問題。網(wǎng)點(diǎn)位置選取的不同,將對居民的生活便利產(chǎn)生影響。如圖1-(A)所示,四節(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò)圖G1,假定無向邊的長度都是2。圖1-(B)在節(jié)點(diǎn)v3設(shè)定網(wǎng)點(diǎn)位置,網(wǎng)點(diǎn)S到最遠(yuǎn)居民點(diǎn)v4的距離為2;圖1-(C)將v2選定為網(wǎng)點(diǎn)S的部署位置,網(wǎng)點(diǎn)S到最遠(yuǎn)居民點(diǎn)v4的距離為 4,對比圖 1-(B)和 1-(C)可知,網(wǎng)點(diǎn)位置選取的不同,其到各居民點(diǎn)的距離將產(chǎn)生差異,進(jìn)而影響居民的生活質(zhì)量。銀行網(wǎng)點(diǎn)選址問題的主要目標(biāo)就是通過調(diào)整網(wǎng)點(diǎn)位置,最大限度地提高網(wǎng)點(diǎn)對居民的服務(wù)質(zhì)量。
圖1 銀行網(wǎng)點(diǎn)選址問題
網(wǎng)點(diǎn)選址對應(yīng)的網(wǎng)絡(luò)拓?fù)鋱D用G(V,E)表示,其中V(G)={v1,v1,···,vn},V(G)是指n個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)構(gòu)成的集合。lij為節(jié)點(diǎn)vi和vj的歐幾里得距離,對于任意兩節(jié)點(diǎn)vi和vj間的距離小于等于給定的半徑r時(shí)(即lij≤r),稱兩節(jié)點(diǎn)互為鄰接節(jié)點(diǎn),且兩節(jié)點(diǎn)之間有邊相連,鄰接節(jié)點(diǎn)間的所有邊構(gòu)成集合E(G)。
在銀行網(wǎng)點(diǎn)選址中,需要設(shè)置網(wǎng)點(diǎn)為居民點(diǎn)提供服務(wù),居民點(diǎn)會以距離其最小的銀行網(wǎng)點(diǎn)作為其服務(wù)節(jié)點(diǎn)。假設(shè)給定網(wǎng)絡(luò)G的規(guī)模為n,設(shè)置服務(wù)網(wǎng)點(diǎn)數(shù)量為K個(gè),是網(wǎng)絡(luò)G的鄰接矩陣,如果e(vi,vj)∈E(G),則eij=1,否則eij=0。最短距離矩陣為表示網(wǎng)絡(luò)G中節(jié)點(diǎn)vi到vj的最短路徑距離,最短距離矩陣可由Floyd算法求得。如果d(vi,uj)≤d(vi,ul),j,l≤k,l≠j,則節(jié)點(diǎn)vi選擇uj為其服務(wù)網(wǎng)點(diǎn),此時(shí)網(wǎng)點(diǎn)uj的服務(wù)集Uj包含vi,即vi∈Uj。uj與服務(wù)集Uj中節(jié)點(diǎn)間最大的最短路徑距離為,稱為網(wǎng)點(diǎn)uj的覆蓋半徑。所有網(wǎng)點(diǎn)中的最大覆蓋半徑稱為網(wǎng)點(diǎn)集的覆蓋半徑,也稱為客戶節(jié)點(diǎn)到網(wǎng)點(diǎn)集的路徑長度。
服務(wù)網(wǎng)點(diǎn)集的覆蓋半徑是網(wǎng)點(diǎn)選址好壞的重要評價(jià)指標(biāo),覆蓋半徑越小,居民獲得銀行服務(wù)越便利。因此,銀行網(wǎng)點(diǎn)選址問題的優(yōu)化目標(biāo)為網(wǎng)點(diǎn)集的覆蓋半徑最小,即路徑長度最小,其模型為式:
其中,R2為圖G所在的二維平面。
根據(jù)網(wǎng)點(diǎn)設(shè)置位置不同,銀行網(wǎng)點(diǎn)選址問題又分為離散K中心網(wǎng)點(diǎn)選址問題和連續(xù)K中心網(wǎng)點(diǎn)選址問題。離散K中心網(wǎng)點(diǎn)選址問題是在節(jié)點(diǎn)集V(G)中選取K個(gè)位置作為網(wǎng)點(diǎn)。而連續(xù)K中心網(wǎng)點(diǎn)選址問題是指在有界平面R2中無約束地選取K個(gè)位置并設(shè)置為網(wǎng)點(diǎn),網(wǎng)點(diǎn)設(shè)置方式靈活高效。連續(xù)K中心網(wǎng)點(diǎn)選址相比于離散K中心網(wǎng)點(diǎn)選址,能夠獲得更小的覆蓋半徑。
圖2 4客戶節(jié)點(diǎn)網(wǎng)點(diǎn)部署示意圖
同樣以如圖1-(A)的網(wǎng)絡(luò)圖為例。圖2-(A)為離散K中心網(wǎng)點(diǎn)選址問題的選取方法,在V(G)中選擇v2節(jié)點(diǎn)作為網(wǎng)點(diǎn)部署位置,全局最優(yōu)的覆蓋半徑為4,圖2-(B)為連續(xù)K中心網(wǎng)點(diǎn)選址問題的選取方法,在平面R2中選取一個(gè)合適的位置設(shè)置網(wǎng)點(diǎn),覆蓋半徑降低為3,優(yōu)于離散K中心網(wǎng)點(diǎn)選址問題的覆蓋半徑。連續(xù)K中心網(wǎng)點(diǎn)選址問題是指在整個(gè)網(wǎng)絡(luò)平面范圍內(nèi),選擇任意K個(gè)位置來設(shè)置銀行網(wǎng)點(diǎn),因此連續(xù)K中心網(wǎng)點(diǎn)選址問題是NP難問題,難以通過經(jīng)典數(shù)學(xué)方式進(jìn)行精確求解。對于連續(xù)優(yōu)化問題,進(jìn)化算法有較好的求解效果。
差分進(jìn)化(DE)算法是一種基于群體差異的隨機(jī)搜索算法,該算法具有較強(qiáng)的搜索能力和魯棒性,適合求解連續(xù)空間優(yōu)化問題。針對連續(xù)K中心網(wǎng)點(diǎn)選址問題,初始種群的個(gè)體分布會影響算法的全局收斂能力,優(yōu)化種群的初始位置,可提高算法的收斂效果。為此,本文引入了基于均值點(diǎn)的初始種群生成方法,提出了一種均值點(diǎn)的差分進(jìn)化(MDE)算法。
在連續(xù)K中心網(wǎng)點(diǎn)選址的網(wǎng)絡(luò)拓?fù)鋱D中,規(guī)定兩節(jié)點(diǎn)的距離lij≤r時(shí),兩節(jié)點(diǎn)之間有邊相連,節(jié)點(diǎn)vi的覆蓋范圍是一個(gè)半徑為r的球形鄰域:Bi=如圖3(A)所示的三節(jié)點(diǎn)網(wǎng)絡(luò)圖,其中r<l(v1,v2)≤2r。如圖 3(B)所示,陰影區(qū)D=B1?B2。若在雙節(jié)點(diǎn)的陰影區(qū)D上部署網(wǎng)點(diǎn)節(jié)點(diǎn),可以連通節(jié)點(diǎn)v1和v2,而v1和v2的中點(diǎn)c位陰影區(qū)內(nèi),在中點(diǎn)c處部署網(wǎng)點(diǎn)可以有效連接節(jié)點(diǎn)v1、v2和v3。中點(diǎn)c具有較好的連通性,可以有效縮短覆蓋半徑。因此,在平面R2上距離滿足r<lij≤2r的雙節(jié)點(diǎn)具有重要意義,同理推廣到任意雙節(jié)點(diǎn)的情況。
圖3 三節(jié)點(diǎn)網(wǎng)絡(luò)圖
在網(wǎng)絡(luò)圖G中,任意兩個(gè)節(jié)點(diǎn)vi和vj,如果兩節(jié)點(diǎn)之間的距離滿足:r<lij≤2r,則有Dij=Bi?Bj≠?,稱Dij為雙節(jié)點(diǎn)vi和vj的公共覆蓋區(qū)域。在Dij內(nèi)的任意節(jié)點(diǎn)可與vi,vj同時(shí)建立連接,則Dij具有較好的連通效果,具有降低網(wǎng)點(diǎn)覆蓋半徑的潛質(zhì)。而vi和vj所在直線的中點(diǎn),根據(jù)圓的相交定理可知,中點(diǎn)cij∈Dij。因此可通過一個(gè)確定的點(diǎn)cij來代表公共覆蓋區(qū)域,稱點(diǎn)cij為網(wǎng)絡(luò)圖G的均值點(diǎn),在均值點(diǎn)處部署網(wǎng)點(diǎn),可以增加周邊節(jié)點(diǎn)的連通性,達(dá)到降低網(wǎng)點(diǎn)覆蓋半徑的目的。
尋找到網(wǎng)絡(luò)圖G的全部均值點(diǎn){cij}后,將均值點(diǎn)用于MDE算法的初始化。算法的初始化描述如下:隨機(jī)選擇均值點(diǎn)作為網(wǎng)點(diǎn)節(jié)點(diǎn)的位置,K個(gè)網(wǎng)點(diǎn)節(jié)點(diǎn)的位置坐標(biāo)拼接成一個(gè)個(gè)體的初始位置。
MDE算法的第i個(gè)個(gè)體表示為:xi=(xi1,xi2,…,xim)。在連續(xù)K中心網(wǎng)點(diǎn)選址問題的求解過程中,MDE算法的每個(gè)個(gè)體代表網(wǎng)點(diǎn)選址問題的一組解,編碼方式為K個(gè)網(wǎng)關(guān)在平面R2上的坐標(biāo)位置的組合,網(wǎng)點(diǎn)選址的位置分別為:(a1,b1),(a2,b2),…,(aj,bj),…,(aK,bK),其中aj=x2j-1;bj=x2j;m=2K。
MDE算法在迭代過程中,通過變異、交叉和選擇更新個(gè)體的位置,從而搜索得到更加優(yōu)秀的解。在種群初始化后,MDE算法通過差分策略實(shí)現(xiàn)個(gè)體變異。變異策略是隨機(jī)選擇兩個(gè)不同的個(gè)體,將待變異個(gè)體與縮放后的向量差進(jìn)行向量合成,產(chǎn)生一個(gè)變異向量。變異向量的計(jì)算見式(1)。
其中i≠r1≠r2≠r3,χ為縮放因子,vi(t+1)表示(t+1)時(shí)刻第i個(gè)變異向量。為了完善差分變異搜索策略,MDE算法使用了交叉操作。在(t+1)時(shí)刻,對種群中的目標(biāo)個(gè)體與其變異向量進(jìn)行個(gè)體間的交叉操作,如式(2)所示,其中CR為交叉概率,CR∈[0,1],jrand為[1,2,3,···,2K]的隨機(jī)整數(shù)。xi,j(t)表示t時(shí)刻第i個(gè)個(gè)體的第j位元素。
通過交叉操作后,得到目標(biāo)個(gè)體的試驗(yàn)向量ui。交叉完成后,按照式(3)進(jìn)行選擇操作。
其中f(xi)為個(gè)體xi對應(yīng)的適值。如果試驗(yàn)向量的目標(biāo)函數(shù)值小于等于目標(biāo)個(gè)體的函數(shù)值時(shí),那么試驗(yàn)向量就取代目標(biāo)個(gè)體進(jìn)入下一代;否則目標(biāo)個(gè)體就會繼續(xù)保持到下一代中。通過比較每一個(gè)試驗(yàn)向量和被它們繼承了參數(shù)的目標(biāo)個(gè)體可以看出,MDE算法比其他進(jìn)化算法更緊密地將交叉和選擇結(jié)合起來。
在連續(xù)K中心網(wǎng)點(diǎn)選址問題中,適值函數(shù)越小,個(gè)體就越優(yōu)秀,適值函數(shù)為個(gè)體的覆蓋半徑。MDE算法的每個(gè)個(gè)體代表K網(wǎng)點(diǎn)坐標(biāo)位置的組合,因?yàn)閭€(gè)體可以降落到平面的任意位置,所以計(jì)算個(gè)體到居民節(jié)點(diǎn)的距離比較困難,可以采用如下方法進(jìn)行計(jì)算。
個(gè)體的第k個(gè)網(wǎng)關(guān)uk的位置為ok=(ak,bk),其中1≤k≤K。節(jié)點(diǎn)vi到其最近網(wǎng)點(diǎn)的距離為。則個(gè)體 (o1,o2,···,oK)的覆蓋半徑即該個(gè)體的適值為
MDE算法的種群是隨機(jī)產(chǎn)生的,每個(gè)個(gè)體代表網(wǎng)點(diǎn)選址的一組解,計(jì)算迭代過程中每個(gè)個(gè)體的適值,并記錄種群的最小適值,MDE算法求解連續(xù)K中心網(wǎng)點(diǎn)選址的步驟如下:
Step1:初始化數(shù)目為PopSize的種群,在網(wǎng)絡(luò)圖的均值點(diǎn)出初始化種群的位置,并計(jì)算每個(gè)目標(biāo)向量的適值,即覆蓋半徑R。
Step2:設(shè)定參數(shù),確定縮放因子χ和交叉概率CR值。
Step3:根據(jù)式(1)對種群中的個(gè)體進(jìn)行變異操作,產(chǎn)生變異后的中間體變異向量。
Step4:根據(jù)式(2)對變異向量和父代中的目標(biāo)個(gè)體進(jìn)行交叉操作,產(chǎn)生交叉后的試驗(yàn)向量ui。
Step5:計(jì)算交叉后的試驗(yàn)向量與父代中目標(biāo)個(gè)體的適應(yīng)值,根據(jù)式(3)產(chǎn)生新的一代種群。當(dāng)滿足F(ui)<F(xi)時(shí),ui取代目標(biāo)個(gè)體原來的位置;否則,不取代。
Step6:當(dāng)個(gè)體的適值收斂或達(dá)到了最大迭代次數(shù)時(shí),算法結(jié)束運(yùn)行;否則返回Step3。
算法的偽代碼描述為:
本節(jié)的仿真環(huán)境是:MATLAB 2015a,內(nèi)存8GB,CPU主頻為2.5GHz的四核計(jì)算機(jī)。實(shí)驗(yàn)分別采用50、100、150和200節(jié)點(diǎn)規(guī)模的隨機(jī)網(wǎng)絡(luò)仿真連續(xù)K中心網(wǎng)點(diǎn)選址問題,網(wǎng)絡(luò)圖是連通的,節(jié)點(diǎn)度介于1和11,4種規(guī)模的網(wǎng)絡(luò)拓?fù)淙鐖D4所示。實(shí)驗(yàn)以最小覆蓋半徑作為優(yōu)化目標(biāo),將MDE算法與經(jīng)典的PSO算法和GA算法進(jìn)行實(shí)驗(yàn)結(jié)果對比。
圖4 4種規(guī)模的網(wǎng)絡(luò)拓?fù)鋱D
表1為MDE、PSO、GA這3種算法在50,100,150,200不同規(guī)模隨機(jī)網(wǎng)絡(luò)中的優(yōu)化結(jié)果,設(shè)定服務(wù)網(wǎng)點(diǎn)數(shù)目為5。表1分別記錄了3種算法20次獨(dú)立試驗(yàn)結(jié)果中,覆蓋半徑的最大值、最小值、平均值和標(biāo)準(zhǔn)差。
從表1對比3種算法的最小覆蓋半徑可知,MDE算法的各項(xiàng)指標(biāo)要優(yōu)于PSO算法和GA算法。MDE算法的標(biāo)準(zhǔn)差較小,穩(wěn)定性較強(qiáng)。MDE算法與GA算法原理相同,都采用了變異、交叉和選擇機(jī)制,但MDE算法在變異方面使用了差分策略,即使用了差分向量對個(gè)體進(jìn)行擾動,實(shí)現(xiàn)個(gè)體變異,可以有效利用群體分布的特性,提高算法的搜索效率,避免了變異方式的不足。MDE算法和PSO算法都適合解決連續(xù)空間優(yōu)化問題,但PSO算法在搜索過程中,容易陷入局部最優(yōu),搜索結(jié)果的魯棒性較差,相比PSO算法,MDE算法的全局搜索能力強(qiáng),搜索精度高,穩(wěn)定性強(qiáng)。
表1 3種算法在不同節(jié)點(diǎn)規(guī)模下的覆蓋半徑結(jié)果
圖5為MDE、PSO和GA算法在4種不同網(wǎng)絡(luò)規(guī)模下的迭代收斂過程,A-D的網(wǎng)絡(luò)規(guī)模分別為50,100,150,200節(jié)點(diǎn)。從圖中可以看出,各算法初始值與收斂值差異較大,收斂過程對比明顯。
圖5 3種算法收斂過程分析
對比3個(gè)算法的初始值可知,GA算法的初始值最大,MDE算法與PSO算法的初始值相似,但稍微優(yōu)于PSO算法。對比3個(gè)算法的收斂過程可知,GA算法和PSO算法收斂最快,容易陷入局部最優(yōu)解;MDE算法收斂最慢,MDE算法的差分進(jìn)化策略保障了種群多樣性,收斂過程較慢,更易于收斂全局最優(yōu)解。
表2為MDE、PSO、GA這3種算法在200網(wǎng)絡(luò)規(guī)模情況下,設(shè)定不同服務(wù)網(wǎng)點(diǎn)數(shù)目,獨(dú)立運(yùn)行20次時(shí),覆蓋半徑的最大值、最小值、平均值和標(biāo)準(zhǔn)差。
表2 3種算法在不同服務(wù)網(wǎng)點(diǎn)數(shù)目下的覆蓋半徑結(jié)果
從表2的實(shí)驗(yàn)結(jié)果可知,在服務(wù)網(wǎng)點(diǎn)數(shù)目一定的情況下,MDE算法的覆蓋半徑要優(yōu)于PSO算法和GA算法,各項(xiàng)指標(biāo)表現(xiàn)更優(yōu)秀。GA算法解決的是離散K中心選址問題,服務(wù)網(wǎng)點(diǎn)部署在網(wǎng)絡(luò)節(jié)點(diǎn)上,MDE算法和PSO算法解決的是連續(xù)K中心選址問題,服務(wù)網(wǎng)點(diǎn)部署在非鄰接節(jié)點(diǎn)的中心位置,能夠縮短其到周圍節(jié)點(diǎn)的路徑長度。
針對銀行網(wǎng)點(diǎn)選址問題,本文提出采用全局搜索能力較強(qiáng)的MDE算法解決連續(xù)型網(wǎng)點(diǎn)選址問題,以網(wǎng)點(diǎn)集的覆蓋半徑最小為優(yōu)化目標(biāo),找尋了可以縮小覆蓋半徑的種群初始位置,并設(shè)計(jì)了新的適值函數(shù)。通過對比PSO和GA算法的實(shí)驗(yàn)結(jié)果,MDE算法收斂獲得更加優(yōu)秀的可行解。本文采用MDE算法解決連續(xù)K中心銀行網(wǎng)點(diǎn)選址問題,為研究其他連續(xù)型設(shè)施選址問題提供了一種很好的解決方法。