2022 年 MathorCup 高校数学建模挑战赛A题

news2025/1/24 3:08:41

赛道 A:“58 到家”家政服务订单分配问题

        “58 到家”是“58 同城”旗下高品质、高效率的上门家政服务平台,平 台向用户提供家政保洁、保姆、月嫂、搬家、维修等众多生活领域的服务。 在家政保洁场景中,用户在平台下单购买服务后,平台会将订单分配给一 个保洁阿姨,阿姨接到订单后按照用户指定的服务时间上门,进行保洁服 务。平台在将订单分配给一个保洁阿姨时,一方面,为了提高对顾客的服 务质量,需要尽量分配服务分较高的阿姨,其中阿姨的服务分是基于阿姨 历史订单的评价情况得到,取值为[0,1],值越大越好;另一方面,为了帮 助阿姨提高接单量,需要尽量缩短阿姨相邻单之间的通行时间。 每天通过平台进行分配的订单量是巨大的,当前平台实现了一套订单 分配算法,本问题研究的是如何优化系统的分配算法,提高算法的求解能 力,实现提升顾客体验、节省阿姨时间。

 基本业务抽象 约束条件及假设:

1. 所有订单都要分配一个且只有一个阿姨;

2. 每个订单需要指定一个服务开始时间,这个时间的取值范围为 [最早时间,最晚 时间],且是半点的整数倍;

3. 一个阿姨同时只能服务一个订单;

4. 阿姨需要在每个订单的服务开始时间之前到达客户位置;

5. 阿姨每天开始任务时必须从初始点位置出发;

6. 任意两点的距离为欧式距离;

7. 保洁阿姨的行驶速度为 15 千米/小时。

优化目标: 将每个订单匹配阿姨时,优化的目标是: 1. 所有订单匹配的阿姨的服务分,其平均值 A 尽可能大; 2. 最小化每单的平均通行距离 B。一个订单的通行距离指的是阿姨从上一个地点到 本单地点的距离(欧式距离),其中阿姨第一个订单的通行距离等于从初始点到 3 第一个订单位置的距离,单位是千米; 3. 最小化阿姨服务订单的平均间隔时间 C。一个订单的间隔时间指的是,阿姨从上 一个单服务结束时刻到本单服务开始时刻的时间间隔,单位是小时,其中阿姨第 一个订单的间隔时间设定为 0.5 小时(阿姨首单需要做基本的准备工作,不考虑 阿姨从初始点到第一个订单的通行时间); 4. 总体目标是各个目标的加权和:αA-βB-γC,其中α=0.78、β=0.025、γ=0.195,得 分四舍五入取 6 位小数。目标值越大越好。

初赛问题

问题 1:只考虑离线批量派单模式。附件 1 与附件 2 中分别给出的是一 天的所有订单信息与阿姨信息。 (a) 请设计最优的订单与阿姨匹配算法,将所有订单进行分配,并将求 解结果填写到 result1.txt 中。(订单必须全部分配、阿姨不需要全部 匹配订单)。 (b) 基于(a)的算法,请对附件 1 中的前 50 个订单与附件 2 中前 20 个阿 姨,重新运行算法,给出阿姨的执行任务列表,并画出阿姨的行动 轨迹图。

问题 2:线上批量派单模式。在实际业务场景中,通常采用固定的频率 派单,每 30 分钟将该段时间内产生的新订单统一分配;分配时允许部分订 单暂时不派单,称之为压单,但是压单订单必须满足服务开始时间的最早 时 间 比 当 前 时 间 晚 于 2 个 小 时 ( 不 包 括 2 个 小 时 ) 也 即 满 足 : 4 serviceFirstTime-currentTime>2h;请设计这种情况下的每批订单的最优分配 算法。并将求解结果 1-最终决策结果填写到 result21.txt 中,结果 2-每次决 策结果填写到 result22.txt 中。

关注我后续分享更多数学建模思路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非零基础自学Golang 第13章 并发与通道 13.3 channel 13.3.1 channel类型 13.3.2 缓冲机制

非零基础自学Golang 文章目录非零基础自学Golang第13章 并发与通道13.3 channel13.3.1 channel类型13.3.2 缓冲机制第13章 并发与通道 13.3 channel goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。 引用类型channel是CSP模式的具体体现&#xff…

游戏玩得好的AI,已经在看病救人了

一个游戏AI,怎么干起医生的活了? 而且这本事还是从打游戏的经验里总结来的。 喏,拿一张病理全片扫描图像,不用遍历所有高倍镜视野,也能找到病灶所在。 在它看来,这个过程和《我的世界》里伐木居然是类似的…

Diffusion惊艳应用大赏

文|白鹡鸰自从Diffusion模型兴起之后,AI绘画圈又迎来了一波猪突猛进式的强化,早几年还只是Ins的二次元/迪士尼风格滤镜,让人穿上不同服装当接头霸王。现在,你随便输几句话,模型就能刷刷刷给你吐出一大堆精美…

024 | 知行国学:全国领先的线上一对一国学教育平台 | 大学生创新训练项目申请书 | 极致技术工厂

公司产品 公司的产品包括两个部分的内容,一是模块化、智能化的课程体系——“诗书礼乐”快乐国学课程体系,二是梯队化、“以一带群”、联动型的师资培训体系——“知行者”大学生国学师资培训模式。 近年来,国家大力弘扬中华优秀传统文化&a…

