一種基于譜聚類算法的景點(diǎn)路線推薦方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及旅游信息服務(wù)領(lǐng)域,特別是一種基于譜聚類算法的景點(diǎn)路線推薦方 法。
【背景技術(shù)】
[0002] 旅游路線最優(yōu)化問題一直是人們所關(guān)注的一個(gè)社會(huì)焦點(diǎn),特別是近幾年來隨著城 市的發(fā)展,人們生活物質(zhì)水平的提高,節(jié)日期間外出旅游,己經(jīng)成為節(jié)假日必不可少的部 分。因此,如何對(duì)旅游路線進(jìn)行合理的優(yōu)化越來越被人所重視。
[0003] 旅游路線規(guī)劃是典型的旅行商問題(TSP),旅行商問題是指旅行商按一定的順序 訪問每個(gè)城市,使得每個(gè)城市都能被訪問且僅能被訪問一次,最后回到起點(diǎn),且花費(fèi)的代價(jià) 最小。旅行商問題是組合優(yōu)化問題中典型的多項(xiàng)式復(fù)雜程度的非確定性問題(NP完全問 題),是許多領(lǐng)域內(nèi)復(fù)雜工程優(yōu)化問題的抽象形式。關(guān)于旅行商問題(TSP)問題的完全有效 的算法目前尚未找到,運(yùn)促使人們長期W來不斷地探索并積累了大量的算法。歸納起來,目 前主要算法可分成傳統(tǒng)優(yōu)化算法和現(xiàn)代優(yōu)化算法。在傳統(tǒng)優(yōu)化算法中又可分為最優(yōu)解算法 和近似方法。傳統(tǒng)優(yōu)化算法包括分支定界法、改良回路法、貪婪算法、插入法等。最優(yōu)解算法 雖然可W得到精確解,但計(jì)算時(shí)間無法忍受,因此就產(chǎn)生了各種近似方法,運(yùn)些近似算法雖 然可W較快地求得接近最優(yōu)解的可行解,但其接近最優(yōu)解的程度不能令人滿意。
[0004] 現(xiàn)代優(yōu)化算法中分為確定性方法和隨機(jī)方法。確定性的方法優(yōu)化速度快,但容易 陷入局部極小值,即無法保證全局最優(yōu),而且增加了算法復(fù)雜度,致使求解時(shí)間過長,不利 于實(shí)際應(yīng)用;相反,隨機(jī)方法能夠最大程度的避免確定性方法的不足,雖然不能保證在確定 的步驟內(nèi)得到最優(yōu)解,但通過引入新的接受準(zhǔn)則,引出了一種在全局范圍內(nèi)尋找最優(yōu)解的 方法一-模擬退火算法。該算法善于捜索困難度和復(fù)雜性高的"死角",從中找出期望值高 的區(qū)域,但也存在著不足之處。如果問題的復(fù)雜程度不斷增大那么其結(jié)果的求解時(shí)間也會(huì) 逐漸成指數(shù)級(jí)變大,一旦問題的規(guī)模過于龐大則求解時(shí)間也會(huì)大大延長,從而達(dá)不到預(yù)期 結(jié)果。而且可行性已經(jīng)不再是人們追求的唯一目標(biāo),僅僅對(duì)運(yùn)種基本需求的滿足是遠(yuǎn)遠(yuǎn)不 夠的,對(duì)問題求解效率和質(zhì)量的要求更是人們追求的方向。
[0005] 上述方法均不能很好地滿足實(shí)際情況中的游客需求,即在較短時(shí)間內(nèi)向游客推薦 一條最短的旅游路線。
【發(fā)明內(nèi)容】
[0006] 發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于譜 聚類算法的景點(diǎn)路線推薦方法。
[0007] 為了解決上述技術(shù)問題,本發(fā)明公開了一種基于譜聚類算法的景點(diǎn)路線推薦方 法,包括W下步驟:
[000引步驟1,游客確定要游覽的景點(diǎn),通過計(jì)算機(jī)、智能終端、或者其他具有數(shù)據(jù)處理功 能的交互設(shè)備捜集運(yùn)些景點(diǎn)的數(shù)據(jù)信息并抽象成一個(gè)無向圖;
[0009] 步驟2,使用弗洛伊德Floyd-Warshall算法化ttps : //en .Wikipedia .org/wiki/ Floyd-Warshall_algo;rithm)計(jì)算無向圖中任意兩個(gè)景點(diǎn)的最短距離,得到景點(diǎn)路徑圖,刪 除景點(diǎn)路徑圖中的無用路徑;
[0010] 步驟3,應(yīng)用譜聚類算法將步驟2得到的景點(diǎn)路徑圖上的大景區(qū)切割成兩個(gè)W上小 景區(qū);
[0011] 步驟4,采用模擬退火算法計(jì)算出小景區(qū)間的路線規(guī)劃方案;
[0012] 步驟5,選擇離游客最近的一個(gè)小景區(qū)的景點(diǎn)作為游客的出發(fā)點(diǎn),求出該小景區(qū)內(nèi) 的景點(diǎn)訪問路線,再根據(jù)小景區(qū)之間的路線規(guī)劃方案訪問下一個(gè)小景區(qū),分別求出每個(gè)小 景區(qū)內(nèi)部的景點(diǎn)訪問路線,最終得到所有景點(diǎn)的總體游覽路線。
[0013] 本發(fā)明中,捜集的游客游覽景點(diǎn)抽象為一個(gè)無向圖G=(V,E,C)。景點(diǎn)的集合為V = {vi,V2,···,V1,···,Vn},其中V康示第i個(gè)景點(diǎn),1 y如,η表示景點(diǎn)的個(gè)數(shù)。道路(邊)的集合 為6={(1',3):1',3£'\〇,其中1',3為景點(diǎn)。景點(diǎn)之間的距離為〔={山:1',3£¥}。
[0014] 步驟2中,采用基于弗洛伊德的算法刪除景點(diǎn)之間的無用邊,分為兩步,
[0015] 步驟2-1,通過弗洛伊德算法計(jì)算出任意兩個(gè)景點(diǎn)i和j之間的最短距離dist[i] [j];
[0016] 步驟2-2,如果兩個(gè)景點(diǎn)i和j之間直接相連的路徑長度c[i][j]大于運(yùn)兩個(gè)景點(diǎn)之 間的最短距離,即c[i][j]〉dist[i][j],那么判定該路徑不在運(yùn)兩個(gè)景點(diǎn)的最短路徑上,刪 除該路徑,其中c[i][ j]表示景點(diǎn)i和景點(diǎn)j直接相連的路徑長度,dist[i][ j]表示景點(diǎn)i和 景點(diǎn)j的最短距離。最后得到刪除無用路徑的景點(diǎn)路徑圖。
[0017] 步驟3包括W下步驟:
[0018] 步驟3-1,采用高斯核函數(shù)構(gòu)造所有景點(diǎn)的相似矩陣W和度矩陣D:
[0021] 其中,訊^表示景點(diǎn)i和景點(diǎn)j之間的相似度,1 < 1,j <n,n表示景區(qū)內(nèi)所有景點(diǎn)的總 數(shù),所有的WU構(gòu)成相似矩陣W,cu表示景點(diǎn)i和景點(diǎn)j之間直接相連的路徑的長度,如果不存 在直接相連的路徑,則CU設(shè)為W,將所有的CU進(jìn)行從小到大排序,最大值記為最大距離 dmax,最小值記為最短距離dmin,〇表示最大距離dmax與最短距離dmin之差的10%,〇 = (dmax-dmin)*10%,d康示景點(diǎn)i的度,所有的di構(gòu)成度矩陣D;
[0022] 步驟3-2,通過相似矩陣W和度矩陣D構(gòu)造對(duì)稱拉普拉斯矩陣Lsym,公式如下:
[0023] Lsym =擴(kuò) 1/2L擴(kuò) 1/2 = I-擴(kuò) 1/2町)-1/2,
[0024] 其中,L表示拉普拉斯矩陣,L = D-W,I表示單位矩陣,單位矩陣參見化ttps:// zh.wikipedia.org/zh-cn/)。
[0025] 步驟3-3,計(jì)算出矩陣Lsym的前ω個(gè)特征值及其對(duì)應(yīng)的特征向量Va,l如< ω,Va表 示第a個(gè)最小特征值對(duì)應(yīng)的特征向量,所有特征向量組成矩陣V;
[00%]步驟3-4,將特征向量矩陣V進(jìn)行歸一化,得到矩陣T,公式如下:
[0027]
[0028] 其中,Tbf表示歸一化矩陣第b行第f列的值,Vbf表示特征向量矩陣第b行第f列的 值,1非如,1 y含ω ;vbg表示特征向量矩陣第b行第g列的值,1含g含ω
表示特 征向量矩陣第b行的所有列的值之和;
[0029] 步驟3-5,設(shè)矩陣T的第b行向量為yb,l非如,對(duì)運(yùn)η個(gè)向量采用k-均值化-means) 方法進(jìn)行聚類,產(chǎn)生k個(gè)聚類,向量yb所屬的類別即為景點(diǎn)b所屬的類別,每個(gè)聚類內(nèi)的景點(diǎn) 組成一個(gè)小景區(qū),則共有k個(gè)小景區(qū)。
[0030] 步驟4包括如下步驟:
[0031] 步驟4-1,設(shè)定小景區(qū)之間的距離,如果兩個(gè)小景區(qū)中有直接相連的景點(diǎn),則兩個(gè) 小景區(qū)之間的距離為直接相連的景點(diǎn)距離的平均值;如果小景區(qū)間沒有直接的景點(diǎn),那么 兩個(gè)小景區(qū)間的距離設(shè)為無窮大;
[0032] 步驟4-2,通過弗洛伊德(Floyd-Warshall)算法計(jì)算出任意兩個(gè)小景區(qū)之間的最 短距離;
[0033] 步驟4-3,對(duì)于上述k個(gè)小景區(qū)(口1,口2,-',口1〇,采用模擬退火算法計(jì)算出小景區(qū)間 的路線規(guī)劃方案,該路線規(guī)劃方案的解空間是小景區(qū)訪問順序的排列組合,確定起點(diǎn)1和終 點(diǎn)k后,則解空間S表示為{2,···,k-l}的所有排列的集合,解空間S中每一種排列Se表示一種 游覽運(yùn)k個(gè)小景區(qū)的路線規(guī)劃,然后采用模擬退化算法求出最優(yōu)路線規(guī)劃方案。
[0034] 本發(fā)明采用的模擬退火法(Simulated Annealing)是模擬熱力學(xué)中經(jīng)典粒子系統(tǒng) 的降溫過程,用來求解規(guī)劃問題的極值。當(dāng)孤立粒子系統(tǒng)的溫度W足夠慢的速度下降時(shí),系 統(tǒng)近似處于熱力學(xué)平衡狀態(tài),最后系統(tǒng)將達(dá)到本身的最低能量狀態(tài),即基態(tài),運(yùn)相當(dāng)于能量 函數(shù)的全局極小點(diǎn)。步驟4-3所述采用模擬退化算法求出最優(yōu)路線規(guī)劃方案包括如下步驟:
[0035] 步驟4-3-1,設(shè)定解空間S的初始解是隨機(jī)生成的{2,3,…,k-1}的隨機(jī)排列So,且 設(shè)走初始溫度to為100度;
[0036] 步驟4-3-2,按照排列(ρι,ρ2,···,ρ?的順序訪問小景區(qū),總路線長度公式如下:
[0037]
[00測(cè)其中,Cost(pi,p2,…,Pk)表示訪問所有小景區(qū)的總路線長度,d(px,px+i)表示小景 區(qū)Ρχ與小景區(qū)化+1之間的最短距離;
[0039] 步驟4-3-3,任意選擇序號(hào)為pui,pu2的小景區(qū),2卽ia<pu2非,交換Pul和Pu2的訪問 順序,形成新的路線方案,若交換前的排列為36=徊,口2,一瓜1^''瓜2^'',口1〇,則交換后的 新路