樊丹 張美琳



[摘 要]對于鄉村自駕旅游者而言,合理優化后的旅游線路不僅可以減少旅游者的經濟與時間成本,同時也可體現其個性化的需求。文章對經典的Floyd算法進行改進,綜合考慮交通費用、景點間距離等因素,最終確立了成都周邊鄉村自駕旅游的最優方案;為使優化后的線路更加智能化,構建了基于高德地圖API的旅游線路可視化系統,此可視化系統能夠智能化地推送給旅游者最優化的旅游線路,極大改善其旅游體驗,為自駕旅游者的出行提供有價值的參考與借鑒。
[關鍵詞]Floyd算法;鄉村旅游;線路優化;地圖API
[中圖分類號]F592 [文獻標識碼]A
1 引言
隨著人民生活水平的不斷提高,居民私家車的持有量在逐年攀升,張揚個性與休閑體驗結合的“鄉村自駕旅游”已然成為一種時尚的旅游方式,并由此催生了鄉村旅游的發展與壯大,其相關理論研究也開始受到學者們的關注。史春云通過對自駕游客滿意度進行實證研究后得出,自駕旅游最主要的限制因素不在目的地或者交通方面,而是體現在出行成本高等方面。欒玲提出旅游線路設計應節省游客時間、路程、費用,并使景點內容豐富,避免重復經過相同旅游點,線路編排應勞逸結合、富有節奏感。目前,針對自駕旅游線路的設計,學者們普遍從鄉村旅游資源開發、自駕旅游消費行為等角度對自駕旅游線路進行整合,較少涉及運用優化算法對自駕旅游線路進行設計。
2 問題提出
設計最優自駕旅游線路的問題,可通過簡化構建為連接各旅游目的地的TSP旅行商問題模型,即尋找到一條路徑遍歷所有的節點,使路徑總長度或總費用之和達到最小值。Floyd算法作為求解TSP旅行商問題的經典方法,是研究和解決旅游交通中線路優化的首選算法,因此本文以成都市周邊鄉村自駕旅游為例,綜合考慮出行費用、景點間距離等方面的因素,運用改進的Floyd算法對優質鄉村旅游景點進行整合,設計出串聯多景點的鄉村自駕旅游線路,并采用高德地圖API將優化后的自駕旅游線路進行動態實現與展示,為自駕旅游者出行線路的選擇方面提供借鑒與參考。
3 算法介紹及改進
3.1 Floyd算法思想
Floyd(弗洛伊德)算法也可稱其為插點算法,是一種運用逐步逼近和遞推的思想來尋求給定加權圖中多節點之間最短路徑的算法。Floyd 算法的基本思想是:對一個頂點個數為n的有向網(或無向網),設置一個n×n的方陣A(k),其中除對角線的矩陣元素等于0以外,其他元素A(k)[i][j](i≠j)表示從頂點vi到頂點vj的有向路徑長度,依次插入頂點構造出n階方陣序列A(-1), A(0), A(1), A(2)…A(n-1),從而形成圖的距離矩陣A(n-1),最終求得任意兩點間最短路徑。其中A(k)的元素A(k)[i][j]的遞推公式如式(1)、(2)所示:
3.2 算法改進
由于經典的Floyd算法是計算多個節點間的最短路徑,在輸入初始矩陣進行封裝時,隨著節點個數的增加,勢必會出現輸入過程越發繁瑣的情況。因此針對鄰接矩陣的結構特點,對經典Floyd算法進行輸入矩陣的改進,以此來提高算法的實用性。改進Floyd算法的核心代碼如下:
Step 1: 確認頂點個數;
function Floyd( )
int ARow , ACol;
printf("輸入矩陣的行數和列數:\n");
scanf(“%d,%d”,&ARow,&ACol);
arr=new double *[ARow];
for(i=0;i<=ARow;i++)
arr[i]=new double[ACol];
Step 2: 輸入頂點間的距離,得到初始矩陣;
printf("輸入二維矩陣的數據(%d行%d列):\n",ARow,ACol);
for(i=0;i for(j=0;j scanf(“%f,”,&tmp); arr[i][j]=tmp; Edge[i][j]=arr[i][j]; dist[i][j]=Edge[i][j]; if( i!=j && dist[i][j] else path[i][j]=-1; Step 3:依據封裝好的初始矩陣進行標準Floyd運算,依次輸出各節點序號,得出各節點間的最短路徑。 4 算法在自駕旅游線路優化中的應用 4.1 案例背景 黨的十九大報告在實施“鄉村振興戰略”中提出“發展多種形式適度規模經營,培育新型農業經營主體,健全農業社會化服務體系,實現小農戶和現代農業發展有機銜接”。成都作為“中國農家樂旅游發源地”城市,發展勢頭迅猛,僅2018年一季度成都市鄉村旅游接待總人次超過2500萬人次,同比增長達7%;實現鄉村旅游總收入超過75億元,同比增長達20%。鄉村旅游已成為成都市落實鄉村振興戰略中的重要力量、重要途徑和重要引擎。 為使研究樣本具有代表性,本文選取成都周邊深受自駕車游客喜愛的8個鄉村旅游景點進行分析,這8個景點分別是:茶溪谷、媽媽農莊、煙霞湖風景區、長灘湖濕地、仁康莊園、寶山旅游度假區、桃花故里、三溪白廟村,并將其依次標記為Ci(i=1,2,…8)。 4.2 研究假設及數據來源 4.2.1 研究假設。假設鄉村自駕旅游是以私家車為交通工具,路況通暢,天氣等一切突發情況不納入考慮范圍。由于交通費用與燃油費及公路等級有關,本文依據四川省收費標準進行假設:燃油費0.65元/車·公里,京昆、夏蓉、蓉昌等高速公路0.45元/車·公里,成都繞城高速0.57元/車·公里。 4.2.2 數據來源。利用高德地圖API提供的經緯度信息及研究假設,得到8個節點構成的距離鄰接矩陣與交通費用權值表,如表1、表2所示。 4.3 實驗結果 4.3.1 線路優化結果。通過改進的Floyd算法對優選的8個鄉村自駕旅游景點進行經緯度、距離及費用等數據的運算操作,得出優化前后的鄉村自駕旅游路徑圖如圖1、圖2所示。 4.3.2 最優鄉村自駕旅游線路。本文因采用矩陣輸入路徑的優勢,綜合考慮景點間距離及交通費用等方面因素,得到從不同景點出發的最優路線,如表3所示。 4.4 高德地圖API前臺實現 高德地圖API(Application Programming Interface)是一種使用JavaScript等開發語言編寫的應用程序接口,它能夠幫助程序員在網站中構建功能豐富、交互性強的個性化地圖應用程序。為使自駕車旅游者能夠更加智能化地獲取到最優旅游路線等相關信息,本文在高德地圖 API的基礎上,結合HTML及JavaScript進行前端界面設計,實現了包含動畫全覽、測距等功能的旅游線路可視化系統。 amap.com/lbs/static/addToolbar.js”>,并采用marker、moving與AMap. addDomListener實現添加標注與動畫功能,實現結果如圖3所示。 4.4.2 測距功能。使用鼠標在地圖上繪制任意的折線,結束后便可測量出起止間的距離,如圖4所示。 5 結論 為應對鄉村自駕旅游者在旅游線路規劃方面的個性化需求,本文對經典的Floyd算法進行輸入矩陣的改進,并將其運用到自駕車旅游線路的優化中,得出成都周邊鄉村自駕旅游最優方案,設計并實現了基于高德地圖API的旅游線路可視化系統,此系統既為鄉村自駕旅游者量身定做、適需對路的優化旅游路線,節約游客時間和經濟成本,極大改善其旅游體驗,提升自駕旅游的樂趣。旅游線路優化算法的運用與可視化系統的實現,以智能化的方式完善了鄉村旅游業的路線開發水平,對于推動鄉村旅游業的發展具有較深遠的意義。 [參考文獻] [1] 謝雨萍,羅敏.基于“三位一體”方法論的桂北生態農業旅游線路設計[J].特區經濟,2009(10). [2] 馬思斯,李玲,劉慶友.江蘇鄉村旅游落地自駕消費需求的調查[J].旅游管理研究,2018(06). [3] 史春云,孫勇,張宏磊,等.基于結構方程模型的自駕游客滿意度研究[J].地理研究,2014(04). [4] 欒玲.探析國內旅游線路設計[J].現代商業,2016(03). [5] 王桂平,王衍,任嘉辰.圖論算法理論、實現及其應用[M].北京大學出版社,2011. [6] 習近平.決勝全面建成小康社會,奪取新時代中國特色社會主義偉大勝利——在中國共產黨第十九次全國代表大會上的報告[M].北京:人民出版社,2017. [7] 蒲姝.我國鄉村旅游發展現狀與對策研究——以成都市鄉村旅游為例[J].生態經濟,2010(05). [8] 梁光榮,黎紅.百度、高德及Google地圖API的比較研究[J].軟件導刊,2017(09).