原文: Nextmv Community Apps
分类: 优化决策应用示例
大小: 16 MB
语言: Go/Python/Java
📚 项目简介
community-apps 是 Nextmv 平台的预构建决策应用集合,每个应用都是独立的、可运行的示例,展示如何使用不同语言 (Go/Python/Java) 和求解器 (OR-Tools、Gurobi、HiGHS 等) 构建决策应用。这些应用可作为 Nextmv Marketplace 订阅应用的基础模板。
GitHub: https://github.com/nextmv-io/community-apps
Nextmv 平台: https://nextmv.io
文档: https://nextmv.io/docs
🔧 核心特点
| 特点 |
说明 |
| 多语言支持 |
Go、Python、Java 三大主流语言 |
| 多求解器 |
OR-Tools、Gurobi、HiGHS、CPLEX、Hexaly 等 |
| 丰富示例 |
背包、路径、调度、设施选址等 50+ 示例 |
| 独立运行 |
每个应用都可独立运行,无需 Nextmv 账号 |
| 云端就绪 |
可直接部署到 Nextmv Cloud |
| Devcontainers |
复杂示例提供开发容器配置 |
📁 目录结构
community-apps/
├── go-hello-world/ # Go 入门示例
├── go-highs-knapsack/ # Go + HiGHS 背包问题
├── go-highs-shiftscheduling/ # Go + HiGHS 排班问题
├── go-highs-orderfulfillment/ # Go + HiGHS 订单履行 (Devcontainer)
├── go-nextroute/ # Go + Nextroute 路径问题
├── java-hello-world/ # Java 入门示例
├── java-ortools-knapsack/ # Java + OR-Tools 背包 (Devcontainer)
├── java-ortools-routing/ # Java + OR-Tools 路径 (Devcontainer)
├── java-gurobi-knapsack/ # Java + Gurobi 背包
├── python-hello-world/ # Python 入门示例
├── python-ortools-knapsack/ # Python + OR-Tools 背包
├── python-ortools-routing/ # Python + OR-Tools 路径
├── python-ortools-shiftassignment/ # Python + OR-Tools 任务分配
├── python-ortools-shiftplanning/ # Python + OR-Tools 排班
├── python-ortools-costflow/ # Python + OR-Tools 成本流
├── python-gurobi-knapsack/ # Python + Gurobi 背包
├── python-ampl-knapsack/ # Python + AMPL 背包
├── python-pyomo-knapsack/ # Python + Pyomo 背包
├── python-highs-knapsack/ # Python + HiGHS 背包
├── python-cplex-knapsack/ # Python + CPLEX 背包
├── python-xpress-knapsack/ # Python + Xpress 背包
├── python-hexaly-knapsack/ # Python + Hexaly 背包 (Devcontainer)
├── python-pyvroom-routing/ # Python + PyVROOM 路径 (Devcontainer)
├── python-cuopt-routing/ # Python + NVIDIA cuOPT 路径 (GPU)
└── README.md # 主文档
🚀 快速开始
前置要求
# 1. 注册 Nextmv 账号
# https://cloud.nextmv.io
# 2. 安装 Nextmv CLI
curl -fsSL https://get.nextmv.io | bash
# 3. 登录
nextmv login
# 4. 验证安装
nextmv version
Hello World (Python)
# 进入示例目录
cd python-hello-world
# 运行应用
python main.py --input input.json
# 示例输入 (input.json)
{
"options": ["A", "B", "C"],
"scores": [85, 90, 78]
}
# 示例输出
{
"decision": {
"selected": "B",
"score": 90
}
}
cd python-ortools-knapsack
# 运行求解器
python main.py --input instance.json
# 输入格式
{
"capacity": 100,
"items": [
{"id": 1, "weight": 10, "value": 60},
{"id": 2, "weight": 20, "value": 100},
{"id": 3, "weight": 30, "value": 120}
]
}
# 输出
{
"solution": {
"selected_items": [2, 3],
"total_value": 220,
"total_weight": 50
}
}
cd python-ortools-routing
# 运行路径优化
python main.py --input locations.json
# 输入:客户位置坐标
# 输出:最优路径规划
排班问题 (Python + Pyomo)
cd python-pyomo-shiftplanning
# 运行排班优化
python main.py --input shifts.json
# 输入:班次需求、员工约束
# 输出:最优排班表
📖 示例分类
入门示例 (3 个)
| 示例 |
语言 |
说明 |
| go-hello-world |
Go |
Nextmv 平台入门 |
| java-hello-world |
Java |
Nextmv 平台入门 |
| python-hello-world |
Python |
Nextmv 平台入门 |
背包问题 (8 个)
| 示例 |
语言 |
求解器 |
| go-highs-knapsack |
Go |
HiGHS |
| java-ortools-knapsack |
Java |
OR-Tools |
| java-gurobi-knapsack |
Java |
Gurobi |
| python-ortools-knapsack |
Python |
OR-Tools |
| python-gurobi-knapsack |
Python |
Gurobi |
| python-ampl-knapsack |
Python |
AMPL |
| python-pyomo-knapsack |
Python |
Pyomo |
| python-highs-knapsack |
Python |
HiGHS |
路径优化 (7 个)
| 示例 |
语言 |
求解器 |
特点 |
| go-nextroute |
Go |
Nextroute |
Nextmv 自研 |
| java-ortools-routing |
Java |
OR-Tools |
Devcontainer |
| python-ortools-routing |
Python |
OR-Tools |
基础路径 |
| python-cuopt-routing |
Python |
NVIDIA cuOPT |
GPU 加速 |
| python-pyvroom-routing |
Python |
PyVROOM |
VRP 问题 |
| python-vroom-premium-api-routing |
Python |
VROOM API |
商业 API |
调度问题 (6 个)
| 示例 |
语言 |
求解器 |
问题类型 |
| go-highs-shiftscheduling |
Go |
HiGHS |
排班 |
| python-ortools-shiftassignment |
Python |
OR-Tools |
任务分配 |
| python-ortools-shiftplanning |
Python |
OR-Tools |
排班规划 |
| python-pyomo-shiftassignment |
Python |
Pyomo |
任务分配 |
| python-pyomo-shiftplanning |
Python |
Pyomo |
排班规划 |
高级示例 (7 个)
| 示例 |
语言 |
问题 |
特点 |
| go-highs-orderfulfillment |
Go |
订单履行 |
Devcontainer |
| python-ampl-facilitylocation |
Python |
设施选址 |
Devcontainer |
| python-ampl-priceoptimization |
Python |
价格优化 |
Devcontainer |
| python-ortools-demandforecasting |
Python |
需求预测 |
Devcontainer |
| python-hexaly-knapsack |
Python |
背包问题 |
Devcontainer |
| python-xpress-facility-location |
Python |
设施选址 |
- |
| python-xpress-park-location |
Python |
停车场选址 |
- |
💡 典型应用场景
1. 物流路径优化
问题:车队如何以最短路径服务所有客户?
输入:客户位置坐标、车队规模、时间窗口
求解器:OR-Tools (VRPTW)
输出:每辆车的路径规划
应用:快递配送、外卖配送、垃圾收集
2. 员工排班优化
问题:如何安排员工班次以满足需求并最小化成本?
输入:班次需求、员工可用性、劳动法约束
求解器:Pyomo / OR-Tools (MIP)
输出:每周排班表
应用:医院护士、零售店员、呼叫中心
3. 资源分配
问题:有限资源如何分配给多个项目?
输入:项目需求、资源约束、优先级
求解器:Gurobi / HiGHS (背包问题)
输出:最优分配方案
应用:预算分配、广告投放、投资组合
4. 设施选址
问题:在哪里建设施以服务客户并最小化成本?
输入:候选位置、客户需求、建设成本
求解器:AMPL / Xpress (固定费用选址)
输出:选址决策 + 服务分配
应用:仓库选址、充电站、零售店
🔗 相关资源
🎓 学习路径
1. Hello World → 了解 Nextmv 平台
2. 背包问题 → 理解优化建模基础
3. 路径优化 → 学习 VRP 问题
4. 排班问题 → 掌握调度优化
5. 高级示例 → 设施选址/价格优化
6. 部署到 Nextmv Cloud → 生产化
本地路径: /workspace/code-examples/community-apps/
创建时间: 2026-06-02
难度: ⭐⭐ (入门友好)
**community-apps 中文导航 | Nextmv 优化应用示例**
[返回代码索引](../../README_UPDATED.md) | [决策科学资源大全](../../docs/resources/decision-science-comprehensive-resources.md)