做百度推廣送網(wǎng)站嗎重慶網(wǎng)站設(shè)計(jì)
【2024 年華數(shù)杯全國大學(xué)生數(shù)學(xué)建模競賽】C題:老外游中國 問題思路分析及Python代碼實(shí)現(xiàn)
1 題目
最近,“city 不 city”這一網(wǎng)絡(luò)流行語在外國網(wǎng)紅的推動下備受關(guān)注。隨著我國過境免簽政策的落實(shí),越來越多外國游客來到中國,通過網(wǎng)絡(luò)平臺展示他們在華旅行的見聞,這不僅推動了中國旅游業(yè)的發(fā)展,更是在國際舞臺上展現(xiàn)了一個真實(shí)而生動的中國,一舉多得。
假設(shè)外國游客入境后能在中國境內(nèi)逗留 144 小時,且能從任一城市附近的機(jī)場出境。由于每個城市景點(diǎn)較多,為了便于外國游客能夠游覽到更多的城市,現(xiàn)假定“每個城市只選擇一個評分最高的景點(diǎn)游玩”,稱之為“城市最佳景點(diǎn)游覽原則”。
現(xiàn)有一個包含中國(不含港澳臺)352 個城市的旅游景點(diǎn)的數(shù)據(jù)集,每個城市的 csv 文件中有 100 個景點(diǎn),每個景點(diǎn)的信息包含有景點(diǎn)名稱、網(wǎng)址、地址、景點(diǎn)介紹、開放時間、圖片網(wǎng)址、景點(diǎn)評分、建議游玩時長、建議游玩季節(jié)、門票信息、小貼士等。
請建立數(shù)學(xué)模型,回答下列問題:
問題 1 請問 352 個城市中所有 35200 個景點(diǎn)評分的最高分(Best Score,簡稱 BS)是多少?全國有多少個景點(diǎn)獲評了這個最高評分(BS)?獲評了這個最高評分(BS)景點(diǎn)最多的城市有哪些?依據(jù)擁有最高評分(BS)景點(diǎn)數(shù)量的多少排序,列出前 10 個城市。
問題 2 假如外國游客遵循“城市最佳景點(diǎn)游覽原則”,結(jié)合城市規(guī)模、環(huán)境環(huán)保、人文底蘊(yùn)、交通便利,以及氣候、美食等因素,請你對 352 個城市進(jìn)行綜合評價(jià),選出“最令外國游客向往的 50 個城市”。
問題 3 現(xiàn)有一名外國游客從廣州入境,他想在 144 小時以內(nèi)游玩盡可能多的城市,同時要求綜合游玩體驗(yàn)最好,請你規(guī)劃他的游玩路線。需要結(jié)合游客的要求給出具體的游玩路線,包括總花費(fèi)時間,門票和交通的總費(fèi)用以及可以游玩的景點(diǎn)數(shù)量。他的要求有:
① 遵循城市最佳景點(diǎn)游覽原則;
② 城市之間的交通方式只選擇高鐵;
③ 只在“最令外國游客向往的 50 個城市”中選擇要游玩的城市。
問題 4 如果將問題 3 的游覽目標(biāo)改為:既要盡可能的游覽更多的城市,又需要使門票和交通的總費(fèi)用盡可能的少。請重新規(guī)劃游玩路線,并給出門票和交通的總費(fèi)用,總花費(fèi)時間以及可以游玩的城市數(shù)量。
問題 5 現(xiàn)有一名外國游客只想游覽中國的山景,他乘飛機(jī)入境中國的城市不限。請你為他選擇入境的機(jī)場和城市,并個性化定制他的 144 小時旅游路線, 既要盡可能的游覽更多的山,又需要使門票和交通的總費(fèi)用盡可能的少。需要結(jié)合游客的要求給出具體的游玩路線,包括總花費(fèi)時間,門票和交通的總費(fèi)用以及可以游玩的景點(diǎn)數(shù)量。他的要求有:
① 每個城市只游玩一座評分最高的山;
② 城市之間的交通方式只選擇高鐵;
③ 旅游城市不局限于“最令外國游客向往的 50 個城市”,游覽范圍拓展到352 個城市。
2 問題重述
問題1:主要關(guān)注所有城市中景點(diǎn)評分的最高分及分布情況。
問題2:評價(jià)城市的綜合吸引力,選擇最令外國游客向往的50個城市。
問題3:在144小時內(nèi)規(guī)劃最優(yōu)的游玩路線,以最大化游玩的城市數(shù)量和體驗(yàn)。
問題4:在144小時內(nèi)游覽盡可能多的城市,重點(diǎn)降低門票和交通總費(fèi)用。
問題5:專注于景點(diǎn)的游覽,入境城市不限,要求在144小時內(nèi)盡可能多地游覽山景,且控制費(fèi)用。
3 思路分析
3.1 問題一
第一題是統(tǒng)計(jì)問題,用python遍歷所有景點(diǎn)的評分列,找到其中的最大值,過濾出評分等于最高評分(BS)的所有景點(diǎn),并統(tǒng)計(jì)其數(shù)量。按城市分組,統(tǒng)計(jì)每個城市中評分等于最高評分(BS)的景點(diǎn)數(shù)量。根據(jù)統(tǒng)計(jì)結(jié)果,按景點(diǎn)數(shù)量排序,獲取前10個城市。實(shí)現(xiàn)過程見以下第4部分。
3.2 問題二
要對352個城市進(jìn)行綜合評價(jià),選出最向往的50個城市,簡單的話可以采用加權(quán)評分模型,將城市規(guī)模、環(huán)境環(huán)保、人文底蘊(yùn)、交通便利、氣候、美食等因素量化并賦予不同權(quán)重,綜合計(jì)算每個城市的綜合評分,選擇得分最高的前50個城市?;蛘呓?strong>多屬性決策分析(MADA),應(yīng)用MADA方法,如TOPSIS或AHP,對城市進(jìn)行多屬性評價(jià)。將每個因素轉(zhuǎn)換為標(biāo)準(zhǔn)化的評分,并根據(jù)決策矩陣進(jìn)行排名,從而選出最受歡迎的城市?;蛘呤褂?strong>聚類算法將城市按綜合特征進(jìn)行分組,分析每個群體的特點(diǎn),選出代表性最強(qiáng)的50個城市?;蛘呃弥鞒煞址治鏊惴▽⒍鄠€因素的影響降維至少量主成分,通過主成分得分對城市進(jìn)行排名,選出得分最高的前50個城市。復(fù)雜一點(diǎn)的話,從推薦系統(tǒng)的角度去做,建立基于內(nèi)容的推薦系統(tǒng)或協(xié)同過濾系統(tǒng),結(jié)合外國游客的歷史游覽數(shù)據(jù)和對城市的偏好,預(yù)測并推薦最受歡迎的城市。這個角度的推薦算法比較多,創(chuàng)新性搞,新穎一些。
參考文獻(xiàn)
- [1]楊小玲.多屬性決策分析及其在洪災(zāi)風(fēng)險(xiǎn)評價(jià)中的應(yīng)用研究[D].華中科技大學(xué),2012.
- [2]廖思思,朱錦程.陜甘寧20個旅游城市旅游競爭力評價(jià)[J].綠色科技,2023,25(15):221-226.DOI:10.16663/j.cnki.lskj.2023.15.048.
- [3]高珺.基于子空間聚類算法的湖南旅游推薦研究[D].中南林業(yè)科技大學(xué),2023.DOI:10.27662/d.cnki.gznlc.2023.000899.
- [4]陳紅玲,葉玫,盧淑萍,等.基于旅游資源畫像的個性化旅游推薦系統(tǒng)[J].信息技術(shù)與信息化,2022,(11):115-118.
- [5]陳源鵬.基于序列挖掘的個性化旅游景點(diǎn)推薦研究[D].桂林電子科技大學(xué),2020.DOI:10.27049/d.cnki.ggldc.2020.000496.
- [6]張?jiān)妷?基于“城市畫像”與“用戶畫像”的個性化旅游推薦系統(tǒng)實(shí)踐[D].東北財(cái)經(jīng)大學(xué),2019.DOI:10.27006/d.cnki.gdbcu.2019.000861.
3.3 問題三
這個問是路徑規(guī)劃問題,經(jīng)典的代表性算法有旅行商問題(TSP)優(yōu)化問題,將城市視為圖中的節(jié)點(diǎn),使用旅行商問題算法(如遺傳算法、模擬退火等)優(yōu)化游客的游玩路徑。在限制條件下(如總時間和交通方式),找到最優(yōu)路線,以最大化景點(diǎn)數(shù)量和體驗(yàn)。
-
[1]王夢甜.基于遺傳算法的南京周邊城市旅游規(guī)劃研究[J].市場周刊,2021,34(02):180-181+188.
-
[2]唐存花,湯可宗.求旅行商問題的冪律變換優(yōu)化蟻群算法[J].軟件導(dǎo)刊,2024,23(02):74-83.
-
[3]丁增良,陳玨,邱禧荷.一種應(yīng)用于旅行商問題的萊維飛行轉(zhuǎn)移規(guī)則蟻群優(yōu)化算法[J].計(jì)算機(jī)應(yīng)用研究,2024,41(05):1420-1427.DOI:10.19734/j.issn.1001-3695.2023.09.0450.
-
[4]邊錦華,張曉霞.求解TSP問題的一種變領(lǐng)域遺傳算法[J].福建電腦,2023,39(12):24-27.DOI:10.16707/j.cnki.fjpc.2023.12.005.
3.4 問題四
問題3的基礎(chǔ)上,建立一個多目標(biāo)優(yōu)化模型,將游覽城市數(shù)量和總費(fèi)用作為優(yōu)化目標(biāo),使用線性規(guī)劃、整數(shù)規(guī)劃或混合整數(shù)規(guī)劃方法。模型中需要包括時間限制(144小時),門票和交通費(fèi)用的約束。通過求解優(yōu)化模型,可以找到在總費(fèi)用最小的情況下游覽最多城市的最佳路線,同時計(jì)算總花費(fèi)時間、門票和交通費(fèi)用及游玩城市數(shù)量。論文的寫作上,在數(shù)學(xué)模型上差異較小,創(chuàng)新點(diǎn)注重在求解算法上的創(chuàng)新。
參考文獻(xiàn)
- [1]梁健恒.基于改進(jìn)蟻群算法的旅游園區(qū)觀光路徑規(guī)劃優(yōu)化[J].控制與信息技術(shù),2024,(03):80-85.DOI:10.13889/j.issn.2096-5427.2024.03.011.
- [2]董瑋明,邱燦華.基于時間優(yōu)化的旅游園區(qū)路徑規(guī)劃研究[J].信息技術(shù)與信息化,2023,(04):203-205+209.
- [3]崔喜寧.基于蟻群算法的陜西紅色旅游線路優(yōu)化[J].信息技術(shù)與信息化,2021,(11):170-172.
- [4]周生超.基于蟻群算法的壽光市文化旅游路徑優(yōu)化研究[J].濰坊工程職業(yè)學(xué)院學(xué)報(bào),2021,34(03):100-103.
- [5]李磊,張延星,謝超.基于旅游線路規(guī)劃的蟻群優(yōu)化算法研究[J].現(xiàn)代電子技術(shù),2020,43(17):115-118.DOI:10.16652/j.issn.1004-373x.2020.17.026.
- [6]李夢丹.基于蟻群算法西安旅游路線的優(yōu)化研究[J].價(jià)值工程,2020,39(20):136-137.DOI:10.14018/j.cnki.cn13-1085/n.2020.20.058.
3.5 問題五
這個問和以上幾個問有一些不同,是一個綜合優(yōu)化問題。這一問專注于景點(diǎn)的游覽,入境城市是不限的,要求在144小時內(nèi)盡可能多地游覽山景,且控制費(fèi)用。在山景游覽的基礎(chǔ)上,進(jìn)一步復(fù)雜化了問題,包括選擇入境城市和城市之間的高鐵交通限制,同時要求控制費(fèi)用。在問題4的多目標(biāo)優(yōu)化模型中加入山景因素,考慮山景數(shù)量、門票和交通費(fèi)用。重新設(shè)計(jì)目標(biāo)函數(shù),平衡山景數(shù)量與費(fèi)用。利用問題3和4中的路徑優(yōu)化方法,篩選出入境城市,并在全范圍內(nèi)規(guī)劃山景游覽路線。綜合考慮高鐵路線、時間限制和山景優(yōu)化。對問題5中的復(fù)雜情況,應(yīng)用動態(tài)規(guī)劃方法進(jìn)行路線規(guī)劃,同時剪枝以減少計(jì)算量。結(jié)合山景的特點(diǎn),優(yōu)化選擇城市和游玩順序。使用啟發(fā)式搜索算法和模擬退火技術(shù)優(yōu)化山景游覽路線,調(diào)整入境城市和游玩城市,以實(shí)現(xiàn)山景數(shù)量最多且費(fèi)用最低的目標(biāo)。
總之,這一問需要使用問題1中的景點(diǎn)評分?jǐn)?shù)據(jù)、問題2中的城市選擇、問題3和4中的路徑規(guī)劃方法。問題1的數(shù)據(jù)用于確定山景的評分,問題2的城市排名可作為入境城市的參考,問題3和4的優(yōu)化技術(shù)可以應(yīng)用于問題5的路線規(guī)劃。
4 代碼實(shí)現(xiàn)
4.1 問題一
import os
import pandas as pd# 定義數(shù)據(jù)文件夾路徑
folder_path = '附件'
# 初始化一個空的數(shù)據(jù)框
all_data = pd.DataFrame()
# 遍歷文件夾中的所有CSV文件并加載數(shù)據(jù)
for file_name in os.listdir(folder_path):if file_name.endswith('.csv'):file_path = os.path.join(folder_path, file_name)# 提取城市名稱(去掉文件擴(kuò)展名)city_name = os.path.splitext(file_name)[0]# 讀取CSV文件city_data = pd.read_csv(file_path)# 為數(shù)據(jù)框添加城市列city_data['城市'] = city_name# 確保 '景點(diǎn)評分' 列為浮點(diǎn)數(shù)類型city_data['評分'] = pd.to_numeric(city_data['評分'], errors='coerce')# 合并到總數(shù)據(jù)框中all_data = pd.concat([all_data, city_data], ignore_index=True)
all_data
# 確保 '景點(diǎn)評分' 列為浮點(diǎn)數(shù)類型
all_data['評分'] = pd.to_numeric(all_data['評分'], errors='coerce')# 獲取最高評分
best_score = all_data['評分'].max()# 統(tǒng)計(jì)獲得最高評分的景點(diǎn)數(shù)量
best_score_count = all_data[all_data['評分'] == best_score].shape[0]# 按城市分組,統(tǒng)計(jì)每個城市中評分等于最高評分的景點(diǎn)數(shù)量
best_score_by_city = all_data[all_data['評分'] == best_score].groupby('城市').size().reset_index(name='景點(diǎn)數(shù)量')# 按景點(diǎn)數(shù)量排序,獲取前10個城市
top_10_cities = best_score_by_city.sort_values(by='景點(diǎn)數(shù)量', ascending=False).head(10)# 打印結(jié)果
print(f"最高評分(BS):{best_score}")
print(f"獲得最高評分(BS)的景點(diǎn)總數(shù):{best_score_count}")
print("獲得最高評分(BS)景點(diǎn)最多的前10個城市:")
print(top_10_cities)
最高評分(BS):5.0
獲得最高評分(BS)的景點(diǎn)總數(shù):2563
獲得最高評分(BS)景點(diǎn)最多的前10個城市:城市 景點(diǎn)數(shù)量
4 三沙 36
25 五家渠 28
224 玉溪 21
233 益陽 20
91 天門 19
310 阿拉爾 18
215 濰坊 18
220 煙臺 18
84 大興安嶺 18
283 邢臺 17