第79章 排课问题(2/2)
普通的中学教务排课就够复杂了,华附这个新玩法,难度直接提了好几个数量级。那套智能系统,背后的算法有点东西。
陈航合上了《偏微分方程》,从书包里翻出一本草稿本,翻到空白页。他想试试,用最简单的模型来模拟一下。
假设高一年级600人,数学分a(高阶)、b(标准)、c(巩固)三个层次。语文、英语、物理……各科都分层。每个层次需要多少教室?每个学生各科层次组合有多少种可能?如何安排时间表,让同一个学生不会在同一时间需要上两门课?还要尽量让同一个行政班的学生在某些公共课(比如体育、某些自习)时间能在一起……
他拿起笔,在纸上写下一行行假设和符号。n(学生数),l(学科数),l_k(第k学科层次数),c(教室数),t(时间节次)……
旁边的刘梓豪正跟王子晨吹牛自己以后物理肯定进a班,瞥见陈航居然没看书而是在写写画画,凑了过来。
“哟,航神,不学你那高深方程了?改行画符了?”
陈航没抬头,笔尖在纸上快速移动,列出一些约束条件。
叶锐锋也看见了:“这写的啥?n,l……哦,变量。航神你在建模?”
“排课。”陈航简短地回答,继续思考。单纯从组合数看,可能的课程表数量就是个天文数字。系统必须用优化算法,在极短时间内为每个学生生成可行的、且相对优选的课表。这不仅要算力,算法设计才是关键。
“排课?”张启山也围了过来,“排什么课?哦!你该不会是在算刚才杨老师说的那个走班排课吧?”
这下,附近的主角团成员都好奇地凑了过来。周育成看着陈航草稿纸上那些符号和初步的不等式,立刻明白了:“你在尝试形式化描述那个分层走班系统的排课约束?这是个典型的组合优化问题,可能还带有实时调整的需求。”
“啥优化?”刘梓豪听得云里雾里。
“就是怎么把几百号人塞进不同的教室上课还不撞车,而且还得尽量合理。”黄溪念总结得比较直白,她也看着陈航的草稿,“这问题确实有意思,有点像给程序进程分配cpu时间片,但约束条件更多维。”
宋莳雨、陈莹几个女生也好奇地看着那些数学符号。林薇小声说:“感觉比刚才杨老师说的复杂多了……”
他们这边的动静引起了班里其他同学的注意。几个坐在前排、也自诩学霸的同学回头看到陈航被围在中间写写画画,也忍不住走过来看热闹。
“陈航同学在研究什么?”一个戴眼镜的男生问。
“好像是在算咱们以后走班上课的排课难度。”王子晨解释。
“这能算出来?”另一个女生惊讶。
陈航没理会周围的议论,他正在尝试估算系统需要处理的信息量下限。学生各科成绩数据(动态)、教室容量、教师时间、课程关联性……数据维度很高。他写下了一个粗略的下界估计公式。
就在这时,上课铃响了。
数学老师史言哲夹着教案和几本书走了进来。他看到后排围着一小群人,皱了皱眉:“上课了,都回自己座位。”
同学们赶紧散开坐好。陈航也停了笔,但草稿本还摊在桌上,他目光还落在那些公式上,显然没打算收起来。