学习日志35
拆卸线问题(Disassembly Line Balancing Problem, DLBP)是生产工程和运筹学中的一个特殊问题,它涉及到将废弃产品有效地拆解成可回收利用的部件和材料。随着环保意识的增强和资源回收技术的发展,DLBP逐渐成为研究的热点。这类问题的核心目标是在确保拆解过程符合环境和安全要求的同时,最大化资源回收的价值,同时考虑拆解成本和效率。
拆卸线问题(DLBP)
问题定义:
DLBP通常涉及将一系列复杂的废弃产品在拆解线上拆解成多个部件,这些部件可以进一步回收或再利用。每个产品可能包含多个部件,拆解每个部件可能需要不同的技能和时间。目标是确定每个工作站上拆解任务的分配方式,以优化某些性能指标,如最小化拆解时间和成本,或最大化资源回收的利润。
关键特征:
顺序依赖性:某些拆解任务可能需要在其他任务完成后才能开始,形成了任务间的顺序依赖关系。
技能要求:不同的拆解任务可能需要不同的技能,工人必须具备相应的技能才能执行特定的任务。
多目标优化:除了成本和时间,DLBP还可能考虑环境影响、工人安全和健康等多目标。
解决方案方法:
传统的解决方案包括启发式算法、元启发式算法和混合优化方法。这些方法通常试图找到一个可行的解决方案,以满足所有约束条件,并优化目标函数。
混合拆卸线问题(Hybrid Disassembly Line Balancing Problem, HDLBP)
混合拆卸线问题是DLBP的一个扩展,它结合了不同类型的拆解线,如线性拆解线和U形拆解线,以适应更广泛的产品种类和拆解需求。
问题定义:
HDLBP考虑了线性拆解线和U形拆解线的特点,将多种产品同时在两条线上进行拆解。这种设置允许更灵活地处理不同复杂度的拆解任务,并可以更有效地利用工人的多技能。
关键特征:
线型组合:混合线结合了线性和U形线的特点,可以处理更复杂的拆解任务。
多技能工人:工人可以在不同的工作站执行不同的任务,每个任务可能需要不同的技能。
动态任务分配:根据产品的特性和工人的技能,动态地在不同的工作站之间分配拆解任务。
解决方案方法:
HDLBP的解决方案通常需要更复杂的算法,因为问题本身更加复杂。深度强化学习(Deep Reinforcement Learning, DRL)是一种新兴的方法,它可以通过与环境的交互学习最优策略。在论文中提到的SAC算法就是一种DRL方法,它通过最大熵框架来提高策略的探索能力,从而在复杂的拆解环境中找到最优解。
实际应用:
在实际应用中,HDLBP可以应用于各种场景,包括电子废物回收、汽车拆解和大型机械设备的回收。这些场景中,混合拆卸线可以提供灵活性和效率,以适应不同产品和市场的变化需求。
总的来说,DLBP和HDLBP是生产工程中的重要问题,它们不仅对企业的经济性有重要影响,而且对环境保护和资源的可持续利用也具有重要意义。随着技术的进步和环保法规的加强,这些问题的研究和实践将变得越来越重要。
拆卸线问题(DLBP)的例子
假设有一个电子产品回收工厂,他们需要拆解废旧的台式电脑来回收有价值的部件,如CPU、内存条、硬盘和显示器。工厂有一条线性拆解线,包含三个工作站。
产品和任务:
台式电脑(产品1)需要拆解为CPU(任务1)、内存条(任务2)和硬盘(任务3)。
每个任务需要不同的工具和可能不同的技能:任务1(拆解CPU):需要螺丝刀。任务2(拆解内存条):需要螺丝刀和撬棍。任务3(拆解硬盘):需要螺丝刀和特定拆解硬盘的技能。
约束条件:
任务1必须在任务2和任务3之前完成,因为它们都是在CPU被移除后才能进行的。
工作站1只能处理任务1(拆解CPU),工作站2可以处理任务2或任务3,但需要不同的工具。
工作站3是质量检验站,不进行拆解任务。
目标:
最小化拆解一台台式电脑所需的总时间,同时确保所有部件都被正确地拆解和回收。
在这个例子中,DLBP的目标是确定每个工作站的任务分配,以优化拆解流程。可能的解决方案需要考虑任务之间的依赖关系、工作站的能力以及工人的技能。
混合拆卸线问题(HDLBP)的例子
假设同一个电子产品回收工厂现在引入了一条U形拆解线,以提高拆解效率。工厂需要处理两种产品:台式电脑和笔记本电脑。
产品和任务:
台式电脑(产品1)需要拆解为CPU(任务1)、内存条(任务2)和硬盘(任务3)。
笔记本电脑(产品2)需要拆解为CPU(任务4)、内存条(任务5)和屏幕(任务6)。
混合拆解线配置:
线性拆解线包含工作站A和工作站B,U形拆解线包含工作站C和工作站D。
约束条件:
任务1和任务4都需要特定的技能来处理敏感的电子部件。
任务2和任务5相似,需要相同的工具集。
任务3和任务6需要不同的处理方式,但可以在U形拆解线的任一侧完成。
工作站C和工作站D在U形拆解线的同一侧,可以共享工具和资源。
目标:
最大化从拆解台式电脑和笔记本电脑中获得的总利润。利润取决于拆解任务的完成速度和拆解部件的市场价值。
在这个例子中,HDLBP的目标是确定如何在混合拆解线上分配台式电脑和笔记本电脑的拆解任务,以便在满足所有约束的同时最大化利润。这需要考虑不同产品之间的任务依赖性、工作站的能力、工人的技能以及不同拆解线的特点。
这两个例子展示了DLBP和HDLBP在实际操作中的复杂性,以及如何通过优化拆解流程来提高效率和利润。在实际应用中,这些问题可能涉及更多的产品、任务、工作站和工人,使得问题的规模和复杂性大大增加。
解决线性拆卸线问题(DLBP)的例子
问题回顾:
我们需要拆解台式电脑,包含三个任务:拆解CPU、内存条和硬盘。我们有三个工作站,任务之间存在顺序依赖性。
解决方案:
工作站分配:工作站1:专门负责拆解CPU(任务1)。工作站2:在CPU拆解完成后,负责拆解内存条(任务2)。工作站3:最后,负责拆解硬盘(任务3)。技能和工具分配:所有工作站的工人都需配备螺丝刀。工作站2的工人还需配备撬棍。顺序约束:确保任务1在任务2和任务3之前完成。优化目标:计算每个任务所需的时间,并分配给相应的工作站以最小化总时间。
实施细节:
假设每个任务需要10分钟来完成。
工作站1完成CPU拆解后,工作站2和工作站3可以并行开始工作,因为它们依赖于任务1的完成。
总时间计算:
工作站1:10分钟(仅任务1)。
工作站2:10分钟(任务2)。
工作站3:10分钟(任务3)。
总时间 = 最长路径的时间 = 10分钟(任务1)+ 10分钟(任务2或任务3)= 20分钟。
解决混合拆卸线问题(HDLBP)的例子
问题回顾:
我们需要拆解台式电脑和笔记本电脑,包含六个任务:CPU、内存条、硬盘、CPU、内存条和屏幕。我们有线性拆解线和U形拆解线,每条线有两个工作站。
解决方案:
工作站分配:线性拆解线(工作站A和B):负责台式电脑的拆解。工作站A:拆解CPU(任务1)。工作站B:拆解内存条(任务2)。U形拆解线(工作站C和D):负责笔记本电脑的拆解。工作站C(入口侧):拆解CPU(任务4)。工作站D(出口侧):拆解内存条(任务5)和屏幕(任务6)。技能和工具分配:所有工作站的工人都需配备螺丝刀。工作站B和D的工人还需配备撬棍。顺序和共享资源约束:任务4必须在任务5和任务6之前完成。U形拆解线上的工作站C和D可以共享工具和资源。优化目标:计算每个任务所需的时间,并分配给相应的工作站以最大化利润。
实施细节:
假设每个任务需要10分钟来完成。
工作站A和C可以同时开始,因为它们是各自产品线的第一个任务。
工作站B和D依赖于工作站A和C的输出。
总时间计算:
线性拆解线:工作站A:10分钟(任务1)。工作站B:10分钟(任务2),在工作站A完成后开始。
U形拆解线:工作站C:10分钟(任务4)。工作站D:20分钟(任务5和任务6),在工作站C完成后开始。
总时间 = 最长路径的时间 = 10分钟(任务1)+ 10分钟(任务4)+ 20分钟(任务5和任务6)= 40分钟。
这些解决方案提供了一个基本的框架来处理DLBP和HDLBP。在实际操作中,可能需要考虑更多的变量,如工人的可用性、工具的维护和更换、以及不同任务之间的复杂依赖关系。此外,可以通过引入自动化工具、优化算法或人工智能技术来进一步提高拆解线的效率和效果。
相关文章:

