导航菜单
首页 >  中青杯数学建模大赛历年真题及答案解析  > 2021年第四届“中青杯”A题 汽车组装车间流水线物料配送问题(超详细思路及代码)

2021年第四届“中青杯”A题 汽车组装车间流水线物料配送问题(超详细思路及代码)

题目背景:汽车制造冲压、焊接、涂装和总装四大关键工艺。总装过程中物料的配送补充,是本次题目的核心。物料补充工作称为运输,一般由拖车完成。拖车接收到任务指令后,需要进行如下操作:1)取料:前往目标物料的存储位,将物料装载至拖车;2)配送:将物料运送至目标工位和卸载。需要注意的是,在不超过小车容量的情况下,多个任务可以同时进行。

问题 1:某总装车间内有两条并行的流水线,其布局如图1所示,其道路关键节点和工作点见附件1。该车间共有10辆拖车,目前采用承包制,即一个拖车负责若干个工位(称为“承包区”)的配送任务,且承包区互不交叠。请根据上述信息为拖车安排承包区(每个承包区不超过5个工位)。

图1:总装车间分为三个区域,其中I区和II区为装配区,III区为仓库。I区和II区中,蓝色折线为两条相同的流水线,其附近的蓝色圆点为工位和编号。III区中,红色为存储点,其中工位和仓库点编号为一一对应,即k号工位需求的零件储存在k号仓储位。绿色为道路,小车必须遵循道路行进,至目标工位/仓储位最近点(工作点)执行操作。车间的左下角为坐标原点,附件1为道路上若干关键节点和工位/仓储位的工作点坐标。

分析题意:10辆拖车负责2条流水线共48个工位,采用承包制,要求每个承包区不超过5个工位,承包区互不交叠。

思路:此问未要求优化,可以简单进行划分,根据初始划分的不同会影响后续题目的解答。也可以使用各工位彼此间距离进行聚类,可以获得所有的承包区内部工位之间距离最短的承包区划分方案。

第一步:将道路节点、工作点坐班及任务数据进行处理,导入matlab。在将数据与车间示意图进行对比时发现,题目给出的总装车间Ⅲ号区域的坐标数据存在错误,若以车间左下角为坐标原点,Ⅲ-1 的坐标不应为(63,131.5),将数据修正后录入。

第二步:考虑道路行走的实际情况。计算工位和存储点两两之间的距离。比对数据发现,道路关键节点的纵坐标与工作点和存储点的纵坐标一致,如下图所示,C点纵坐标与Ⅲ-20纵坐标一致。因此可以假设工作点和存储点紧贴道路。

使用图论的Dij最短路径算法,将所有道路关键节点、工作节点的距离矩阵列出。

第三步:根根据48个工位之间的距离,确定十个拖车的承包区。随机确定两个1~10之间的整数,用于确定哪个承包区比5个工位少一个。以一个随机点a1为起始位置,寻找最近的a2~a4/5点,将这几个点排除后,再找距离a1最近的一个点作为b1。以b1为起始位置,从排除了a1~a4/5的点中寻找最近的b2~b4/5点……,直到j。至此,将48个工位划分为a~j十个承包区。

每一行代表一个拖车

问题 2:为了降本增效,该车间计划通过打破承包制,减少拖车数量。在某一时间点,系统收到任务需求和当前可用车辆,通过计算生成派送方案并下发至拖车执行。请设计一种方法,在尽量减少停线风险的前提下,使得派送方案可以自动生成。表1和表2所示为系统收到需求信息示例和生成的派送方案。假设小车行进速度为5米/秒,装/卸零件耗时均为3秒,一次最大可装载4个任务。附件2为若干用于验证的任务数据,亦鼓励参赛者设计更复杂的场景和数据验证其技术方案。

可用拖车25 需求编号需求工位需求时间(s)1I-31122I-41303I-81504I-71675II-111226II-121447II-151588II-16171

表1:任务示例,其中第一行“可用拖车”指当前可用车辆编号,所有可用车辆均位于B点。该示例中有8个任务,每个任务有三个字段:需求编号、需求工位、需求时间。“需求工位”是指该需求应送达的工位编号(送至相应的工作点);“需求时间”是指预计该工位多长时间后会消耗完零件,因此必须在此时间前到达,否则流水线会有停线风险。

拖车编号取件顺序配送顺序24-3-2-11-2-3-455-6-7-85-6-7-8

表2:派送方案示例,每条方案有三个字段:拖车编号、取件顺序和配送顺序。“拖车编号”是指执行该组任务拖车的编号;“取件顺序”和“配送顺序”是一串图2中的需求编号,拖车按照此顺序执行取件和配送,到达工作点后,需要装/卸零件。需要注意的是,由于工位存储空间有限,拖车必须在零件消耗完的时刻补充零件,故即使拖车提前到达工位,它开始卸载零件的时刻亦为该任务的需求时间。

分析题意:要求设计一种方法,在尽量减少停线风险的前提下,使得派送方案可以自动生成。拖车速度限制为5米/秒,则假设拐弯车辆不减速,假设道路宽度足够两辆拖车相向行驶。题目给出装/卸零件耗时均为3秒,理解题意,每次拖车对同一种零件只取1件,最多取4种零件,且拖车需在“需求时间”前到达,在“需求时间”时刻卸载零件,而后才能赶往下一个工位或者再去存储点装载零件。

思路:这一问与第一问完全无关,我们需设计一个能够根据可用拖车数、工位及存储点相互之间距离、需求工位、需求时间这四个因素,计算出拖车取件和配送顺序的技术方案。而后根据附件2中给出的三种情形进行计算,还可以自己设计更复杂的情形进行计算。这个题目我们作为一个线性优化的题来求解。可以将拖车在工位前的平均或最短等待时间作为目标函数,这个等待时间可以用来衡量流水线停线的风险,最后使用免疫算法、遗传算法等高级优化算法对平均或最短等待时间求最大值,也可以使用遍历法对其求最大值。

第一步:将任务所需的需求工位之间的距离计算出来,结合工位之间需求时间的间隔(将卸载零件的3s考虑在内),将允许拖车在工位之间连续配送的关联工位筛选出来(例如a工位与b工位之间,如果a、b需求时间之差为15s,而ab之间距离为60m,则在a需求时间到来时开始卸货,卸货后移动到b的时间为3+60/5=15,则此时恰好赶上b的需求时间,则ab为关联工位,此关联有顺序,只能由a到b)。

第二步:按照需求时间的先后顺序给多个拖车设置配送顺序。这一步是此问的关键,可以……(省略的部分在下方

相关推荐: