第 17 章 Red Hat build of OptaPlanner on Spring Boot: a tutorial timeable quick start 指南


本指南指导您完成使用 OptaPlanner 的约束创建 Spring Boot 应用程序的过程,用于解决人工智能(AI)。您将构建一个 REST 应用程序,为教育人员和教员优化一个生存时间。

研究所学会的解决方案

您的服务将使用 AI 自动将 lesson 实例分配给 TimeslotRoom 实例,以遵循以下硬和软 调度限制

  • 房间最多可以有一门。
  • 教员可以在大多数课程同时进行指导。
  • 学员最多可同时参加一门课程。
  • 教员更喜欢在单一房间发言。
  • 教师希望检测后续课程和课程之间的差别。

以数学方式说,中型时间稳定是一个 NP-hard 的问题。这意味着扩展比较困难。简单地迭代所有带有 brute 强制的可能组合,即使是超级计算机,则需要数百万年时间。satisfy, AI 约束解析器(如 OptaPlanner)具有在合理的时间内提供接近最佳解决方案的高级算法。认为是合理的时间,这取决于您的问题的目标。

先决条件

  • 已安装了 OpenJDK 11 或更高版本。红帽构建的 Open JDK 可通过红帽客户门户网站中的 Software Downloads 页面(需要登录)。
  • Apache Maven 3.8 或更高版本已安装。Maven 位于 Apache Maven Project 网站。
  • 提供了 IDE,如 IntelliJ IDEA、VSCode 或 Eclipse。

17.1. 下载并构建 Spring Boot school timetable 快速启动

如果您要看到红帽构建的带有 Spring Boot 产品的 OptaPlanner 的可完成时间示例,请从红帽客户门户网站下载初学者应用程序。

流程

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

    • 产品: 红帽构建的 OptaPlanner
    • Version: 8.38
  2. 下载 红帽构建的 OptaPlanner 8.38 快速入门
  3. 提取 rhbop-8.38.0-optaplanner-quickstarts-sources.zip 文件。

    提取的 org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/use-cases/school-timetabling 目录包含示例源代码。

  4. 导航到 org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/use-cases/school-timetabling 目录。
  5. 下载 红帽构建的 OptaPlanner 8.38.0 Maven Repositroy (rhbop-8.38.0-optaplanner-maven-repository.zip)。
  6. 提取 rhbop-8.38.0-optaplanner-maven-repository.zip 文件。
  7. rhbop-8.38.0-optaplanner/maven-repository 子目录的内容复制到 ~/.m2/repository 目录中。
  8. 导航到 org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/ technical/java-spring-boot 目录。
  9. 输入以下命令构建 Spring Boot school timetabling 项目:

    mvn clean install -DskipTests
  10. 要构建 Spring Boot CLASS timetabling 项目,请输入以下命令:

    mvn spring-boot:run -DskipTests
  11. 要查看项目,请在网页浏览器中输入以下 URL:

    http://localhost:8080/
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.