车间调度建模系列4|扩展析取图之工序相关性
获取更多资讯,赶快关注公众号(名称:智能制造与智能调度,公众号:deeprlscheduler)吧!
三维析取图模型建模系列目录
- 复杂车间调度问题三维析取图建模系列预告
- 车间调度建模系列1|复杂车间调度问题特点
- 车间调度建模系列2|复杂车间调度问题描述
- 车间调度建模系列3|复杂车间调度问题解的表示
- 车间调度建模系列4|扩展析取图之工序相关性)(本文)
完整的符号说明详见车间调度建模系列2|复杂车间调度问题描述。
经典的二维析取图模型仅表达了工艺路线决定的顺序约束,无法表达时间约束(如最早开始、最晚结束)、资源约束(如机床偏好和调整)、流转方式(如平顺)、交互约束(如锁定)等其他类型的约束,因此在传统模型的基础上对其进行扩展得到了赋时三维析取图模型,并使用集合G=(N,N′,C,E,F)G=\left(N, N^{\prime}, C, E, F\right)G=(N,N′,C,E,F)来表达,其中NNN表示所有实节点OihmO_{ihm}Oihm集合,N′N^{\prime}N′为所有虚节点Oi′h′m′O_{i^{\prime} h^{\prime} m^{\prime}}Oi′h′m′的集合,Oi′h′m′O_{i^{\prime} h^{\prime} m^{\prime}}Oi′h′m′表示工件i′i^{\prime}i′的第h′h^{\prime}h′道工序不存在或不能在机床上m′m^{\prime}m′加工;CCC为有向实线(连接弧)集合,表示同一零件下各工序的工艺顺序;EEE为无向虚线(析取弧)集合,连接可在同一机床上加工的两道工序;FFF为双点划线(可选弧)集合,表示只能从连接的节点中选择一个,即同一零件的同一工序只能在一台机床上加工。新的模型通过增加虚节点集合N′N^{\prime}N′和可选弧集合FFF来表达工序的多台可选机床约束,此外,还增加了工序相关性约束以丰富连接弧集合CCC,并通过考虑工序间物流周转时间、顺序不依赖准备时间、机床选择偏好和资源日历得到弧权重的五元组表达。
工序相关性
工序相关性定义
经典的析取图模型仅仅表达了工艺路线决定的顺序约束,却无法表达在许多复杂制造企业中广泛存在的另外2类约束。一类为延迟约束,即工件的前一道工序加工完成后,需要延迟一定时间其当道才能开始加工。例如,当某一热处理工序完成后,其下一道工序需要先进行一段时间的冷却处理后才能开始加工;另一类为工件之间的工艺约束。这类约束在工件之间存在装配关系时最为常见,在人机交互调度中,当调度员设置工序不允许影响时,也会建立这种约束关系。这两类工艺约束在实际调度中是存在且不能忽略的,为此给出工序相关性定义如下:
定义1:工序相关性。除常规的工艺路线顺序约束外,不同工序的开始时间及完成时间之间存在的某种顺序约束及延时约束,称为工序相关性。
定义2:相关前工序和相关后工序。若两道工序之间存在工序相关性,则称前面的工序为相关前置工序,后面的工序为相关后置工序。
工序相关性可分为4种类型:开始—开始相关、开始—结束相关、结束—开始相关和结束—结束相关。具体意义为:若两道工序存在“开始—开始”相关,则表示相关前工序开始加工一定时间后,相关后工序才能开始加工;若存在“结束—开始”相关,则表示相关前工序结束加工一定时间后,相关后工序才能开始加工,其余类型的意义类推。
工序相关性数学描述
若某两道工序OihO_{ih}Oih,Ojl(h≠l)O_{jl}(h \neq l)Ojl(h=l)之间存在相关性,则用一个二元组Rjlih=(tjlih,gjlih)R_{j l}^{i h}=\left(t_{j l}^{i h}, g_{j l}^{i h}\right)Rjlih=(tjlih,gjlih)表示,其中tjliht_{j l}^{i h}tjlih为相关性类型,gjlihg_{j l}^{i h}gjlih为相关时间。
开始—开始、开始—结束、结束—开始和结束—结束4种相关性类型分别表示为SS,SF,FS和FF。将所有类型表示为一个集合,记为:T={SS,SF,FS,FF}T=\{S S, S F, F S, F F\}T={SS,SF,FS,FF}。因此有:tjlih∈Tt_{j l}^{i h} \in Ttjlih∈T。此外,不失一般性,令相关时间gjlih≥0g_{j l}^{i h} \ge 0gjlih≥0。
对Rjlih=(SS,gjlih)R_{j l}^{i h}=\left(S S, g_{j l}^{i h}\right)Rjlih=(SS,gjlih),有
Sihm≥Sjln+gjlih(2.7)S_{i h m} \geq S_{j l n}+g_{j l}^{i h}\tag{2.7} Sihm≥Sjln+gjlih(2.7)
对Rjlih=(SF,gjlih)R_{j l}^{i h}=\left(S F, g_{j l}^{i h}\right)Rjlih=(SF,gjlih),有
Cihm≥Sjln+gjlih(2.8)C_{i h m} \geq S_{j l n}+g_{j l}^{i h}\tag{2.8} Cihm≥Sjln+gjlih(2.8)
对Rjlih=(FS,gjlih)R_{j l}^{i h}=\left(F S, g_{j l}^{i h}\right)Rjlih=(FS,gjlih),有
Silm≥Cjln+gjlih(2.9)S_{i l m} \geq C_{j l n}+g_{j l}^{i h}\tag{2.9} Silm≥Cjln+gjlih(2.9)
对Rjlih=(FF,gjlih)R_{j l}^{i h}=\left(F F, g_{j l}^{i h}\right)Rjlih=(FF,gjlih),有
Ciln≥Cjln+gjlih(2.10)C_{i l n} \geq C_{j l n}+g_{j l}^{i h}\tag{2.10} Ciln≥Cjln+gjlih(2.10)
如图8所示,在工艺路线顺序约束中,相邻两道工序之间的连接弧上的权重表示的是前道工序的加工时间,其可以理解为前道工序开始一定时间(该工序加工时间)后后道工序才能开始,所以按照工序相关性的定义,在工艺路线顺序约束中相邻两道工序的关系类似于工序相关性Rjlih=(SS,gjlih)R_{j l}^{i h}=\left(S S, g_{j l}^{i h}\right)Rjlih=(SS,gjlih),因此为在析取图中能够全面表达不同相关性类型的同时又能简化模型,需要将其他三种类型转换成“开始—开始”,其转换推导如下:
对于“开始—结束”相关性 ,由式(2.8)可得
Cilm≥Sjln+gjlih⇒Silm+Pihm≥Sjln+gjlih⇒Silm≥Sjln+(gjlih−Pilm)(2.11)C_{i l m} \geq S_{j l n}+g_{j l}^{i h} \Rightarrow S_{i l m}+P_{i h m} \geq S_{j l n}+g_{j l}^{i h} \Rightarrow S_{i l m} \geq S_{j l n}+\left(g_{j l}^{i h}-P_{i l m}\right)\tag{2.11} Cilm≥Sjln+gjlih⇒Silm+Pihm≥Sjln+gjlih⇒Silm≥Sjln+(gjlih−Pilm)(2.11)
因此“开始—结束”相关性向“开始—开始”的转换可表示为:
Rjlih=(SF,gjlih)⇔Rjlih=(SS,gjlih−Pihm)(2.12)R_{j l}^{i h}=\left(S F, g_{j l}^{i h}\right) \Leftrightarrow R_{j l}^{i h}=\left(S S, g_{j l}^{i h}-P_{i h m}\right)\tag{2.12} Rjlih=(SF,gjlih)⇔Rjlih=(SS,gjlih−Pihm)(2.12)
同理,可得其他两种类型的相关性向“开始—开始”类型转换的等价式为:
Rjlih=(FS,gjlih)⇔Rjlih=(SS,gjlih+Pjln)(2.13)R_{j l}^{i h}=\left(F S, g_{j l}^{i h}\right) \Leftrightarrow R_{j l}^{i h}=\left(S S, g_{j l}^{i h}+P_{j l n}\right)\tag{2.13} Rjlih=(FS,gjlih)⇔Rjlih=(SS,gjlih+Pjln)(2.13)
Rjlih=(FF,gjlih)⇔Rjlih=(SS,gjlih+Pjln−Pihm)(2.14)R_{j l}^{i h}=\left(F F, g_{j l}^{i h}\right) \Leftrightarrow R_{j l}^{i h}=\left(S S, g_{j l}^{i h}+P_{j l n}-P_{i h m}\right)\tag{2.14} Rjlih=(FF,gjlih)⇔Rjlih=(SS,gjlih+Pjln−Pihm)(2.14)
工序相关性约束
除了工艺顺序和机床能力约束外,由于引入了工序相关性约束,工序的最早开始时间和最早结束时间将受制于相关前置工序。设PredORihPredOR_{ih}PredORih为工件iii的第hhh道工序的相关前置工序集合,则
当相关性类型为“开始—开始”即tjlih=SSt_{j l}^{i h}=S Stjlih=SS时,最早开始时间ESihm=max{Ci(h−1)r,Ci′h′m,max{Sjln+gjlih}}E S_{i h m}=\max \left\{C_{i(h-1) r}, C_{i^{\prime} h^{\prime} m}, \max \left\{S_{j l n}+g_{j l}^{i h}\right\}\right\}ESihm=max{Ci(h−1)r,Ci′h′m,max{Sjln+gjlih}},其中工序Ojl∈PredORihO_{j l} \in \operatorname{Pred} O R_{i h}Ojl∈PredORih;
当相关性类型为“结束—开始”即tjlih=FSt_{j l}^{i h}=F Stjlih=FS时,最早开始时间ESihm=max{Ci(h−1)r,Ci′h′m,max{Cjln+gjlih}}E S_{i h m}=\max \left\{C_{i(h-1) r}, C_{i^{\prime} h^{\prime} m}, \max \left\{C_{j l n}+g_{j l}^{i h}\right\}\right\}ESihm=max{Ci(h−1)r,Ci′h′m,max{Cjln+gjlih}},其中工序Ojl∈PredORihO_{j l} \in \operatorname{Pred} O R_{i h}Ojl∈PredORih;
当相关性类型为“开始—结束”即tjlih=SFt_{j l}^{i h}=S Ftjlih=SF时,最早结束时间ECihm=max{Sihm+Pihm,max{Sjln+gjlih}}E C_{i h m}=\max \left\{S_{i h m}+P_{i h m}, \max \left\{S_{j l n}+g_{j l}^{i h}\right\}\right\}ECihm=max{Sihm+Pihm,max{Sjln+gjlih}},其中工序Ojl∈PredORihO_{j l} \in \operatorname{Pred} O R_{i h}Ojl∈PredORih;
当相关性类型为“结束—结束”即tjlih=FFt_{j l}^{i h}=F Ftjlih=FF时,最早结束时间ECihm=max{Sihm+Pihm,max{Cjln+gjlih}}E C_{i h m}=\max \left\{S_{i h m}+P_{i h m}, \max \left\{C_{j l n}+g_{j l}^{i h}\right\}\right\}ECihm=max{Sihm+Pihm,max{Cjln+gjlih}},其中工序Ojl∈PredORihO_{j l} \in \operatorname{Pred} O R_{i h}Ojl∈PredORih。
在经典析取图中增加虚线箭头表示相关弧,如下图所示。
车间调度建模系列4|扩展析取图之工序相关性相关推荐
- 车间调度建模系列9|复杂车间调度问题建模实例
获取更多资讯,赶快关注公众号(名称:智能制造与智能调度,公众号:deeprlscheduler)吧! 三维析取图模型建模系列目录 复杂车间调度问题三维析取图建模系列预告 车间调度建模系列1|复杂车间调 ...
- 多目标柔性车间调度丨NSGA-II:以算例MK01为例
车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...
- 多目标柔性车间调度丨mogv算法:以算例MK01为例
车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...
- 30篇强化学习求解车间调度文章(中文)大全
国内使用强化学习求解车间调度问题的研究起步较晚,基本是在在2000年以后,而深度强化学习求解车间调度问题更是在2019.2020年左右开始流行.今天在上一篇文章的基础上((吐血整理)118篇强化学习求 ...
- 【车间调度】基于灰狼优化算法求解柔性作业车间问题matlab源码
一.简介 Grey Wolf Optimizer是Seyedali Mirjalili受大灰狼捕食策略的启发,于2014年提出的一种元启发式算法,主要模拟了搜索猎物.包围猎物和攻击猎物,源代码关注公众 ...
- 【车间调度】灰狼优化算法求解柔性作业车间问题【含Matlab源码 661期】
⛄一.车间调度简介 1 车间调度定义 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源.提高企业经济效益的目的.车间调度问题从数学上可以描述为有n个待加工的零件要在m台 ...
- 【车间调度】免疫遗传算法求解多目标生产调度问题【含Matlab源码 710期】
⛄一.生产调度简介 1 车间调度定义 车间调度是指给定一个加工任务,根据已有的生产条件,对有限的系统资源进行分配,对产品的加工步骤进行安排,使得某项性能指标最优.在实际生产过程中,所涉及的约束条件主要 ...
- 车间调度-灰狼算法的应用:以算例MK01为例
车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...
- 车间调度丨粒子群算法初探:以算例MK01为例
车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...
- type_traits之 析取 合取 否定
目录 前言 析取,disjunction 合取,conjunction 否定,negation 前言 C++17完善了< type_traits>,增加了3个有趣的traits.分别为析取 ...
最新文章
- android 增加一条广播,Android中BroadcastReceiver广播使用及注意点
- python 漂亮的excel_python 自定义漂亮的 excel 结果测试报告
- 【行为型模式】《大话设计模式》——读后感 (16)加薪非要老板批?——职责链模式...
- cron表达式详解 Elastic-Job名次解释
- 问题 C: PK没有女朋友(判断是否存在1个三元环,dfs)
- android开发实例-socket(一)
- 计算机类和数学与应用数学哪个好,数学与应用数学专业怎么样 好不好找工作...
- 详解云安全攻防模型,这些攻击战略和战术越早知道越好!
- zeal刷新不出来_热血传奇:计算怪物刷新时间,升级速度立马不同,老玩家笑出了声。...
- ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
- gis利器之Gdal(二)shp数据读取
- ONVIF协议基础概念
- Redis常用命令总结
- IPython安装使用详解
- CorelDRAW 里面如何将文字调整成半透明的颜色
- BAT大牛亲授基于ElasticSearch的搜房网实战(第三章环境搭建)
- 灭绝师太(女博士)、李莫愁(女硕士)、黄蓉(本科生)、小龙女(专科生)可爱
- 关于react、vue的相关问题
- 金九银十,测试思维面试题最新整理
- Java中beimage_GitHub - beconf/ImageBlurring: Android 中通过 Java 与 JNI 分别进行图片模糊;并且进行比较其运算速度。...
热门文章
- Visual Studio 远程调试设置
- Centos7---1708 Linux上从零开始安装mysql
- 服务器支持raid2,服务器做RAID,如何选择RAID?
- java登录验证用重定向_使用filter进行登录验证,并解决多次重定向问题
- Ubuntu下安装MeshLab教程
- Linux 堆分析,堆排序的分析及实现
- core部署iis的 调试net_ASP.NET Core环境变量和启动设置的配置教程
- linux 解压 7z 乱码,7z-linux下解决中文名乱码的终极办法
- DFS-分布式文件系统对比
- jmeter安装插件的方法