新高考自动排课
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a16b2e76/shgaokao。
技能介绍
要解决的问题
新高考下的走班制排课比传统行政班复杂得多:语文、数学、外语仍在固定班,而选考科目需要按单科拆分教学班,学生跨班流动上课。一个学生同一节次只能在一个地点,一位教师也不能同时出现在两个教室,这些约束在 40 节次/周、多班级规模下会变得非常棘手。手工排课既耗时又容易漏掉冲突,且难以验证不同学科组合与教师资源的匹配情况。
技能如何工作
该技能将“行政班 + 走班”建模为约束满足问题(CSP),核心目标是生成无冲突的三套课表:行政班、教学班和教师课表。引擎提供两种求解策略:
- CP-SAT 模式:需要已安装
ortools,可稳定处理3+3六选三的复杂组合。 - 贪心回退模式:未安装
ortools时自动启用,适合3+1+2,但3+3极小概率残留少量未排节次。
运行流程分为三步:
- 快速演示:不加任何输入,直接运行内置的 450 学生 / 10 行政班数据。
- 查看结果:打开
./output/schedule_result.html,通过三个分页分别查看行政班、教学班和教师课表,颜色区分科目。 - 替换真实数据:用
assets/模板生成students.csv、teachers.csv和config.json,调整班级数、每班人数、选考教室数、语数外周课时等参数。
引擎内置三重冲突校验(学生、教师、教室),若发现冲突会生成 conflicts.txt 并在标准输出提示未排满节次。
适用边界与注意点
- 求解器依赖:
3+3稳定求解必须安装ortools;纯贪心回退在3+3下可能无法排满所有节次,需按references/faq.md排查。 - 输入规范:需严格按模板填写
students.csv、teachers.csv和config.json,字段缺失或格式错误会导致排课失败。 - 课时调整:通过
config.json中的required_periods(语数外周课时)和elective_periods(选考周课时)控制课表密度。 - 失败排查:若生成
conflicts.txt或提示未排满节次,优先阅读references/faq.md中的反模式与排查清单,而不是反复调整参数盲目重跑。 - 规模扩展:调整
admin_classes、students_per_class、elective_room_count等参数前,建议先用演示数据验证流程,再逐步扩大规模。
使用场景
- 高中教务需要为新高考学校排行政班加走班的课表
- 高中需要生成行政班教学班教师三套无冲突课表
- 教务管理员要在3+1+2和3+3模式下生成课表
- 排课失败出现冲突或未排满时需要排查原因
适合人员
- 高中教务老师需要为新高考模式排行政班和走班课表
- 学校信息中心工程师需要集成排课引擎到教务系统
- Python开发者需要学习用CP-SAT解决教育排课约束问题
- 教务管理员需要在没有ortools时用贪心回退生成课表