2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决

2023-10-30

一、背景介绍

汽车制造厂主要由焊装车间、涂装车间、总装车间构成,每个车间有不同的生产偏好,如:焊装车间由于车身夹具的限制偏向最小车型及配置切换生产,涂装车间由于喷漆(固定每5辆车清洗喷头、颜色切换也需清洗喷头)限制偏向颜色以5的倍数切换生产,总装车间由于人员工时(不同车型及配置人员工时不同)及硬件(零部件数量等)等限制偏向按照车型及配置按比例切换生产。

由于各车间的约束不同导致生产调度无法按照同一序列连续生产,特别是涂装车间与总装车间序列差异较大,这就需要在两个车间之间建立一个具有调序功能的缓存区,即PBS(Painted Body Store,汽车制造涂装-总装缓存调序区),用来将涂装车间的出车序列调整到满足总装车间约束的进车序列。

二、问题描述

根据涂装车间的出车序列通过PBS调度调整得到总装车间的进车序列。PBS具体信息如图3所示。

图3 涂装-总装缓存调序区(PBS)示意图

PBS由涂装-PBS出车口、接车横移机、进车道6条(每条进车道有10个停车位、FIFO结构)、返回道1条(有10个停车位)、送车横移机及PBS-总装接车口等7个区域组成。各车道距离等分,每车道宽度2米,两相邻车道间间隔1米。横移机运动时的速度保持一致。

PBS接车横移机:

  1. 将车身从涂装-PBS出车口运送到合适进车道。
  2. 将车身从返回道运送到合适进车道。

PBS送车横移机:

  1. 将所选择车身从进车道运送到PBS-总装接车口。
  2. 将需调序车身从进车道运送到返回道。

PBS约束说明:

  1. 送车横移机不能将返回道的车身送入PBS-总装接车口。
  2. 车身在进车道和返回道的移动方向为图中标注方向,不得改变。
  3. 接车横移机和送车横移机上同一时刻分别最多有一个车身。
  4. 接车横移机和送车横移机在完成任意动作后,必须返回中间初始位置,才可以执行下一步动作。
  5. 接车横移机和送车横移机在执行任何动作过程中,均不能被打断。
  6. 当返回道10停车位有车身,同时接车横移机空闲时,优先处理返回道10停车位上的车身。
  7. 当若干进车道1停车位有车身等候,同时送车横移机空闲时,优先处理最先到达1停车位的车身。
  8. 如果任意进车道1停车位有车身,那么送车横移机不能设置为空闲状态。
  9. 进车道和返回道每个时刻最多容纳10个车身,每个停车位最多容纳1个车身。
  10. 同一车道内,多个车身在不同停车位上的移动可以不同步进行。
  11. 当某车身所在停车位的下一停车位出现空位时,车身必须立即开始向下一停车位移动。
  12. 车身在进车道和返回道不同停车位之间移动的过程中,不能被调度。

PBS相关时间数据说明:

1. 假定车身由横移机卸载到各进车道10停车位或返回道1停车位,以及由各进车道

1停车位或返回道10停车位装载到横移机上的时间均可忽略。

2. 假定车身在涂装-PBS出车口处装载到接车横移机上,以及在4车道出口中间位置

处,车身由送车横移机上卸载到PBS-总装接车口,时间均可忽略。

3. 进车过程:任意车身到达涂装-PBS出车口时,处于最中间位置,正对进车道4,

接车横移机把车身从该位置运送至不同进车道10停车位并返回至初始位置,对于

1-6进车道,消耗时间分别为[18, 12, 6, 0, 12, 18]秒。

4. 出车过程:送车横移机从中间初始位置出发,把各进车道1停车位的车身运送至

-PBS接车口,处于最中间位置,正对进车道4,对于1-6进车道,消耗时间分别

为 [18, 12, 6, 0, 12, 18] 秒。

5. 进返回道过程:在有需要时,送车横移机从中间初始位置出发,把各进车道1停

车位的车身,运送至返回道1停车位,并返回至初始位置,对于1-6进车道,消耗

时间分别为 [24, 18, 12, 6, 12, 18]秒。