在Docker中的ubuntu中安装Python3和Pip

下载载python3.7 apt-get update apt-get install python3.7 建立软链接 先删除旧的python连接。 删除后建立新的连接关系,例如linux下python3默认在/usr/bin/下 rm -rf /usr/bin/python ln -s /usr/bin/python3.7 /usr/bin/python 进入python3.7的lib中&#xf…

基于springboot的疫情防控系统java疫情防控物资管理平台源码和论文

系统开发技术介绍 2.1 MySQL数据库 社区疫情防控系统采用了一款开源免费的关系型数据库——MySQL数据库进行开发,因为它不收取任何费用,免费提供给各个开发者使用学习使用,使本次系统开发成本大大降低了。由于MySQL数据库体积小&#xff0c…

5.5 5个小红书月销售10W+的商家【玩赚小红书】

一、SWEETIEDOTS:蛋糕 简介 :甜点类商家,独创罐装厚卡龙、创新手工点心甜点,目前在小红书有2.7W粉丝,点赞评超7W,在简介上,告诉用户在薯店进行购买,客单价在98-108元。 内容&#x…

堆堆排序加强堆和堆有关的题一网打尽

堆结构、堆排序 堆结构的实现 堆结构就是用数组实现的完全二叉树结构 2)完全二叉树中如果每颗子树的最大值都在顶部就是大根堆 3)完全二叉树中如果每颗子树的最小值都在顶部就是小根堆 4)堆结构的向上调整和向下调整算法 向上调整 向下调整 5)堆结构某个元素的增大和减少 …

安卓手机独有的6个功能,个个都很实用,你用过几个呢?

安卓和苹果,你更喜欢哪一种?今天我整理了6个安卓独有的功能,不看不知道,一看安卓用户可能会吓一跳。因为这些功能真的很实用,但是苹果却没有这些功能。第一种:更改默认打开的应用 苹果系统无法直接更改默认…

【数据库】MVCC

Multi-version Concurrency Control DBMS 维护一个对象的多版本在数据库中。所以事务可以访问历史版本信息。 只依赖MVCC做不到可串行化; 一个事务在改对象的时候,留下一个历史版本,其他的事务可以读这个历史版本的数据。 读者不锁写着&a…

ch3_2多进程中寄存器的切换

运行中的程序在进行切换时, 可以分为以下两类: 线程: 只涉及指令的切换, 硬件资源没有切换;进程: 包含指令的切换,以及硬件资源的切换, 其中映射表便是一种内存资源。 1. 进程间的…

用3Dmax优化模型的方法,让你的效果图又快又好

3DMax是一个特别强大的建模软件,它具有无数需要小伙伴付出时间和练习才能掌握的特性和功能。 如果你已经能足够直观的掌握基础知识,并且已经能创造出很优秀的作品。这必然是一件值得高兴的事。 但是,在设计过程的妙处就在于,总是…

Prometheus集成Grafana(手动创建/通过模板创建Dashboard)

目录1. Grafana的基本介绍2. Centos7上安装Grafana2.1 下载解压2.2 修改conf/default.ini2.3 启动grafana3. Grafana各层级关系4. 添加Prometheus数据源5. 添加Dashborad和手动添加Row和Panel(方式一)6. 通过社区提供的模板创建Dashboard(方式二)1. Grafana的基本介绍 grafana…

自然语言基础之分词提取关键词基本操作

概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 关键词 关键词 (keywords), 即关键词语. 关键词能描述文章的本质, 在文献检索, 自动文摘, 文本聚类 / 分类等方面有着…

我发现,被裁的一般都是情商低的人!网友:老板只看你有没有利用价值!

什么样的人容易被裁员?一位网友分享了自己的发现:被裁的一般都是情商比较低的。有人认同楼主,情商高能在一定程度上降低被裁的概率,大多数被裁的员工是因为情商不够,导致人际关系不好,才被辞退。有人说&…

JS如何读取对象内的一个属性两种方法

目录一:读取对象内的一个属性--可以用数组二:读取对象内的一个属性--可以用 .1、点的方式2、中括号的方式一:读取对象内的一个属性–可以用数组 二:读取对象内的一个属性–可以用 . let obj {name:张三,age:18,address:中国}1、…

【PAT甲级 - C++题解】1067 Sort with Swap(0, i)

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:PAT题解集合 📝原题地址:题目详情 - 1067 Sort with Swap(0, i) (pintia.cn) 🔑中文翻译:用 Swap(0, i) 操作…

【关于时间序列的ML】项目 3 :基于机器学习的地震预测模型

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

Datawhale powerful-numpy《从小白到入门》学习笔记

Datawhale powerful-numpy《从小白到入门》学习笔记 持续更新中 文章目录Datawhale powerful-numpy《从小白到入门》学习笔记摘自官方文档的一些话What is NumPy?Why is NumPy Fast?Who Else Uses NumPy?一.创建和生成1.从python列表或元组创建从列表创建从元组创建2.使用ar…

基于ISO13209(OTX)实现引导诊断

在上篇文章《基于ISO13209(OTX)实现EOL下线序列》中,讲到了OTX的由来以及OTX在EOL中的实现案例,而本文将讲述OTX的另一个广阔应用场景——定义引导诊断序列。 一 何为引导诊断? 引导诊断,通常也称为“引导…