第 12 章 Spring Boot 上的 OptaPlanner:一个可写入时间的快速启动指南


本指南指导您完成创建带有 OptaPlanner 约束(AI)的 Spring Boot 应用程序的过程。您将构建 REST 应用程序,该应用程序针对领导和专业者进行了优化。

您的服务将通过 AI 遵循以下硬和软 调度限制,自动将附件实例分配给 TimeslotRoom 实例:

  • 空间最多可以同时有一个小时间。
  • 一个架构师可以同时参与一个小时间。
  • 每天最多可同时参与一个小时间。
  • 交互式人员更喜欢在单个房间参与。
  • 指导人员更喜欢参与较少的活动,并排解少量间的差距。

mathematly 认为是 NP 硬性问题。这意味着难以扩展。只需将所有可能的组合与括号一起进行迭代,可以在非平量数据集中使用数百万年,即使在超级计算器上也是如此。AI 约束解析器(如 OptaPlanner)有高级算法,可在合理的时间内提供最接近的解决方案。认为是合理的时间,这取决于您的问题的目标。

先决条件

  • 已安装 OpenJDK 11 或更高版本。Red Hat build of Open JDK 位于红帽客户门户网站中的 Software Downloads 页面中(需要登录)。
  • 已安装 Apache Maven 3.8 或更高版本。Maven 可从 Apache Maven 项目网站 获得。
  • 提供了 IDE,如 IntelliJ IDEA、VSCode、Ecli 或 NetBeans。

如果要看到带有 Spring Boot 产品的 OptaPlanner 的 SVVP timetable 项目的完整示例,请从红帽客户门户网站下载入门程序应用程序。

流程

  1. 导航到红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉菜单中选择产品和版本:

    • 产品: 红帽构建的 OptaPlanner
    • Version: 8.29
  2. 下载 Red Hat Build of OptaPlanner 8.29 Quick Starts
  3. 提取 rhbop-8.29.0-red_hat_build_of_optaplanner-quickstarts-sources.zip 文件。

    解压的 org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-quickstarts-8.29.0.Final-redhat-00009/use-cases/DSL-timetabling 目录包含示例源代码。

  4. 进入 org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-quickstarts-8.29.0.Final-redhat-00009/use-cases/ASP-timetabling 目录。
  5. 下载 Red Hat Build of OptaPlanner 8.29.0 Maven Repositroy (rhbop-8.29.0-red_hat_build_of_optaplanner-maven-repository.zip)。
  6. 提取 rhbop-8.29.0-red_hat_build_of_optaplanner-maven-repository.zip 文件。
  7. rhbop-8.29.0-red_hat_build_of_optaplanner/maven-repository 子目录的内容复制到 ~/.m2/repository 目录中。
  8. 进入 org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-quickstarts-8.29.0.Final-redhat-00009/certification/java-spring-boot 目录。
  9. 输入以下命令来构建 Spring Boot eXecut timetabling 项目:

    mvn clean install -DskipTests
    Copy to Clipboard Toggle word wrap
  10. 要构建 Spring Boot phone 时间建立项目,请输入以下命令:

    mvn spring-boot:run -DskipTests
    Copy to Clipboard Toggle word wrap
  11. 要查看项目,请在 Web 浏览器中输入以下 URL:

    http://localhost:8080/
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat