第 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 问题。这意味着很难扩展。简单地说,通过带有 brute 强制的可能组合将花费数百万年时间,而在超级计算机中,甚至在超级计算机中也要花费数百万年时间。幸运的是,AI 约束解决诸如 OptaPlanner 等高级算法具有在合理的时间内提供最接近的解决方案。被视为有合理的时间,它取决于问题的目标。
先决条件
- 安装了 OpenJDK 11 或更高版本。红帽构建的 Open JDK 可从红帽客户门户网站的 Software Downloads 页面获取(需要登录)。
- 已安装 Apache Maven 3.6 或更高版本。Maven 可以从 Apache Maven Project 网站获得。
- 使用 IntelliJ IDEA、VS Code、Eclipse 或 NetBeans 等 IDE。
12.1. 下载并构建 Spring Boot school 快速入门 复制链接链接已复制到粘贴板!
要查看红帽使用 Spring Boot 产品构建 OptaPlanner 的 school 时间项目的已完成示例,请从红帽客户门户网站下载入门应用程序。
流程
进入红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉列表中选择产品和版本:
- 产品: 流程自动化管理器
- 版本: 7.13.4
-
下载 Red Hat Process Automation Manager 7.13.4 Kogito 和 OptaPlanner 8 Decision Services Quickstarts (
rhpam-7.13.4-kogito-and-optaplanner-quickstarts.zip)。 -
提取
rhpam-7.13.4-kogito-and-optaplanner-quickstarts.zip文件。 -
下载 Red Hat Process Automation Manager 7.13.4 Kogito 和 OptaPlanner 8 Decision Services Maven Repositroy (
rhpam-7.13.4-kogito-maven-repository.zip)。 -
提取
rhpam-7.13.4-kogito-maven-repository.zip文件。 -
将
rhpam-7.13.4-kogito-maven-repository/maven-repository子目录的内容复制到~/.m2/repository目录中。 -
导航到
optaplanner-quickstarts-8.13.0.Final-redhat-00013/ Technology/java-spring-boot目录。 输入以下命令来构建 Spring Boot school timetabling 项目:
mvn clean install -DskipTests
mvn clean install -DskipTestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要构建 Spring Boot school timetabling 项目,请输入以下命令:
mvn spring-boot:run -DskipTests
mvn spring-boot:run -DskipTestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看项目,在网页浏览器中输入以下 URL:
http://localhost:8080/
http://localhost:8080/Copy to Clipboard Copied! Toggle word wrap Toggle overflow