跳转至

多阶段执行

编排器将求解过程分解为多个阶段,每个阶段使用不同的策略,逐步提升解的质量。

执行流程

sequenceDiagram
    participant O as Orchestrator
    participant P1 as Phase 1: Evolutionary
    participant P2 as Phase 2: Local Search
    participant P3 as Phase 3: Exact Repair

    O->>P1: 启动进化搜索 (60% 预算)
    P1-->>O: 返回初始高质量解
    O->>P2: 启动局部搜索 (30% 预算, 热启动)
    P2-->>O: 返回改进解
    O->>P3: 启动精确修复 (10% 预算, 热启动)
    P3-->>O: 返回最终解
    O->>O: 评估并输出最优解

阶段类型

搜索阶段(Exploration)

  • 进化搜索:大范围探索解空间
  • 随机重启:多次随机初始化,避免局部最优

优化阶段(Exploitation)

  • 局部搜索:在当前解附近精细搜索
  • 禁忌搜索:系统性邻域搜索

修复阶段(Repair)

  • 精确修复:用精确求解器修复不可行解
  • 约束松弛:逐步收紧约束,保证可行性

热启动继承

当阶段配置了 "warm_start": true 时,前一阶段的最优解会作为当前阶段的初始解:

from optagent import solve

solution = solve(
    problem,
    preset="scheduling_memetic_quality",
    config={
        "orchestrator": {
            "phases": [
                {"type": "evolutionary", "budget": 0.6},
                {"type": "local_search", "budget": 0.4, "warm_start": true}
            ]
        }
    }
)

热启动的效果

热启动可以显著加速后续阶段的收敛。实验表明,在调度问题中,带热启动的两阶段策略比单阶段策略平均提升 15-25% 的解质量。