Agent Skills
返回列表
新高考排课

新高考排课

教育学习 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a16b2e76/xingaokaopaike。

技能介绍

要解决什么问题

实施新高考走班制的中学,选考科目不能像在固定行政班里那样「一班一课表」:同一节次里,学生可能要去不同教室上物理或历史,行政班还要照常上语数外。排课因此不只是填格子,而是要在学生同一节次只能在一个地点这一硬约束下,同时产出行政班课表、教学班课表和教师课表,并避免学生、教师、教室三方冲突。用户提到 3+1+2、3+3、走班、教学班、选课排课或排课冲突时,通常就是在面对这类 CSP(约束满足) 排课问题。

技能如何工作

技能把模型拆成两类课:行政班(语数外全员必考、固定班级)与走班教学班(按单科聚合选修生,再按教室容量拆班)。工作流程大致是:准备输入 → 运行排课引擎 → 检查输出。

  • 输入:可用内置演示数据快速验证;真实场景可提供 students.csv(含 admin_class、逗号分隔的 elective)、可选的 teachers.csv 与 config.json;没有文件时可用 scripts/generate_sample_input.py 生成示例。
  • 求解:优先用 OR-Tools CP-SAT(对 3+3 等密集冲突更稳);未安装 ortools 时回退到内置贪心 + 交换修复(3+1+2 也可解)。
  • 输出:在指定目录生成 schedule_result.html(行政班 / 教学班 / 教师分页)、timetable_admin.csv、timetable_teacher.csv、timetable_elective.csv;仅在校验失败时才有 conflicts.txt。

常见调参包括 --mode 3+3、在 config.json 里改 admin_classes、students_per_class、elective_room_count,以及 required_periods / elective_periods 与教师池覆盖。

适用边界与注意点

走班细节、行政班与教学班区别见技能内 references/gaokao_models.md;约束清单与参数说明见 references/constraints.md。若出现未排满节次或冲突,应按文档调整参数(例如增加 elective_room_count、降低 students_per_class、提高 cp_timeout)后重跑。使用 CP-SAT 时需在已安装 ortools 的 Python 环境中执行 scripts/schedule.py,与 requirements.txt 一致。

使用场景

  • 教务处拿到本学期学生选科表后,要用 CSV 跑一遍引擎,生成行政班、教学班与教师三套课表并查冲突。
  • 学校采用 3+3 六选三,节次冲突密集,需要用 CP-SAT 求解器试排并导出 HTML 供教务核对。
  • 首轮排课出现未排满节次或 conflicts.txt 有记录时,按文档改 elective_room_count、students_per_class 后重跑。
  • 开学前尚未定稿真实数据,先用内置演示或 generate_sample_input 生成样例,验证走班拆分与教室容量是否够用。

适合人员

  • 负责新高考走班排课的中学教务人员,每学期要把选科结果落成可发布的行政班与教学班课表。
  • 为学校对接排课数据的信息技术或信息化专员,需要维护 students.csv、teachers.csv 与 config.json 并重跑脚本。
  • 制定 3+1+2 或 3+3 分班与教室方案的年级组或课程负责人,想先验证教师池与教室数是否撑得住并发上课。
  • 熟悉 Python 的排课顾问或校内开发同事,要在 ortools 环境与贪心回退之间切换并解读 conflicts.txt。