日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【2019数学建模】国赛C题:机场出租车优化问题(原创)

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【2019数学建模】国赛C题:机场出租车优化问题(原创) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 機場出租車優化問題
    • 摘 要
    • 問題的重述
    • 問題的分析
      • 2.1問題一的分析
      • 2.2問題二的分析
      • 2.3問題三的分析
      • 2.4問題四的分析
    • 符號說明
    • 模型的建立與求解
      • 5.1 問題一模型的建立與求解
      • 5.2模型二的建立與求解
      • 5.3問題三
      • 5.4問題四
    • 6.模型的推廣與改進
    • 7.模型的優缺點
    • 參考文獻
    • 附錄
      • 百度云代碼數據資源下載

  • 之前參加了一次全國大學生數學建模競賽,沒有用官方要求matlab,用的python,于是整理了下論文和代碼如下。

機場出租車優化問題

摘 要

  • 本文針對機場的出租車優化問題進行了研究,建立了基于多屬性的出租車司機接客決策樹模型,通過基于Python的爬蟲技術,獲得了交通信息數據集,經過基于大數據的程序批量預處理后,作為驗證集與其他不確定屬性協同驗證了模型的可行性,以此推廣應用到出租車司機的收益問題上
  • 針對問題一,概括為建立出租車司機選擇的決策模型。其主要思想是:首先宏觀分析出租車司機決策模型的本質影響機理:收益值;然后列舉出影響收益值的下一級因素:排隊時間,放空時間,接客收益時間,繼續向下分析出影響時間的多個屬性:等車乘客數及其增量,排隊車輛數,機場續車池分批效率,最高效空載距離,以及其他不確定因素。從底層屬性到決策結果建立出三層決策樹模型。(如:附錄一\1.問題一)。
  • 針對問題二,概括為驗證模型并分析可行性和多屬性因子的問題。首先基于問題一決策樹模型底層影響屬性,判斷出影響司機決策的主觀因素需要用到的驗證集:該時間段航班數據集和最高效空載距離集;然后通過Python爬蟲技術,獲得成都雙流機場到港航班的數據集和成都出租車GPS定位的打車需求量和出租車分布的特征數據集;再通過Python進行數據集清洗預處理,得到某一時間段航班數量表和最高效空載距離,通過類比推理的思想,驗證了百度地圖熱度圖的參考價值,將百度地圖熱度圖數據作為短距離運輸最高效空載距離參考;最后通過Python進行決策樹構建以及大數據運算,得出每天每個時間段的出租車司機決策結果。(如:附錄一\2.問題二)
  • 針對問題三,概括為有約束條件的最優化問題。首先收集并處理選定機場的歷史數據資料設計一個預方案大致判斷設置的上車點個數的最小值和乘客分布,再基于排隊論模型確定符合題目條件的多點縱列式排隊服務系統,并且確定評價該系統的評價指標便于評價系統和模型的優化程度,接著進行對系統中乘客進行相關的概率計算和分析,再結合乘客等等待時間總費用和上車點及排隊服務系統的建設和服務成本,以兩者之和為最小為目標函數建立優化系統的費用決策模型。求解何時可取得最優數值,得出上車點為5個時總乘車效率最高。
  • 針對問題四,概括為需要改善之前建立的決策樹模型的時間距離收益屬性,有針對的提供補償措施。求出問題一的決策樹模型第二層的時間距離收益的拐點,找到即使比排隊時早接客但是由于空載原因使收益仍然低于排隊的時間或距離區間;再通過這個區間進行長途短途分類;然后結合實際情況得出優先方案。
  • 最后,本文對模型進行了誤差分析,還對模型的優點和缺點進行了評價,分
    別在廣度和深度上對模型進行了推廣。

關鍵詞:多屬性決策模型;多點縱列式排隊;費用決策;大數據處理;
Python爬蟲

問題的重述

如今出租車已經成為了一個熱門行業,而飛機是很多人出行的重要工具。因此送客去機場都是很多出租車司機都會面臨的工作線路,而將乘客送入機場后,出租車司機將會面臨兩個選擇:

(A) 前往到達區排隊等待載客返回市區。出租車必須到指定的“蓄車池”排隊等候,依“先來后到”排隊進場載客,等待時間長短取決于排隊出租車和乘客的數量多少,需要付出一定的時間成本。

(B) 直接放空返回市區拉客。出租車司機會付出空載費用和可能損失潛在的載客收益。

請結合實際情況,建立數學模型研究下列問題:

(1) 分析研究與出租車司機決策相關因素的影響機理,綜合考慮機場乘客數量的變化規律和出租車司機的收益,建立出租車司機選擇決策模型,并給出司機的選擇策略。

(2) 收集國內某一機場及其所在城市出租車的相關數據,給出該機場出租車司機的選擇方案,并分析模型的合理性和對相關因素的依賴性。

(3) 在某些時候,經常會出現出租車排隊載客和乘客排隊乘車的情況。某機場“乘車區”現有兩條并行車道,管理部門應如何設置“上車點”,并合理安排出租車和乘客,在保證車輛和乘客安全的條件下,使得總的乘車效率最高。

(4) 機場的出租車載客收益與載客的行駛里程有關,乘客的目的地有遠有近,出租車司機不能選擇乘客和拒載,但允許出租車多次往返載客。管理部門擬對某些短途載客再次返回的出租車給予一定的“優先權”,使得這些出租車的收益盡量均衡,試給出一個可行的“優先”安排方案。

問題的分析

2.1問題一的分析

分析問題一,需要找出影響出租車司機決策的因素,從機場乘客數量變化規律和司機收益兩方面確定司機的選擇策略。

首先從司機的角度比較排隊等候載客和空載返回市區拉客兩種選擇所需要的時間的多少。再分兩種情況比較兩種選擇的收益:第一種情況是排隊時間大于空載時間即排隊司機接到乘客前,若選擇空載返回的司機的凈利潤大于0,則最后選擇空載返回;第二種情況是排隊時間小于空載時間,即排隊司機的成本消耗較少,則最后選擇排隊等待載客返回市區。

該司機排隊等待到接到乘客時沒有油費的虧損,盈虧均為0。如果需要排隊的時間很短,若是之前選擇放空,因為選擇排隊到拉到客的時間小于選擇放空之后到拉到客的時間,而排隊盈虧為0,放空有油費虧損,所以比較之下選擇排隊虧損的比放空少,選擇接客;如果排隊的時間太長,而若是之前選擇放空,放空的車已經接到客了,而排隊情況下還在排隊沒有接到客,放空情況下考慮油費成本后能有盈利,而排隊盈利為0,則選擇接客是不理想的決策,應該選擇放空;如果排隊時間很長,在排隊的時間內若是放空已經有拉到客了,但是拉到客的利潤不能彌補之前放空的損失,即此時放空有虧損,則選擇放空是不理想的決策。

2.2問題二的分析

分析問題二,需要搜集數據來驗證問題一所建立的模型,搜集的數據是問題一建立的模型的以及對模型影響較大的變量,比如某個飛機場在單位時間段里下飛機的乘客數量,已經在排隊的人數和出租車,人和出租車分批疏散效率,附近打車需求量和出租車的供應數,載客數,不確定因素,并且還需要將數據帶入模型驗證模型的可行性以及相關因素的發生概率。

2.3問題三的分析

分析問題三,現擬定機場的乘車區域有兩條行車道,需要保證車輛和乘客安全的條件下設置上車點。兩條行車道的上車點設置分兩種情況,第一種情況是兩條道路都作為可載客的停車區,第二種情況是靠近上車點的一側作為停車區,另一側道路不作停車區。由于第一種情況極其容易造成交通堵塞和引發安全隱患,與題目中“保證車輛與乘客的安全”不符,因此不作考慮。上車點的確立是會產生建設成本,因此本文在乘客的等待時間應該盡可能小的前提下取上車點個數的最小值,該問題為有約束條件的多目標規劃問題。

首先以問題一、二中搜集到的關于機場的航班和客流量數據進行處理得出單位時間內平均出站人數,再設上車點的個數為變量并用式子表示出乘客等待的總時間和上車點的建設成本(即該上車點的總費用),然后建立兩者最小的目標函數,其次,乘客由于天氣、夜晚時間的敏感、排隊的人數過多等種種原因不選擇搭乘出租車,這時需要考慮乘客搭乘出租車的概率對乘客人數的影響,引入排隊系統的組成部分的概率,再結合上車點的總費用作約束條件,求出總費用最低時的上車點的個數。

2.4問題四的分析

分析問題四,針對短途載客再次返回的出租車司機給予一定的“優先權”是所有司機的收益相對均衡。

2.4.1 短途載客和長途載客的界定

由于已知問題一的決策樹模型第二層的時間距離收益的拐點,找到即使比排隊時早接客但是由于空載原因使收益仍然低于排隊的時間或距離區間;再通過這個區間進行長途短途分類;然后結合實際情況得出優先方案。

短途載客的界定有兩個條件:

目的地距離機場不超過22公里;
司機到達目的地后返回機場的時間不得超過1小時;
長途載客的界定

2.4.2 短途載客與長途載客的比較

由于出租車司機的收益與行駛路程有關,行駛路程越大,司機收益相對越多。因此,絕大多數司機希望能長途載客。短途載客的司機雖然能夠在較短時間內回到機場“蓄車池”繼續等候載客,但是也是因此,這類司機等待的時間往往比送客時間長,也就是說,這類司機很容易面臨“排隊兩個小時,但是送客十五分鐘”的不利局面,而這類司機的收益也不容樂觀。

經常能夠遇到長途載客的司機就不會面臨上述短途載客司機的困境,他們的收益也相對較多。

2.4.3 針對短途載客司機的相關策略

一些地區規定:在乘客上車確認短途后,司機向管理人員報告,管理人員將記錄了里程表數和車牌號的“插隊條”發給司機,司機在將乘客送達目的地后,若選擇繼續返回機場接客,則憑借“插隊條”直接進入上車點,幾乎不用排隊。

模型假設與準備
3.1模型的假設

假設每輛出租車的性能相同。
假設每個乘客進入上車點后不返回。
假設每輛出租車從接客到起步的時間相同
假設路面情況良好,司機行駛過程中無意外發生。
假設每個上車點可以顯示所有上車點有無使用的信息。
假設相鄰上車點的距離相等。
3.2模型的準備

排隊論模型是解決工廠車間生產問題中一種常見的數學模型。通常來說,在一個排隊系統中,包含一個或多個“服務設施”,同時也存在許多需要進入服務系統的“被服務者”。當被服務者進入服務系統后卻不能立即得到服務時,便會出現排隊現象。

多點縱列式出租車排隊服務系統屬于面向乘客的帶有多個服務臺和一個公共隊伍的排隊系統。乘客到達排隊系統后,排在隊伍前端的乘客可以根據當前上車點的出租車服務狀態分散到縱向排列的多個“服務臺”獲得服務。出租車則由內側車道駛入港灣式上車點搭載乘客,服務結束后駛離上車點,然后由后面的出租車依次補位。

符號說明

模型的建立與求解

5.1 問題一模型的建立與求解

5.1.1 問題一模型的建立
5.1.1.1 出租車司機接客決策樹模型第一層——判斷結果層(Z)

出租車司機將只會面臨兩種選擇:

前往到達區排隊等待載客返回市區
直接放空返回市區拉客
這兩種選擇相互之間是獨立的,兩個選項之間只能二選一,于是構成第一層決策樹,表示判斷結果Z(A)或者Z(B)。

