跳到内容
DispatchAtlas
搜索

算法

DispatchAtlas 将求解器行为与基准生成及活动执行分离。每个求解器都位于 dispatchatlas.solve 中、在单一注册表之后,而求解器元数据是关于目标、能力、编码、 依赖、随机性、证据层可见性与可选后端的公开契约。本页在工作层面解释求解器族; 求解器系统注册表页面是权威的逐求解器目录。

🏗️ 求解器如何组织

default_solver_registry() 返回无状态求解器工厂的注册表。每个条目都声明能力标签、 所支持的目标、默认停止准则、确定性或带种子-随机的重放行为、一种解编码、可选依赖 需求、证据层可见性,以及一条规范引用(或一条显式的引用-不适用理由)。引用失败即关闭: 一个具有规范开创性出处却省略其引用的族无法被构造。

🧰 求解器族

示例用途
构造式派遣earliest-startshortest-processing-timeearliest-deadlineminimum-slack快速确定性基线调度与冒烟检查。
元启发式基线遗传、退火、蚁群、粒子群、差分进化在前驱安全的任务顺序上的代表性带种子搜索基线。
编码适配器clpsod-clpsolshaded-lshade通过编码适配器绑定到调度的连续优化器。
近期同侪epsoadpsoccgp越过有来源的会场强度门槛的近期已发表同侪。
多目标nsga3在多目标向量上的参考点小生境化。
精确适配器ortools-cp-satpulp-milpbranch-and-boundlogic-based-benders-decompositiongurobi-exactexhaustive-enumerationdecision-diagram-sequencing一小撮在可选依赖之后的精确求解,或原生有界搜索。
NDSOndso-corendso-fastndso-summit注册表的原生编码求解器族。

📋 构造式派遣规则

随附的确定性基线是构造式列表调度求解器:每个都控制任务顺序,串行构造器尊重每个任务 声明的资源需求。七个族——earliest-startshortest-processing-timelongest-processing-timeearliest-deadlineearliest-finish-timeminimum-slackgreedy-completion——各在元数据中命名其规范开创性引用。它们是抵达可行调度最快的路径, 并锚定每一次比较,如第一个教程所示。

🔀 元启发式基线

五个代表性带种子元启发式——遗传算法、模拟退火、蚁群、粒子群与差分进化——共享相同的 可行性、修复、评分与局部搜索算子,因此一次比较衡量的是搜索策略,而非附带的管道差异。

🔌 编码适配器求解器

综合学习粒子群(clpsod-clpso)与成功-历史自适应差分进化(lshaded-lshade) 搜索一个连续实值向量,每个任务一个分量。每个核心在一个连续目标上是通用的,并通过一个 具名编码适配器(random-keyspvrounding,以及传递函数解码)绑定到调度,该适配器 将一个向量转化为前驱可行的任务顺序,并带有一个显式的修复策略,记录修复是否触发。

🥊 多样化竞争者与多目标车道

一个经策展的近期已发表同侪集合将比较拓宽到代表性基线之外,每个都在元数据中携带其全文 引用、强项与注意事项。一个同侪仅在越过有来源的会场强度门槛时才加入公开赛场;更广的 经典基线池仍注册以供内部比较。nsga3 是具名的多目标竞争者:它在一个多目标向量上 (makespan、迟到、负载公平性)评估每个前驱安全的顺序,并以参考点小生境化选择幸存者。

🎯 精确适配器

可选后端适配器(CP-SAT、MILP、branch-and-bound)声明一个可选依赖并在运行时探测其导入 根;当后端缺失时,它们抛出 MissingOptionalDependencyError 并附 extra 名称与许可说明, 而非在包导入时导入一个重型依赖。原生有界适配器(exhaustive-enumerationdecision-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) 是最小的示例。在注册表之上,选择层从特征化 特征与公开元数据为一个问题对求解器排名,按其来源与置信度标注每条推荐,且从不声称一个 通用最佳求解器。求解器推荐器呈现这些解释,包括 为何某个求解器被排除。