部署指南#
路线优化
概述#
路线优化工作流演示了如何使用 NVIDIA cuOpt 作为托管服务,其中包含示例数据和一个 Python 瘦客户端,以展示如何与此服务交互并发送请求以求解路线。
本部署指南将引导您完成访问服务和运行工作流的过程,包括有关所用各种组件的信息,以及是否需要进一步定制。
注意
此示例仅供参考,不应用于生产部署。这些工作流的生产实施应进行定制,并与您的企业级基础设施和软件集成,并且应部署在 NVIDIA AI Enterprise 支持的平台上。
注意
每位用户都有责任检查第三方软件的内容和适用许可,并确定它们是否适合预期用途。
- 数据预处理
导入原始数据后,我们需要构建一个成本矩阵,该矩阵表示从优化问题中的一个位置到另一个位置的遍历成本。在此 VRP 用例中,成本是从一个位置到另一个位置的旅行时间。此矩阵是 cuOpt 用来评估给定解决方案质量的依据,因为它旨在最大限度地降低总成本。成本矩阵是一个方阵,其维度等于给定问题中位置的数量。有几种外部工具和 API 可用于构建此成本矩阵。在此工作流中,我们为您提供了一个成本矩阵。此成本矩阵是使用 Esri 的 OD 成本矩阵工具构建的,并保存在 csv 文件中,我们将其与上面提到的三个数据集一起导入。数据预处理部分的其余部分包括将数据建模为整数数组,这是 cuOpt 求解器接受的输入格式。这包括通过为每个位置分配索引来编码位置,以及将时间窗口从 UTC 时间戳转换为纪元时间。然后,数据存储在字典中,这些字典通过 json 请求发送到求解器。
- 路线映射
在调用 cuOpt 求解器以获取优化路线后,最后一步是获取驾驶方向并映射路线。这可以使用第三方工具完成。在此工作流中,我们将使用开源路线规划引擎 (OSRM) 来完成此操作。为此,我们解析求解器响应,其中包括路线的位置,将位置索引转换为坐标点,然后映射路线,其中包括有关如何从一个站点到达下一个站点的驾驶方向。
环境设置#
要运行此工作流,请确保您已完成 cuOpt 云服务的快速入门指南中的步骤 1-4。完成这些步骤后,继续执行以下环境设置步骤。
首先,打开一个新的终端窗口,并激活先前从快速入门指南创建的 python 虚拟环境。
source cuopt-service-env/bin/activate
接下来,让我们安装运行示例笔记本所需的所有其他库和依赖项。
通过运行命令创建一个名为“requirements.txt”的文件。这将在您的终端窗口中创建并打开一个新的文本文件。
nano requirements.txt
复制并粘贴以下内容
1jupyterlab 2pandas 3requests 4folium 5polyline 6scipy 7matplotlib 8wheel 9ipywidgets
重要
这些是运行工作流笔记本所需的所有库和依赖项。
保存并退出文件。
要安装此文件中列出的所有内容,请运行以下命令
pip install -r requirements.txt
注意
这相当于为每个要求运行“pip install”命令。
运行笔记本#
从 NGC 目录下载笔记本
将下载的文件解压缩到当前工作目录中。
启动 JupyterLab 并运行笔记本。为此,请运行以下命令
jupyter lab --ip=0.0.0.0 --no-browser --allow-root --NotebookApp.token='' --NotebookApp.base_url='/notebook/'
在您的 Jupyter 环境中,您将看到以下目录
进入“route-optimization-service”文件夹以查看示例笔记本和数据集。按照每个笔记本中的说明完成每个用例的路线优化工作流。
注意
您可以使用 Shift + Enter 组合键来执行笔记本中的单元格。