前言
此次2019年的mathorcup杯B题和18年建模国赛题目类似,都是关于环形穿梭机(RGV)的调度问题,这里主要以mathorcup杯的赛题来讲解模型的建立部分,关于国赛的相关内容会在后续介绍。
RGV介绍
关于赛题详情请参见mathorcup官网,这里简单介绍一下RGV系统的构成。
![](https://i-blog.csdnimg.cn/blog_migrate/7acf8f9fd490e41d341e90cedfc6d495.png)
有N辆穿梭车在轨道上跑,每次只能装载一个货物,在A侧上货口的上货的货物要求在B侧出货口运出,而在B侧上货的货物同样只能在A侧出货口运出。
通过对题目的分析不难发现,我们唯一能对整个RGV系统施加的影响只有穿梭车下一次装货或者卸货的窗口,假设每次每辆RGV都能选择对整个系统最有利的装/卸窗口,那么最后得到的结果便是题目要求的最优解。
(1)A、B侧进出口集合
![](https://i-blog.csdnimg.cn/blog_migrate/689c3b411aa6a051df679323d28406ce.png)
(2)穿梭车当前状态
环形轨道上小车分为正在装货、运货中、进行卸货、空车四种状态,用 a a a表示,穿梭车从一种状态转移至下一状态的时间记为 b b b,穿梭车的窗口记为 c c c,针对穿梭车当前装卸状态设置穿梭车状态函数。
图4穿梭车运行状态
![](https://i-blog.csdnimg.cn/blog_migrate/724c5f43c6ac32009af13c2945ccf052.png)
第 i i i辆穿梭车当前状态 s t a t u s i status_i statusi 为:
![](https://i-blog.csdnimg.cn/blog_migrate/bae58e481082a7211865f45f12a4cff3.png)
(3)穿梭机在两两进出货口之间行驶路程
首先针对环形穿梭车系统的A、B两侧的进货口和出货口分别设置编号,以A侧的出货口3为起点1,根据逆时针方向依次编号。
动态规划是把多阶段过程转化成一系列单阶段问题,是研究多阶段决策优化问题的方法,本文利用动态规划求解两两地址间最短距离。根据题意进货口、出货口均匀分布在A、B两侧条件进行计算相关数据,计算相邻进出口之间距离:
![](https://i-blog.csdnimg.cn/blog_migrate/df27318332db1bd70295eba571d6f184.png)
由穿梭机匀速行驶可得状态转移方程:
![](https://i-blog.csdnimg.cn/blog_migrate/e40348890a0a520570b8a97a1c8bf606.png)
RGV调度模型的建立
1.决策模型的建立
本文的决策目标为系统中最迟完成任务的穿梭车完成搬运货物的总时间,决策目标的最小值即为决策模型的目标函数。决策变量 N e s t Nest Nest为小车下一个的窗口编号,约束条件为最终所有进货窗口货物量为0。
目标函数:
![](https://i-blog.csdnimg.cn/blog_migrate/bc1fda78f1df74d5f5d269a91548d940.png)
决策变量 N e x t Next Next:
![](https://i-blog.csdnimg.cn/blog_migrate/fe649cb412da1b2b9f8e90949a680fc5.png)
约束条件:
![](https://i-blog.csdnimg.cn/blog_migrate/0d8b355ad360031fbb909865a648bc35.png)
Step1 构建单辆穿梭车状态转移函数:
单辆穿梭车状态转移函数表示单辆穿梭车在不考虑堵塞的条件下由当前状态转化为下一时刻的状态的过程。
单辆穿梭车状态转移函数:
![](https://i-blog.csdnimg.cn/blog_migrate/ca2e7ab345c5c68355d4cd91cda50de0.png)
每辆穿梭机转移时间为: b i 1 b^1_i bi