调度类预设¶
针对作业调度(Job Shop)、流水线调度(Flow Shop)等调度问题优化的预设策略。
预设对比¶
| 预设 | 目标 | 求解器 | 时间预算 | 解质量 |
|---|---|---|---|---|
scheduling_focus |
快速可行解 | Tabu Search | 低 | 中 |
scheduling_evolutionary_repair |
高质量可行解 | GA + CP-SAT | 中 | 高 |
scheduling_memetic_quality |
最优质量解 | Memetic | 高 | 最高 |
scheduling_focus¶
适用场景:需要快速得到可行调度方案的场景,如实时调度、交互式决策。
from optagent import solve
solution = solve(
problem,
preset="scheduling_focus",
time_limit=30 # 30秒内得到可行解
)
策略特点: - 单阶段禁忌搜索 - 低计算开销 - 适合大规模问题
scheduling_evolutionary_repair¶
适用场景:需要高质量调度方案,问题规模中等,有充足计算时间。
from optagent import solve
solution = solve(
problem,
preset="scheduling_evolutionary_repair",
time_limit=120
)
策略特点: - 三阶段编排:进化搜索 → 局部优化 → 精确修复 - GA 保证全局探索,CP-SAT 保证约束可行性 - 热启动继承提升后续阶段效率
三阶段流程:
graph LR
A[Phase 1: GA<br/>60% 预算<br/>全局搜索] -->|热启动| B[Phase 2: Tabu<br/>30% 预算<br/>局部优化]
B -->|热启动| C[Phase 3: CP-SAT<br/>10% 预算<br/>精确修复]
C --> D[最终解]
scheduling_memetic_quality¶
适用场景:追求最优解质量,计算时间充足,问题规模适中。
from optagent import solve
solution = solve(
problem,
preset="scheduling_memetic_quality",
time_limit=300
)
策略特点: - 记忆算法:每代进化后进行局部搜索 - 全局搜索与局部优化深度结合 - 计算开销大,但解质量最高
选择建议¶
如何选择调度预设
- 时间紧迫(< 1分钟):
scheduling_focus - 质量优先(1-5分钟):
scheduling_evolutionary_repair - 追求最优(> 5分钟):
scheduling_memetic_quality - 不确定:使用
auto让系统根据问题规模自动选择