课表排不出来怎么办:定位冲突规则的方法
课表无解时,先做容量预检,再找出最小冲突规则集,逐条放宽。本文列出常见原因,并解释“已确认排不出”与“超时”的区别。
课弈排课 · 更新于
课表排不出来时,先用容量预检排除“资源本身不够”,再找出最小冲突规则集——一组不能同时成立的规则,去掉其中任意一条其余就能满足——然后每次只放宽其中一条。
第一步:容量预检
很多无解并不是规则写得复杂,而是资源在算术上就不够。排课前先核对:
- 教师课时:每位老师每周应上课时,是否超过他可用的节次(总节次减去不可排时间);
- 班级课时:一个班每周需要的课时总数,是否超过课表中的可用时段;
- 教室容量:实验室、体育场地等专用教室,同一时段需要的数量是否超过实际数量;
- 不可排时间:老师的请假、兼职、固定会议时间,是否把可用节次压得太少。
这一步能用简单计算发现问题,不必等到排课失败。
常见的“罪魁祸首”
- 某位老师负担重,同时又有多条固定时间要求,可选空间被挤没了;
- “不排第一节”“不排最后一节”这类规则加得太多,叠加后可用时段所剩无几;
- 实验室或体育场地不足,理科、体育课集中在少数时段;
- 连堂要求遇到一天的边界:例如需要三连堂,但上午只有两节、午休后又被其他规则占住。
最小冲突集是什么
规则多的时候,直接看“哪条规则错了”几乎不可能。最小冲突集把范围缩到最小:这组规则放在一起一定无解,但删掉其中任何一条,剩下的就能同时成立。通常只有几条,负责人一眼就能判断该放宽哪一条。
已确认排不出 vs 超时
两者要分开对待:
- 已确认排不出:系统证明了在当前规则下不存在任何可行课表,必须修改规则或资源;
- 超时:在限定时间内没找到解,但不代表一定没有。可以延长时间、先简化模型,或把部分要求改成软规则。
把超时当成无解,会让人去删本来不需要删的规则。
修复策略
- 把“最好这样”的要求改为软规则,并设置权重;
- 从最小冲突集中挑影响最小的一条放宽,重新排课;
- 每次只改一条,记录改动,便于回溯;
- 真正的资源不足(老师、教室)要回到人员和场地安排上解决。
更多问题见 常见问题。
在 课弈里怎么做
- 排课前自动做健康检查,提前指出课时、教室等容量不足;
- 无解时返回最小冲突规则集,而不是一句“排课失败”;
- 明确区分“已确认排不出”与“超时”;
- 硬规则与软规则分开设置,软规则可设权重;
- AI 助手(中英文)可以根据冲突给出修改建议,由你确认后生效。
课表卡住了?带上你的数据来 预约演示。