求解器总览¶
OptAgent 提供三类求解器,覆盖从快速近似到精确求解的完整需求。
求解器分类¶
graph TB
subgraph "Solver Types"
H[Heuristic]
E[Exact]
HY[Hybrid]
end
subgraph "Heuristic Methods"
H --> TS[Tabu Search]
H --> LS[Local Search]
H --> SA[Simulated Annealing]
H --> LNS[LNS]
H --> GA[Genetic Algorithm]
end
subgraph "Exact Methods"
E --> CP[CP-SAT]
E --> MILP[MILP]
end
subgraph "Hybrid Methods"
HY --> GA_R[GA + Repair]
HY --> MEM[Memetic]
HY --> PORT[Portfolio]
end
选择指南¶
| 场景 | 推荐求解器 | 原因 |
|---|---|---|
| 小规模线性规划 | MILP | 精确求解,速度快 |
| 中等规模调度 | CP-SAT | 对调度约束建模能力强 |
| 大规模组合优化 | 启发式 | 可在有限时间内给出高质量解 |
| 需要高质量解 | 记忆算法(Memetic) | 全局搜索 + 局部优化 |
| 黑盒目标函数 | 进化算法 | 不需要梯度信息 |
| 时间严格受限 | 并行组合(Portfolio) | 多策略并行,取最优 |
统一接口¶
所有求解器实现统一的求解接口:
from optagent import solve
# 使用预设自动选择求解器
solution = solve(problem, preset="scheduling_focus")
# 手动指定求解器
solution = solve(problem, solver="cp-sat", time_limit=30)
# 查看求解结果
print(solution.objective_value)
print(solution.assignments)
性能特征¶
| 求解器 | 最优性保证 | 求解速度 | 内存占用 | 适用规模 |
|---|---|---|---|---|
| MILP | 是 | 中 | 高 | 小-中 |
| CP-SAT | 是 | 中-快 | 中 | 小-中 |
| Tabu Search | 否 | 快 | 低 | 中-大 |
| GA | 否 | 中 | 中 | 中-大 |
| Memetic | 否 | 慢 | 高 | 中-大 |
| Portfolio | 部分 | 快 | 高 | 任意 |