第 8 章 Red Hat build of OptaPlanner on Red Hat build of Quarkus: 一个 IANA timetable 快速开始指南
本指南指导您使用 Red Hat build of OptaPlanner 智能智能(AI)创建 Red Hat build of Quarkus 应用程序的过程。您将构建 REST 应用程序,该应用程序针对领导和专业者进行了优化。
您的服务将通过 AI 遵循以下硬和软 调度限制,自动将附件实例分配给 Timeslot
和 Room
实例:
- 空间最多可以同时有一个小时间。
- 一个架构师可以同时参与一个小时间。
- 每天最多可同时参与一个小时间。
- 交互式人员更喜欢在单个房间参与。
- 指导人员更喜欢参与较少的活动,并排解少量间的差距。
mathematly 认为是 NP 硬性问题。这意味着难以扩展。只需将所有可能的组合与括号一起进行迭代,在非平量数据集中,即使是超级计算器,则需要几十年的时间。AI 的约束程序(如红帽构建的 OptaPlanner)具有以合理的时间提供接近优化解决方案的高级算法。认为是合理的时间,这取决于您的问题的目标。
先决条件
- 已安装 OpenJDK 11 或更高版本。Red Hat build of Open JDK 位于红帽客户门户网站中的 Software Downloads 页面中(需要登录)。
- 已安装 Apache Maven 3.6 或更高版本。Maven 可从 Apache Maven 项目网站 获得。
- 提供了 IDE,如 IntelliJ IDEA、VSCode、Ecli 或 NetBeans。
8.1. 创建 IANA timetable 项目 复制链接链接已复制到粘贴板!
Evolution timetable 项目可让您使用 Apache Maven 和 Quarkus Maven 插件构建 OptaPlanner 和 Quarkus 应用程序来启动和运行。
如果您希望,您可以创建一个 Quakus OptaPlanner 项目,如 第 7 章 OptaPlanner 和 Quarkus 入门 所述。
流程
在命令终端中,输入以下命令验证 Maven 是否使用 JDK 11,并且 Maven 版本是否为 3.6 或更高版本:
mvn --version
mvn --version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果上述命令没有返回 JDK 11,请将 JDK 11 的路径添加到 PATH 环境变量中,然后再次输入上述命令。
要生成项目,请输入以下命令之一:
注意不支持 Apple macOS 和 Microsoft Windows。
如果您使用 Linux 或 Apple macOS,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令在
./optaplanner-quickstart
目录中创建以下元素:- Maven 结构
-
src/main/docker
中的Dockerfile
文件示例 应用程序配置文件
Expand 表 8.1. mvn io.quarkus:quarkus-maven-plugin:1.11.6.Final-redhat-00001:create 命令中使用的属性 属性 描述 projectGroupId
项目的组 ID。
projectArtifactId
项目的工件 ID。
extensions
用于此项目的 Quarkus 扩展列表。如需 Quarkus 扩展的完整列表,请在命令行中输入
mvn quarkus:list-extensions
。platformGroupId
目标平台的组 ID。
platformVersion
要使用的平台版本。
noExamples
创建带有项目结构的项目,但没有测试或类。
projectGroupID
和projectArtifactID
属性的值用于生成项目版本。默认项目版本为1.0.0-SNAPSHOT
。platformGroupId
和platformVersion
属性的值供quarkus-universe-bom
用于管理项目依赖项。
创建目录结构后,在文本编辑器中打开
optaplanner-quickstart/pom.xml
文件,并检查文件的内容以确保它包含以下元素:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quarkus BOM 导入到
pom.xml
文件中。因此,您不需要在pom.xml
文件中列出单个 Quarkus 依赖项的版本。查看
pom.xml
文件中的quarkus-resteasy
依赖项。通过这个依赖项,您可以开发 REST 应用程序:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow