資源簡介 學習任務單課程基本信息課題 項目挑戰——無人機送快遞的配送決策學習目標1.通過數學模型計算地球上任意兩點之間的距離; 2.通過建模設計無人機配送快遞的決策模型; 3.設計程序,生成無人機配送快遞的順序表以及所有用戶的最短等待時間。課前學習任務復習冒泡排序的基本框架代碼。課上學習任務【項目情境】 在無人機快速發展的當下,物流行業也將無人機技術引入到快遞配送業務中,我們杭州也要建立這樣的快遞服務,若現提供了一批快遞配送的信息,需要你變成來編排無人機的送貨的順序表,現遇到了以下幾個問題。 1.快遞分急件和非急件,在配送的過程中急件優先配送 2.配送的過程中需要讓所有的用戶等待的時間最短 現在配送快遞數據如下圖所示: 【任務一情境建模】 根據數學公式計算每個快遞地點和配送中心的距離,數學公式如下所示: 其中WA,JA是A點經度、緯度對應的弧度,WB,JB是B點經度、緯度對應的弧度。弧度=經度(緯度)*3.14/180 【任務一算法設計】 ①用配送中心的經緯度數據分別和每個快遞地點經緯度計算每個快遞配送的距離。 ②第i條數據與配送中心之間的距離計算后存儲在___________________中。 【任務一程序實現】 def rad(degree): #經緯度轉換弧度,經度(緯度)*3.14/180 t=___________________ return t def getDistance(lat1,lng1,lat2,lng2): #計算兩地之間的距離 a1=rad(lat1) #將AB兩點的經緯度利用rad自定義函數轉換成弧度 b1=rad(lng1) a2=rad(lat2) b2=rad(lng2) a=a1-a2 b=b1-b2 r=6371.0 d=2*r*math.asin(math.sqrt(_______________+math.cos(a1)*math.cos(a2)*(math.sin(b)/2)**2)) return d for i in range(1,len(df)): ________=getDistance(df[0][2],df[0][3],________________) #計算與配送點的距離 【任務二情境建模】 ①對所有配送地點按照____________、____________進行數據處理。 ②計算最少的等待時間,并輸出配送順序。 ③對算法進行優化。 【任務二算法設計】 如何安排配送順序讓所有人等待的時間最少? 方案一:最近的先配送 1號配送時間為t1,2號配送時間為t2,3號配送時間為t3,客戶等待的總時長sumzj=_________________ 方案二:最遠的先配送 1號配送時間為t1,2號配送時間為t2,3號配送時間為t3,客戶等待的總時長sumzy=_________________ 小組比較方案一和方案二哪種配送方式最優?因此配送方案按照_____________________________方案進行配送。 【任務二程序實現】 #根據計算的兩點距離設計配送決策方案,最終輸出配送的順序、所有用戶等待的時間。 【拓展任務】 思考:①數據在排序過程中如何優化排序算法? ②實際情況中我們還會遇到哪些情況?如果技術再進一步發展,我們還可以考慮哪些方案? 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