2019年數學建模國賽總結+解題思路


2019年國賽,我們組選題是C題,最終是國家二等獎,基本符合預期吧。本文寫作動機還是保研面試可能會被老師問比賽的具體思路,快一年了還是有部分遺忘,看了一遍當初的文章就隨便用文字記錄一下,也希望給馬上參加2020國賽的同學一點參考。(至於回憶部分,可能由於長時間存在小的偏差)

2019.5 華中賽

之前參加過華中賽,比賽體驗較好。第一次參加數學建模比賽,但是很快入手,隊友是一位學姐和一位與我同級的女生,她們都是信工學院的。之前他們在我校編程比賽群里看到我獲得了一等獎,於是聯系我參加2019年美賽,那時候只會寫點C++,於是我拒絕了(這里插播一句,大學有一些成績的同學還是比較吃香,例如我,很多人找我參加建模比賽,老師也主動找我參加大創項目。雖然我很菜,但是還是很高興,大家一起加油!)。2019年5月,我也選修了一門數學建模選修課,算是有了基礎的了解。偶然的機會,我們組隊參加了華中賽,我負責代碼部分和部分建模方法的貢獻,學姐的寫作和word的使用十分嫻熟,同級女生的思維以及作圖水平很不錯,雖然我第一次參加華中賽,我們也獲得了三等獎。這次比賽跟她們學到了很多,她們的思維活躍而且大膽表達自己想法,這個品質十分吸引我,我之前是缺乏的。

華中賽我的主要工作:

熱帶氣旋路徑,主要模擬思路采用論文方法,並使用matlab畫出熱帶氣旋路徑圖。然后是不同地區評級損失,這部分主要還是使用層次分析法(可能是最簡單分析法,不建議使用),評估氣旋在不同地區強度和范圍。我們將此數據作為風險評估的指導數據,對不同地區使用分級評估函數,分段函數結合指數對數等諸多函數使用,這部分主觀性很大。當然以上模擬和評估都是基於大量數據,找數據是一部分建模題目較大一部分工作量。

2019.6 賽前組隊

國賽比賽前約定的伙伴由於自己項目原因不能參加比賽了,而暑假也是ACM集訓的黃金時期,我也十分糾結。但是最終可能還是不甘心吧,覺得這是我參加建模比賽最后的機會了,在建模討論群里找到兩個隊友,兩個隊友之前都是不認識的,運氣也比較好吧,這兩位隊友都很好相處。隊友是數理學院大四學長和工程學院同級女生,基本都是建模新手,我也算是。經過暑期集訓,我們配合比較默契,基本都能完成訓練題,而且感覺完成的還不錯。

2019.8 暑期集訓

我校數學建模有二十多天的暑期集訓。7月份我都在和ACM隊友打多校比賽,等到數學建模快開始,ACM隊友也准備回家過暑假休息一下了,這樣我心里愧疚也少一點,以免他們都在努力准備ACM比賽,而我部分精力給了自己的數學建模比賽。
但是還是有好幾天重疊吧,上午下午在機房,晚上騎電動車去和建模隊友准備建模比賽的訓練題,還是比較累的,經常晚上看論文寫建模訓練題的方法,然后編程實現。主要是心累,怕隊友有想法,不過我提前也和兩邊隊友,建模那邊還是稍微底氣大一點,因為思路和代碼基本都是我提供的,可能有點飄,哈哈。暑期集訓對建模比賽還是有較大提高,基本形成以我為中心格局,我提供思路並編程實現,另一個隊友打輔助,寫論文那位同學寫作能力也很不錯。暑假就這樣結束了,八月底回家休息了幾天。

2019.9 賽中

(這部分主要寫解題思路吧,比賽中我還抽了幾小時和ACM隊友打網絡賽,期間也是比較難受,而且那場比賽也沒打到現場賽名額。這也是我在國賽中自己的錯誤,可能也給隊友傳遞了懈怠情緒。但是兩邊無法兼顧,無解的難題)
(前兩問建模方法基本按照我的想法來的,后期溝通也較為費時間,我直接與寫論文的同學溝通,告訴她我的思路,給出公式和結果。讓學長去研究排隊論的論文,學長對第三問貢獻了很多,否則我們題目是做不完的,因為第二問我花了很多時間來量化每個決策因素,可能思維局限了,因為我的想法是只能利用司機可以掌握的信息做決策)

0.選題

前兩個都是物理場景方向的題,物理公式基本全網,感覺太不友好。而C題是開發性的題,而我們的優勢是較強的代碼能力,所以我們一直希望選擇一個求解精確數據的題。而最終還是選擇這個題的原因是,我在某公司的大數據比賽平台下找到了成都出租車司機一個月的行駛路線和載客狀態,這是一個很大的原始數據,可以有許多支持,而且找到和處理這個數據集,也不是十分容易。

