草庐IT

数学建模笔记之一起读论文2019年C题——机场的出租车问题

鸭脖没了 2024-03-15 原文

数学建模笔记之一起读论文——机场的出租车问题

2021-8-28 全国大学生数学建模竞赛 2019年C题

B站链接——国赛C题真题解析

1 赛题阅读与分析

原题再现:
问题C 机场的出租车问题

大多数乘客下飞机后要去市区(或周边)的目的地,出租车是主要的交通工具之一。国内多数机场都是将送客(出发)与接客(到达)通道分开的。送客到机场的出租车司机都将会面临两个选择:
(A) 前往到达区排队等待载客返回市区。出租车必须到指定的“蓄车池”排队等候,依“先来后到”排队进场载客,等待时间长短取决于排队出租车和乘客的数量多少,需要付出一定的时间成本。
(B) 直接放空返回市区拉客。出租车司机会付出空载费用和可能损失潜在的载客收益。
在某时间段抵达的航班数量和“蓄车池”里已有的车辆数是司机可观测到的确定信息。通常司机的决策与其个人的经验判断有关,比如在某个季节与某时间段抵达航班的多少和可能乘客数量的多寡等。如果乘客在下飞机后想“打车”,就要到指定的“乘车区”排队,按先后顺序乘车。机场出租车管理人员负责“分批定量”放行出租车进入“乘车区”,同时安排一定数量的乘客上车。在实际中,还有很多影响出租车司机决策的确定和不确定因素,其关联关系各异,影响效果也不尽相同。
请你们团队结合实际情况,建立数学模型研究下列问题:
(1) 分析研究与出租车司机决策相关因素的影响机理,综合考虑机场乘客数量的变化规律和出租车司机的收益,建立出租车司机选择决策模型,并给出司机的选择策略。
(2) 收集国内某一机场及其所在城市出租车的相关数据,给出该机场出租车司机的选择方案,并分析模型的合理性和对相关因素的依赖性。
(3) 在某些时候,经常会出现出租车排队载客和乘客排队乘车的情况。某机场“乘车区”现有两条并行车道,管理部门应如何设置“上车点”,并合理安排出租车和乘客,在保证车辆和乘客安全的条件下,使得总的乘车效率最高。
(4) 机场的出租车载客收益与载客的行驶里程有关,乘客的目的地有远有近,出租车司机不能选择乘客和拒载,但允许出租车多次往返载客。管理部门拟对某些短途载客再次返回的出租车给予一定的“优先权”,使得这些出租车的收益尽量均衡,试给出一个可行的“优先”安排方案。

问题一:出租车选择决策模型

问题二:实证分析

问题三:双车道候车点设计

问题四:短途阈值的确定

问题分析:对于影响因素做阐述

我们需要找出租车司机在未进入蓄车池就可以观测到内容作为考量因素,这样我们的模型建立才有意义

2 问题一:

2.1 乘客数量的变化规律

(会受什么因素影响,出租车司机也看不到蓄车池里的乘客数和车辆数,也只能从通道、电子屏、飞机时刻可以估测)

2.1.1 到达机场的乘客人数分布(服从泊松分布)

乘客到达机场后选择出租车的占比约为35%(与季节、交通便利、天气、当天的时间段)
按每两个小时计算,得出一个平均值

2.1.2出租车队伍的长度

司机选择机场等待乘客的等待时间=车数车长平均每辆车等待时间/乘客数
 TWait  t = N t × L × A v g t x t \text { TWait }_{t}=\frac{N_{t} \times L \times A v g_{t}}{x_{t}}  TWait t=xtNt×L×Avgt

2.2 出租车司机收益(将燃油的消耗转化为时间的消耗)

回去路上的燃油消耗
返回市中心的时间
到达市中心等待接单的时间

距离*每千米定价/单位时间收益=时间 这样用时间作为单位便于比较

