跳转至

状态管理

编排器在多阶段执行过程中维护和传递求解状态。

状态生命周期

stateDiagram-v2
    [*] --> Initialized: 创建编排器
    Initialized --> Running: 开始执行
    Running --> PhaseComplete: 阶段完成
    PhaseComplete --> Running: 下一阶段
    Running --> Fallback: 策略失败
    Fallback --> Running: 回退后重试
    Running --> Complete: 所有阶段完成
    Complete --> [*]: 输出结果

状态内容

编排器维护的状态包括:

状态字段 类型 描述
best_solution Solution 当前找到的最优解
best_objective float 当前最优目标值
phase_results List[PhaseResult] 各阶段的执行结果
elapsed_time float 已用时间
remaining_budget float 剩余时间预算
warm_start_state Dict 热启动所需的求解器状态

状态合并

当多个求解器并行执行时,编排器需要合并它们的状态:

# 状态合并策略
merge_strategies = {
    "best_objective": lambda states: min(states, key=lambda s: s.objective),
    "union_solutions": lambda states: merge_all_solutions(states),
    "weighted_average": lambda states: weighted_merge(states, weights)
}

回退机制

当某个阶段执行失败或超时未找到可行解时,编排器自动触发回退:

{
  "fallback": {
    "enabled": true,
    "strategy": "portfolio",
    "triggers": ["timeout", "no_feasible", "objective_degraded"],
    "timeout_per_phase": 30
  }
}

回退策略

触发条件 回退动作
阶段超时 切换到更快的求解器
无可行解 放松约束,重新求解
目标值退化 回滚到上一阶段的最优解