0

AI自动排课工具免费推荐:6款自动避开教师冲突与教室撞车的智能排课神器横向对比与实操指南

2026.08.08 | youres | 57次围观

每到学期临近,教务处最怕的不是招生,是排课。12个班、35门课、40个时段、23位教师、9间专用教室,还有"体育不能连着上""实验课必须连堂""王老师周三跨校区"这一堆条件,用Excel手排三天三夜,最后还是撞车。AI自动排课工具免费推荐这个需求这两年搜索量涨得很快,但市面上的文章要么在推销收费软件,要么把"让ChatGPT帮你排课"当成万能解药。这篇文章做三件事:把排课到底难在哪拆成四层、把6款真正能用的工具横向对比、再给你三个可以直接手算的公式,让你在装软件之前就知道自己这张课表到底排不排得出来。

一、先搞清楚:排课到底难在哪四层

很多人以为排课就是"把课填进格子",装个软件就完事。实际上它是典型的约束满足问题(CSP),难度是分层递进的,每一层需要的工具能力完全不同。搞清楚自己卡在第几层,才不会买错工具。

层级问题典型表现工具能不能解
第1层:硬冲突同一时段,一个教师/一个班级/一间教室只能出现一次课表上出现"李老师同时在两个班"能,所有排课工具的基本功
第2层:资源容量专用教室(实验室、机房、体育馆)数量有限,班级容量与教室座位要匹配三个班同时要用唯一的物理实验室能,但需要你把教室类型和容量老老实实录进去
第3层:教学规律连堂、双周课、每天同科不超过2节、主科尽量排上午、体育不排饭前排出来了,但一天连上三节数学部分能,取决于工具的软约束表达能力
第4层:人的偏好与政治老教师要求不排早八、班主任要固定第一节、跨校区教师的通勤时间、临时产假顶班课表技术上完美,教师群里炸锅解不了,工具只能帮你把可行解排出来,取舍必须人来定

请重点看第4层。所有排课软件的宣传页都不会告诉你:第4层是人的问题,不是算法问题。把"张老师不排周一"这类偏好一股脑塞成硬约束,求解器会直接告诉你无解,你还以为软件不行。正确做法是把偏好设成带权重的软约束,让求解器给你一个"总不满意度最低"的方案,然后教务主任拿着这个方案去做最后的人情协调。工具的价值是把三天的手排压缩到十分钟,再把剩下的争议缩小到三五个点,而不是替你去跟老教师谈判。

二、6款自动排课工具横向对比

1. FET(Free Evolutionary Timetabling)——纯免费开源,中小学首选

FET是这个领域最老牌的免费开源排课软件,GPL协议,Windows/macOS/Linux全平台,完全免费且没有功能阉割。它内置了极其丰富的约束类型:教师不可用时段、班级每天最多课时、同科不连排、连堂、教室偏好、教师最大间隙数等等,中小学能想到的场景基本都有对应选项。

优点:约束库最全、离线运行数据不出本地、生成速度快(几百课时通常几十秒到几分钟)、支持导出HTML/CSV/XML多视角课表(按班级、按教师、按教室)。缺点:界面是典型的工程师审美,中文本地化不完整,第一次用需要花两三个小时摸清"约束"菜单的层级结构。

适合:中小学、中职、培训机构,预算为零但愿意投入学习时间的教务人员。

2. UniTime——高校教务级,排课+选课+教室分配一体

UniTime是面向大学的开源教务系统,功能远超"排课"本身:它把课程设置、教室资源库、学生选课意愿、考试安排整合在一起,能根据学生的选课数据反过来优化时段,尽量减少"两门必修撞车导致学生选不上"的情况。

优点:唯一认真处理"走班选课冲突"的开源方案、支持多校区与教室共享池、有完整的权限与审批流。缺点:Java技术栈,需要服务器部署和数据库,没有IT支持的学校基本玩不转;配置项极多,上手周期以周计。

适合:高校、有信息中心的大型学校、需要处理走班选课的新高考改革校。

3. Timefold Solver(原OptaPlanner)——开发者自建的约束求解引擎

它不是一个开箱即用的软件,而是一个开源的约束求解引擎,官方就提供了"学校课表(School Timetabling)"的完整示例项目,支持Java和Python。你用代码描述"什么算冲突、什么算不满意、每种不满意扣多少分",引擎负责在几秒内搜索出高分方案。

优点:约束表达能力上不封顶(任何奇葩规则都能写成代码)、能实时给出"硬约束违反数/软约束扣分"的量化评分、支持增量重排(临时调课只改动局部而不是整张表重来)。缺点:必须写代码,教务人员无法独立使用。

适合:有开发能力的团队、要把排课嵌进自家教务系统的教育SaaS厂商。

4. Google OR-Tools(CP-SAT)——通用约束求解器,最灵活的底座

OR-Tools是Google开源的运筹优化工具箱,其中的CP-SAT求解器是目前处理这类组合问题最强的免费引擎之一,Python接口友好。排课在它眼里就是一堆布尔变量加约束:x[班级,课程,时段,教室]为1表示安排,然后用AddExactlyOneAddAtMostOne之类的方法把冲突规则写清楚。

优点:免费、性能强、社区示例多、同一套技能可以复用到排班与路径规划等其他调度场景(做法上和AI配送路线规划工具那类车辆调度问题同源)。缺点:零封装,教室视图、教师视图、导出美化都得自己写;建模不当时变量数会爆炸。

适合:懂Python的信息老师、想彻底定制的技术团队。

5. aSc Timetables——商业桌面软件,试用版可完整验证

斯洛伐克出品的老牌商业排课软件,在国内中小学有一定使用量,中文界面完善,提供功能完整的试用版(限制在保存与打印环节),足够你先把自己学校的数据跑一遍看效果再决定是否付费。

优点:界面友好、拖拽式手工微调体验最好、打印排版专业、支持代课与调课管理。缺点:正式版收费且按校区授权;复杂走班场景的表达能力不如UniTime。

适合:有预算、更看重易用性和打印输出、教务人员非技术背景的中小学。

6. 大模型(DeepSeek / Kimi / ChatGPT)+ 结构化提示——轻量场景的应急方案

把课程需求、教师约束整理成表格丢给大模型,让它输出课表,确实能在极小规模(比如一个培训机构5个班、8位老师)下给出可用结果。更聪明的用法是让大模型写求解代码而不是让它直接排课——描述清楚约束,让它生成一段OR-Tools的Python脚本,你负责跑。

优点:零门槛、需求变更时改一句话就行、非常适合快速试算可行性。缺点也必须说明白:大模型没有回溯搜索能力,规模稍大就会出现"看起来很整齐但仔细一查李老师周二第三节撞了"的情况,它的输出必须经过程序化校验。整理输入数据这一步倒是可以借力,比如用AI Excel公式生成工具把教师课时统计表快速搭起来。

适合:小微培训机构、单个年级的临时调整、以及"先算一下到底可不可行"的前期评估。

三、选型速查表

工具费用技术门槛最擅长不适合
FET完全免费中(纯配置)中小学固定班级制排课大学走班选课
UniTime开源免费高(需部署)高校选课+教室池没有IT人员的学校
Timefold Solver开源免费高(需编程)嵌入自家系统、增量重排教务人员单独使用
OR-Tools CP-SAT免费高(需编程)任意定制约束要开箱即用的场景
aSc Timetables试用免费/正式收费易用性与打印输出预算为零
大模型+提示基本免费小规模试算、生成求解代码直接生成正式课表

一句话决策:中小学没预算选FET,中小学有预算选aSc,高校走班选UniTime,要嵌进系统选Timefold或OR-Tools,几个班的小机构用大模型先试算。

四、装软件之前,先用这三个公式算一遍

这一节是本文最值钱的部分。相当多的"软件排不出课"其实是需求本身在数学上就不可行,你换十个软件也没用。花五分钟手算,能省下三天的折腾。