学习日志35
拆卸线问题(Disassembly Line Balancing Problem, DLBP)是生产工程和运筹学中的一个特殊问题,它涉及到将废弃产品有效地拆解成可回收利用的部件和材料。随着环保意识的增强和资源回收技术的发展,DLBP逐渐成为研究的热点。这类问题…...

http cache-control
Cache-Control 是 HTTP 协议中用于控制缓存行为的重要头部字段。它定义了客户端和服务器端如何缓存资源,以及缓存的有效期。以下是关于 Cache-Control 的详细解释: 请求指令 max-age 指示客户端接受的响应最大年龄。如果缓存的响应超过这个年龄&#x…...

kubernetes 中的微服务
微服务:用控制器来完成集群的工作负载,那么应用如何暴漏出去?需要通过微服务暴漏出去后才能被访问 - Service是一组提供相同服务的Pod对外开放的接口。 - 借助Service,应用可以实现服务发现和负载均衡。 - service默认只支持…...

电脑无法无线投屏的解决办法
在前司的时候经常遇到电脑无法使用无线投屏器的情况,今天就来聊聊如何解决。 1.不会连接。这种情况,经常发生在WIN10升级WIN11之后,一般是两种办法,一种是同时按键盘上的WINDOWS和K键,右下角就会出来连接的图标&#…...