耗油+路程时间+接单时间

 TBack  t =  Dis  ×  FuelCost   AvgCost  +  Dis  v + y t \text { TBack }_{t}=\frac{\text { Dis } \times \text { FuelCost }}{\text { AvgCost }}+\frac{\text { Dis }}{v}+y_{t}  TBack t= AvgCost  Dis × FuelCost +v Dis +yt

2.3 决策模型的建立

Z t = {  留在机场等待,   TWait  t <  TBack  t  均可,   返回市中心,   TWait  t =  TBack  t  TWait  t >  TBack  t Z_{t}=\left\{\begin{array}{l} \text { 留在机场等待, } \text { TWait }_{t}<\text { TBack }_{t} \\ \text { 均可, } \\ \text { 返回市中心, } \text { TWait }_{t}=\text { TBack }_{t} \\ \text { TWait }_{t}>\text { TBack }_{t} \end{array}\right. Zt= 留在机场等待 TWait t< TBack t 均可 返回市中心 TWait t= TBack t TWait t> TBack t

在回程的计算上很不错

缺点:

(1)结合具体时间段研究会更好(每一天、每一周、每一年)

3 问题二:实证分析

3.1 问题的分析:

此文用北京首都国际机场的出租车选择方案,第二问把第一问中的数据中找到,再根据实际分情况,如:旅游高低峰,冬季,天气,每天的时段,工作日休息日,分细一点。
什么时候送人到机场的出租车比较多

3.2 数据的预处理

GPS收集,来源于微软亚洲亚洲研究所

(1)处理精确度小的数据:

原系统产生的数据为直接取整,处理单位时刻变化率的数据

(2)处理单位时刻变化率异常的数据

KNN距离总和和异常点筛检算法

优点:数据的收集和预处理
每15min产生的单子数及时间矩阵N。

3.3 分析总结:

需要两篇文献,一篇是出租车[4],一篇是微软亚洲研究所[14]

优点

(1)第一问只做理论的模型

(2)理论模型中突出比较

(3)返回市区的模型很有特色

(4)数据预处理

缺点

没有在表中体现出细化的因素

4 问题三:双车道候车点设计

4.1 上车到双上车点-红绿灯设计

4.1.1 单侧车道多上车点的缺点

4.1.2 选择双车道双上车点-红绿灯的原因

放弃变道,安全

4.1.3 双车道双上车点的工作原理

车一起过来一起走(想像坐船),所以行人从上车点到车上走的时间需要计算。而一批车次离开的时间,以最慢的那位乘客上车花的时间为准。

每个人上车的时间都符合一个均匀的分布,加上步行的时间。
知道x的分布,要求y的分布,求n为多少时,T最小。由此得到计算到红灯的时间为10秒,绿灯的时间为行人过马路的时间。

概率论:随机函数的概率分布

5 问题四:短途阈值的确定

5.1 模型的建立与求解

(1)短途乘客的判定

确定一个界定值S0

(2)出租车载客行驶的距离

最好是先搜集一些数据,做一下分布的拟合,判断一下究竟是符合什么分布。
这里说满足均匀分布

(3) 出租车收益模型的建立及求解

S1:先算出实际生活中的计价公式
R = f ( S ) = { p 0 , S ≤ a p 0 + ( S − a 0 ) p 1 , S > a R=f(S)= \begin{cases}p_{0} & , S \leq a \\ p_{0}+\left(S-a_{0}\right) p_{1} & , S>a\end{cases} R=f(S)={p0p0+(Sa0)p1,Sa,S>a
送客到机场之后,选择在机场重新载客后行驶的路程根据(2)服从均匀分布。

在优先权影响后,可以建立如下模型(p2为每千米油价)
R = { p 0 + ( S − a 0 ) p 1 , S > S 0 p 0 + ( S − a 0 ) p 1 − p 2 S + p 0 + ( S 1 − a 0 ) p 1 , S ≤ S 0 R=\left\{\begin{array}{lr} p_{0}+\left(S-a_{0}\right) p_{1} & , S>S_{0} \\ p_{0}+\left(S-a_{0}\right) p_{1}-p_{2} S+p_{0}+\left(S_{1}-a_{0}\right) p_{1}, S \leq S_{0} \end{array}\right. R={p0+(Sa0)p1p0+(Sa0)p1p2S+p0+(S1a0)p1,SS0,S>S0
接下来我们求S0

(4)出租车收益的方查最小的单目标优化模型和求解。视频1:04:34

随机优化,让其积分/方差达到

好像用了数值积分(看不懂)
最值
求出S为27km

写在后面

问题一和问题二、问题三和问题四分别来源于两篇国二获奖论文

有关数学建模笔记之一起读论文2019年C题——机场的出租车问题的更多相关文章

  1. ruby-on-rails - 建模收藏夹 - 2

    我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. ruby - 我可以在 Ruby 中动态调用数学运算符吗? - 2

    ruby中有这样的东西吗?send(+,1,2)我想让这段代码看起来不那么冗余ifop=="+"returnarg1+arg2elsifop=="-"returnarg1-arg2elsifop=="*"returnarg1*arg2elsifop=="/"returnarg1/arg2 最佳答案 是的,只需像这样使用send(或者更好的是public_send):arg1.public_send(op,arg2)这是可行的,因为Ruby中的大多数运算符(包括+、-、*、/、andmore)只需调用方法。所以1+2与1.+(2)相同

  4. ruby - 如何检查一个字符串是否是几个不同值之一? - 2

    我有一个字符串变量,它只能包含6个不同的值。我想检查它是否包含前4个值之一或2个第二值之一。有没有比这更优雅的方式:ifstring.eql?'val1'||string.eql?'val2'||string.eql?'val3'||string.eql?'val4'...elsifstring.eql?'val5'||string.eql?'val6'...end可能类似于ifstringisin['val1','val2','val3','val4']? 最佳答案 您可以使用include?:if['val1','val2','

  5. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  6. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  7. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  8. ruby |设计数学? - 2

    情况:我正在编写一个程序来求解素数。我需要解决4x^2+y^2=n的问题,其中n是一个已知变量。是的,必须是Ruby。我愿意在这个项目上花费大量时间。我最好自己编写方程式的求解算法,并将其作为该项目的一部分。我真正喜欢的是:如果任何人都可以向我提供指南、网站的链接,或者关于与求解代数方程特别相关的形式算法的构造的歧义消除,或者向我提供似乎你是读者它会帮助我完成任务。请不要建议我使用其他语言。如果您在回答之前接受我真的非常想这样做,我将不胜感激。该项目没有范围或时间限制,也不以营利为目的。这是为了我自己的教育。注意:我并不直接反对为Ruby实现和使用现存的数学库/模块/其他东西,但我更喜

  9. ruby - 我在哪里可以找到 Ruby 中的数学密集型应用程序 - 2

    我发现许多Rails应用程序主要针对企业、社交网络类型的Web应用程序。我看到有人将Ruby与一些出色的OOPS语言(如Java和C#)进行了比较,但我确实发现很难获得一些数学密集型应用程序。非常感谢任何知识渊博的输入(指向示例程序的链接等),其中轻松显示了语言的用法,就像快速启动或显示该语言如何用于各种数学问题一样。 最佳答案 不幸的是,Ruby并没有在数学和科学计算领域涉足太多。目前,有一个名为SciRuby的pre-alpha库它试图为Ruby带来更多面向数学的功能。他们正试图构建一个NumPy/SciPy等价物。SciRub

  10. ruby-on-rails - 如何针对组合字段的唯一性对这种复杂的验证进行建模 - 2

    link有两个组件:componenta_id和componentb_id。为此,在Link模型文件中我有:belongs_to:componenta,class_name:"Component"belongs_to:componentb,class_name:"Component"validates:componenta_id,presence:truevalidates:componentb_id,presence:truevalidates:componenta_id,uniqueness:{scope::componentb_id}validates:componentb_id

随机推荐