5.1.1.2 出租車司機接客決策樹模型第二層——收益值決策層

基于現實實際情況,出租車司機首先會考慮自身的收益,于是我們基于出租車司機的收益情況,建立第二層決策樹。即第二層決策樹是模擬司機在決策時的收益預測。

我們定義以時間為基準的收益為Wt,即收益跟時間有關,

分析該司機排隊等待到接到乘客時沒有油費的虧損,盈虧均為0,即Wty= 0

如果需要排隊的時間很短,若是之前選擇放空,因為選擇排隊到拉到客的時間小于選擇放空之后到拉到客的時間,而排隊盈虧為0, 即Wty = 0,放空有油費虧損,即Wtn < 0,所以比較之下選擇排隊虧損的比放空少,即Wty>Wtn,選擇接客;

如果排隊的時間太長,若是之前選擇放空,放空的車已經接到客了,而排隊情況下還在排隊沒有接到客,放空情況下考慮油費成本后能有盈利,即Wtn>0,而排隊盈利為0,即Wty = 0,即Wtn > Wty,則選擇排隊接客是不理想的決策,應該選擇放空;如果排隊時間很長,在排隊的時間內若是放空已經有拉到客了,即Wty = 0,但是拉到客的利潤不能彌補之前放空的損失,即此時放空有虧損Wtn < 0,Wtn < Wty,則選擇放空是不理想的決策。

決策層情況如下:

A. Wty=0,Wtn<0

B. Wty>0,Wtn<Wty

C. Wty=0,Wtn>0

5.1.1.3 出租車司機接客決策樹模型第三層——收益影響層

根據前面的敘述,導致收益決策層三種情況的因素是排隊到接到客人的時間t1以及決定空載到載到人的時間t3。

當t1>=t3,空載到載到客人比排隊早,空載存在兩種情況:

A. 折合空載損失,一直到排隊載到客人這段時間里面的收益為正;

B.折合空載損失,一直到排隊載到客人這段時間里面的收益為負;

當t1<t3,排隊到載到客人比空載早,排隊存在一種情況:

C.空載沒載到人一直損失;

5.1.1.4 出租車司機接客決策樹模型第四層——時間影響層

根據前面的敘述,t1和t3是收益影響因素;而仍然存在其他因素影響t1和t3。

t1由兩個大因素影響:

車運完了人有:t1=Tc
人運完了前面還有車需要等待:t1=Tp+C

5.2模型二的建立與求解

Step1. 先基于問題一決策樹模型底層影響屬性,判斷出影響司機決策的主觀因素需要用到的驗證集:該時間段航班數據集和最高效空載距離集;(數據集見數據文件包)

Step2.然后通過Python爬蟲技術,獲得成都雙流機場到港航班的數據集和成都出租車GPS定位的打車需求量和出租車分布的特征數據集;(Python代碼見附錄二,數據集見數據文件包)

Step3.再通過Python進行數據集清洗預處理,得到某一時間段航班數量表和最高效空載距離,通過類比推理的思想,驗證了百度地圖熱度圖的參考價值,將百度地圖熱度圖數據作為短距離運輸最高效空載距離參考;

Step4.最后通過Python進行決策樹構建以及大數據運算,得出每天每個時間段的出租車司機決策結果。(計算過程見Python代碼)


5.3問題三

問題三需求解使乘客的等待時間和上車點建設成本最少的上車點個數,使得總的乘車效率最高,這是一個有約束條件的最優化問題。

首先,處理成都雙流機場航班人次數據,求得一定單位時間內乘客出站搭乘出租車的人數將乘客等待的總時間產生的時間耗費和上車點的建設和服務的總費用作為兩個決策變量,以兩者之和最小作為目標函數,基于排隊系統的狀態概率穩定時建立關于排隊系統的費用決策模型,編寫程序求得建設上車點的最少個數及具體位置。

圖 1 問題三的流程圖