公式1:时段数下界——判断这张表理论上排不排得出来

一周可用时段数记为 T,则必须同时满足:

T ≥ max( 单个教师最大周课时, 单个班级最大周课时, ⌈某类专用教室的总需求课时 ÷ 该类教室数量⌉ )

算例:某初中一周5天、每天8节,T = 40。全校12个班都要上信息技术,每班每周2节,共24课时,但机房只有1间。代入第三项:⌈24 ÷ 1⌉ = 24 ≤ 40,通过。再看物理实验:12个班每班每周3节实验,共36课时,实验室1间,⌈36 ÷ 1⌉ = 36 ≤ 40,勉强通过但占用率高达90%,意味着实验室几乎全周无空,任何一次调课都会连锁崩塌。结论:这种超过80%占用率的资源就是你的瓶颈,要么加教室,要么把部分实验课改成理论课。先动结构,别指望算法。

公式2:教师负载可行性——找出到底缺几个人

对每个学科:该学科总需求课时 ≤ 该学科教师人数 × 人均周课时上限

算例:某校12个班,语文每班每周5节,总需求 12 × 5 = 60 课时。语文教师4人,人均上限16节,供给 4 × 16 = 64 ≥ 60,可行,但富余只有4节,等于全组接近满负荷,一人请假就散架。若教师只有3人,供给 3 × 16 = 48 < 60缺口12课时≈缺1名教师——这时候任何排课软件都只会返回"无解",而真正的动作是招人或调整课时结构,不是继续换软件。

公式3:课表质量分——别只看"排出来了"

硬约束满足只是及格线,好课表要看质量。建议用加权扣分模型量化:

Score = 10×教师空档节数 + 8×同科连上3节及以上次数 + 5×主科排在下午最后一节次数 + 3×教师跨校区当天调动次数 + 2×班级当天课时不均衡度

算例对比:方案A硬约束零违反,但全校教师空档共42节、同科连三出现5次,得分 10×42 + 8×5 = 460。方案B空档28节、连三0次、主科末节3次,得分 10×28 + 5×3 = 295方案B明显更优,但如果你只看"有没有冲突",两者都是"排出来了",你会随机选一个然后被老师投诉。把这个分数算出来贴在方案旁边,评审会效率能提高一倍。

五、五步落地流程

  1. 数据清洗(占总工时50%):整理三张表——课程需求表(班级×科目×周课时)、教师表(姓名、任教科目、任教班级、不可用时段、周课时上限)、教室表(编号、类型、容量)。这一步的脏数据是后续所有问题的源头,名字不统一、班级编号不规范都会导致导入失败。
  2. 可行性预算:用上面三个公式手算一遍,先确认不是需求本身不可行。这一步只要20分钟,但能挡掉一半的"软件不行"投诉。
  3. 约束分级:把所有规则明确分成硬约束(违反即废)与软约束(带权重)。经验值是硬约束控制在10条以内,其余全部软化。
  4. 跑首轮+看质量分:先只开硬约束跑一轮,确认有可行解;再逐步加入软约束,每加一组跑一次,观察质量分变化和求解耗时。一旦某组约束让求解时间从秒级跳到十分钟以上,说明它和其他约束严重冲突,需要降权或拆分。
  5. 人工微调+留缓冲:用软件的拖拽功能处理最后3-5个人情问题,并且刻意留出2-3个空时段作为调课缓冲区。排得满满当当的课表看起来很美,第一次有人请假就会全线崩溃。

六、六个最常踩的坑

坑1:把排课和排班当成同一个问题。两者都是调度,但约束模型截然不同:排班主要是人力覆盖与劳动法工时限制,排课的核心是"班级—教师—教室"三元同时不冲突加教学规律。想做员工轮班请直接参考AI排班工具那套方法,硬把排班软件拿来排课,教室维度根本表达不了。

