第 12 章 Red Hat build of OptaPlanner on Spring Boot: a school timetable quick start Guide
本指南指导您了解使用 OptaPlanner 的约束解决 artificial 智能(AI)的 Spring Boot 应用程序的过程。您将构建一个 REST 应用程序,针对学生和老师优化院校时间。
您的服务会自动将 Lesson
实例分配给 Timeslot
和 Room
实例,方法是使用 AI 遵循以下硬和软 调度限制 :
- 个空间最多可以同时有一处。
- 老师可以同时在上课时进行教学。
- 学员最多可以同时参加。
- 教授者更倾向于在单一房间学习。
- 指导者更倾向于在课间学习顺序课时和不类差距。
数学会上讲,该学校的时间范围是一个 NP-hard 问题。这意味着很难扩展。只需将所有可能的组合与括号一起进行迭代,可以在非平量数据集中使用数百万年,即使在超级计算器上也是如此。幸运的是,AI 约束解决诸如 OptaPlanner 等高级算法具有在合理的时间内提供最接近的解决方案。被视为有合理的时间,它取决于问题的目标。
先决条件
- 安装了 OpenJDK 11 或更高版本。红帽构建的 Open JDK 可从红帽客户门户网站的 Software Downloads 页面获取(需要登录)。
- 已安装 Apache Maven 3.6 或更高版本。Maven 可以从 Apache Maven Project 网站获得。
- 提供了 IDE,如 IntelliJ IDEA、VS Code、Ecli 或 NetBeans。
12.1. 下载并构建 Spring Boot school 快速入门
要查看红帽使用 Spring Boot 产品构建 OptaPlanner 的 school 时间项目的已完成示例,请从红帽客户门户网站下载入门应用程序。
流程
进入红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉列表中选择产品和版本:
- 产品 : 流程自动化管理器
- Version: 7.13.2
-
下载 Red Hat Process Automation Manager 7.13.2 Kogito 和 OptaPlanner 8 Decision Services Quickstarts (
rhpam-7.13.2-kogito-and-optaplanner-quickstarts.zip
)。 -
提取
rhpam-7.13.2-kogito-and-optaplanner-quickstarts.zip
文件。 -
下载 Red Hat Process Automation Manager 7.13.2 Kogito 和 OptaPlanner 8 Decision Services Maven Repositroy (
rhpam-7.13.2-kogito-maven-repository.zip
)。 -
提取
rhpam-7.13.2-kogito-maven-repository.zip
文件。 -
将
rhpam-7.13.2-kogito-maven-repository/maven-repository
子目录的内容复制到~/.m2/repository
目录中。 -
进入
optaplanner-quickstarts-8.13.0.Final-redhat-00013/Tech/java-spring-boot
目录。 输入以下命令来构建 Spring Boot school timetabling 项目:
mvn clean install -DskipTests
要构建 Spring Boot school timetabling 项目,请输入以下命令:
mvn spring-boot:run -DskipTests
要查看项目,在网页浏览器中输入以下 URL:
http://localhost:8080/