第一卷 少年游 第五十六章盲点
第一卷 少年游 第五十六章盲点 (第2/3页)
最重要目标,因为学校可能宁愿多动几节副科,也要优先保住毕业班课程。于是他们又把优先级加进去。原既白这时终于插手,把散乱规则重新整理成一个层级结构:先确定不可违反的硬约束,再按照学校自己给出的优先级处理软约束,最后在剩余可行方案里最小化改动。林沛看完以后立刻说这个有用,唐岑也把流程图重画了一遍。原既白第一次在这两个小时里真正感到顺了一点,却同时意识到一件让他更加不舒服的事——这个高层结构不是他一开始“想出来”的,是在几十分钟的现场修补以后才从下面长出来的。
展示开始时,他们小组抽到第三。
第一组做校园食堂排队,第二组研究实验室预约,都有完整数据。轮到原既白他们时,唐岑先讲场景,没有从模型开始,而是直接放出一张“早上七点四十分,老师临时请假”的模拟通知,然后问台下,如果你只有二十分钟重新排课,第一步会做什么。几个人很快给出不同答案,有人说找代课,有人说换课,有人说整班自习。唐岑这才把他们问来的真实限制一条条放出来:场馆临时失效、实验室维护、教师接送孩子、毕业班优先、不同班级进度差异。原来题目给出的数据只是地图的一部分,真正的地形要走进去才知道。
林沛负责讲那套“难看”的规则。他没有包装成算法,只说这是一套他们一个多小时内不断被教务老师驳回、重新修改出来的临时决策流程。台下有人立刻问为什么不直接做优化模型,林沛看了一眼原既白,把话递给他。
原既白站起来时,有半秒钟很想从自己最初那张网络图开始讲。
最后没有。
他说他们一开始确实这么做,而且自己尤其相信应该先建立统一模型,把静态排课和动态调整一起解决。可是两个小时不够,真实学校的约束又比题目给出的多得多。与其提交一个结构漂亮却没验证过的“最优模型”,他们最后决定先建立可用规则,再把这些规则逐步抽象成硬约束、软约束和调整代价。以后如果真做系统,可以在这个基础上进入约束优化,而不是一开始就假设自己已经知道所有约束。
评委席上一个老师问:“所以你认为第一版的模型错了吗?”
原既白停了一下。
“不是完全错。”
“那为什么不用?”
“因为它现在还不能解决这个学校明天早上七点四十分的问题。”
台下没有笑。
那位老师又问:“如果给你一个月呢?”
这一次原既白几乎立刻回答:“我会继续做模型。”
林沛转头看他。
原既白继续说,一个月足够把更多现场约束采回来,也可以做程序和历史数据回放。真正要避免的不是抽象,而是**在没看清问题以前,提前相信自己的抽象已经完整**。他说到这里时,突然意识到这句话和顾遥在暑期营里对他说的几乎是同一件事,只是那时候自己还能把它当成一种“值得学习的方法”,今天却第一次因为没有做到而真正输掉时间。
展示结束以后,他们没有拿最佳小组。
第一名是唐岑之前提过的另一个组。他们研究校园实验室预约,没有构建什么特别高级的系统,只先把三种最常见的冲突做成一个很简单的手工排程工具,现场让老师改了四轮,最后展示时直接演示“某个实验室临时停用后,三分钟重新排完”。方案并不宏大,甚至从理论角度看很容易超过,但现场效果极好。
原既白坐在下面看完整个演示,手指一直压着自己的笔。
第二名也不是他们。
最后他们得了一个没有排名意味的“结构表达突出”。
林沛拿到那张纸时笑了一下,递给原既白:“挺适合你。”
原既白也笑。
但不太高兴。
交流结束以后,秦老师在校门外等他。返程大巴还有半小时,两个人坐到路边一家面馆。秦老师没有问为什么没拿第一,只问今天怎么样。原既白说“还行”,低头吃面。秦老师看了他一会儿,大概知道这两个字通常意味着不太行,便把桌上的辣椒罐往旁边挪了挪,说:“你是不是觉得你们那个方法应该更高级?”
原既白没有否认。
“理论上是。”
“实际上呢?”
“没做出来。”
秦老师点头,继续吃自己的面。过了一会儿,他才问:“那是谁的问题?”
原既白停住筷子。
(本章未完,请点击下一页继续阅读)