导览
DispatchAtlas 通过四个阶段将调度问题转化为公开、可复现的证据:生成一个基准实例、 求解它、分析这些运行,并通过目录探索全部内容。本导览以小规模、每个阶段一段 代码片段的方式走完整个流程;教程会把每个阶段扩展为完整的可运行 脚本。
如果你还没有执行过,请先运行快速开始——它的冒烟 活动会生成下方分析阶段所读取的运行记录。
1️⃣ 生成 —— 一个基准实例
基准实例就是一个调度问题:任务、运行这些任务的资源、目标以及约束。内置的冒烟目录会从 单一种子物化出小型确定性实例,因此相同的种子始终产生相同的问题。
from dispatchatlas.bench import smoke_benchmark_provider
provider = smoke_benchmark_provider(root_seed=20260527)
problem = provider.get_problem(provider.list_problem_ids()[0])
print(problem.spec.id, len(problem.spec.tasks), "tasks")完整的图集涵盖经典调度族以及 Edge–Fog–Cloud 族的连续谱,每一族都带有有引用支撑的元数据 和分布距离评分。→ 基准模型
2️⃣ 求解 —— 在其上运行一个求解器
求解器随时间将任务分配给资源并返回一份调度。注册表会选出支持你的目标且在给定证据层级 可见的求解器,然后构造其中一个来运行。
from dispatchatlas.core import DisclosureLabel, TerminationPolicy, derive_seed
from dispatchatlas.solve import default_solver_registry
registry = default_solver_registry()
candidate = registry.select(objective="makespan", disclosure_label=DisclosureLabel.CORE)[0]
solver = registry.create(candidate.solver_id)
run = solver.solve(
problem=problem,
stop=TerminationPolicy(max_iterations=candidate.default_stop.max_iterations),
seed=derive_seed(20260527, "tour", 0),
)
print(run.result.feasible)注册表包含构造式基线、精确求解适配器、元启发式、一组多样化的竞争者,以及一个原生求解器 族——每一项都带有失败即关闭的引用契约。→ 求解器系统 · 算法
3️⃣ 分析 —— 将运行转化为证据
用许多求解器求解许多问题会产生一个由运行记录组成的活动。分析层会加载已完成的活动,并 计算描述性摘要、带有效应量的具名非参数检验、经校正的显著性以及求解器排名——绝不只给出 一个孤立的 p 值。
from pathlib import Path
from dispatchatlas.analytica import load_campaign_dataset, summarize_dataset
campaign_dir = Path("experiments") / "results" / "smoke-pilot"
dataset = load_campaign_dataset(campaign_dir)
summary = summarize_dataset(dataset)
print([s.solver_id for s in summary.solver_summaries])同一份摘要还驱动确定性的 SVG 与 PGFPlots 图形,以及按披露级别过滤的证据包。→ 活动引擎 · 分析导出
4️⃣ 目录 —— 探索图集
导览所产生的一切都可以无需编写代码即可浏览。交互式门户让你按元数据搜索和过滤基准图集、 查看每个求解器声明的能力、预览结果,并下载每个页面背后按披露级别过滤的数据集。