第 3 章 红帽构建的 OptaPlanner 简介

OptaPlanner 是一个轻量级、可嵌入的规划引擎,可优化计划问题。它有助于更有效地解决规划问题,并将优化 heuristics 和 metaheuristics 与非常有效的分数计算相结合。

例如,OptaPlanner 帮助解决各种用例:

  • employee/Patient Rosters :这有助于为 nurses 创建时间表,并跟踪病人人的管理。
  • 教育 时间表:它有助于安排课程、课程、考试和会议演示。
  • Shop Schedules :它跟踪 car assembly 行、机器队列规划和工作人员任务规划。
  • Cutting Stock :通过减少纸张和钢材等消耗来最小化浪费。

每个机构都面临规划问题;也就是说,它们为产品和服务提供有限的资源集合(员工、资产、时间和金)。

OptaPlanner 是 Apache 软件许可证 2.0 下的开源软件。它是 100% 纯 Java,可在大多数 Java 虚拟机(JVM)上运行。

3.1. 后向兼容性

OptaPlanner 分隔 API 和实现:

  • 公共 API :软件包命名空间 org.optaplanner.core.apiorg.optaplanner.benchmark.apiorg.optaplanner.test.api 和 org.optaplanner.persistence.api 和 org.optaplanner.persistence.api 中的 100% 在将来的次版本和补丁版本中向后兼容。在个别情况下,如果主版本号有变化,一些特定的类可能会有一些向后兼容的更改,但这些更改将在升级方法中明确记录。https://www.optaplanner.org/download/upgradeRecipe/
  • XML 配置 : XML 解析器配置对所有元素向后兼容,但需要使用非公共 API 类的元素除外。XML solver 配置由软件包命名空间中的 org.optaplanner.core.configorg.optaplanner.benchmark.config 中定义的类定义。
  • 实施类 :所有其他类 不向后兼容。它们将在以后的主发行版本或次版本中改变。升级方法描述了 相关的更改,以及如何在升级到更新的版本时解决它们。