部署指南#

路线优化

概述#

路线优化工作流演示了如何使用 NVIDIA cuOpt 作为托管服务,其中包含示例数据和一个 Python 瘦客户端,以展示如何与此服务交互并发送请求以求解路线。

本部署指南将引导您完成访问服务和运行工作流的过程,包括有关所用各种组件的信息,以及是否需要进一步定制。

注意

此示例仅供参考,不应用于生产部署。这些工作流的生产实施应进行定制,并与您的企业级基础设施和软件集成,并且应部署在 NVIDIA AI Enterprise 支持的平台上。

注意

每位用户都有责任检查第三方软件的内容和适用许可,并确定它们是否适合预期用途。

数据预处理

导入原始数据后,我们需要构建一个成本矩阵,该矩阵表示从优化问题中的一个位置到另一个位置的遍历成本。在此 VRP 用例中,成本是从一个位置到另一个位置的旅行时间。此矩阵是 cuOpt 用来评估给定解决方案质量的依据,因为它旨在最大限度地降低总成本。成本矩阵是一个方阵,其维度等于给定问题中位置的数量。有几种外部工具和 API 可用于构建此成本矩阵。在此工作流中,我们为您提供了一个成本矩阵。此成本矩阵是使用 Esri 的 OD 成本矩阵工具构建的,并保存在 csv 文件中,我们将其与上面提到的三个数据集一起导入。数据预处理部分的其余部分包括将数据建模为整数数组,这是 cuOpt 求解器接受的输入格式。这包括通过为每个位置分配索引来编码位置,以及将时间窗口从 UTC 时间戳转换为纪元时间。然后,数据存储在字典中,这些字典通过 json 请求发送到求解器。

路线映射

在调用 cuOpt 求解器以获取优化路线后,最后一步是获取驾驶方向并映射路线。这可以使用第三方工具完成。在此工作流中,我们将使用开源路线规划引擎 (OSRM) 来完成此操作。为此,我们解析求解器响应,其中包括路线的位置,将位置索引转换为坐标点,然后映射路线,其中包括有关如何从一个站点到达下一个站点的驾驶方向。

环境设置#

要运行此工作流,请确保您已完成 cuOpt 云服务的快速入门指南中的步骤 1-4。完成这些步骤后,继续执行以下环境设置步骤。

  1. 首先,打开一个新的终端窗口,并激活先前从快速入门指南创建的 python 虚拟环境。

    source cuopt-service-env/bin/activate
    
  2. 接下来,让我们安装运行示例笔记本所需的所有其他库和依赖项。

  3. 通过运行命令创建一个名为“requirements.txt”的文件。这将在您的终端窗口中创建并打开一个新的文本文件。

    nano requirements.txt
    
  4. 复制并粘贴以下内容

    1jupyterlab
    2pandas
    3requests
    4folium
    5polyline
    6scipy
    7matplotlib
    8wheel
    9ipywidgets
    

    重要

    这些是运行工作流笔记本所需的所有库和依赖项。

  5. 保存并退出文件。

  6. 要安装此文件中列出的所有内容,请运行以下命令

    pip install -r requirements.txt
    

    注意

    这相当于为每个要求运行“pip install”命令。

运行笔记本#

  1. NGC 目录下载笔记本

    • 您可以直接通过浏览器或 NGC CLI 下载它们。

      注意

      • 要使用 NGC CLI,请按照此处的设置说明进行操作

      • 要设置 CLI,您将需要一个 NGC API 密钥。要设置您的 API 密钥,请按照此处的说明进行操作。

  2. 将下载的文件解压缩到当前工作目录中。

  3. 启动 JupyterLab 并运行笔记本。为此,请运行以下命令

    jupyter lab --ip=0.0.0.0 --no-browser --allow-root --NotebookApp.token='' --NotebookApp.base_url='/notebook/'
    
  4. 在您的 Jupyter 环境中,您将看到以下目录

  5. 进入“route-optimization-service”文件夹以查看示例笔记本和数据集。按照每个笔记本中的说明完成每个用例的路线优化工作流。

    注意

    您可以使用 Shift + Enter 组合键来执行笔记本中的单元格。