1.題目:基於決策論和排隊論的機場出租車問題研究

2.摘要最后一段

本文的特色,其一是在建立出租車司機選擇決策模型過程中,綜合考慮了五個相關因素的影響,並基於采集得到的實測數據對模型進行檢驗,保證模型的合理性和應用價值。其二是在建立三個排隊系統下的收益計算模型中,考慮多個相關因子建立決策集,采用定步長枚舉法,將時間成本進行量化處理和計算,並基於此研究得出較優的乘車總效率。

問題1:分析出租車司機做決定的影響機制,考慮出租車司機的獲利和乘客數量的變化規律,建立出租車司機的決策機制,並給出司機的策略。

這個決策就是二決策問題,如果從機器學習角度考慮就是一個2分類問題。但是我們沒有足夠的標簽數據,如果有足夠多的標簽數據,這個題用朴素貝葉斯或者SVM就能取得一個較好的決策效果。
所以思路十分簡單,基於決策論的思想,分析影響出租車司機決策的相關因素,綜合考慮出租車司機決策時刻機場的乘客數量和出租車司機可能的收益預測,建立起出租車司機在送客到機場后的選擇決策模型。首先需要明確問題,即分析各個相關的決策要素及其變化規律,進而對出租車司機的決策方向進行選擇。

確定目標。對題目所提供的(A)(B)兩種選擇方案,分析在乘客人數、機場到市區的距離、機場蓄車池的等待車輛數、單位時間內出租車在市區的收益和城市出租車的收費標准五個決策要素[1]的影響下,分別計算出租車司機的兩種方案在某一時間段內載客途經的距離,進而得到可能的收益。
本文將出租車無論是空載還是載客從機場回到市區所需要的時間相同進行處理。即研究兩個方案在相同的時間段里的載客途徑的距離,進而計算對比該時間段兩方案的收益,對方案進行評估。
在這里插入圖片描述
在這里插入圖片描述
即所研究的時間長度相同,\(t_1\) 隨乘客人數、蓄車池內的車輛數發生變化, 隨着機場和市區的位置確定之后,\(t_2\)為一個定值。所以等待時間 \(t_1\)就是決策的最重要的因素之一了,而\(t_1\)又是由多個因素變量決定。
這部分只需要給出決策因素,用公式表示出兩種方案的收益即可。

問題2:收集國內某一機場和它所在城市出租車的相關數據,給出到達該機場的出租車司機的選擇策略,並分析模型是否合理以及其對影響因素的依賴性。

這部分就要使用成都出租車數據集了,根據衛星的經緯度坐標,復原每輛出租車的行駛軌跡以及載客情況。
從所查閱得到的數據選取某一時間段對模型進行方案的組織實施,即分別對周末和工作日,對該城市到達機場時出租車司機的選擇方案進行分析決策。進而對模型的合理性和相關因素的依賴性進行分析。
以小時作為單位時間,對時間段內出租車載客所經過的距離,進而計算得到該時間段內出租車在兩個方案選擇時的收益。最后,計算得到臨界的等待時間(即在該等待時間下出租車司機選擇兩個方案的收益相同)。通過對比實際的數據,對模型的合理性進行檢驗。再依次改變五個決策因素,觀察對決策結果造成的影響,分析得到模型對相關因素的依賴性。
(這里直接使用的vs2017處理幾個G的數據,當時還不會MPI等並行工具,所以采用的數據還是偏少,沒有全部利用。)
因為需要給出租車司機決策方案,所以只能利用出租車司機可以掌握的信息,給出具體決策方案。這也是本文的一大亮點。

決策依據:

在這里插入圖片描述
對於五個相關系數,每個因素不同步長的組合對應的出租車司機的收益都不相同,所以對五個因素進行排列組合,將限制情況計算出來,得到一個決策集。由於解空間比較小,直接采用枚舉的方法。如果解空間巨大,可以使用遺傳算法等組合優化問題。最后依靠枚舉每一種組合給出完整的決策集。而具體計算用到的參數數值,是根據成都出租車行駛數據和成都雙流機場距離等信息確定。(有一定主觀性)
在這里插入圖片描述

問題3:在航班集中到達時,可能會出現乘客排隊乘車和出租車排隊載客同時進行的情況。某機場“乘車區”有兩條並行車道,機場的管理部門應該怎樣設置最適合“上車點”來合理調度出租車和乘客,既能保證車輛和乘客安全,又能使總的乘車效率最高。

