学习任务单 课程基本信息 课题 项目挑战———无人机送快递的配送决策 学习目标 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=_____ 小组比较方案一和方案二哪种配送方式最优?因此配送方案按照_____方案进行配送。 【任务二程序实现】 #根据计算的两点距离设计配送决策方案,最终输出配送的顺序、所有用户等待的时间。 【拓展任务】 思考:①数据在排序过程中如何优化排序算法? ②实际情况中我们还会遇到哪些情况?如果技术再进一步发展,我们还可以考虑哪些方案?
~~ 您好,已阅读到文档的结尾了 ~~