优化引擎

OptimEngine是一个生产优化平台,提供确定性优化、不确定性优化、多目标优化和规范性建议等功能,适用于调度、路由和装箱等NP难问题。

  • by MicheleCampi
  • Python
  • 云端部署
  • 4 星标
  • 更新于
在 GitHub 查看 MicheleCampi/optim-engine

使用说明

⚡ OptimEngine

生产优化平台——4层架构,OR工具CP-SAT,MCP原生,OAuth 2.1,可观察性优先。


概述

OptimEngine解决NP难优化问题(调度、路由、打包),并量化不确定性下的风险(敏感性、鲁棒性、随机性、帕累托)。它展示了4个智能级别(L1确定性)的11个工具→ L3规范)通过REST和MCP(SSE+带OAuth 2.1的流式HTTP)。

该系统围绕三个工程原理构建: 数学正确性 (真正的CP-SAT求解器,而不是LLM近似值), 生产卫生 (完整的可观察性堆栈、业务逻辑的测试覆盖率、负载测试),以及 代理人友好 (MCP双栈、OAuth、速率限制、仅JSON合约)。

建筑

flowchart TB
    Client[AI Agents / MCP Clients / REST] --> Edge[Edge Proxy<br/>Vercel]
    Edge --> L2[L2 Core Gateway<br/>FastAPI · orchestration]
    L2 --> L1[L1 Solver Layer<br/>OR-Tools 9.15 CP-SAT<br/>FJSP · CVRPTW · Packing · Sensitivity · Robust · Stochastic · Pareto · Prescriptive]
    L2 --> L3[L3 Thin Proxies<br/>Payment rails · MCP discovery]
    L1 --> Obs[Observability<br/>OpenTelemetry · Prometheus · Grafana Cloud]
    L2 --> Obs
    L3 --> Obs

四层加上边缘代理,部署在6个铁路服务+1个Vercel功能上。所有层都配备了OpenTetry跟踪、Prometheus中间件和支付事件的Telegram警报。

技术栈

层 技术
运行时 Python 3.12、FastAPI、Uvicorn
求解器 OR工具9.15 CP-SAT、NumPy、自定义蒙特卡洛
MCP FastMCP(SSE+流式HTTP)、ScaleKit OAuth 2.1、PyJWT
验证 Pydantic v2
可观察性 OpenTetry SDK、Prometheus客户端、Grafana Cloud
负载测试 Locust 2.43
CI GitHub操作、pytest、pytest-cov
部署 铁路(计算)、Vercel(边缘)、GitHub Actions(CI)

能力

L1——确定性优化

求解器 问题 关键特性
调度 灵活作业车间(FJSP) 优先级、时间窗口、每台机器的持续时间、可用性窗口、质量门、设置矩阵
路由 CVRPTW 容量、时间窗口、GPS距离、直接访问、4个目标
装箱 多维包装 重量+体积限制,物品数量,分组,部分包装,4个目标

L2——不确定性下的优化

模块 能力 输出
敏感性分析 一次一个参数扰动 脆弱性图、敏感性得分、临界标志、风险排名
稳健优化 不确定性范围→ 最坏情况保护 稳健的解决方案、稳健的代价、可行性
随机优化 概率分布→ 蒙特卡洛 预期值、VaR、CVaR(90/95/99%)、分布汇总

L2.5——多目标

模块 能力 输出
帕累托前沿 2-4个竞争目标 非主导解决方案、权衡比率、相关性分析

L3——规定性

模块 能力 输出
规定性建议 历史数据→ 预测→ 优化→ Risk → 建议 行动、风险调整后的完成时间、可行性风险评估

演出

生产基准总结(完整报告: BENCHMARKS.md):

  • 已处理757个请求,0个失败 在20分钟的累积负载下
  • 基础设施楼层:约200毫秒 (FastAPI+边缘代理+身份验证+可观察性开销)
  • 5名用户同时使用时膝盖饱和 在当前的铁路等级上;系统在它之后会优雅地降级
  • 瓶颈:求解器CPU,而不是基础设施——扩展路径在L1处是水平的,在网关处不是垂直的

实时Grafana仪表板: 公共仪表板/优化引擎

