4. 实验计划自动生成的需求分析与输入规范
实验计划自动生成系统的本质,是把“人脑中的实验安排意图”翻译成“机器可解析、可校验、可排程的结构化输入”。如果输入只是一段自然语言描述,例如“下周把三组样品都测一下,优先做加急的”,排程引擎既无法判断“下周”对应哪个时间窗口,也无法知道“三组样品”各自需要哪些仪器、耗材和人员资质。因此,需求分析的核心任务不是写需求文档,而是定义一套输入规范:把实验目标、资源清单、时间窗口、优先级与合规性要求,拆解为字段明确、取值受控、彼此可校验的数据结构。
本节围绕这套输入规范展开,先说明五类输入各自承担什么职责,再给出可落地的字段设计、示例数据与校验规则,最后说明它们如何共同构成排程引擎的输入契约。
一、五类输入的分工与依赖关系
实验计划的输入可以归纳为五个维度,它们不是并列的清单,而是存在明确的依赖与约束关系:
- 实验目标:回答“要得到什么结果”,决定实验任务集合与验收标准,是排程的起点。
- 资源清单:回答“用什么做”,包括仪器、工位、耗材、人员及其可用量与资质,是排程的容量约束。
- 时间窗口:回答“什么时候能做”,包括任务可执行区间、资源开放时段与不可用时段,是排程的时间约束。
- 优先级:回答“先做谁”,在资源冲突时决定取舍顺序,是排程的优化目标权重。
- 合规性要求:回答“必须满足什么”,包括安全、资质、环境、审批等硬约束,是排程的可行性边界。
其中,实验目标派生任务,任务引用资源与时间窗口,优先级在冲突时生效,合规性要求则对前三者同时施加过滤。任何一类输入缺失或格式错误,都会导致排程结果不可信。下图给出五类输入与排程引擎之间的结构化关系。
二、实验目标的结构化描述
实验目标不能停留在“完成某实验”这种模糊表述,而应拆解为可排程的任务单元。每个任务单元至少需要以下字段:任务标识、所属实验项目、样品数量、单次测量时长、重复次数、前置任务、验收指标。例如,一个材料性能测试实验的目标可以结构化为:
{
"task_id": "T-2024-017",
"project": "铝合金疲劳性能测试",
"samples": 6,
"duration_per_run_min": 45,
"repeats": 3,
"predecessors": ["T-2024-015"],
"acceptance": {"metric": "疲劳寿命", "unit": "cycles", "threshold": 1e6}
}
其中 samples 与 repeats 共同决定总执行次数(6×3=18 次),duration_per_run_min 决定单次占用资源时长,predecessors 决定任务间的先后依赖。这些字段是排程引擎计算任务总时长和资源占用量的直接依据。若缺少 repeats,引擎只能按单次排程,导致计划严重偏短。
三、资源清单的字段设计
资源清单需要区分“资源类型”与“资源实例”。类型描述能力,实例描述具体可用对象。以疲劳试验机为例,类型字段包括:资源类别、所需资质等级、单次最大可用时长、是否可并行;实例字段包括:设备编号、当前状态、校准有效期、所在位置。人员资源同样需要资质字段,例如“疲劳试验操作资质”分为 A/B 两级,A 级可独立操作,B 级需 A 级人员在场。
资源清单中一个容易被忽略但影响排程可行性的字段是校准有效期。若某台设备的校准在计划执行期内过期,该设备在过期后自动不可用,排程引擎必须将其从可用资源池中剔除。因此资源清单应包含 calibration_valid_until 字段,并与时间窗口做交叉校验。
四、时间窗口与优先级的表达
时间窗口需要区分三个层次:任务可执行区间(最早开始、最晚结束)、资源开放时段(如设备仅在 8:00–18:00 开放)、资源不可用时段(维护、校准、已被占用)。三者取交集才是任务真正可排的时间范围。例如某任务可执行区间为 3 月 4 日至 3 月 8 日,设备开放时段为工作日 8:00–18:00,而 3 月 6 日设备维护,则实际可排窗口为 3 月 4、5、7、8 日的工作时段。
优先级建议采用“等级 + 权重”双字段设计。等级用于粗粒度排序(如 P0 加急、P1 常规、P2 可延后),权重用于同等级内的细粒度取舍(如 0.0–1.0 的连续值)。仅用等级会导致同等级任务无法区分先后,仅用权重则难以表达“加急”这类语义明确的硬性优先。两者结合,排程引擎可以先按等级分层,再在层内按权重排序。
五、合规性要求的硬约束表达
合规性要求与优先级不同,它是硬约束:不满足则任务不可排,而不是“尽量满足”。常见的合规字段包括:所需人员资质等级、所需设备认证状态、环境条件(温湿度、洁净度)、安全审批编号、样品处置要求。例如某实验要求洁净度达到 ISO 7 级,则排程引擎必须检查候选工位的洁净度字段是否满足,不满足的工位直接排除,而不是降低优先级。
六、输入校验与最小可用输入集
在把输入交给排程引擎之前,应先做一轮输入校验。校验分为三类:完整性校验(必填字段是否缺失)、一致性校验(时间窗口是否与资源开放时段有交集、前置任务是否存在)、合规性预检(资质、认证、环境是否满足)。任何一类校验失败,都应返回明确的错误码和字段定位,而不是让引擎输出一个看似可行但实际不可执行的计划。
对于快速原型或教学场景,可以定义一套“最小可用输入集”:任务标识、样品数、单次时长、重复次数、所需资源类型、可执行区间、优先级等级、合规资质要求。这八个字段足以支撑一个基础排程引擎跑通端到端流程。随着场景复杂化,再逐步补充前置任务、校准有效期、环境条件等字段。
综上,实验计划自动生成的需求分析,实质是设计一份排程引擎能直接消费的输入契约。实验目标提供任务与验收标准,资源清单提供容量与资质约束,时间窗口提供可执行区间,优先级提供冲突取舍依据,合规性要求提供硬性过滤边界。五类输入通过字段级校验和交叉校验形成闭环,才能让自动生成的计划既可行又可解释。