6. 车出返回道过程:接车横移机从中间初始位置出发,把返回道10停车位的车身,

运送至任意进车道10停车位并返回至初始位置,对于1-6进车道,消耗时间分别

为 [24, 18, 12, 6, 12, 18] 秒。

7. 车移动过程:任意车身在进车道/返回道中,从某一停车位移动至后一停车位,消

耗时间为 9秒。

可选的调度手段:

  1. 接车横移机将当前涂装-PBS出车口队列第一个车身或者返回道10停车位的车身送入任意进车道的10停车位。
  2. 送车横移机将任意进车道1停车位的车送入返回道1停车位或者PBS-总装接车口。
  3. 接车横移机和送车横移机均可以在一段时间内被设置为空闲状态。

输入输出:

  1. 输入:涂装出车序列清单,可提供多个数据清单。
  2. 输出:每个车身在每一秒所处的区域(涂装-PBS出车口、接车横移机、任意进车道任意停车位、返回道任意停车位、送车横移机、PBS-总装接车口),可构建二维矩阵,里面存储区域代码(如200辆车在第1000秒完成全部调度,则需提交200*1000的矩阵)。矩阵中每一个值为各个区域代码,总的区域代码有74个,区域与代码的对应关系见附件3。车身不在上述74个区域时,对应矩阵值为空白。具体的输出模板文件见附件4(模板文件只是一个示意,示意的场景是50个车身在第100秒完成全部调度,每行代表每个车身各个时间点所处区域,每列代表每个时间点各车身所处区域,其中区域代码没具体填写,具体区域代码见附件3;具体的输出矩阵,需要根据实际数据和算法计算得到,相关数据见附件1-3,附件4只是示意,不代表本题只有50个车身)。由于PBS相关时间说明第1、第2两条假设,会出现同一时刻车身处于若干不同区域的情形,则在输出矩阵该车身该时刻对应格子中填入这些区域中最后一个区域的代码。例如,第0秒,如果涂装-PBS出车口第一个车身(1号车身)被装载到接车横移机上,接着被卸载到4进车道10号车位,则在1号车身第0秒格子中填入4进车道10号车位的区域代码“410”;又例如,第75秒,如果5号车身从送车横移机上被卸载到PBS-总装接车口,则在5号车身第75秒格子中填入PBS-总装接车口区域代码“3”。

优化目标:

  1. 混动车型间隔2台非混动车型为优,权重系数 0.4。
  2. 四驱车型与两驱车型倾向1:1出车序列,权重系数 0.3。
  3. 返回道使用次数倾向于0,权重系数 0.2。
  4. 倾向总调度时间越短越好,权重系数 0.1。

注:该权重系数用于多目标得分加权,各权重系数相加等于1。

优化目标具体量化逻辑:

设置每个优化目标初始分,根据下述逻辑更新得分后,再乘以相应系数,得到最终加权总分(理论最高分100分)。

  1. 优化目标1(权重系数0.4,初始分100分):检查出车序列,找到所有混动车身,从出车序列头部按照先后顺序开始算,计算每连续两辆混动车身之间的非混动车身数,不等于2则扣1分。
  2. 优化目标2(权重系数0.3,初始分100分):对出车序列进行分块,判断每一分快中的四驱车型与两驱车型之比是否满足1:1,若不满足,则扣1分。对出车序列分块的依据是:如果序列以4开头,则根据从2变为4将序列进行分块;如果序列以2开头,则根据从4变为2将序列进行分块。 例如:如果出车序列为 442242444224(4代表四驱车型,2代表两驱车型),则该序列分块结果为:4422,42,44422,4,最后两个分块44422和4都不满足1:1,扣2分。
  3. 优化目标3(权重系数0.2,初始分100分):统计返回道使用次数,每使用一次扣1分。
  4. 优化目标4(权重系数0.1,初始分为100分):假设出车队列长度为C, 第一辆车身进入涂装-PBS出车口时刻记为零,以最后一个车身进入PBS-总装接车口的时刻T为总完成时间,其理论最快完成时间为 9C+72(全部走进车道4,出车序列与入车序列相同),其时间惩罚值设置为 0.01 × (T – 9C-72), 最后目标得分为 100 – 时间惩罚值。