测试和CI

  • 121测试 跨越7个求解器模块,全部通过
  • 总覆盖率77%, 业务逻辑引擎平均88%
  • 通过GitHub Actions对每个推送和拉取请求运行
  • 覆盖率报告作为构建工件上传(HTML+XML)

测试套件练习真正的CP-SAT求解,而不是模拟:断言验证数学属性(CVaR排序、容量约束、扰动下的单调性),而不仅仅是代码路径。

v9.0.0亮点

四个调度引擎升级,缩小了学术FJSP与实际车间运营方式之间的差距。所有向后兼容v8请求。

每台机器的持续时间 --同一任务,不同机器上的不同时间:

{
  "task_id": "milling",
  "duration": 100,
  "eligible_machines": ["CNC-1", "CNC-2"],
  "duration_per_machine": {"CNC-1": 120, "CNC-2": 80}
}

可用性窗口 --每台机器有多个班次和维护间隙:

{
  "machine_id": "CNC-1",
  "availability_windows": [
    {"start": 0, "end": 480},
    {"start": 510, "end": 960}
  ]
}

质量门 --工作要求最低质量,机器有良率:

{ "job_id": "ORD-BOSCH", "quality_min": 0.97 }
{ "machine_id": "CNC-4", "yield_rate": 0.99 }

设置时间矩阵 --顺序相关的转换成本:

{
  "setup_times": [
    {"machine_id": "M1", "from_job_id": "J1", "to_job_id": "J2", "setup_time": 15}
  ]
}

快速开始

claude.ai(远程MCP连接器)

在设置下添加为远程MCP连接器→ 集成:

https://optim-engine-production.up.railway.app/mcp

对于OAuth保护的端点:

https://optim-engine-production.up.railway.app/mcp/v2

休息(卷曲)

curl -X POST https://optim-engine-production.up.railway.app/optimize_schedule \
  -H "Content-Type: application/json" \
  -H "X-Engine-Key: $ENGINE_API_KEY" \
  -d '{
    "jobs": [
      {"job_id": "J1", "tasks": [
        {"task_id": "cut", "duration": 30, "eligible_machines": ["M1", "M2"]},
        {"task_id": "weld", "duration": 20, "eligible_machines": ["M2"]}
      ]}
    ],
    "machines": [{"machine_id": "M1"}, {"machine_id": "M2"}],
    "objective": "minimize_makespan"
  }'

MCP客户端配置

{
  "mcpServers": {
    "optim-engine": {
      "url": "https://optim-engine-production.up.railway.app/mcp"
    }
  }
}

验证案例研究:MetalPrecision(合成)

以意大利精密加工车间为蓝本的合成数据集——4个数控中心(2015-2023年份),5个以真实汽车/工业客户为蓝本的客户订单,15个任务。用于验证所有7个模块的求解器端到端行为。

工具 结果
optimize_schedule 最佳完成时间225分钟,5/5准时,平均利用率83.3%,0.04秒
validate_schedule 零违规,2条改进建议
analyze_sensitivity 3.6秒内解决73个问题,识别出最敏感的参数(敏感度得分8.9)
optimize_robust 最坏情况210分钟,鲁棒性价格7.7%,100%可行性
optimize_pareto 交易边界:195/15分钟vs 220/0分钟,相关性-1.0
optimize_stochastic 30个蒙特卡洛方案,CVaR95=188.5,CV 4.7%
prescriptive_advise 预测+1.3%/期,风险调整范围167-183

数据集中的客户名称具有说明性。这不是实时客户部署;这是一个用于求解器验证和演示的基准场景。

生产部署

端点 角色
optim-engine-production.up.railway.app L1+L2+L3计算(铁路,6项服务)
边缘代理(Vercel) CORS处理、头重写、边缘缓存
claude.ai上的MCP连接器 克劳德客户的工具表面

发现

在上列出了代理经济发现 x402扫描, 铁匠铺,以及 402.ai系统支持Base和Solana上的x402微支付,用于支付层端点;支付集成记录在L3瘦代理层中,但不是该项目的主要重点。

许可证

麻省理工学院——见 许可证.

建造于 米歇尔 坎皮.