【多重循环在Java中的应用】
多重循环在Java中的应用 介绍 多重循环是将一个循环嵌套在另一个循环体内的编程结构。Java中的 for、while 和 do...while 循环均可作为外层循环和内层循环。建议使用两层嵌套,最多不超过三层,以保持代码的可读性。 在多重循环中,外层循环执…...

JVM(Java Virtual Machine) 详解
1. JVM 内存区域划分 一个 Java 写的程序,跑起来就得到了一个 Java 进程(资源分配的基本单位) JVM 上面运行的字节码指令 1) 程序计数器(比较小的空间),保存了下一条要执行的指令的地址 这个不是 CPU 的…...

【进阶OpenCV】 (4)--图像拼接
文章目录 图像拼接1. 读取图片2. 计算图片特征点及描述符3. 建立暴力匹配器4. 特征匹配5. 透视变换6. 图像拼接 总结 图像拼接 图像拼接是一项将多张有重叠部分的图像(这些图像可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分…...

pg if条件语句
1.语法: 2.区别 IF 语句: 只能在 PL/pgSQL 中使用,不适合在直接的 SQL 查询中使用。没有返回值,仅仅是控制逻辑流程。适合用在存储过程、函数和触发器中。 CASE 语句(在 PL/pgSQL 中): 可以在 P…...

Pikachu-unsafe upfileupload-getimagesize
什么是getimagesize()? getimagesize()是PHP中用于获取图像的大小和格式的函数。它可以返回一个包含图像的宽度、高度、类型和MIME类型的数组。 由于返回的这个类型可以被伪造,如果用这个函数来获取图片类型,从而判断是否时图片的话ÿ…...

SOA是什么
SOA SOA 即 Service-Oriented Architecture(面向服务的架构)。 一、定义 SOA 是一种软件设计方法和架构理念,它将应用程序的不同功能单元(称为服务)通过定义良好的接口和契约联系起来。这些服务可以独立部署、独立运…...

构建高效团队,内部CRM系统的益处详解
内部CRM系统的最大优势之一是它能够集中并系统化客户信息,包括联系方式、购买历史、偏好设置、服务记录等。这种集中式的数据管理使企业能够快速响应客户需求,预测客户行为,提供个性化的服务或产品。更重要的是,它有助于建立一个统…...

Linux文件属性
Linux 文件基本属性 为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限: - chown (change owner) &#…...

什么是Anaconda
目录 1. [什么是Anaconda](#什么是Anaconda) 2. [安装Anaconda](#安装Anaconda) - [检查系统](#检查系统) - [下载Anaconda](#下载Anaconda) - [安装Anaconda](#安装Anaconda) 3. [启动Anaconda Navigator](#启动Anaconda-Navigator) 4. [创建与管理环境](#创建与管理环…...

ubuntu24开启启动脚本
因为我是在之前装的是windows和ubuntu双系统,所以想在ubuntu中自动挂载和开启时做些自己的脚本处理开发环境。 我的脚本如下: truedei@truedei-code:~$ cat mount.shsudo umount /media/truedei/*#sudo ntfsfix /dev/sda3 #sudo ntfsfix /dev/sda4 #sudo ntfsfix /dev/sda5…...

流浪地球行星发动机
随着电影《流浪地球2》的热播,影片中的行星发动机构想激发了社会各界对科幻与未来科技的广泛讨论。本文深入剖析了行星发动机的科学原理,包括重力助推、行星转移轨道以及重核聚变等核心技术,揭示了其在推动地球逃离太阳系过程中的关键作用。通…...

云岚到家,使用Elasticsearch实现服务的搜索功能,使用Canal+MQ完成服务信息与ES索引同步。MQ
为什么使用elasticsearch?数据很多么? 项目使用Elasticsearch是实现了门户上对服务的搜索。 平台上的服务数据是并不是很多,全国所有区域下的服务信息加一起几千条,之所以使用Elasticsearch是因为: 1、公司架构师在系统架构时…...

【图论】迪杰特斯拉算法
文章目录 迪杰特斯拉算法主要特点基本思想算法步骤示例 实现迪杰斯特拉算法基本步骤算法思路 总结 迪杰特斯拉算法 迪杰特斯拉算法是由荷兰计算机科学家艾兹赫尔迪杰特斯拉(Edsger W. Dijkstra)在1956年提出的,用于解决单源最短路径问题的经…...

四、Python基础语法(数据类型转换)
数据类型转换就是将一种类型的数据转换为另外一种类型的数据,数据类型转换不会改变原数据,是产生一个新的数据。 变量 要转换为的类型(原数据) -> num int(28) 一.int()将其他类型转换为整型 1.整数类型的字符串转换为整型 num1 28 print(type…...

工业物联网的安全与隐私保护—SunIOT
【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。一站式数智工厂解决方案服务商】 在当今数字化的时代,工业物联网(IIoT)正以前所未有的速度改变着工业生产的模式和效率。然而,随着工业物联网的广泛…...

二层网络和三层网络的理解与区别(包含通俗理解和归纳总结)
二层网络和三层网络是计算机网络中的两个不同层次,主要区别在于它们所处的OSI参考模型中的层次及其功能。 二层网络 (Layer 2 Network) 1.定义: 二层网络主要涉及数据链路层(Layer 2),这是OSI模型中的第二层。 它负…...

【C++】:lambda表达式的高级应用
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 引言 今天 我们来见见lambda表达式的高级用法 用法1:自定义删除器 有些类型的delete方法并不符合自身的析构方法,这时我们就需要自定义删除器。 unique_ptr<FILE> ptr1(fopen…...

详解正确创建好SpringBoot项目后但是找不到Maven的问题
目录 问题 解决步骤: 找到File->Project Structure... 设置SDK 设置SDKs 问题 刚刚在使用IDEA专业版创建好SpringBoot项目后,发现上方导航栏的运行按钮是灰色的,而且左侧导航栏的pom.xml的图标颜色也不是正常的,与此同时我…...

力扣203.移除链表元素
题目链接:203. 移除链表元素 - 力扣(LeetCode) 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6…...

UE4 材质学习笔记05(凹凸偏移和视差映射/扭曲着色器)
一.凹凸偏移和视差映射 1.偏移映射 这需要一个高度图并且它的分辨率很低,只有256*256,事实上,如果高度图的分辨率比较低并且有点模糊,效果反而会更好 然后将高度图输出到BumpOffset节点的height插槽中, 之后利用得到…...

网约班车升级手机端退票
背景 作为老古董程序员,不,应该叫互联网人员,因为我现在做的所有的事情,都是处于爱好,更多的时间是在和各行各业的朋友聊市场,聊需求,聊怎么通过IT互联网 改变实体行业的现状,准确的…...

【Vue】Vue 快速教程
Vue tutorial 参考:教程 | Vue.js (vuejs.org) 该教程需要前置知识:HTML, CSS, JavaScript 学习前置知识,你可以去 MDN Vue framework 是一个 JavaScript framework,以下简称 Vue,下面是它的特点 声明式渲染ÿ…...

SQLite数据库介绍
文章目录 SQLite常用接口 使用示例测试 SQLite SQLite是一个本地化的数据库,不需要客户端服务端什么的配置,主打就是轻量化方便化 他也不是一个独立的进程,而是可以根据应用程序的需求,可以进行静态或者动态的连接 而且他是直接存储在磁盘文件的,提供了简单易用的API接口 需…...

点击label 按钮起作用
要使点击 标签时能够触发与之关联的表单控件(如输入框、复选框或单选按钮)的作用,你需要正确地设置 标签的 for 属性,并确保该属性值与表单控件的 id 属性值相匹配。这样,当用户点击 标签时,与之关联的表…...

JPA、Hibernate、MyBatis三种ORM框架怎么选择
JPA(Java Persistence API)、Hibernate和MyBatis都是Java开发中常用的ORM(Object-Relational Mapping,对象关系映射)框架,它们提供了不同的方式来处理数据库交互。在选择这些框架时,需要考虑项目…...

【C++】map详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...