坑2:所有规则都设成硬约束。这是新手第一大死因。"王老师不排早八"和"体育课不能连堂"混在一起全设成硬性,求解器返回无解,你完全不知道是哪一条卡住了。正确做法:只有物理上不可能的(一个人不能同时在两地)才是硬约束,其余全部带权重软化。

坑3:忘记录入专用教室的类型与容量。很多人只录了教室数量,结果软件把化学实验课排进了普通教室。教室必须带类型标签(普通/理化生实验/机房/音乐/体育场地)和座位数,且课程要绑定所需教室类型。

坑4:连堂课与双周课不建模。实验课、美术课、写作课往往需要连续两节,双周课(隔周上一次)在职校和高校很常见。如果工具里不设置这两类,排出来后教务还得手动合并,等于白排。选型时务必确认工具支持"课时块(block)"概念。

坑5:教师不可用时段收集不全。跨校区兼课、进修培训、哺乳假、行政会议,这些信息散落在各个群里。排完课再补一句"我周三下午有会",整张表就得重排。建议在数据收集阶段用统一表单一次性收齐并签字确认。

坑6:只排一次就定稿,不做重排演练。学期中途必然有教师变动。选型时一定要测试"锁定已有课表,只重排受影响部分"的能力(Timefold的增量重排、FET的固定时段约束都能做到)。做不到局部重排的工具,学期中会让你重新经历一次噩梦。

七、常见问题FAQ

Q1:真的有完全免费还好用的排课软件吗?
有,FET是完整免费且约束能力很强的开源方案,中小学场景基本够用。代价是界面不友好、需要投入时间学习约束配置。"免费"换的是你的学习时间,不是功能缩水。

Q2:能不能直接让ChatGPT或DeepSeek帮我排出整张课表?
小规模(5个班以内)可以试,但必须做程序化校验。大模型是概率生成,不做回溯搜索,规模一大就会出现隐蔽冲突。更推荐的用法是让它替你写OR-Tools求解脚本,把"生成答案"变成"生成解题工具"。

Q3:软件提示"无解"该怎么办?
按顺序排查:先用本文公式1和公式2手算,确认不是需求本身不可行;再逐条注释掉硬约束,二分定位是哪一条导致冲突;最后把定位到的那条降级为软约束。九成"无解"都出在过度硬约束和教师人手不足。

Q4:新高考走班选课能用普通排课软件吗?
不能。走班的核心难点是"学生个体选课组合"导致的冲突,而普通软件只处理固定班级。这种场景要用UniTime这类支持选课数据的系统,或者用OR-Tools自己建模,把学生选课矩阵作为约束输入。

Q5:排课工具能同时帮我准备教学内容吗?
不能,这是两件事。排课工具只解决时间与资源分配,教学内容制作请用AI课件生成工具,备课流程可以参考AI教师备课工具教程,出题与批改则分别有AI出题工具AI作文批改工具可用。把工具链分开,各司其职,比找一个"全能系统"现实得多。

Q6:数据安全怎么办,教师信息能上传到云端吗?
教师姓名、任教安排属于内部数据,多数学校有明确规定不得外传。FET、aSc是纯本地桌面软件,UniTime可私有化部署,这三个方案数据不出校。用大模型时务必脱敏——用"教师A/教师B"代替真实姓名,排完再映射回去。

八、总结

回到最初的问题:AI自动排课工具免费推荐,答案不是某一款软件,而是一个判断链条。先用三个公式确认需求可行,再按学校类型选工具——中小学零预算用FET,重视易用性用aSc,高校走班用UniTime,要定制就上OR-Tools或Timefold,小机构用大模型做前期试算。

更重要的是记住那张四层难点表:工具能替你搞定前三层的组合爆炸,第四层的人情取舍永远需要人来做决定。一个成功的排课项目,衡量标准不是"软件自动排完了",而是"手排三天变成十分钟,争议从三十条缩小到三条"。把省下来的时间用在跟老师沟通那三条上,这才是自动化真正的价值所在。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论