第 12 章 Spring Boot 上的 OptaPlanner:一个可写入时间的快速启动指南
本指南指导您完成创建带有 OptaPlanner 约束(AI)的 Spring Boot 应用程序的过程。您将构建 REST 应用程序,该应用程序针对领导和专业者进行了优化。
您的服务将通过 AI 遵循以下硬和软 调度限制,自动将附件实例分配给 Timeslot
和 Room
实例:
- 空间最多可以同时有一个小时间。
- 一个架构师可以同时参与一个小时间。
- 每天最多可同时参与一个小时间。
- 交互式人员更喜欢在单个房间参与。
- 指导人员更喜欢参与较少的活动,并排解少量间的差距。
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。
12.1. 下载并构建 Spring Boot phone 时间的快速开始 复制链接链接已复制到粘贴板!
如果要看到带有 Spring Boot 产品的 OptaPlanner 的 SVVP timetable 项目的完整示例,请从红帽客户门户网站下载入门程序应用程序。
流程
导航到红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉菜单中选择产品和版本:
- 产品: 红帽构建的 OptaPlanner
- Version: 8.29
- 下载 Red Hat Build of OptaPlanner 8.29 Quick Starts。
提取
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
目录包含示例源代码。-
进入
org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-quickstarts-8.29.0.Final-redhat-00009/use-cases/ASP-timetabling
目录。 -
下载 Red Hat Build of OptaPlanner 8.29.0 Maven Repositroy (
rhbop-8.29.0-red_hat_build_of_optaplanner-maven-repository.zip
)。 -
提取
rhbop-8.29.0-red_hat_build_of_optaplanner-maven-repository.zip
文件。 -
将
rhbop-8.29.0-red_hat_build_of_optaplanner/maven-repository
子目录的内容复制到~/.m2/repository
目录中。 -
进入
org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-quickstarts-8.29.0.Final-redhat-00009/certification/java-spring-boot
目录。 输入以下命令来构建 Spring Boot eXecut timetabling 项目:
mvn clean install -DskipTests
mvn clean install -DskipTests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要构建 Spring Boot phone 时间建立项目,请输入以下命令:
mvn spring-boot:run -DskipTests
mvn spring-boot:run -DskipTests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看项目,请在 Web 浏览器中输入以下 URL:
http://localhost:8080/
http://localhost:8080/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow