跳转至

求解器总览

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 部分 任意