自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 排程系统中关于任务优先级的需求延伸与设计构思

无论是面向销售订单的MPS,还是基于多工序制约关系的APS,还是具体车间生产中针对单一工序的任务作业调度优化,都存在基于被排程对象(例如销售订单、生产工单、工序任务)的优先级进行优化的需求场景。当我们仅在宏观、较高层次的角度考虑,任务优先级是相当简单的。无非是实现“确保高优先级的任务(以下将所有排程对象统称为任务),更优先于低优先级的任务执行,即优先级越高越早执行”这一简单的要求。

2023-12-11 22:29:03 156

原创 排产中的两种对立策略 - 负载均衡与成本最优

在APS系统设计中,根据不同的业务场景,会出现两种截然相反的策略需求,分别是(资源)负载均衡与成本最优(最低),两种策略分别适用于不同的业务场景。本文我们将这两种策略的适用场景、方案原理作初步探讨,并就这些策略在OptaPlanner中的实现思路稍作分析。

2023-09-12 22:53:58 286

原创 APS系统设计经验分享(时间推导II - 2023.09)

​在前一篇关于APS系统设计分享文章(《APS系统设计经验分享(时间推导 - 2023.03)》)中,我们提到将会分享使用OptaPlanner作为规划引擎开发APS系统过程中,遇到的一些时间相关的设计建议与异常情况分析。

2023-09-05 09:04:39 223

原创 齐套检查与分配在生产计划中的实现

最近一段时间看到很多关于生产计划中,作齐套检查与分析讨论,正好我们的易排1.5版添加了类似功能。本文结合易排平台上相应的功能与特征,介绍一下我们在这方面的些许研究结论与看法。

2023-08-28 05:32:48 338

原创 APS系统设计经验分享(时间推导 - 2023.03)

在项目计划有多种接续关系,目前易排系统中实现了FS(Finish to Start)与SS(Start to Start)两种关系,其它关系将视具体的项目情况,若有需要再具体实现。大多数资源不可能 7 x 24工作,也不可能所有任务都能在一个班次(8或12小时)内完成,那么如果实现这些不规则的时间片段与任务长度呢?有同行问到:为什么你分享的经验都是一些细枝末节?有没有一些“更有营养”的内容可以分享一下。

2023-03-30 15:43:40 313 2

原创 易排平台新内核开发随笔 - 细节中的魔鬼

易排平台发布之初,完全基于OptaPlanner 官方的一些示例进行开发。官网发布的众多示例呈现了各行各业各种场景下,通过OptaPlanner作为规划引擎的运筹优化场景。社区项目团队除了对引擎程序进行了完整且严格的测试外,还对所提供的示例程序进行了稳妥的测试。因此,这些示例是我们学习的重要资料。在构思易排平台时,我基于当时参与过的若干行业的APS项目经历,拟出一个同时兼容流程制造与离散制造场景下的排程需求清单,并选择其中较为常见、典型的几个需求作为平台的内置需求。

2022-11-23 18:18:21 198

原创 生产计划体系完整解决方案(2) : 复杂大规模问题之 - 分区规划

​在完整的规划体系中,针对不同的场景与需求,需要对应的规划方案。在上一篇(生产计划体系完整解决方案(1) - 复杂大规模问题的分阶段规划)里,简述了分阶段规划方案,就是针对供应链中,从订单到生产环节中,以订单为单位对生产计划进行初步排程。具体的任务是“将某个订单,安排到哪个生产单位(通常是车间级别),在哪个时间点之前完成”。通常我们将该层次的生产计划称为主生产计划 - MPS。而在生产单位内,根据订单需求和产品的工艺路线、参数等进行拆解,生成最小粒度的生产任务,把这些生产任务分配到产线、机台、工位或班组等

2022-11-22 00:38:35 649

原创 关于多工序、多资源排程场景下的新成果

当然这些都是一些理论上的分析与思路,而要在OptaPlanner里实现它,虽然官方也提供了相应的示例,但这个示例只展示了最简单的PJS模型,我们只能以此作为基础,沿着MRCPSP模型的思路来实现我真正的规划模型。在此基础上基于产品工序路线的前后工序关系,来表达同一产品下的的工序路线。我们可以从各种各样的计划中可以归纳出来,大多数情况下计划,其本质是实现任务(或称为排程对象)的时空编排,也就是确定各个任务的时间 (任务时间开始,做多久,什么时间完成),与空间(例如哪些资源,在哪些限制条件下进行)两个维度。

2022-09-11 08:11:01 1018

