软件简介

OptaPlanner 是一款轻量级、可嵌入的规划调度引擎,100% 使用 Java 编写,可运行在任何 JVM 上。

OptaPlanner 可对商业资源规划问题进行优化,例如车辆路径规划问题(VRP)、雇员排班问题(Employee Rostering)、云计算资源调度问题(Cloud Optimization)、任务分配问题(Task Assignment)、车间调度问题(JSP) 和背包问题(Bin Packing) 等。

许多公司都面临着这样一个调度难题:分配一组有限的资源(员工、资产、时间和金钱)来提供产品或服务。OptaPlanner 做的恰好就是提供更有效的规划方案,以提高服务质量并降低成本。

OptaPlanner 让普通的 Java 工程师能够有效地解决优化问题,它还与其他 JVM 语言(如 Kotlin 和 Scala)兼容。在问题建模方面,OptaPlanner 的约束作用在普通的域对象上,且无需键入复杂的数学公式,可以重复使用现有代码。在问题求解方面,OptaPlanner 结合了许多复杂的启发式和元启发式算法(如禁忌搜索、模拟退火、逾期接受和变邻域搜索),能够提供非常有效的优化服务。

使用案例

兼容性

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (6)

加载中
listener怎么实现?为什么id获取不到problem
09/08 21:53
回复
举报
卧槽,为何看不懂
2019/02/13 16:41
回复
举报
OptaPlanner是不是还是基于 drools 的?
2019/01/29 13:47
回复
举报
这是好东西
2019/01/28 17:51
回复
举报
看着那些算法就像是人工智能
2019/01/19 10:08
回复
举报
听上去不错
2019/01/19 09:58
回复
举报
更多评论
暂无内容
发表了博客
2019/06/21 14:43

Optaplanner与Google OR-Tools的区别

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

0
0
发表了博客
2018/04/25 00:52

OptaPlanner逐步学习(0) : 基本概念 - OptaPlanner,规划问题, 约束,方案

  之前的文章中,分别从APS,排产到规划引擎叙述了一些理论基础;并介绍了一些OptaPlanner大概的情况;并一步步将Optaplanner的示例运行起来,将示例源码导进Eclipse分析了一下它的Hello world入门示例,从本篇开始,我们将分步学习它的一些概念及用法。 什么是OptaPlanner   其实这个名称是作者将这个引擎贡献给了J...

0
1
发表了博客
2019/03/14 01:29

时间规划在Optaplanner上的实现

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

0
0
发表了博客
02/26 01:12

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

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

0
0
发表了博客
2018/07/26 15:18

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

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

0
0
发表了博客
2018/06/30 23:54

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

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

0
0
发表了博客
2018/04/03 16:55

OptaPlanner - 把example运行起来(运行并浅析Cloud balancing)

  经过上面篇长篇大论的理论之后,在开始讲解Optaplanner相关基本概念及用法之前,我们先把他们提供的示例运行起来,好先让大家看看它是如何工作的。OptaPlanner的优点不仅仅是提供详细丰富的文档 ,还为各种应用场景提供丰富的示例,它的文档里都是以几个简单经典的例子来说名各种功能特征和深层次概念的,例如Solve...

0
0
发表了博客
2018/07/25 01:27

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

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

0
0
发表了博客
2018/10/12 00:02

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

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

0
0
发表了博客
2018/09/14 02:07

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

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

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
6 评论
176 收藏
分享
返回顶部
顶部