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

28 天前
 yy306525121

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

7766 次点击
所在节点    程序员
135 条回复
billzhuang
28 天前
OptaPlanner 可以设置一个退出条件,你要的不是最优解,是能接受的解。
tywtyw2002
28 天前
科目是跟老师走的。
按照老师去分课程就行了。
比如说三个语文老师,这三个语文老师可以同时教三个班。

一般冲突多的是体育老师之类的,他们先拍,然后在排主科老师。
cocogovern
28 天前
你用 chatgpt 都比自己编的强。
yy306525121
28 天前
@billzhuang 它有一个 hard 得分和 soft 得分,hard 分数是负的,肯定不行吧,soft 得分倒是无所谓
yy306525121
28 天前
@tywtyw2002 嗯嗯, 好的,谢谢大佬指导
Sawyerhou
28 天前
建议举个具体的例子,对着具体的需求比较好想算法。

考虑强化学习,围棋都搞得定,排课的动作空间应该问题不大。
yy306525121
28 天前
@cocogovern gpt 这种倒是没试过
yy306525121
28 天前
@cocogovern 试了 gpt 好像不行,排着排着突然提示我无法进行更高级的数据分析。请稍后再试
hcocoa
28 天前
感觉这个和 NBA 每年排比赛差不多,要考虑球队城市距离远近、主客场、球馆占用情况等,可以查一下他们是怎么排的
justFxxk2060
28 天前
有个北漂程序员回长沙,给媳妇做了个排课系统,后来融了一个亿。
yy306525121
28 天前
@Sawyerhou 嗯,他们的课程安排是固定的,比如指定高三一班的语文课时是 4+2 ,意思就是 4 节普通课, 和 2 节连堂课, 一共 8 节课,4 节普通科可以周一到周四每天排一节,剩下的 2 节连堂课周五一次连堂和周六一次连堂,就是普通课时和连堂课都不能在同一天出现重复,就是因为知识储备太少,不知道该用哪种方法,现在能想到的之后遗传算法😄,感谢大佬指导
8355
28 天前
这个叫护士排班问题,有论文写的那种难度,
这个人工介入更好解决,不要把它看成是一个从研发角度很简单的问题。
学校上课是有校历的,按照课时要求除一下就好了。
yy306525121
28 天前
@justFxxk2060 牛逼, 羡慕啊
zhoust
28 天前
搞这么复杂,200 块一年 某达排课。
yy306525121
28 天前
@8355 嗯, 确实这种问题人工更简单,如果实在太复杂程序搞不定的话的话我就只写个简单的检测课程表是否有冲突的脚本就行了,人工排完之后脚本检测一下是否有冲突, 这样更简单一些。
yy306525121
28 天前
@zhoust 😄,我媳妇现在用的无忧,只排了高三的吧,他说全阶段没法一起排,忘记是因为啥了, 每年要三百还是四百块钱 VIP
wen20
28 天前
做过这个需求, 感觉还行啊。 班级 老师 俩个要素 在时间轴上的 占用和冲突检测。
yqf0215
28 天前
@zhoust 好奇搜了一下这个某达排课。我以前做过 3/4 年教务,每学期排课累死我了,如果当时知道有这个软件,可能会轻松不少。。。只是不知道功能咋呀
8355
28 天前
@yy306525121 #35 之前我们是做客服系统的需求,比你这个还复杂,需要考虑到白班夜班的连续问题,不同等级客服的服务能力问题,全职兼职的工资和性价比问题,客服间的收入平衡问题等等,理想很完美,实际就是没做出来。
因为人员本身的客观问题系统没办法解决,同时系统的规则需要人员强执行性,由于职业特性流动率就是特别大,很容易把自己搞死了。
yy306525121
28 天前
@yqf0215 你先去试用一下, 好不好用回来反馈一下,哈哈

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

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

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

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

© 2021 V2EX