想写一个排课功能,请教大佬们

86 天前
 yy306525121

因为媳妇高中需要排课,享用程序给她写一个, 之前试了 timefold ,写出来之后由于规模太大, 两三个老师还能拍出来,数量一多之后连着跑了一两天也没跑出来,想问一下,除了 timefold 这种问题求解器之外, 还有什么简单的方法做这种排课程序,遗传算法是不是最简单的方式?

9656 次点击
所在节点    程序员
135 条回复
ilovey482i
86 天前
排课是非常复杂的,不是一件容易的事
yy306525121
86 天前
@ilovey482i 嗯,是的, 所以才来问问看有没有知道的大佬, 除了 timefold 和遗传算法还有没有其他简单的方式,毕竟也是第一次写排课这种东西。
SenLief
86 天前
排课很复杂的,我们公司当时砸了不少钱进去,做出来的系统也不尽人意。

不过如果是高中学校排课,那就简单了。不用程序,因为班级是固定的,只需要排老师就好了。
billzhuang
86 天前
OptaPlanner
yy306525121
86 天前
@SenLief 相比大学的应该是简单很多,基本几个条件满足就行了, 我媳妇每次手动排课要不就是解决冲突,要不就是个别老师找她调整,想着正好看能不能写个程序简化一下她的操作。
cndenis
86 天前
随机排, 然后遍历所有条件, 输出符合条件的
JayZXu
86 天前
当时隔壁组做个排班要死要活的
围观学习大佬经验
yy306525121
86 天前
@billzhuang optaplanner 和 timefold 其实是一个东西, 我试了,这东西好像是 NLP 问题, 就像笛卡尔积一样,条件和教师数据量上来之后,要计算的数据量会几何倍暴增,我之前写的只排了高三的课程,结果日志显示数据规模直接干到 3.7xxx 乘以 10 的 256 次方
raptor
86 天前
试试用 AI 排课?
yy306525121
86 天前
@raptor 呃,你说现在的那种聊天式的 AI? 还是有人直接做好的 AI 产品?
lneoi
86 天前
对这块不了解, 印象中 OR-Tools / PuLP 里求解器好像支持排课场景, 还有一个 MiniZinc 好像比较复杂, 但针对排场排课领域, 可以看看
forty
86 天前
输入哪些条件,输出有什么要求,这些需求描述一下?难点是哪里?似乎没有多大运算量
yy306525121
86 天前
@lneoi 好的,谢谢大佬, 之前用过 timefold ,和 or-tool 这些其实是一类工具, 都是问题求解器, 但是他们都是基于一个原理, 把所有可能的组合全部排列出来,然后找出最优解,这种框架会有一个问题, 就是当你的问题或者叫排课里面的教师和班级数量上来之后问题规模会成指数倍增长,家用计算机跑一天都跑不出来,timefold 那个我已经上 overstack 上问了, 还没有人回复我,我先看看你说得其他几个看看有没有什么好的解决方法。
foxkiller
86 天前
关键词……遗传算法……
freemyspace
86 天前
mark 一下,看下有啥好方法
yy306525121
86 天前
@foxkiller 嗯嗯, 搜到了, 看了一下有点难以理解, 看看有更好的方法不, 没有的话再研究这个
yy306525121
86 天前
@freemyspace 好的
tywtyw2002
86 天前
高中排课程 没那么复杂吧?

多少个班级? 多少个科目/多少个任课教师?
人排的话也就是一个小时的事情。

也可能是我们班级比较少,老师多吧。

14 个班级,主科目每天一节,每周 6 节,一个老师三个班。

其他课程 每周 2 节,一个老师 7 个班级。
yy306525121
86 天前
@tywtyw2002 我们课程没那么固定,每个科目的课程安排都不一样, 而且还有老师跨阶段的情况,其实人排的话唯一的麻烦就是冲突问题不好解决
yy306525121
86 天前
@tywtyw2002 我们 16 个班,但是老师有六十个左右,同阶段不同的班级上的课的科目还不一样😄

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1066877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX