• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 開發與優化

    使用開源 NVIDIA cuOpt 加速決策優化

    企業每天都會做出成千上萬的決策,包括生產什么、在哪里發貨、如何分配資源。大規模優化這些決策成為一項計算挑戰。線性規劃 (LP)混合整數規劃 (MIP)車輛路線規劃問題 (VRP) 提供了結構,但快速解決這些問題是瓶頸開始的地方。

    NVIDIA cuOpt 為決策優化帶來 GPU 加速,可大幅加速現實世界中的 LP、MIP 和 VRP 工作負載。cuOpt 現已在 Apache 2.0 許可下以開源形式提供,使您能夠比以往更輕松地在本地或云端工作流中采用、調整和擴展優化。

    對于開發者來說,最棒的部分是幾乎為零的建模語言更改。您可以將 cuOpt 應用到使用 PuLPAMPL 構建的現有模型中,并且只需進行最少的重構。它快速、靈活,可隨時用于實驗或生產。

    想要大規模查看 cuOpt 的實際應用情況?查看“強效助力優化:Artelys 如何由 FICO 和 NVIDIA 提供支持,展示了 cuOpt 在大規模單元占用問題上實現高達 20x 速度提升的作用。”

    本文將介紹 cuOpt 如何在 PuLP 和 AMPL 等建模語言中,以幾乎為零的變化求解 LP 和 MIP。您將學習如何:

    • 只需幾分鐘即可在本地或云端通過 Python、REST API 或 CLI 開始使用開源 cuOpt 優化
    • 使用 cuOpt GPU 加速解決 VRP 問題

    真實用例:大規模咖啡物流

    想象一下全球咖啡連鎖店。每家商店每年需要數千包豆子。豆類經過采購、烘焙、包裝和運輸,每個階段都受到設施容量和動態需求的限制。如果烘焙工廠突然離線,供應鏈必須立即重新調配訂單并重新分配供應商。

    添加交付?現在,您可以跨變更訂單和時間窗口引導駕駛員,同時遵守勞動規則和shift limits

    這些是現實世界中的 LP、MIP 和 VRP 問題,而且它們在計算上難以快速解決。cuOpt 專為應對這種復雜性而構建。

    快速開始:在幾分鐘內解決您的第一個問題

    無論您是要優化供應鏈、安排生產還是規劃交付路線,cuOpt 都能提供多種快速入門方法。

    cuOpt 服務器

    此選項最適合 LP、MIP 和通過 REST 的 VRP。啟動支持所有問題類型的 REST API 服務器。

    通過 pip 安裝:

    pip install --extra-index-url=https://pypi.nvidia.com cuopt-server-cu12==25.5.* cuopt-sh==25.5.*

    使用 Docker 運行 (包括 REST 和 client):

    docker run --gpus all -it --rm -p 8000:8000 -e CUOPT_SERVER_PORT=8000 nvidia/cuopt:latest-cuda12.8-py312 python3 -m cuopt_server.cuopt_service

    Python API

    此選項最適合 VRP。使用 cuOpt 原生 Python API 進行編程控制和集成:

    pip install --extra-index-url=https://pypi.nvidia.com cuopt-cu12==25.5.*

    命令行界面

    此選項最適合對 LP 和 MIP 進行基準測試。如果您有 MPS 格式的模型,請使用命令行界面 (CLI) 進行基準測試和自動化。

    運行基準模型:

    wget https://plato.asu.edu/ftp/lptestset/ex10.mps.bz2
    bunzip2 ex10.mps.bz2
    ./cuopt_cli ex10.mps

    此示例在 0.3 秒內解決了 NVIDIA H100 Tensor Core GPU 上具有超過 69 K 約束和 17 K 變量的 LP。

    在云端試用 cuOpt

    沒有本地 GPU?您可以從瀏覽器或在持久云環境中運行 cuOpt。

    特征 Google Colab ?
    設置 一鍵啟動
    GPU 訪問 是 (有限,免費) 是 (完整的 GPU 實例)
    持久性環境
    預加載配置 手動 自動
    優化使用 演示和快速測試 完整的開發工作流程
    表 1。用于運行 cuOpt 的云部署選項:Colab 與 Launchable

    模型更改最少:AMPL 和 PuLP 中的 LP 和 MIP

    cuOpt 與 AMPL 和 PuLP 等建模語言集成。只需切換 solver,無需重寫。

    示例 1:AMPL 和 cuOpt

    ./ampl
    var x >= 0;
    var y >= 0;
    maximize objective: 5*x + 3*y;
    subject to c1: 2*x + 4*y >= 230;
    subject to c2: 3*x + 2*y <= 190;
    option solver cuoptmp;
    solve;
    display x, y;

    要切換到 MIP,請將變量聲明為 integer

    示例 2:PuLP 和 cuOpt

    import pulp
    model = pulp.LpProblem("Maximize", pulp.LpMaximize)
    x = pulp.LpVariable('x', lowBound=0)
    y = pulp.LpVariable('y', lowBound=0)
    model += 5*x + 3*y, "obj"
    model += 2*x + 4*y >= 230
    model += 3*x + 2*y <= 190
    model.solve(pulp.CUOPT())

    切換到 MIP:

    x = pulp.LpVariable('x', lowBound=0, cat="Integer")
    y = pulp.LpVariable('y', lowBound=0, cat="Integer")

    使用 cuOpt 客戶端解決 VRP 問題

    cuOpt 通過 Python 或 REST 使用結構化 JSON 輸入求解 VRPs:

    工作流程示例:

    from cuopt_sh_client import CuOptServiceSelfHostClient
    import json
     
    cuopt_service_client = CuOptServiceSelfHostClient(ip="localhost", port=5000)
    optimized_routes = cuopt_service_client.get_optimized_routes(json_data)
    print(json.dumps(optimized_routes, indent=4))

    如需了解更多信息,請訪問 GitHub 上的 NVIDIA/cuopt-examples

    輸出示例:

    "num_vehicles": 2,
    "solution_cost": -435.0,
    "vehicle_data": {
      "Car-A":  {"task_id": [...],"arrival_stamp": [...]},
      "Bike-B": {"task_id": [...],"arrival_stamp": [...]}
    },
    "total_solve_time": 10.7

    cuOpt 是物流或調度系統的理想選擇,可返回經過優化的路線、成本和任務級別的任務。

    開始使用開源優化

    了解如何開始使用 NVIDIA cuOpt,將 GPU 加速引入現有的優化堆棧 – 無需供應商鎖定,無需重寫,只需更快地解決即可。此優化采用 GPU 原生、開發者優先且專為擴展而構建。主要優勢包括:

    • 速度:借助 GPU 加速,將解決 LP/MIP/VRP 問題的速度提高 10 倍到 5,000 倍
    • 簡便性:插入到 PuLPAMPL 等建模語言中,且更改最少
    • 靈活性選擇適合的接口 – REST、Python 或 CLI
    • 模塊化:適用于您的堆棧,可根據您的需求進行擴展
    • 開放Apache 2.0 許可,包含 GitHub 資源庫示例文檔 – 開箱即用或 fork,可針對您的域進行自定義
    • 隨時可用:立即在 Google ColabNVIDIA Launchable 中啟動
    • 支持:借助 NVIDIA AI Enterprise 在生產環境中運行 – 包括安裝協助、升級和專家支持

    NVIDIA cuOpt 現在也可在開源運營研究工具中心的 coin-or/cuopt GitHub 庫中使用。在此之前,COIN-OR 和 NVIDIA 最近宣布了合作,進一步增強了優化開發者的生態系統。作為 COIN-OR 的一部分,cuOpt 可以更輕松地發現、擴展,并與其他開源求解器一起使用。

    加入開源社區,借助完全可控性和靈活性,幫助塑造實時、智能決策優化的未來。

    ?

    0

    標簽

    人人超碰97caoporen国产