原创 易排通用规划平台,以Excel作为数据源的调用方法与数据文件说明

易排通用规划平台发布了以Excel谁的作为数据载体的功用,本方向讲解该Excel文件各个数据的业务意义。

2022-09-05 11:27:42 586

原创 生产计划体系完整解决方案(1) - 复杂大规模问题的分阶段规划

在过往参与的一些项目支持工作,以及平台发布后各位小伙伴使用过程中,经常遇到这样的问题你这个引擎性能怎么样?可以处理多大数据量的排程?我有数万个任务,这个引擎多长时间可以排产结果?这个问题会引出整个生产计划过程中计划方式的问题。......

2022-07-29 16:47:13 568

原创 OptaPlanner 发展方向与问题

最近一段时间,因为忙于【易排(EasyPlan)规划平台】的设计与开发工作,平台的一些功能设计,需要对OptaPlanner的各种特性作更深入的研究与应用。慢慢发现,OptaPlanner进入8.X版本之后,变化还是挺大的。......

2022-07-20 15:14:53 427

原创 OptaPlanner将弃用DRL(Drools)评分方式!!!

本来这段时间一直都在加紧我家“三胎”(易排通用智能规划平台)建设,毕竟我们的通用规划平台原定6月初就能上线,但因为其中遇到的各种技术问题及其它项目的突发情况,导致也只能跟随国家的003号航母,只能推迟上线,进度紧迫。经过近两个星期的奋战,终于将我们的【易排通用智能规划平台】的主要功能上线了,并做了一些基本的使用资料,供各位小伙伴先得试用。 因为我们的平台还处在刚上线提供试用阶段,后续还有数不清的功能、平台设计、应用小视频需要我日以继夜地奋力补充(这些资料里不仅仅有平台的介绍资料喔,也有我们做规

2022-07-02 01:18:01 363

原创 三胎终于来了!通用智能规划平台 - APS模块

因为前期其它项目突发情况,导致我们的三胎一再推迟。人民海军的三胎已降生,父亲节也到了;我们的三胎也是时候要出来见个面了。

2022-06-21 13:38:08 264

原创 OptaPlanner实用技术 - 批量规划和实时规划(2)

上一篇我们分别对“批量规划”和“实时规划”作了详细介绍;OptaPlanner的这两种开箱即用的特性在具体的工程实践中极为实用。 批量规划可方便巧妙地解决多数据集同时规划,可有效提高算力资源应用效率。此外,在规划服务设计方面,基于批量规划功能,可设计更为简洁可靠且高效的的异步服务方案。引擎在执行多个数据集并行运算时,可根据引擎配置来安排有多少个CPU核心参与规划运算过程,也可使用引擎默认的CPU调度方案,实现服务程序的稳定性与性能的最佳平稳。 ...

2022-06-03 00:23:31 600

翻译 通过OptaPlanner优化 COVID-19 疫苗接种预约安排(1)

近两年来的冠疫情使得社会工作生活备受影响。接种疫苗是其中一种有效减缓疫情的途径之一,但病毒的传染性,疫苗接种的规律性,及接种人群数量及分布等特性,对接种活动的计划安排提出了巨大挑战。面对大量的接种数据和复杂的接种安排,人工编制接种计划明显会影响工作效率,并降低接种安排的合理性。本文将接种计划视作一个规划问题,通过开源规划引擎OptaPlanner,自动生成一个符合接种规范、提高工作效率、降低社会运行成本的接种计划方案。本文章译自Paul Brown先生,一位开源社区的资深贡献者。以下为原文:Opti

2022-05-03 09:22:13 213

翻译 《机械师实时调度示例(I) - 实时规划》的视频翻译

之前翻译了红帽2019年技术峰会上,OptaPlanner演示实时调度的一个案例中的文章。其中关于案例的讲解,最近有时间将它翻译一下,大家可以结合视频来细看该文章。《机械师实时调度示例(I) - 实时规划》https://mp.csdn.net/mp_blog/creation/editor/102559775...

2022-04-19 11:10:40 227

翻译 通过OptaPlanner优化仓库和超市的订单拣货过程

本文描述了通过OptaPlanner实现订单快速且优化拣货过程,在满足订单固定规则的前提下,实现购物车行驶最小距离的规划优化。

2022-03-04 11:15:49 605

原创 非易失性规划的原理与实现方法

常言道,计划不如变化快。计划的制定本身就建基于对未来一定时间范围内的环境条件假设,当计划制定后到执行完成的时间段内,若环境条件发生变化,那么计划也需要进行适当的调整才能满足实际要求。但计划的调整往往伴随着相应的代价,不仅仅是计划的重新制定所需的工作量,更大的代价来自于计划变更对执行工作的影响。例如提前备料、设备预调等准备工作;这是计划和控制的最大挑战之一;因此,计划的变更也极具研究价值。如何在环境条件发生变更导致原有计划无法继续执行时,快速定制一个最低成本的、切实可用的变更方案?本文我们主要...

2022-02-07 00:26:49 369

原创 实现不完全规划的方法

在各种常见的规划场景中,我们经常会遇到一种不完全规划的情况。即在正常情况下,在完成了一次规划运算(甚至是CH阶段的运算中),OptaPlanner的规划实体(Planning Entity, 下称规划实体)中每个规划变量(Planning Variable,下称规划变量)必须非空,即必须被赋予规划变量取值范围(ValueRange,规划变量取值范围)范围内的值;尽管有更约束被违反,也必须实现赋值。

2021-12-15 20:32:24 215

原创 相邻两个生产计划之间的衔接问题

本文章主要探讨在生产计划的“编制 -> 执行”过程中,遇到的计划与实际生产活动,相邻两个计划之间的衔接问题,及常见的方案建议。生产计划是通过对生产环境的整体评估,并基于评估结果对生产活动的推导和仿真,从而获得的工作安排,用于指导生产活动。计划人员对生产条件掌握越准确,编制出来的计划越贴近实际情况、越具有可操作性。但无论对计划的内部因素(例如产能、工艺)还是外部因素(例如交期、插单)的把握,均建立在对未来的预期的基础上,必定具有不确定性和可变性。因此,计划的“编制->执行”过程,排产人员除了需

2021-06-01 23:53:52 382

原创 OptaPlanner的新约束表达方式 Constraint Streams

有好些时间没有写过关于OptaPlanner的东西了,其实近半年来,OptaPlanner还是推出了不少有用、好用的新特性。包括本文讲到的以Stream接口实现评分编程。关于OptraPlanner的约束详细用法,可以参考官方资料:Constraint streams score calculation​docs.optaplanner.org最近几个版本推出的新功能、特性中,有不少功能还处于初始探索阶段,甚至有些功能还未成体系,包括我在上一篇文件中推出的SolverManger实现批量异步规划。此功能

2020-09-10 12:16:30 854

原创 APS实现的要点与难点

在前一篇关于文章中讨论了不同层级、粒度的生产计划,在各行业中受重视程度的差异问题。《关于APS在企业生产计划上的应用》承蒙大家热烈讨论。本文则在收集各方高见的基础上,对于供应链上各个环节的运营、生产计划再作稍微深入一点的探讨。本文将列举APS技术中常见的重点难点作展开讨论,基保重点的计划场景是制造业的生产计划。本文将基于APS技术、APS项目及APS系统(产品)相关的信息进行探讨。为何...

2020-08-19 01:20:30 1816

原创 普通企业的规划类项目中,OptaPlanner更适合作为APS的规划优化引擎

在企业的规划、优化场景中,均需要开发规划类的项目,实现从从种可能方案中找出相对最优方案。如排班、生产计划(包括高层次的供应链优化,到细粒度的车间甚至机台作业指令)、车辆调度等。因为这类场景需要解决的问题,均可以归约为数学中的NP-C或NP-Hard问题。而解决此类问题,均需要通用的求解器才能实现。这类求解器也称规划引擎,通过它才能从天文数字的可能方案中,找出一个可行且相对优化的方案。规划引擎的...

2020-04-11 18:47:11 919

原创 OptaPlanner 7.32.0.Final版本彩蛋 - SolverManager之批量求解

上一篇介绍了OptaPlanner 7.32.0.Final版本中的SolverManager接口可以实现异步求解功能。本篇将继续介绍SolverManager的另一大特性 - 批量求解。适用场景在日常的规划系统中,求解一个问题,绝大多数情况下,容许运行的时间较有限,特别是在实时性较高的场景中,可让引擎运算时间不多。因此,这种情况下,会在启动了规划运算后,稍等片刻,即需要从求解程序中获取结...

2020-02-26 01:07:51 604

原创 OptaPlanner 7.32.0.Final版本彩蛋 - SolverManager之异步求解

因为工作和其它原因,很长一段时间没有出新的、关于OptaPlanner的文章了,但工余时间并没有停止对该引擎的学习。与此同时Geoffrey大神带领的KIE项目团队并没有闲下来,尽管在工业可用性、易用性和使用门槛方面,OptaPlanner相对传统的求解器已经做得相当出色;特别是在规划过程交互、和各种操作接口方面,更是目前最为容易使用的规划求解器。以第7版一系列子版本中,OptaPlanner...

2020-02-23 00:36:11 317

翻译 机械师实时调度示例(I) - 实时规划

OptaPlanner创办人Geoffrey De Smet及其团队,在Red Hat 技术峰会上主题会场上,演示了一个通过OptaPlanner实现实时规划与调度的示例。Geoffrey及其团队专门为此分三篇博文描述了该程序。该程序及其相关博文是OptaPlanner在VRP领域极之经典之作。本系列也分三篇对博文进行翻译,以飨各位ORer, APSer和Planner.目前本人正在研究该程序...

2019-10-15 02:20:38 380

翻译 人类的规划能力有多强大?

本文章译自OptaPlanner官网上,Geoffrey De Smet先生的博文,链接如下:https://www.optaplanner.org/blog/2015/06/03/HowGoodAreHumanPlanners.html​www.optaplanner.org在规划方面,我们人类比机器(计算机)更强吗?或者说,自动规划技术能击败人类吗?我与一组软件工程师做了一个实验,结果...

2019-08-27 21:20:49 307

原创 Optaplanner与Google OR-Tools的区别

在规划相关的项目工作中,近两年我们的项目主要使用的是Optaplanner作为规划引擎,其核心也是一个的规划求解器(Solver)。但作为另一个著名开源求解器Google OR-Tools(下称OR-Tools)也日渐流行。且因Google自带流量的支持,OR-Tools有更多专门研究运筹的学者使用和研究。而Optaplanner则更偏向工程实践上的应用。本文就二者在技术特性、使用方法与场景等方面...

2019-06-21 14:46:57 1651

翻译 体现公平性公式在规划问题中的应用

本文是在Optaplanner创始人Geoffrey De Smet先生的一篇文章《Formula for measuring unfairness》的基础上进行翻译而成。因为其博文发表在Optaplanner的官网上,因此,其行文过程中存在一定的上下文默认情况,如果直译原文,将会大大降低其可读性。因此,本文是在原文的基础上添加一些本人修饰的表达而成。负载均衡在Optapalnner的应用案...

2019-04-18 02:15:32 568

原创 时间规划在Optaplanner上的实现

  在与诸位交流中,使用较多的生产计划和路线规划场景中,大家最为关注的焦点是关于时间的处理问题。确实,时间这一维度具有一定的特殊性。因为时间是一维的,体现为通过图形表示时,它仅可以通过一条有向直线来表达它的时刻和方向。相对而言,空间则可以存在多维,例如二维坐标,三维空间等,甚至在生产计划的规划场景中,各种资源可以表示为多个维度。因此,时间的一维特性,决定了在规划过程中,需要处理它的方法也具有一定的...

2019-03-14 01:59:48 956 6

原创 APS技术中的多目标规划问题

  在进行APS(高级计划与排程)系统开发时,绝大多数情况下是需要考虑多目标的。但面对多目标问题进行规划求解时,我们往往极容易因处理方法不当,而影响输出结果,令结果与用户期望产生较大差别。事实上很多时候用户,面对此类问题也无法给出一个确定的合理的期望,因为多个目标混合在一起的时候,产生复杂的规划逻辑,用户自身也会被迷惑,到最后就错误地提出一些所有目标都达到极致的“完美”计划要求;但客观上是不存在这...

2019-01-29 15:13:54 895

原创 Excel与Google Sheets中实现线性规划求解

        很久没更新过APS系列文章了,这段时间项目工作确实非常紧,所以只能抽点时间学习一下运筹学的入门知识,算是为以后的APS项目积累点基础。看了一些运筹学的书(都是科普级别的)发现原来我目前面对的很多排产、排班、资源分配和路线规划问题,都是运筹学上的典型案例。与此同时,除了继续使用Optaplanner来做我们的规划类项目外,还花点时间去研究了一下Google OR-Tools开源规划引...

2019-01-22 00:07:49 1198

原创 Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving

  Optaplanner 7.9.0.Final之前,启动引擎开始对一个Problem进行规划的时候,只能是单线程进行的。也就是说,当引擎对每一个possible solution进行分数计算的过程中,细化到每个步骤(Caculation),都只能排队在同一个线程中依次计算,不管你的问题是否存在并行计算的可能。很显示这种运算方式应用于一些可并行计划的场景下,是相当不利的。就算是一些在业务逻辑上无...

2018-10-12 00:17:36 367

翻译 【译】Optaplanner开发手册本地化: (0) - 前言及概念

  在此之前,针对APS写了一些理论性的文章;而对于Optaplanner也写了一些介绍性质,几少量入门级的帮助初学者走近Optaplanner。在此以后,老农将会按照Optaplanner官方的用户手册的结构,按章节地对其进行翻译,并成型一系列的操作说明文章。在文章中,为了降低对原文的理解难度,有些地方我不会直接按原文档的字面翻译,而是有可能加入一些我自己的理解,或添一些解释性的内容。毕竟英语环...

2018-09-14 02:13:32 1095

原创 多工序、多机台(产线)环境下的排程要点

关于生产计划排程的种类及其特性释义:文中提到的资源,是指需要完成一个生产作业(或称任务,生产任务)所需的生产条件,例如机台、原料等,称为广义资源。 对于生产计划,常见有以下四种类型:单一工序,单一资源种类. 单一工序,多资源种类. 多工序,单一资源种类(较少见). 多工序,多资源种类.  下面对上述四种生产计划进行逐一分析,本文的分析,着重于计划的优化实现,而不是硬性规则的确保...

2018-09-06 20:57:58 9286

翻译 人工智能包括约束求解器吗?

  以下是翻译Optaplanner创始人Geoffrey De Smet的一篇文章《Does A.I. include constraint solvers?》。  因为英语及中文表达习惯的差异,以该博文发表示Optaplanner官网,其描述的问题及概念具有一定的上下文关联性;因此,为了认还不太熟悉Optaplanner的同学更容易理解,令文章更符合中文母语读者的阅读习惯,我并没有完全按字...

2018-08-17 00:43:12 662

原创 设计Optaplanner下实时规划服务的失败经历

  其实本文不知道算不算一个知识点分享,过程很美妙,但结果很失败。我们在利用Optaplanner的Real-Time planning(实时规则)功能,设计实时在线规划服务时,遇到一个属于Optaplanner7.8.0.Final版本的Bug。在实现实时在线规划服务的过程中,我做过很多尝试。因为需要实时在线的服务,因此,需要设计多线程并发为外界请求提供响应,需要实现消息队列来管理并发请求的时序...

2018-08-01 09:36:40 1211

原创 Optaplanner规划引擎的工作原理及简单示例(2)

开篇 在前面一篇关于规划引擎Optapalnner的文章里(Optaplanner规划引擎的工作原理及简单示例(1)),老农介绍了应用Optaplanner过程中需要掌握的一些基本概念,这些概念有助于后面的内容的理解,特别是关于将约束应用于业务规则上的理解。承上一文,在本篇中将会减少一些理论,而是偏向于实践,但过程中,借助实际的场景对一些相关的理论作一些更细致的说明,也是必要的。本...

2018-08-01 09:32:17 1686 4

原创 排产的两种方式(前推式与后拉式)在Optaplanner上的体现

生产计划的约束  在制定生产计划过程中,必然是存在某些制约因素,满足某些需求才能进行的,或是交期保证、或是产能限制、或是关键工序制约。即TOC理论 - 任何系统至少存在着一个制约因素/瓶颈;否则它就可能有无限的产出。就是说,如果不存在这个(或这些)制约因素,生产计划就没必要“排”了,只需随意地,毫无约束地把任意一个或多个生产任务纳入生产日程,都能满足生产、营业等所有业务要求。那也不需要人的智慧...

2018-08-01 09:19:06 6307 3

原创 Optaplanner规划引擎的工作原理及简单示例(1)

  在之前的文章中,老猿已介绍过APS及规划的相关内容,也对Optaplanner相关的概念和一些使用示例进行过介绍,接下来的文章中,我会自己做一个规划小程序 - 一个关于把任务分配到不同的机台上进行作来的小程序,并在这个小程序的基础上对Optaplanner中更多的概念,功能,及使用方法进行讲解。但在此之前,我需要先讲解一下Optaplanner在运行规则运算的原理。所以,本文是讲述一些关于寻找...

2018-08-01 09:17:02 2249

易排(EasyPlan)通用智能规划平台讲解视频1 - 平台的用处与用法

易排(EasyPlan)通用智能规划平台是由APS排程系统专家Kent Zhang开发的,供各种MES, MOM,ERP排程模块,及物流企业的VRP系统使用的,通用规划平台。可给有规划需求场景提供开箱即用的运筹优化引擎。 本视频是该平台讲解视频的首个视频,评述这个平台具体的作用,及如何使用该平台。

2022-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除