
规划
文章平均质量分 90
JB-Zhang
这个作者很懒,什么都没留下…
展开
-
OptaPlanner实用技术 - 批量规划和实时规划(2)
上一篇我们分别对“批量规划”和“实时规划”作了详细介绍;OptaPlanner的这两种开箱即用的特性在具体的工程实践中极为实用。 批量规划可方便巧妙地解决多数据集同时规划,可有效提高算力资源应用效率。此外,在规划服务设计方面,基于批量规划功能,可设计更为简洁可靠且高效的的异步服务方案。引擎在执行多个数据集并行运算时,可根据引擎配置来安排有多少个CPU核心参与规划运算过程,也可使用引擎默认的CPU调度方案,实现服务程序的稳定性与性能的最佳平稳。 ...原创 2022-06-03 00:23:31 · 792 阅读 · 0 评论 -
《机械师实时调度示例(I) - 实时规划》的视频翻译
之前翻译了红帽2019年技术峰会上,OptaPlanner演示实时调度的一个案例中的文章。其中关于案例的讲解,最近有时间将它翻译一下,大家可以结合视频来细看该文章。《机械师实时调度示例(I) - 实时规划》https://mp.youkuaiyun.com/mp_blog/creation/editor/102559775...翻译 2022-04-19 11:10:40 · 287 阅读 · 0 评论 -
通过OptaPlanner优化仓库和超市的订单拣货过程
本文描述了通过OptaPlanner实现订单快速且优化拣货过程,在满足订单固定规则的前提下,实现购物车行驶最小距离的规划优化。翻译 2022-03-04 11:15:49 · 773 阅读 · 0 评论 -
实现不完全规划的方法
在各种常见的规划场景中,我们经常会遇到一种不完全规划的情况。即在正常情况下,在完成了一次规划运算(甚至是CH阶段的运算中),OptaPlanner的规划实体(Planning Entity, 下称规划实体)中每个规划变量(Planning Variable,下称规划变量)必须非空,即必须被赋予规划变量取值范围(ValueRange,规划变量取值范围)范围内的值;尽管有更约束被违反,也必须实现赋值。原创 2021-12-15 20:32:24 · 257 阅读 · 0 评论 -
相邻两个生产计划之间的衔接问题
本文章主要探讨在生产计划的“编制 -> 执行”过程中,遇到的计划与实际生产活动,相邻两个计划之间的衔接问题,及常见的方案建议。生产计划是通过对生产环境的整体评估,并基于评估结果对生产活动的推导和仿真,从而获得的工作安排,用于指导生产活动。计划人员对生产条件掌握越准确,编制出来的计划越贴近实际情况、越具有可操作性。但无论对计划的内部因素(例如产能、工艺)还是外部因素(例如交期、插单)的把握,均建立在对未来的预期的基础上,必定具有不确定性和可变性。因此,计划的“编制->执行”过程,排产人员除了需原创 2021-06-01 23:53:52 · 522 阅读 · 0 评论 -
OptaPlanner的新约束表达方式 Constraint Streams
有好些时间没有写过关于OptaPlanner的东西了,其实近半年来,OptaPlanner还是推出了不少有用、好用的新特性。包括本文讲到的以Stream接口实现评分编程。关于OptraPlanner的约束详细用法,可以参考官方资料:Constraint streams score calculationdocs.optaplanner.org最近几个版本推出的新功能、特性中,有不少功能还处于初始探索阶段,甚至有些功能还未成体系,包括我在上一篇文件中推出的SolverManger实现批量异步规划。此功能原创 2020-09-10 12:16:30 · 1022 阅读 · 0 评论 -
OptaPlanner 7.32.0.Final版本彩蛋 - SolverManager之批量求解
上一篇介绍了OptaPlanner 7.32.0.Final版本中的SolverManager接口可以实现异步求解功能。本篇将继续介绍SolverManager的另一大特性 - 批量求解。适用场景在日常的规划系统中,求解一个问题,绝大多数情况下,容许运行的时间较有限,特别是在实时性较高的场景中,可让引擎运算时间不多。因此,这种情况下,会在启动了规划运算后,稍等片刻,即需要从求解程序中获取结...原创 2020-02-26 01:07:51 · 671 阅读 · 0 评论 -
OptaPlanner 7.32.0.Final版本彩蛋 - SolverManager之异步求解
因为工作和其它原因,很长一段时间没有出新的、关于OptaPlanner的文章了,但工余时间并没有停止对该引擎的学习。与此同时Geoffrey大神带领的KIE项目团队并没有闲下来,尽管在工业可用性、易用性和使用门槛方面,OptaPlanner相对传统的求解器已经做得相当出色;特别是在规划过程交互、和各种操作接口方面,更是目前最为容易使用的规划求解器。以第7版一系列子版本中,OptaPlanner...原创 2020-02-23 00:36:11 · 393 阅读 · 0 评论 -
机械师实时调度示例(I) - 实时规划
OptaPlanner创办人Geoffrey De Smet及其团队,在Red Hat 技术峰会上主题会场上,演示了一个通过OptaPlanner实现实时规划与调度的示例。Geoffrey及其团队专门为此分三篇博文描述了该程序。该程序及其相关博文是OptaPlanner在VRP领域极之经典之作。本系列也分三篇对博文进行翻译,以飨各位ORer, APSer和Planner.目前本人正在研究该程序...翻译 2019-10-15 02:20:38 · 459 阅读 · 0 评论 -
APS实现的要点与难点
在前一篇关于文章中讨论了不同层级、粒度的生产计划,在各行业中受重视程度的差异问题。《关于APS在企业生产计划上的应用》承蒙大家热烈讨论。本文则在收集各方高见的基础上,对于供应链上各个环节的运营、生产计划再作稍微深入一点的探讨。本文将列举APS技术中常见的重点难点作展开讨论,基保重点的计划场景是制造业的生产计划。本文将基于APS技术、APS项目及APS系统(产品)相关的信息进行探讨。为何...原创 2020-08-19 01:20:30 · 2195 阅读 · 0 评论 -
Optaplanner与Google OR-Tools的区别
在规划相关的项目工作中,近两年我们的项目主要使用的是Optaplanner作为规划引擎,其核心也是一个的规划求解器(Solver)。但作为另一个著名开源求解器Google OR-Tools(下称OR-Tools)也日渐流行。且因Google自带流量的支持,OR-Tools有更多专门研究运筹的学者使用和研究。而Optaplanner则更偏向工程实践上的应用。本文就二者在技术特性、使用方法与场景等方面...原创 2019-06-21 14:46:57 · 1919 阅读 · 0 评论 -
体现公平性公式在规划问题中的应用
本文是在Optaplanner创始人Geoffrey De Smet先生的一篇文章《Formula for measuring unfairness》的基础上进行翻译而成。因为其博文发表在Optaplanner的官网上,因此,其行文过程中存在一定的上下文默认情况,如果直译原文,将会大大降低其可读性。因此,本文是在原文的基础上添加一些本人修饰的表达而成。负载均衡在Optapalnner的应用案...翻译 2019-04-18 02:15:32 · 672 阅读 · 0 评论 -
时间规划在Optaplanner上的实现
在与诸位交流中,使用较多的生产计划和路线规划场景中,大家最为关注的焦点是关于时间的处理问题。确实,时间这一维度具有一定的特殊性。因为时间是一维的,体现为通过图形表示时,它仅可以通过一条有向直线来表达它的时刻和方向。相对而言,空间则可以存在多维,例如二维坐标,三维空间等,甚至在生产计划的规划场景中,各种资源可以表示为多个维度。因此,时间的一维特性,决定了在规划过程中,需要处理它的方法也具有一定的...原创 2019-03-14 01:59:48 · 1255 阅读 · 6 评论 -
APS技术中的多目标规划问题
在进行APS(高级计划与排程)系统开发时,绝大多数情况下是需要考虑多目标的。但面对多目标问题进行规划求解时,我们往往极容易因处理方法不当,而影响输出结果,令结果与用户期望产生较大差别。事实上很多时候用户,面对此类问题也无法给出一个确定的合理的期望,因为多个目标混合在一起的时候,产生复杂的规划逻辑,用户自身也会被迷惑,到最后就错误地提出一些所有目标都达到极致的“完美”计划要求;但客观上是不存在这...原创 2019-01-29 15:13:54 · 1014 阅读 · 0 评论 -
排产的两种方式(前推式与后拉式)在Optaplanner上的体现
生产计划的约束 在制定生产计划过程中,必然是存在某些制约因素,满足某些需求才能进行的,或是交期保证、或是产能限制、或是关键工序制约。即TOC理论 - 任何系统至少存在着一个制约因素/瓶颈;否则它就可能有无限的产出。就是说,如果不存在这个(或这些)制约因素,生产计划就没必要“排”了,只需随意地,毫无约束地把任意一个或多个生产任务纳入生产日程,都能满足生产、营业等所有业务要求。那也不需要人的智慧...原创 2018-08-01 09:19:06 · 7049 阅读 · 3 评论 -
Optaplanner规划引擎的工作原理及简单示例(1)
在之前的文章中,老猿已介绍过APS及规划的相关内容,也对Optaplanner相关的概念和一些使用示例进行过介绍,接下来的文章中,我会自己做一个规划小程序 - 一个关于把任务分配到不同的机台上进行作来的小程序,并在这个小程序的基础上对Optaplanner中更多的概念,功能,及使用方法进行讲解。但在此之前,我需要先讲解一下Optaplanner在运行规则运算的原理。所以,本文是讲述一些关于寻找...原创 2018-08-01 09:17:02 · 2452 阅读 · 0 评论 -
OptaPlanner逐步学习(0) : 基本概念 - OptaPlanner,规划问题, 约束,方案
之前的文章中,分别从APS,排产到规划引擎叙述了一些理论基础;并介绍了一些OptaPlanner大概的情况;并一步步将Optaplanner的示例运行起来,将示例源码导进Eclipse分析了一下它的Hello world入门示例,从本篇开始,我们将分步学习它的一些概念及用法。什么是OptaPlanner 其实这个名称是作者将这个引擎贡献给了Jboss社区后,才使...原创 2018-08-01 09:13:25 · 1409 阅读 · 0 评论 -
Optaplanner - 从探究示例中的hello world,初步认识规划引擎的运行步骤。
上一篇我们成功以把Opotaplanner规划引擎下载回来,并把它的示例运行起来,简单解析了一下它的Cloud balance示例。这一篇我们这些示例的源代码导入到Eclipse中,看看它在后台是怎么运行的。一、推荐使用Maven 在上一篇,我们已经从Optaplanner的官网下载了它的压缩包,它里面几乎包含了Optaplanner的所有东西,基本上有了这个包,...原创 2018-08-01 09:09:23 · 763 阅读 · 0 评论 -
关于APS在企业生产计划上的应用
本人本身是一个码农,已经服务了共和国各项事业(好像是说得有点漂,没办法段子看多了)大约一半工作时候了(按60岁退休的话),从一线的小码农,到现在成了老农,出产了不少或优或劣的各种码,几乎啥都做过。近几年慢慢沉淀到制造业信息化方面,主要是APS在生产计划方面的应用,APS - Advance Planning and Scheduling. 高级计划与排程;其实也就是做计划,只不过使用...原创 2018-08-01 09:05:22 · 1112 阅读 · 0 评论 -
OptaPlanner - 把example运行起来(运行并浅析Cloud balancing)
经过上面篇长篇大论的理论之后,在开始讲解Optaplanner相关基本概念及用法之前,我们先把他们提供的示例运行起来,好先让大家看看它是如何工作的。OptaPlanner的优点不仅仅是提供详细丰富的文档 ,还为各种应用场景提供丰富的示例,它的文档里都是以几个简单经典的例子来说名各种功能特征和深层次概念的,例如Solver, Phase及Move等,以下我们就先把这些示例运行起来,先看...原创 2018-08-01 09:00:10 · 1354 阅读 · 0 评论 -
Optaplanner - 入门介绍
OptaPlanner背景 在上一篇里喷了不少水,这一篇准备放点干货;其实也没办法完全干,因为很多预备知道在交待一下。好了,说一下关于OptaPlanner的背景、应用兼容性及其原理。 这一篇先说一下OptaPlanner是何方神圣,再看看它适用于哪种平台(.NET能用吗?老旧系统能用吗?),再从原理上探究一下,它是如何帮我们把一个看上去几乎不可能实现的工作,努力做到...原创 2018-08-01 08:56:46 · 4247 阅读 · 0 评论 -
浅尝一个排程引擎Optaplanner - 前序
该系列文章一开始在博客园上开始创作,后发现还有很多其它平台也有相当多的同学常去,于是也发在CSDB上,以后的新文章,优快云将同步发布。谢谢支持。 当码农有10多年了,由建筑行业软件,各种MIS,通用物流定制平台,CCTV客户端(是闭路电视,不是央视喔)啥都做过。最后小试一下创业,不过那都是闹着玩的,不到一年就回到码农的队列,重拾搬砖的行当。近些年一直在制造业,做过ERP,当过小组负责人。有...原创 2018-08-01 08:50:25 · 1865 阅读 · 0 评论 -
多工序、多机台(产线)环境下的排程要点
关于生产计划排程的种类及其特性释义:文中提到的资源,是指需要完成一个生产作业(或称任务,生产任务)所需的生产条件,例如机台、原料等,称为广义资源。 对于生产计划,常见有以下四种类型:单一工序,单一资源种类. 单一工序,多资源种类. 多工序,单一资源种类(较少见). 多工序,多资源种类. 下面对上述四种生产计划进行逐一分析,本文的分析,着重于计划的优化实现,而不是硬性规则的确保...原创 2018-09-06 20:57:58 · 11311 阅读 · 0 评论 -
【译】Optaplanner开发手册本地化: (0) - 前言及概念
在此之前,针对APS写了一些理论性的文章;而对于Optaplanner也写了一些介绍性质,几少量入门级的帮助初学者走近Optaplanner。在此以后,老农将会按照Optaplanner官方的用户手册的结构,按章节地对其进行翻译,并成型一系列的操作说明文章。在文章中,为了降低对原文的理解难度,有些地方我不会直接按原文档的字面翻译,而是有可能加入一些我自己的理解,或添一些解释性的内容。毕竟英语环...翻译 2018-09-14 02:13:32 · 1254 阅读 · 0 评论 -
Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving
Optaplanner 7.9.0.Final之前,启动引擎开始对一个Problem进行规划的时候,只能是单线程进行的。也就是说,当引擎对每一个possible solution进行分数计算的过程中,细化到每个步骤(Caculation),都只能排队在同一个线程中依次计算,不管你的问题是否存在并行计算的可能。很显示这种运算方式应用于一些可并行计划的场景下,是相当不利的。就算是一些在业务逻辑上无...原创 2018-10-12 00:17:36 · 432 阅读 · 0 评论 -
Optaplanner规划引擎的工作原理及简单示例(2)
开篇 在前面一篇关于规划引擎Optapalnner的文章里(Optaplanner规划引擎的工作原理及简单示例(1)),老农介绍了应用Optaplanner过程中需要掌握的一些基本概念,这些概念有助于后面的内容的理解,特别是关于将约束应用于业务规则上的理解。承上一文,在本篇中将会减少一些理论,而是偏向于实践,但过程中,借助实际的场景对一些相关的理论作一些更细致的说明,也是必要的。本...原创 2018-08-01 09:32:17 · 1933 阅读 · 4 评论 -
Excel与Google Sheets中实现线性规划求解
很久没更新过APS系列文章了,这段时间项目工作确实非常紧,所以只能抽点时间学习一下运筹学的入门知识,算是为以后的APS项目积累点基础。看了一些运筹学的书(都是科普级别的)发现原来我目前面对的很多排产、排班、资源分配和路线规划问题,都是运筹学上的典型案例。与此同时,除了继续使用Optaplanner来做我们的规划类项目外,还花点时间去研究了一下Google OR-Tools开源规划引...原创 2019-01-22 00:07:49 · 1531 阅读 · 0 评论 -
人工智能包括约束求解器吗?
以下是翻译Optaplanner创始人Geoffrey De Smet的一篇文章《Does A.I. include constraint solvers?》。 因为英语及中文表达习惯的差异,以该博文发表示Optaplanner官网,其描述的问题及概念具有一定的上下文关联性;因此,为了认还不太熟悉Optaplanner的同学更容易理解,令文章更符合中文母语读者的阅读习惯,我并没有完全按字...翻译 2018-08-17 00:43:12 · 730 阅读 · 0 评论