请建模完成以下优化问题:

问题 1:严格按照PBS约束说明及相关时间数据说明,根据涂装出车序列,考虑PBS区域调度能力及限制,建立PBS优化调度模型,使得总装进车序列尽可能满足总装生产需求。给出将你们的优化调度方案分别应用于附件1和附件2数据的得分结果,并将使用附件1和附件2两套数据的调度输出结果按照附件4格式分别存入result11.xlsx和result12.xlsx。

问题 2:如果去除PBS约束说明中第6、7两条约束,其余约束不变,根据涂装出车序列,考虑PBS区域调度能力及限制,建立PBS优化调度模型,使得总装进车序列尽可能满足总装生产需求。给出将你们的优化调度方案分别应用于附件1和附件2数据的得分结果,并将使用附件1和附件2两套数据的调度输出结果按照附件4格式分别存入result21.xlsx和result22.xlsx。

数据说明:本题共有两套数据,附件1数据是生产数据脱敏后的正常数据,附件2数据是为了测试模型和算法的适应性而调整后的数据。

解题思路:

问题一:分阶段联合优化模型:第一阶段得出最优出车序列;第二阶段选择调度手段,使调度时间最短;第三阶段联合迭代第一阶段和第二阶段,得出最优解。

第一阶段使用固定基因片段的遗传算法求解:

第二阶段使用动态多循环队列进出算法求解:

第三阶段使用蒙特卡洛算法求解: 

问题二:分阶段联合优化模型:第一阶段得出最优出车序列;第二阶段选择调度手段,使调度时间最短;第三阶段联合迭代第一阶段和第二阶段,得出最优解。

第一阶段使用基因片段固定的遗传算法求解:固定方法与问题一不同

第二阶段使用车道属性与车身型号匹配的算法求解:

第三阶段是用蒙特卡洛算法求解:

在解题思路上,问题一和问题而是一样的,但是考虑到PBS的约束不一样,所以主要区别在于第二阶段的调度手段选择,次要区别是第一阶段的最优出车序列得出算法,第三阶段都一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决 的相关文章