按照慣性,大部分司機在進入乘車區時選擇將車停在最近且有乘客的上車點的位置,但是這種情況最終就有極大可能性造成后面上車點長時間屋出租車停放的現象,從而使后面的部分上車點乘客等待時間過長的情況。因此,想要提高乘車效率,就要盡量避免上述情況。

我們將設計一個預方案來預估結果: 假設第一個出租車在第一個上車點接人,從第一個出租車停在第一個上車點的那刻開始計時,即此時t=0,后面來的每一輛車都找到最近的且沒有其他出租車停靠的上車點停車接客

將上車點依次編號,分別為:①,②,③,④,⑤…
為按順序進入乘車區的批量出租車的編號 i=1…n

下面列舉了n=2,4,8時可以設置的上車點的最少數量以及乘客分布:

表 1

表 2

表 3

可以得到的結論為:

當n=2時,至少設置兩個上車點,每個上車點乘客比例約為1:1;
當n=4時,至少設置三個上車點,每個上車點乘客比例約為2:1:1;
當n=8時,至少設置三個上車點,每個上車點乘客比例約為3:3:2;

5.3.1多點縱列式的排隊系統

由前文的模型準備中可得出租車按多向縱列排隊等待乘客,接到乘客后離開上車點,后方來車按順序補位。由實際經驗得出

假設排隊系統中有 個上車點,有 個乘客。設乘客平均到達率 ,單位上車點的平均服務率 ,即單個上車點單位時間內完成服務離開系統的乘客人數,所有上車點的總平均服務率 。 表示排隊系統的服務強度, 為系統中乘客到達率與服務率之比。其中排隊系統的服務率 可由以下公式計算得到:

顯然,若 越大排隊越擁擠。當 大于1時,系統將出現乘客排隊的擁擠現象。

5.3.2排隊系統的評價指標

系統評價指標是與乘客密切相關的排隊長度 和乘客等待的總平均時間 。從機場和乘客的角度出發,都希望兩者的取值越小越好。其中隊列長 是指排隊系統中正在等待的平均乘客數,隊長 表示隊列長 與正在接受司機接送服務的乘客數之和。乘客等待的總平均時間 是乘客從到開始排隊到乘車離開的平均時間。

5.3.3多點縱列式出租車排隊系統

多點縱列式排隊系統是面向乘客的結合多個服務站點和出租車司機的排隊系統。乘客按照各自的路線到達排隊系統后,排在該隊伍最前端的乘客優先接受服務,后面的乘客依次

圖 2 出租車排隊示意圖

我們可以將乘車區簡化為矩形ABCD(如圖)

圖 3 簡化乘車區間

