算法
DispatchAtlas 将求解器行为与基准生成及活动执行分离。每个求解器都位于
dispatchatlas.solve 中、在单一注册表之后,而求解器元数据是关于目标、能力、编码、
依赖、随机性、证据层可见性与可选后端的公开契约。本页在工作层面解释求解器族;
求解器系统注册表页面是权威的逐求解器目录。
🏗️ 求解器如何组织
default_solver_registry() 返回无状态求解器工厂的注册表。每个条目都声明能力标签、
所支持的目标、默认停止准则、确定性或带种子-随机的重放行为、一种解编码、可选依赖
需求、证据层可见性,以及一条规范引用(或一条显式的引用-不适用理由)。引用失败即关闭:
一个具有规范开创性出处却省略其引用的族无法被构造。
🧰 求解器族
| 族 | 示例 | 用途 |
|---|---|---|
| 构造式派遣 | earliest-start、shortest-processing-time、earliest-deadline、minimum-slack | 快速确定性基线调度与冒烟检查。 |
| 元启发式基线 | 遗传、退火、蚁群、粒子群、差分进化 | 在前驱安全的任务顺序上的代表性带种子搜索基线。 |
| 编码适配器 | clpso、d-clpso、lshade、d-lshade | 通过编码适配器绑定到调度的连续优化器。 |
| 近期同侪 | epso、adpso、ccgp | 越过有来源的会场强度门槛的近期已发表同侪。 |
| 多目标 | nsga3 | 在多目标向量上的参考点小生境化。 |
| 精确适配器 | ortools-cp-sat、pulp-milp、branch-and-bound、logic-based-benders-decomposition、gurobi-exact、exhaustive-enumeration、decision-diagram-sequencing | 一小撮在可选依赖之后的精确求解,或原生有界搜索。 |
| NDSO | ndso-core、ndso-fast、ndso-summit | 注册表的原生编码求解器族。 |
📋 构造式派遣规则
随附的确定性基线是构造式列表调度求解器:每个都控制任务顺序,串行构造器尊重每个任务
声明的资源需求。七个族——earliest-start、shortest-processing-time、
longest-processing-time、
earliest-deadline、earliest-finish-time、minimum-slack 与
greedy-completion——各在元数据中命名其规范开创性引用。它们是抵达可行调度最快的路径,
并锚定每一次比较,如第一个教程所示。
🔀 元启发式基线
五个代表性带种子元启发式——遗传算法、模拟退火、蚁群、粒子群与差分进化——共享相同的 可行性、修复、评分与局部搜索算子,因此一次比较衡量的是搜索策略,而非附带的管道差异。
🔌 编码适配器求解器
综合学习粒子群(clpso、d-clpso)与成功-历史自适应差分进化(lshade、d-lshade)
搜索一个连续实值向量,每个任务一个分量。每个核心在一个连续目标上是通用的,并通过一个
具名编码适配器(random-key、spv、rounding,以及传递函数解码)绑定到调度,该适配器
将一个向量转化为前驱可行的任务顺序,并带有一个显式的修复策略,记录修复是否触发。
🥊 多样化竞争者与多目标车道
一个经策展的近期已发表同侪集合将比较拓宽到代表性基线之外,每个都在元数据中携带其全文
引用、强项与注意事项。一个同侪仅在越过有来源的会场强度门槛时才加入公开赛场;更广的
经典基线池仍注册以供内部比较。nsga3 是具名的多目标竞争者:它在一个多目标向量上
(makespan、迟到、负载公平性)评估每个前驱安全的顺序,并以参考点小生境化选择幸存者。
🎯 精确适配器
可选后端适配器(CP-SAT、MILP、branch-and-bound)声明一个可选依赖并在运行时探测其导入
根;当后端缺失时,它们抛出 MissingOptionalDependencyError 并附 extra 名称与许可说明,
而非在包导入时导入一个重型依赖。原生有界适配器(exhaustive-enumeration 与
decision-diagram-sequencing)不带第三方依赖并精确求解小型实例,在超出所支持任务数时
抛出 UnsupportedCapabilityError。商业
Gurobi 封装器保留在 exact-commercial extra 之后且从不捆绑;更广的可选后端池仍注册
以供内部使用。
🐝 NDSO 族
NDSO 是注册表的原生编码求解器族:它直接在可行调度上搜索,因此它产生的每个调度都按 构造可行,且该族从不运行编码/解码步骤或修复过程。它由一小组具名机制组成:
- 一个置信矩阵,记录每个(位置,任务)单元的习得信任,由更优调度强化;
- 置信加权投票,通过在以该矩阵加权的种群上投票来合成精英调度;
- 数量与质量计划,设定一个候选改变多少以及它从哪个引导来源学习;
- 三来源引导——合成精英(开发)、一个同侪(多样性),或一个消逝-知识来源 (激进探索);
- 一个统一自适应系数,一条将该族从探索移向开发的非线性调度。
| 变体 | 组成 |
|---|---|
ndso-core | 置信加权投票、自适应系数、三来源引导。 |
ndso-fast | 多数投票合成、固定系数、单一引导来源。 |
ndso-summit | 跨群议会,协调若干群并将其结果合成为一个统领性精英。 |
一张消融图为每个具名机制枚举一种隔离配置,使下游分析能归因每个机制的贡献,而一个分阶段 导出过滤器失败即关闭,而非在较低报告范围下暴露较后层机制。机制、议会、消融与诊断的 完整细节位于求解器系统;在比较性活动运行之前不作任何性能主张。
🎛️ 选择
SolverRegistry.select 按能力标签、声明的约束、所支持的目标与证据层可见性匹配求解器
——快速开始中的 registry.select(objective="makespan", disclosure_label=DisclosureLabel.CORE) 是最小的示例。在注册表之上,选择层从特征化
特征与公开元数据为一个问题对求解器排名,按其来源与置信度标注每条推荐,且从不声称一个
通用最佳求解器。求解器推荐器呈现这些解释,包括
为何某个求解器被排除。