柔性车间作业调度

news2024/11/16 10:47:58

1柔性车间作业调度

  • n n n个工件 { J 1 , J 2 , ⋯   , J n } \{J_1,J_2,\cdots,J_n\} {J1,J2,,Jn}要在 m m m台机器 { M 1 , M 2 , ⋯   , M m } \{M_1,M_2,\cdots,M_m\} {M1,M2,,Mm}上加工。每个工件包含一道或多道工序,工序顺序是预先确定的,每道工序可以在多台不同加工机器上进行加工,工序的加工时间随加工机器的不同而不同。调度目标是为每道工序选择最合适的机器、确定每台机器上各个工序的最佳加工顺序以及开工时间,使整个系统 的某些性能指标达到最优。因此柔性作业车间调度问题包含两个子问题确定各工件的加工机器机器选择子问 和确定各个机器上的加工先后顺序工序排序子问题。

  • 柔性作业车间调度问题根据资源选择条件的不同,柔性程度可以分为完全柔性作业车间调度问题(T-FJSP,工序可选择的加工机器为所有候选机器)和部分柔性作业车间调度问题(P-FJSP,工序可选择的加工机器为部分候选机器)。具体示例如下:

图1.完全柔性作业车间问题实例

图2.部分柔性作业车间调度问题实例

1.1问题背景

现有多个job分属不同产品,每个job对应多个工序,工序可在多台机器上加工,同一个job的工序有先后之分,不同job的工序之间无顺序要求。此外,在任意一台设备上,当连续出现前后多个工序所属job的产品型号相同,且无间隔时间时,这些工序可合并生产,加工时间降低25%。

1.2模型假设

  1. 同一台机器同一时刻只能加工一个工件
  2. 同一工件的同一道工序在同一时刻只能被一台机器加工
  3. 每个工件的每道工序一旦开始加工不能中断
  4. 不同工件之间具有相同的优先级
  5. 不同工件的工序之间没有先后约束
  6. 同一工件的工序之间有先后约束
  7. 所有工件在零时刻都可以被加工。

1.3符号释义

索引符号含义
i , h i,h i,h工件索引 ( 1 , … , n ) (1,…,n) (1,,n)
j , g j,g j,g工序索引 ( 1 , . . . , J i ) (1,...,J_i) (1,...,Ji)
k k k机器索引 ( 1 , … , m ) (1,…,m) (1,,m)
l , z l,z l,z工序在机器 k k k上的加工顺序 ( 1 , … , d k ) (1,…,d_k) (1,,dk)

参数符号含义
n n n总的工件数
m m m总的机器数
J i J_i Ji工件 i i i的工序数
a k i j a_{kij} akij0-1变量,如果工序 O i j O_{ij} Oij能够在机器 k k k上加工则 a k i j = 1 a_{kij}=1 akij=1,否则 a k i j = 0 a_{kij}=0 akij=0
p k i j p_{kij} pkij机器 k k k加工工序 O i j O_{ij} Oij的加工时间
M M M一个足够大的正数
O i j O_{ij} Oij表示工件 i i i的第 j j j道工序
p t i pt_i pti工件 i i i所属产品类型

变量符号含义
C m a x C_{max} Cmax最大完工时间
c i j c_{ij} cij工序 O i j O_{ij} Oij的完工时间
s i j k s_{ijk} sijk工序 O i j O_{ij} Oij在机器 k k k上的开始加工时间
c i j k c_{ijk} cijk工序 O i j O_{ij} Oij在机器 k k k上的加工完成时间
c i c_i ci工件 i i i的加工完成时间
x i j k l x_{ijkl} xijkl0-1变量,如果 O i , j O_{i,j} Oi,j为机器 k k k加工的第 l l l个工序则为1,否则为0
v i j k v_{ijk} vijk0-1变量,如果 O i , j O_{i,j} Oi,j在机器 k k k上加工
t i j t_{ij} tij O i j O_{ij} Oij的开始加工时间
T m s k l Tms_{kl} Tmskl机器 k k k加工第 l l l道工序的开始加工时间
T m e k l Tme_{kl} Tmekl机器 k k k加工第 l l l道工序的加工完成时间
p s i , j ps_{i,j} psi,j O i , j O_{i,j} Oi,j选择在机器 k k k上加工的理论加工时间
a p s i , j aps_{i,j} apsi,j O j , h O_{j,h} Oj,h的实际加工时间
p t i pt_i pti工件 i i i所属产品类型

