首页
学习
活动
专区
圈层
工具
发布

OptaPlanner笔记1

1.1 什么是OptaPlanner 每个组织都面临规划问题:为产品或服务提供有限的受约束的资源(员工、资产、时间和金钱)。OptaPlanner用来优化这种规划,以实现用更少的资源来做更多的业务。...OptaPlanner可以帮助Java程序员有效地解决约束满足问题。它使用非常有效的得分计算,将优化启发式和元启发式算法结合在一起。...通过使用先进的优化算法,OptaPlanner 可以在合理的时间内为这类规划问题找到接近最优的解决方案。...OptaPlanner支持多种优化算法,可以有效地处理大量可能方案。 根据用例的不同,某些优化算法的性能优于其他算法,但无法提前判断。...使用 OptaPlanner,只需几行XML或代码来修改求解器的配置,即可轻松切换优化算法。

98631
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OptaPlanner - 把example运行起来

    经过上面篇长篇大论的理论之后,在开始讲解Optaplanner相关基本概念及用法之前,我们先把他们提供的示例运行起来,好先让大家看看它是如何工作的。...解压: 下载回来的压缩包“optaplanner-distribution-7.6.0.Final.zip”包含了Optaplanner的源码、各种包(引擎自己的核心包及其依赖包)、说明文件和示例及其源码...但其实在他们的Github中提供了更多的示例,有兴趣的同学可以关注一下Github上optaplanner项目的leader Geoffrey De Smit,他现在是Optaplanner项目的头儿,...也是Optaplanner的作者,10多年前他开发了Optaplanner,前些年他把它贡献给了JBoss开源社区,任这个项目的头儿。...我在使用Optaplanner做项目的时候,他们的讨论组上向他提过一些问题,他为人相当nice且有耐心,给我解答了不少问题。

    1.9K50

    OptaPlanner的新约束表达方式 Constraint Streams

    对OptaPlanner有初步认识都清楚,我们使用OptaPlanner规划建模时,需要在模型中表达一系列约束,以描述各个业务实体的约束和规划的优化目标。...我们知道在OptaPlanner里,评分通常都是负数,表示惩罚一个行为,令引擎找出尽可能规避这种行为的方案。示例中使用了Java的Stream功能进行判断和过滤。...上述代码可以看到,我们只需要对ConstraintFactory的对象factory进行Stream操作,一步即可完成判断、过滤和惩罚三个操作,完成这些操作后会得到一个操作过的Contraint对象,返回该对象即可...但是对于一些更复杂的判断,其实现步骤与模式也一样,只不过需要编写一些更复杂的Lambda表达式来进行判断、过滤和各种运算。...因此,可以看到,factory除了过from操作获得所有Process对象,通过filter对Process进行过滤,通过penalize进行计分外。

    1.6K30

    OptaPlanner - 从探究示例中的hello world 初步认识规划引擎的运行步骤

    一、推荐使用Maven   在上一篇,我们已经从Optaplanner的官网下载了它的压缩包,它里面几乎包含了Optaplanner的所有东西,基本上有了这个包,我们离线都可以做一个应用Optaplanner...如果Optaplanner引擎有版本更新了,你又想使用的话,那只能重新下载、配置。所以,现在Optaplanner官网通常都是推荐通过Maven的方式来建议项目。...二、Optaplanner的Hello word    这一篇里面我们就从Optaplanner所有示例程序中的“Hello word”开始,因为Optaplanner面对的是规则问题,所以并没办法像学习一门新语言的入门教程一下...Import对话框中,选择"Existing Maven Projects",(可以在Select an import wizard下面的文档框中输入maven来快速定位你们导入的项目,输入maven,就会过滤出...这个就是Optaplanner最基本的入门示例了。

    1.8K30

    探究Optaplanner示例,初步认识规划引擎的运行步骤

    一、推荐使用Maven   在上一篇,我们已经从Optaplanner的官网下载了它的压缩包,它里面几乎包含了Optaplanner的所有东西,基本上有了这个包,我们离线都可以做一个应用Optaplanner...如果Optaplanner引擎有版本更新了,你又想使用的话,那只能重新下载、配置。所以,现在Optaplanner官网通常都是推荐通过Maven的方式来建议项目。...二、Optaplanner的Hello word    这一篇里面我们就从Optaplanner所有示例程序中的“Hello word”开始,因为Optaplanner面对的是规则问题,所以并没办法像学习一门新语言的入门教程一下...Import对话框中,选择"Existing Maven Projects",(可以在Select an import wizard下面的文档框中输入maven来快速定位你们导入的项目,输入maven,就会过滤出...这个就是Optaplanner最基本的入门示例了。

    2.6K30

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

    我们在利用OptaPlanner的Real-Time planning(实时规则)功能,设计实时在线规划服务时,遇到一个属于OptaPlanner7.8.0.Final版本的Bug。...在本文我着重介绍一下,我在尝试使用OptaPlanner的Real-Time Planning功能时遇到的问题,最终确认问题出自OptaPlanner引擎自身, 并通过JIRA向OptaPlanner...关于OptaPlanner的Real-time planning   先看看正常情况下,我们对OptaPlanner的应用场景。...然后我就把这个问题的重现步骤在OptaPlanner项目的JIRA中提交了一个issue,不知道这算不算我给OptaPlanner作出的一点点贡献呢,期待处理结果呀。   ...现在办法有两个,一个是等OptaPlanner团队在JIRA上对我提交的issue进行处理,看是不是真的在OptaPlanner中存在这么一个Bug.

    1.4K00

    Java17,有史以来最快 JDK

    410:删除实验性 AOT 和 JIT 编译器 411:弃用即将删除安全管理器 412:外部函数和内存 API(孵化器) 414:Vector API(第二次进行特性孵化) 415:特定于上下文的反序列化过滤器...对此,OptaPlanner网站做了一项基准测试:Java到底有多快?通过比较 JDK 17、JDK 16 和 JDK 11 来告诉你答案。...Main class:org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp 来自optaplanner-examplesOptaPlanner...每次运行都使用 OptaPlanner 解决 11 个规划问题,例如 员工排班、 学校时间表和云优化。每个规划问题运行 5 分钟。日志记录设置为INFO。...结论 总而言之,JDK17 的性能表现还是非常值得升级的,至少于OptaPlanner Demo 而言。 此外,这些用例最快的垃圾收集器仍然是ParallelGC, 而不是G1GC(默认)。

    2.2K20

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

    开篇 在前面一篇关于规划引擎OptaPlanner的文章里(OptaPlanner规划引擎的工作原理及简单示例(1)),老农介绍了应用OptaPlanner过程中需要掌握的一些基本概念,这些概念有助于后面的内容的理解...按OptaPlanner规范建模 要使用OptaPlanner规划引擎,就需要按它的要求建立对应的模型,包括各种类及其关系。...; import org.optaplanner.core.api.domain.solution.PlanningScore; import org.optaplanner.core.api.domain.solution.PlanningSolution...其实我们还是缺了一块,那就是OptaPlanner的配置,因为需要创建OptaPlanner的引擎对象进行规划的时候,是有一大堆参数需要指定给引擎的。...另外帮OptaPlanner老大Geoffrey推广一下,望大家多多关注OptaPlanner -

    4.4K11
    领券