随机推荐

  • uniapp之最新获取用户昵称以及头像

    目录 前言 一 只展示不传递给后端 二 方法二 前言 在uniapp登录时候最开始想的就是手机号登录之后 就获取用户的昵称以及头像 存储起来 登录的时候直接显示在我的页面 最开始使用的是 uniapp官网自带的uni getUserProf
  • C语言简易学生管理系统(含源码)

    项目部分截图 以下是完整源代码 cpp文件 include StudentManagerSystem h int main 改变控制台字体颜色 SetConsoleTextAttribute GetStdHandle STD OUTPUT
  • java 力扣 88题 合并两个有序数组

    class Solution public void merge int nums1 int m int nums2 int n List
  • SpringBoot定时任务注解@Scheduled中fixedRate和fixedDelay

    Scheduled fixedRate 2000 public void myJob1 System out println LocalDateTime now 定时任务O O 休眠模拟代码块运行的时间 try TimeUnit SECON
  • 电路的等效变换(二)

    文章目录 一 电路的等效变换 等效有什么作用 等效变换的特点 二 电阻的串联和并联 三 电压源 电流源的串联和并联 电压源与支路的串 并联等效 理想电流源的串联和并联 电流源与支路的串 并联等效 四 实际电源的两种模型及其等效变换 之前的K
  • 如何把访问局域网时保存的密码给清除?

    问 一次在局域网中访问其他电脑时 弹出窗口需要我输入用户名和密码 结果我选择了 保存密码 项 以后每次访问那台电脑时都不需要输入密码了 这台电脑马上将会让给其他人用了 我现在想清除先前保存的那个密码 不知如何操作 答 要想清除保存的密码可以
  • 基于matlab的车牌定位算法设计与实现,原创】基于matlab的汽车牌照识别系统设计与实现...

    原创 基于matlab的汽车牌照识别系统设计与实现 由会员分享 可在线阅读 更多相关 原创 基于matlab的汽车牌照识别系统设计与实现 14页珍藏版 请在人人文库网上搜索 1 基于matlab的汽车牌照识别系统设计与实现摘要 本次作业的任
  • keil如何下载STM32芯片F1/F4固件库

    1 用keil打开STM32F407的程序 结果提示下面的问题 就是没有安装固件库 2 然后去keil官网下载对应的固件库 官网地址 https www keil com 然后选中对应的芯片类型 譬如我这个就是STM32F407IGTx 安
  • HttpServletResponse response实现文件上传、下载

    作者简介 哪吒 CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 专注Java硬核干货分享 立志做到Java赛道全网Top N 本文收录于 Java基础教程系列 目前已经700 订阅 CSDN最
  • 2023年三季度中国经济观察

    导读 2023年上半年中国经济同比增长5 5 其中二季度同比增速为6 3 受去年同期低基数影响 较一季度提高1 8个百分点 从环比来看 二季度GDP环比增速为 0 8 较一季度的2 2 明显回落 国内经济修复动能有所放缓 总体来看 随着中国
  • 在vscode中使用Live Server 真机调试

    第一步 安装Live Server 1 在vscode 中搜索 Live Server并安装 2 安装完成之后 鼠标右键单击 html文件 gt 点击 Open with Live Server 3 然后会弹出默认浏览器 并显示页面 可以看
  • vscode如何去除终端启动时显示的多余信息(win11)

    参考链接 https zhuanlan zhihu com p 109788300 在win10中我按照上述链接中的方法操作 成功移除了终端启动时显示的多余信息 现在电脑更新到win11后又出现了如下所示的广告信息 安装最新的 PowerS
  • 2023年最火副业;python爬虫兼职,一周赚7800元,一天只要两小时 !

    前言 大家好 现在学习python的人越来越多了 跟大家简单如何利用python搞副业赚钱的 想要利用 Python 赚钱的方式还是比较多的 其中接单和投稿算是两种比较简单的方式了 如果你是业余学python爬虫 可以去淘宝上加了找了几个店
  • Android内存泄露

    Android内存泄露概述 了解Android内存泄露之前 需要对java的内存管理和GC机制有个简单的了解 Android内存泄露的根本原因是引用者的生命周期大于被引用者 举个例子 有对象A B B有A的强引用 GC要回收A时发现B还未销
  • 前端面试题目总结

    HTML HTML5新特性有哪些 安全 之前一面csrf防范答得不是很好 又让重新回答 前端安全以及对应的解决方法 16 前端安全 17 http only了解吗 我说没用过的时候 面试官还结合XSS攻击给我很耐心的讲解了这个方法的作用 1
  • C++ STL之unique_lock与lock_guard

    std lock guard lock guard C Reference 用于托管一个mutex 变量 负责对齐加锁解锁 A lock guard is an object that manages a mutex object by k
  • 深聊性能测试,从入门到放弃之:Locust性能自动化(五)API汇总整理(下)

    API汇总整理 下 1 HttpSession class 1 1 定义 1 2 类及用法 2 Response class 2 1 定义 2 2 类及应用 3 ResponseContextManager class 3 1 定义 3 2
  • C0206 [2011普及组-A]数字反转(C语言写)

    题目描述 给定一个整数 请将该数各个位上数字反转得到一个新数 新数也应满足整数的常见形式 即除非给定的原数为零 否则反转后得到的新数的最高位数字不应为零 参见样例2 输入描述 共一行 一个整数N 输出描述 共一行 一个整数 表示反转后的新数
  • @Cacheable缓存注解(以Redis作为缓存)

    使用时需要先导入依赖包
  • 2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决

    一 背景介绍 汽车制造厂主要由焊装车间 涂装车间 总装车间构成 每个车间有不同的生产偏好 如 焊装车间由于车身夹具的限制偏向最小车型及配置切换生产 涂装车间由于喷漆 固定每5辆车清洗喷头 颜色切换也需清洗喷头 限制偏向颜色以5的倍数切换生产