1.4数学模型

目标函数:最小化最大完工时间
min C m a x \text{min} \quad C_{max} minCmax
C m a x ≥ t i , J i + a p s i , J i ∀ i C_{max} \ge t_{i,J_i} + aps_{i,J_i} \quad \forall i Cmaxti,Ji+apsi,Jii
工序 O i j O_{ij} Oij的加工时间不仅取决于工序所选机器,还取决于其前序工序所属产品类型和加工完成时间
∑ k p k i j ⋅ v i j k = p s i j ∀ i , j \sum_{k} p_{kij} \cdot v_{ijk} = ps_{ij} \quad \forall i,j kpkijvijk=psiji,j

a p s i j = { 0.75 p s i j p t i = p t h   a n d   x h g k l = 1   a n d   x i j k l + 1 = 1   a n d   T m e k l ≥ ∑ k c i , j − 1 , k p s i j e l s e aps_{ij}= \begin{cases} 0.75 ps_{ij}& pt_i = pt_h \ and \ x_{hgkl} = 1 \ and \ x_{ijkl+1}=1 \ and \ Tme_{kl} \ge \sum_k c_{i,j-1,k}\\ ps_{ij}& else \end{cases} apsij={0.75psijpsijpti=pth and xhgkl=1 and xijkl+1=1 and Tmeklkci,j1,kelse

如果机器 k k k的当前最后一个工序的加工完成时间大于等于待加工工件工序的最早开始加工时间,并且当前加工工序与等待工序工件所属产品相同,则等待工序的加工时间缩短为75%。

同一工件的工序之间有先后关系
t i j + a p s i j ≤ t i , j + 1 ∀ i , ∀ j = 1 , . . . , J i − 1 t_{ij} + aps_{ij} \le t_{i,j+1} \quad \forall i,\forall j=1,...,J_i - 1 tij+apsijti,j+1i,j=1,...,Ji1
当前工序加工结束才能进行下一道工序加工
T m k l + a p s i j ⋅ x i j k l ≤ T m s k , l + 1 ∀ i , j , k , ∀ l = 1 , . . . , d k − 1 Tm_{kl} + aps_{ij} \cdot x_{ijkl} \le Tms_{k,l+1} \quad \forall i,j,k,\forall l=1,...,d_k -1 Tmkl+apsijxijklTmsk,l+1i,j,k,l=1,...,dk1

T m s k l ≤ t i j + ( 1 − x i j k l ) ⋅ M ∀ i , j , k , l Tms_{kl} \le t_{ij} + (1-x_{ijkl}) \cdot M \quad \forall i,j,k,l Tmskltij+(1xijkl)Mi,j,k,l

T m s k l + ( 1 − x i j k l ) ⋅ M ≥ t i j ∀ i , j , k , l Tms_{kl} + (1-x_{ijkl})\cdot M \ge t_{ij} \quad \forall i,j,k,l Tmskl+(1xijkl)Mtiji,j,k,l

工序与机器之间的选择关系
v i j k ≤ a k i j ∀ i , j , k v_{ijk} \le a_{kij} \quad \forall i,j,k vijkakiji,j,k
每个工件的工序都需要加工
∑ i ∑ j x i j k l = 1 ∀ k , l \sum_{i} \sum_{j} x_{ijkl} = 1 \quad \forall k,l ijxijkl=1k,l

∑ k v i j k = 1 ∀ i , j \sum_{k} v_{ijk} = 1 \quad \forall i,j kvijk=1i,j

∑ l x i j k l = v i j k ∀ i , j , k \sum_{l} x_{ijkl} = v_{ijk} \quad \forall i,j,k lxijkl=vijki,j,k

变量自身约束
t i j ≥ 0 ∀ i , j t_{ij} \ge 0 \quad \forall i,j tij0i,j

p s i j ≥ 0 ∀ i , j ps_{ij} \ge 0 \quad \forall i,j psij0i,j

T m s k l ≥ 0 ∀ k , l Tms_{kl} \ge 0 \quad \forall k,l Tmskl0k,l

T m e k l ≥ T m s k l ∀ k , l Tme_{kl} \ge Tms_{kl} \quad \forall k,l TmeklTmsklk,l

x i j k l ∈ { 0 , 1 } ∀ i , j , k , l x_{ijkl} \in \{0,1\} \quad \forall i,j,k,l xijkl{0,1}i,j,k,l

v i j k ∈ { 0 , 1 } ∀ i , j , k v_{ijk} \in \{0,1\} \quad \forall i,j,k vijk{0,1}i,j,k

1.5调度结果

作业车间调度结果示例
具体代码微信公众号【数学模型与算法】回复【FJSP】

[1]张国辉. 柔性作业车间调度方法研究[D].华中科技大学,2009.
[2] Demir Y , Isleyen S K . Evaluation of mathematical models for flexible job-shop scheduling problems[J]. Applied Mathematical Modelling, 2013, 37(3):977-988.

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

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

相关文章

【Java|多线程与高并发】Thread 常见的方法总结

文章目录 1. 前言2. 方法getId()3. 方法getName()4. 方法getState()5. 方法getPriority(int newPriority)6. 方法isDaemon()和setDaemon()7. 方法isAlive()8. 方法isInterrupted()9. 方法currentThread()10. 方法sleep()11. 方法join()12. 总结 1. 前言 本文主要介绍Thread类常…

第11章_数据库的设计规范

第11章_数据库的设计规范 1. 为什么需要数据库设计 我们在设计数据表的时候,要考虑很多问题。比如: 用户都需要什么数据?需要在数据表中保存哪些数据?如何保证数据表中数据的正确性,当插入、删除、更新的时候该进行怎样的约束检查?。如何降低数据表…

javascript基础十八:说说你对JavaScript中事件循环的理解​

一、是什么 JavaScript 在设计之初便是单线程,即指程序运行时,只有一个线程存在,同一时间只能做一件事 为什么要这么设计,跟JavaScript的应用场景有关 JavaScript 初期作为一门浏览器脚本语言,通常用于操作 DOM &#…

【C++】C++11新特性的讲解

新特性讲解第一篇~ 文章目录 前言一、较为重要的新特性 1.统一的初始化列表2.decltype关键字3.右值引用移动语义总结 前言 C11 简介 : 在 2003 年 C 标准委员会曾经提交了一份技术勘误表 ( 简称 TC1) ,使得 C03 这个名字已经取代了 C98 称为 C11 之前的…

【游戏编程扯淡精粹】工作第三年总结

工作第三年总结 文章目录 工作第三年总结#1 做了什么自研路线Lua 脚本系统ToolX #2 职业发展如何做事技术中台化内卷的职业市场个人成长 #3 心态建设Owner vs 打工人 今年仍然是个人成长视角更多一些,额外新学到的重点是,借助团队力量 先介绍两个词&…

通过自由度比较迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由5张二值化的图片组成,让A中有7个1,B中全是0,让A的5行1的数量为1,1,1,2,2;让A的3列1的数量…

chatgpt赋能python:Python列表从后往前删除的方法及注意事项

Python列表从后往前删除的方法及注意事项 Python是一种功能强大而易于使用的编程语言。在Python中,列表是重要的数据类型之一,它可以存储任意类型的数据,例如整数、字符串、浮点数和对象等,而且列表数据可以动态添加或删除。在编…

numpy模块

目录 ❤ numpy简介 ❤ 为什么用numpy ❤ 创建numpy数组 ❤ numpy数组的常用属性 ❤ 获取numpy数组的行列数 ❤ 切割numpy数组 ❤ numpy数组元素替换 ❤ numpy数组的合并 ❤ 通过函数创建numpy数组 array arange linspace/logspace zeros/ones/eye/empty …

多功能电子听诊器(CMS-VESD)产品使用说明

Copyright reserved 子曰:桃李不言,下自成蹊。 Copyright reserved Ⅰ . 产品描述 : C M S − V E S D Ⅰ. 产品描述:^{CMS-VESD} Ⅰ.产品描述:CMS−VESD Ⅰ . 1 主要特点 : 如有疑问可留言沟通交流 Ⅰ.1 主要特点:^{如有疑问可留言沟通交流} Ⅰ.1主要特…

[python bezier贝塞尔曲线] 数值解法、德卡斯特里奥解法解法以及bezier库的使用demo

修改自这个老哥的,非常的nice,此处仅作为学习记录。 matplotlib3.7.0 可行 Note: 数值解法是真的快 先上图 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np import math import timeclass Bezier:def __init__(se…

使用HTML5开发Kinect体感游戏

一、简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款《火影忍者手游》的体感游戏,主要模拟手游章节《九尾袭来 》,用户化身四代,与九尾进行对决,吸引了大量玩家参与。 表面上看…

Makerbase SimpleFOC ESP32 例程5 双电机闭环位置测试

Makerbase SimpleFOC ESP32 例程5 双电机闭环位置测试 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12YT2804电机2312V电源适配器14USB 线156pin杜邦线2 注意:YT2804是改装的云台无刷电机,带有AS5600编码器,可实现360连续运转。…

香蕉派(Banana Pi) BPi-P2 Zero开源硬件物联网开发板评测

我们从制造商处收到的样品 BPi-P2 Zero 和 BPi-P2 Maker SBC 用于本次审查的体验非常好。这些都是基于多年H3/H2 SoC使用经验的高质量硬件实现。 优点 优良的价格和适用性稳定且经过验证的架构低散热供电电源WiFi / 蓝牙 kod 零模型完美平衡的 Maker 模型 Banana Pi BPi-P2 的…

设备树与pinctrl

设备树与pinctrl 原理:芯片内部有个内存控制器访问芯片的各个控制器单元(如IIC、USB等), 阅读手册设置其相应功能即可。 设备树 是一种描述硬件的数据结构,由专门文件格式与语法结构。 pinctrl Pinctrl:Pin Contr…

vue-router(element侧导栏,子组件内容切换,不传参)使用的详细步骤

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

如何申请免费ChatGPT 2500刀初创金

近日OpenAI 推出了OpenAI for Startups项目,那么什么是Startups项目呢: 它是由全球知名的人工智能研究公司 OpenAI 推出的一个开放式的创业计划,旨在为初创公司提供一种新的激励机制和技术推广方式。 也就是说我们可以用自己账号申请&#x…

【软件工程题库】第四章 概要设计

🕺作者: 迷茫的启明星 学习路线C语言从0到1C初阶数据结构从0到1 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

淬体归元,运营商资源域元数据管理

资源元数据是通信行业资源管理业务开展的基础性支撑要素,它定义了资源业务领域相关概念、关系和规则,即各种设施、缆线、设备、链路等网络资源的规格、属性、字典及相关存储模型等信息。高质量的元数据是提升业务效率、加强管理与分析能力的必要条件&…

多线程安全的案例展示与解决方案

一、概念 1. 什么是线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果&#xff0c…

为什么HTTPS是安全的?

在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 1. HTTP 协议 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC…