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

28 天前
 yy306525121

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

7772 次点击
所在节点    程序员
135 条回复
yy306525121
28 天前
@8355 嗯,这种问题程序确实很难做,我其实也是前前后后拖了一年,我媳妇天天念叨自己排课费劲才又想着看看能不能做一个呢哈哈
tywtyw2002
28 天前
@yy306525121 #31 你这个连堂课不就是 6+2 嘛

每天拍一节可,然后找 2 天在这节课前面和后面插一节课就行了。

rule base 就行了,python 写个一天就能出来了。

不用上什么强化学习之类的。。。。。

你手动拍一次课表你就明白 这个排课的逻辑了。
yy306525121
28 天前
@tywtyw2002 我大概好像有点理解你的意思了, 感谢大佬, 我再仔细琢磨一下,
Volekingsg
28 天前
之前帮人写过,直接整数线性规划一把梭了
guguji5
28 天前
https://console.flashcat.cloud/oncall

感觉跟我们做的排班一样。
xuanbg
28 天前
排课没那么复杂,就是把每个班的周课表排出来,唯一约束是老师的时间不能冲突。周课表就是一个 3 维数组,然后把你有限的对象(老师)一个个放进这个数组就完了。假设 A 老师每周 3 节课,就有对象 T1{"name": "A"}、T2{"name": "A"}、T3{"name": "A"}。如果老师有跨年级跨学科的,就要给老师这个对象加上年级和学科属性,最后排的时候,要求数组在时间维度上,每个对象的每个属性都是唯一的就行。
aeron
28 天前
meeop
28 天前
https://genwebapp.com/apps?appId=HhbxiqyFE6HE-USj

看看 genwebapp.com
用 ai 帮你写了一个,看看能不能用,不满意还可以让 ai 改
yy306525121
28 天前
@xuanbg 是啊,大脑想起来挺简单的,但是写起来感觉挺难的
yy306525121
28 天前
@aeron 好的,谢谢大佬,我去看看学习一下
yy306525121
28 天前
@meeop 牛哇大佬,我看一下
yy306525121
28 天前
@meeop 能给老师指定班级吗? 例如李四教高三 1 班的语文,并且课程安排是 4+2 这样,4 节普通课时,每天一节,2 次连堂课, 每天一次连堂课
gegewu0927
28 天前
meeop
28 天前
@yy306525121 应该可以,不过这种细节修改得你自己让 ai 改拉,试一下吧,开发过程的 prompt 我都截图展示了
meeop
28 天前
@yy306525121 代码的话网页查看源代码,在 html 代码基础上让 ai 改就行
meeop
28 天前
或者干脆重新开发一个,也就几句话的事
yy306525121
28 天前
@gegewu0927 感谢大佬, 我看看
yy306525121
28 天前
@meeop 好的大佬
Les1ie
28 天前
很多年以前写过排班的,具体咋写的忘了,好像是固定了一些限定条件之后用最大流算法。随机生成再排除冲突方案大概率是不行的,效率奇低。
yy306525121
28 天前
@Les1ie 是的, 效率太低也不行

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

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

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

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

© 2021 V2EX