多阶段执行¶
编排器将求解过程分解为多个阶段,每个阶段使用不同的策略,逐步提升解的质量。
执行流程¶
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% 的解质量。