規定如下:

  • EF為兩條車道的分界線,AB邊為安置上車點的一方,則ABFE區域為出租車司機停靠載客的區域,
  • CDEF為行駛區域 行車方向由AD→BC
  • A出安置第一個上車點,B出安置最后一個上車點
  • 5.3.4排隊系統的相關概率和分析

    機場外的行車道不會無限長,排隊系統在穩定工作狀態時,系統中出租車乘客數為 概率如下:

    結合排隊系統中乘客排隊的隊長 與乘客等待的總平均時間 對系統進行分析得:

    5.3.5優化系統的費用決策模型

    利用排隊系統的費用決策模型對排隊服務系統進行優化。假設乘客等待時間的總費用 ,上車點建設成本 ,其中 為每位乘客單位時間內的等待時間費用, 為單個上車點的建設費用和服務時間消費。因此需要滿足兩者之和最小才能使排隊系統進一步優化,即:

    其中, ,約束條件即:

    5.3.6出租車排隊服務系統及優化結果

    成都雙流國際機場是國內八大區域樞紐機場之一,據2017年8月機場官網信息顯示,機場共開通中國國內外209多個通航點,可保障旅客吞吐量5000萬人次,自從2009年起,旅客吞吐量持續不斷增長,并在2017年全年出入境客流突破500萬人次,僅次于上海浦東、北京首都、廣州白云國際機場。由此可知成都雙流機場是一個大型的交通樞紐,它對外連接了國內外的許多航線,對內主要集結地鐵、公交車、出租車、私家車、市區巴士和機場巴士的交通方式。出租車作為乘客離開機場的主要交通方式,出租車的上車點優化和排隊服務系統的提高對疏散機場的客流和銜接城市與機場的交通具有重要意義。

    本文選取成都雙流機場為例對上車點數量和多點縱列式排隊服務系統,可以采用前文的費用決策模型對排隊服務系統進行優化,得出最優個上車點。這里可以用問題一、二中收集并處理的雙流國際機場的航班旅客數據,通過對其中規定單位時間內的平均搭乘出租車的乘客數和平均當前出站的總乘客的比值作為出租車排隊系統中的乘客到達率 ,單位時間內系統中服務的乘客數即服務率 ,假設乘客等待時間總費用與上車點建設費用和服務時間消費法的比為 。成都雙流機場航班乘客信息見附錄,部分航班乘客信息如下表,將分為凌晨、白天、夜晚三部分進行數據展示,便于合理分析機場的客流和出租車與乘客的信息。

    表 4 凌晨時機場航班人次信息

    表 5 白天機場航班人次信息

    表 6 夜晚機場航班人次信息

    由于時間和視線原因,大多數人認為凌晨和夜晚非飛機出行的最佳時刻。但是,根據附錄中的整體信息比較和表1發現有較多乘客選擇凌晨時間段的出行。根據表1中搭乘出租車的乘客數可計算出對應的乘客的到達率和系統服務率如下表。

    表 7乘客到達率與服務率

    接下來用費用決策模型對成都雙流國際機場的出租車上車點及排隊服務系統進行優化,計算結果如下:
    表 8 費用決策模型計算過程

    由上述計算結果可得,當 =5,滿足原模型的約束條件,即此時乘客時間消費和上車點及系統的成本之和最小。這說明當設置5個出租車上車點時,可實現排隊服務系統的成本和費用相對較小。

    5.4問題四

    問題四需要給出一個“優先安排”方案,使得對機場往返載客的出租車司機收益均衡。

    概括為需要改善之前建立的決策樹模型的時間距離收益屬性,有針對的提供補償措施。首先將問題二的基于GPS定位的打車需求量和出租車分布的特征數據集進行目的地概率預測,表現形式以平面-氣泡圖轉化為熱度圖呈現,得出地點概率預測列表,得出距離概率期望值;然后求出問題一的決策樹模型第二層的時間距離收益的拐點,找到即使比排隊時早接客但是由于空載原因使收益仍然低于排隊的時間或距離區間;再通過這個區間進行長途短途分類;然后結合實際情況得出優先方案。

    假設打車乘客的目的地為短途的權重為w,長途為1-w,則司機接到短途乘客的概率為w

    模型的推廣

    本文的優化模型除了適用于機場的出租車問題,還適用于客運站拉客等一系列接客問題。

    模型的改進

    本文主要通過提供出租車停靠方案來提高乘客的乘車效率,但影響乘車效率的因素還有很多,比如天氣、時間等,還可以將更多因素考慮進去對模型進行改進。

    模型的優點

    問題一、二的模型能夠將一系列大數據進行處理,從而得到可靠結果;問題三的模型將抽象問題具象化,使模型更易于理解。

    模型的缺點

    本文的模型對數據的依賴性很強,必須要保證數據本身的準確性。問題三的多點縱列式排隊模型不適用于道路短的問題。

    6.模型的推廣與改進

    6.1模型的推廣

    本文的優化模型除了適用于機場的出租車問題,還適用于客運站拉客等一系列接客問題。

    6.2模型的改進

    本文主要通過提供出租車停靠方案來提高乘客的乘車效率,但影響乘車效率的因素還有很多,比如天氣、時間等,還可以將更多因素考慮進去對模型進行改進。

    7.模型的優缺點

    7.1優點

    問題一、二的模型能夠將一系列大數據進行處理,從而得到可靠結果;問題三的模型將抽象問題具象化,使模型更易于理解。

    7.2缺點

    1.本文的模型對數據的依賴性很強,必須要保證數據本身的準確性。問題三的多點縱列式排隊模型不適用于道路短的問題。

    2.問題三的多點縱列式排隊方式對區域的縱向距離要求較高,一般適用于機場等樞紐的縱向距離較大的的交通樞紐。

    參考文獻

    [1]魏中華,王琳,邱實.基于排隊論的樞紐內出租車上客區服務臺優化[J].公路交通科技(應用技術版),2017,13(10):298-300.

    [2]黃巖,王光裕.虹橋機場T2航站樓出租車上客系統組織管理優化探討[J].城市道橋與防洪,2014(12):7-9+35-36

    [3]林思睿. 機場出租車運力需求預測技術研究[D].電子科技大學,2018

    [4] 宗天禹,吳永晗,文磊,韓宇龍.基于排隊論模型的RGV動態調度研究[J].科技資訊,2019,17(19):212+214.

    附錄

    附錄一\1.問題一

    附錄一\2.問題二

    附錄一\3.問題三

    附錄二 Python代碼

  • No1_solve_flight_time.py 統計exl中某時間段航班數量
  • # !/usr/bin/env python # -*- coding:utf-8 -*- # author: haotian time:2019/9/14 import numpy as npf = open("./data/CD_Flight190914A.csv", "rb") excel = open("./data/time_flight.csv", "w+") # position_exl = open("./data/position_exl.csv", "w+") schedule = np.loadtxt(f, dtype=str, delimiter=",", skiprows=1, usecols=(4,)) # 分隔符 空格 Array = np.zeros(209) count = 1 i = 0 n = 0 while i < (len(schedule)-1):if schedule[i] == schedule[i + 1] :# 如果航班時間重復 創建一個不重復的時間表記錄重復次數count = count + 1else:Array[n] = count#Array存的重復次數count = 0n = n + 1i = i + 1new_schedule,a = np.unique(schedule,return_index=True) #去掉相同時間的數據# for i in range(len(position)): # position_exl.write(str(position[i])+',\n') # position_exl.close()# position_exl = open(("./data/position_exl.csv", "w+")) # position = np.loadtxt(position_exl, dtype=float, delimiter=",", skiprows=0, usecols=(0,)) # new_schedule = [len(position)*''] # n = 0 # numbers = [ int(x) for x in position ] # for i in range(numbers): # new_schedule[n] = schedule[i] # n = n + 1 excel.write("Schedule,PlaneNum"+'\n') for i in range(len(new_schedule)-1):excel.write(str(new_schedule[i])+","+str(Array[i])+",\n")excel.close() ''' 此時的數據time_flight.csv由于排序的原因導致時間的序列不一致, 最終數據用excel降序排列并保存到schedule_PlaneNum.csv中 '''
  • No2_solve_t3.py 解決t3的問題
  • #!/usr/bin/env python # -*- coding:utf-8 -*- # author: haotian time:2019/9/15 import os # 創建文件夾需要用 import numpy as np f = open("./data/distribute_2016.08.08_510100_.csv", "rb") schedule = np.loadtxt(f, dtype=str, delimiter=",", skiprows=1) # 分隔符 空格def exl_download(n, address):os.makedirs('./' + str(address) + '/', exist_ok=True)for a in range(n):print('No' + str(a) + 'exl is downloading')with open('./' + str(address) + '/' + str(a) + '.csv', 'w') as f1:for i in range(len(schedule)-1):if(schedule[i][1]==str(a)):for j in range(5):print('Writing......')schedule[i][j].encode("utf-8")f1.write(schedule[i][j]+',')f1.write('\n')f1.close()print('No' + str(a) + 'exl is downloaded') exl_download(24, 'distribute')
  • No3_get_exl.py python爬蟲獲取url上的航班
  • #!/usr/bin/env python # -*- coding:utf-8 -*- # author: haotian time:2019/9/15 import pandas as pd def getTable(base_url,start=-1,end=1):for idx in range(start,end+1):for page in range(1,51):now_url=base_url %(idx,page)print(now_url)tb=pd.read_html(now_url)[0]tb.to_csv(r'flight_info.csv',mode='a',encoding='utf_8_sig',header=1,index=0)print(str(idx)+'頁抓取完成')getTable('http://www.cdairport.com/flightInfor.aspx?t=4&attribute=A&time=%d&page=%d')
  • No4_judge_model.py 驗證模型
  • # !/usr/bin/env python # -*- coding:utf-8 -*- # author: haotian time:2019/9/15import numpy as npf = open("./data/schedule_PlaneNum.csv", "rb") result = open("./data/judge_result.csv", "w") timedata = np.loadtxt(f, dtype=int, delimiter=",", skiprows=1, usecols=[12, 13]) # 分隔符 空格,def judger():for i in range(len(timedata)):t1 = timedata[i][0]t3 = timedata[i][1]if t1 <= t3:print(str(i) + ',t1 <= t3 ###### the result is 1')# 排隊的先到,那么肯定要接result.write(str(i) + ',1,\n')if t1 > t3:# 放空的先到t4 = t1 - t3# t/min = 平均每分鐘一公里Wt3 = -0.6*(t3/60) # 油費Wt4 =(1.9-0.6) * (t4/60)Wt = Wt4 + Wt3if Wt >= 0:print(str(i) + ",t1 > t3,Wt >= 0 ###### the result is 1")result.write(str(i) + ',1,\n')else :print(str(i) + ",t1 > t3,Wt < 0 ###### the result is 0")result.write(str(i) + ',0,\n') judger() result.close()

    判斷結果如下:(也就是問題二的決策圖)

    0 1 1 0 2 0 3 1 4 1 5 0 6 0 7 1 8 1 9 0 10 1 11 0 12 0 13 0 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 0 23 0 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 0 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 0 61 1 62 0 63 0 64 1 65 0 66 1 67 1 68 1 69 1 70 1 71 1 72 0 73 1 74 0 75 1 76 1 77 1 78 1 79 1 80 1 81 1 82 1 83 1 84 1 85 0 86 1 87 1 88 1 89 1 90 1 91 0 92 1 93 1 94 0 95 1 96 1 97 0 98 1 99 1 100 1 101 1 102 1 103 1 104 1 105 0 106 1 107 1 108 1 109 1 110 1 111 0 112 1 113 1 114 1 115 1 116 1 117 1 118 1 119 1 120 0 121 1 122 1 123 0 124 1 125 1 126 1 127 1 128 1 129 0 130 1 131 1 132 1 133 0 134 1 135 0 136 1 137 1 138 1 139 1 140 1 141 0 142 1 143 1 144 1 145 1 146 1 147 1 148 0 149 1 150 1 151 1 152 1 153 1 154 1 155 1 156 1 157 1 158 1 159 1 160 1 161 1 162 1 163 1 164 1 165 1 166 1 167 1 168 1 169 1 170 0 171 1 172 1 173 1 174 1 175 1 176 1 177 0 178 1 179 0 180 1 181 1 182 1 183 1 184 1 185 1 186 1 187 1 188 1 189 1 190 1 191 0 192 1 193 1 194 0 195 1 196 1 197 0 198 1 199 1 200 1 201 1 202 1 203 0 204 1 205 1 206 1 207 0 208 0

    百度云代碼數據資源下載

    下載鏈接

    總結

    以上是生活随笔為你收集整理的【2019数学建模】国赛C题:机场出租车优化问题(原创)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。