查閱資料三種排隊系統:單點式、多點縱列式、多點並列式並進行分析。基於題目要求,不改變車道的狀態,僅考慮不同上車點的設置方案;而多點並列式只能設置兩個上車點,多點縱列式可以設置多個上車點。
其次,基於排隊論的三個部分,對排隊系統系統的乘客相繼到達的時間差、出租車的服務時間、單位時間到達人數、單位時間內被服務的乘客數、服務強度等多個參數進行假設。
隨后,對排隊系統的參數進行分析,依次對三種排隊系統的乘客等待時間進行計算。
最后,分析計算各個模型下乘客等待時間產生影響的時間成本,包括乘客平均等待時間、出租車的平均等待時間和上車點的服務時間。可以知道時間成本與系統的效率成反比,基於出租車與乘客的安全,選擇時間成本最低的點,對排隊系統及上車點進行設置,使得乘車的總效率達到最高。

問題4:一般出租車載客獲利與其行駛里程有關,而乘客的目的地不定,出租車司機一般會被要求不能選擇乘客或拒載,但允許其往返載客。管理部門准備對短途載客且在規定時間內返回機場的出租車給予一定的“優先權”,使得短程載客和遠程載客出租車的收益盡量平衡,請給出一個可行的“優先”安排方案。

為了使得出租車司機長途載客和短途載客的收益基本接近,需要為短途載客的出租車司機提供優惠,如按照浦東機場可以走便捷通道。首先需要對載客的里程數進行長途短途的划分,查閱多個機場關於短途里程數的規定,進而確定合適的短途里程數。
其次,通過調整緩沖區和蓄車池的容量,從而對出租車在各個區域的等待時間產生影響,進而對出租車司機的收益進行調節。短途載客的出租車比長途載客的出租車多出在蓄車池的等待時間,。
最后,對比計算調節后長途和短途載客出租車的平均收益,當長途載客的車收益和短途載客的出租車收益基本相等時,說明調整方案可行。

2019.9 賽后總結

應該是中秋節,三天還是很累。因為我在新校區,前兩天睡在隊友的宿舍。最后一晚在老師辦公室度過,睡了兩三個小時。最后晚上提交論文之后,坐大巴回到宿舍,感覺要垮了。因為基本沒有老師幫助,這個題偏向開放,我和老師的思路有矛盾,論文是我們組獨立完成的。當然老師也是十分好的,也給了我們一些指導意見以及辦公室場地。
所以我對我們論文還是比較不自信,一部分插圖不夠美觀,也存在一寫錯別字,那天下午我也存在懈怠,進度很慢,最后一點時間隊友也有點懈怠了,校對出現的錯誤沒時間修改了,還是有一些遺憾。我后來一直在想,如果我們相互鼓勵最后時間堅持下來,應該好一點,這也是我隊長沒有盡職的地方。大家都付出99%的努力,結果可能會更好。最后獲得國二,畢竟相比一些學校老師參與很多工作,感覺還是不錯的。
我覺得我們論文優點是,數據充分,方法明確,對於一個開發性的問題給出了較為具體的指導方案,論文篇幅飽滿,而且圖表呈現較多,基本符合一篇優良級別的數學建模論文。

也十分感謝隊友的齊心合作和指導老師支持,給我在數學建模比賽一個較好的體驗和較為圓滿的結局。
在這里插入圖片描述

小小建議和看法

  1. 數學建模比賽不一定需要學習很多建模的具體方法,因為大家都有更多更重要的自己的專業知識學習。我覺得建模更多考驗的是快速學習能力以及團隊配合能力。但是一定需要有擅長編程的同學,(大家組隊快去找編程熟練的小哥哥小姐姐去吧),因為一旦思路確定,編程同學能快速實現,可以爭取較多的時間。
  2. 編程語言的話,matlab,python,C++都可以,但是matlab和python要會一門,因為需要畫圖,雖然excle也可以,但是相比編程語言,稍麻煩。學習完數據可視化這門課,才認識到Python圖形工具的強大,畫圖不僅好看,而且圖形類型很多。
  3. 寫論文的同學最少要對word使用熟練,用Math Type插入公式熟練。語言組織風格可以多看看之前的優秀論文,熟悉每部分寫作格式以及表述的規范性。
  4. 一般而且對於一個建模題目,分析題目需求之后,首先查找該領域國內學者已有的研究(國賽查國內中文期刊的基本夠了,如果沒有可以查外文期刊),然后就是數據,大概整合數據和已有研究,在組內討論自己對這個題的思考以及闡述可以利用的文獻和數據等。如果是選題,前期可以一人負責一個題。
  5. 論文中一定要多圖多表,多公式,最后最重要的摘要肯定要潤色好!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM