第 17 章 Red Hat build of OptaPlanner on Spring Boot: a tutorial timeable quick start 指南
本指南指导您完成使用 OptaPlanner 的约束创建 Spring Boot 应用程序的过程,用于解决人工智能(AI)。您将构建一个 REST 应用程序,为教育人员和教员优化一个生存时间。

您的服务将使用 AI 自动将 lesson 实例分配给 Timeslot
和 Room
实例,以遵循以下硬和软 调度限制 :
- 房间最多可以有一门。
- 教员可以在大多数课程同时进行指导。
- 学员最多可同时参加一门课程。
- 教员更喜欢在单一房间发言。
- 教师希望检测后续课程和课程之间的差别。
以数学方式说,中型时间稳定是一个 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 的可完成时间示例,请从红帽客户门户网站下载初学者应用程序。
流程
进入红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉菜单中选择产品和版本:
- 产品: 红帽构建的 OptaPlanner
- Version: 8.38
- 下载 红帽构建的 OptaPlanner 8.38 快速入门。
提取
rhbop-8.38.0-optaplanner-quickstarts-sources.zip
文件。提取的
org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/use-cases/school-timetabling
目录包含示例源代码。-
导航到
org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/use-cases/school-timetabling
目录。 -
下载 红帽构建的 OptaPlanner 8.38.0 Maven Repositroy (
rhbop-8.38.0-optaplanner-maven-repository.zip
)。 -
提取
rhbop-8.38.0-optaplanner-maven-repository.zip
文件。 -
将
rhbop-8.38.0-optaplanner/maven-repository
子目录的内容复制到~/.m2/repository
目录中。 -
导航到
org.optaplanner.optaplanner-quickstarts-8.38.0.Final-redhat-00004/ technical/java-spring-boot
目录。 输入以下命令构建 Spring Boot school timetabling 项目:
mvn clean install -DskipTests
要构建 Spring Boot CLASS timetabling 项目,请输入以下命令:
mvn spring-boot:run -DskipTests
要查看项目,请在网页浏览器中输入以下 URL:
http://localhost:8080/