风雨挑战路
回想起两年的挑战杯之路,仿佛一部跌宕起伏的影片。现在有机会重新回忆那段时光,重新以观众的角度回看那一个个定格的瞬间时,我想有必要把这些画面中的人以及他们背后的付出,完整地描述出来。
闭幕式上最踏实的笑容
跟随时光的脚步,回到2013年10月17日,挑战杯闭幕式的那个夜晚,独墅湖校区影剧院的舞台中央,当我代表项目组,站在明亮的台上,接过苏院士递过来的荣誉证书时,我是欣喜的。而接下来的高校颁奖环节里,当我在台下听主持人宣布优胜杯获奖队伍,第一个念到名字的是“北京理工大学”时,这种欣喜感转而成为一种狂喜,自然也就变成了脸上最开心的笑容。但我也知道,这份笑容是踏实的,因为那无数次调试程序BUG、无数次讨论功能细节、无数次完善网申资料、无数次赛前实际演练、无数次准备答辩问题的过程,让我彼时彼刻,特别的踏实。
思路提出:暑期社会实践开启梦的篇章
2011年暑假,我们项目组早期成员首次相识。得益于学校的暑期社会实践活动,我们一起去某个大型军工企业,参观它们部分生产线的车间布局,了解它们的信息化生产过程。几个在校学生,能看到每天处理几万个工件的生产车间,好多大卡车在车间之间来回穿梭,确实也是新奇感十足,兴趣浓厚。
有一次呢,无意间听到一个会议室里面声音很大,是两个车间主任在大声地交谈,其中一个说:“老刘他们车间这个月产出的**零件明明是给我们车间的,怎么被你们车间抢走了啊?”,另一个人也不示弱,说:“老刘他们车间的**件就是给我们车间的,我这个月任务这么紧,要是完不成责任谁来负?”结果俩人就为了这个零件应该转给谁愣是争了一个小时。后来我就想,这么复杂的生产线都依靠人工协商来产生最终排产结果,得花多少时间和人力啊,不是让我们来看信息化的东西么,刚才听见的应该只是个别情况吧。但后来在座谈会上,我们才了解到这种现象并不少见,甚至每天都会发生。虽然这几年军工企业在推动技术革新,想改善生产模式,比如各车间也引入了很多ERP、调度排产软件,但其实是“信息化各立山头,缺乏统一协调”;每个部门内部虽都有调度软件,但当跨部门协作时,不同软件之间无法协调,还是得靠人工协商来完成,所以影响了总体的生产效率和生产周期。显然,企业的信息化建设还有待改善。而我们作为计算机专业的学生,一下子就来了劲头儿,想尝试分析一下问题到底出在哪?
回到学校以后,结合暑期的调研资料、相关领域知识以及已有的专业知识,我们就将厂子里面发现的问题总结成很细致的用户需求,并结合现有技术和领域知识,给出了自己的意见。把这些作为暑期社会实践内容的总结,反馈给厂里的部门经理和技术人员。
令我们惊喜的是,厂里很快就给出了回应,对我们给出的建议表示赞许,并且表示希望跟我们进一步合作,于是我们就开始真正着手来做这件事了。
实现过程:在追梦的道路上坚持奔跑
(1)问题探寻之路
通过调研我们明确了目标,就是要解决企业跨车间协作的排产问题。大家兴致很高,你设计一个算法我设计一个算法,都跃跃欲试的要尝试。指导教师李冬妮老师充分肯定了我们的积极性,但同时指出,我们要想解决这个问题,首先需要了解别人是怎么解决的。于是我们第一次知道了如何检索SCI论文、如何检索专利。
在数不清的学习、讨论、再学习、再讨论之后,我们了解到,生产调度本身就是组合优化领域的热点和难点问题,而我们面临的问题属于单元制造系统中一类特殊的跨单元调度问题。这类问题的规模远大于传统的单元内部调度问题,在我们的调研中,就涉及到数千种零件、数百台机器,用传统的元启发式算法根本就跑不出结果,而用快捷的启发式规则又打不到较好的优化效果。因此我们明确了:解决这个问题的关键就在于设计出既有较好的优化能力、又有较高计算效率的调度优化算法。李老师告诉我们,这个问题不但具有很好的应用背景,在学术领域也是一个有价值的学术问题。没想到我们在工厂里找到的问题原来是这样一个高端大气上档次的问题,我们以后的劲头更足了,也更有信心了。
经过几个月的奋战,无数次的实验,我们设计出了一种超启发式算法,这种算法以元启发式为框架,但是搜索空间不是调度解,而是适合于求解调度问题的启发式规则,然后再用得到的启发式规则进行调度,这样就相当于兼具元启发式强大的优化能力和启发式规则强大的计算效率。经过一次次的改进和优化之后,我们的算法具有了稳定的良好性能,在十余个单元的实验数据规模下,平均3~5分钟就能得到满意的排产结果。
至此,我们终于找到了开启这扇大门的金钥匙。
(2)软件开发之路
有了核心调度算法,我们算是迈出了重要的第一步,让我们的排产软件有了“灵魂”,下面我们要搭起“骨架”,再给它穿上一件漂亮的“衣服”。
针对这样一个大家都感兴趣的东西,在项目经验比较丰富的贾鹏程学长的带领下,确定了如下的工作流程:确定用户需求->进行设计和开发->测试->验收。
需求上,通过详细的调研,我们将软件要实现的功能总结成三方面。
一,在跨车间转移频繁出现的情况下,如何实现工件调度;
二,如何根据各车间的实时生产能力和协作情况,制定各车间的生产计划;
三,如何通过生产日历、设备管理等辅助手段,是软件更加完整、方便、快捷。
而根据这样的要求,我们就对组内组员们不同的特点,进行了细致分工:
1. 项目总负责人、阶段性进度审查和把握——贾鹏程
2. 核心调度算法设计实现——王妍、肖广雪
3. 生产计划模块——高磊
4. 调度地模拟仿真——梁啟锵
5. 设备报复处理、生产日历管理等——李邈
后来,贾鹏程学长、高磊学长和肖广雪学姐陆续毕业,新的同学陆续加入,但我们做事情的热情、学习的风气和良好的传统却一直得以延续和发扬。
实际开发过程中也遇到过很多困难,但我们坚持保持着一种很好的沟通机制,就是每三天有一次头脑风暴式的讨论,通过这种方式可以积思广益,对已有问题积极讨论,避免了大家各自为战,思维固化的情况;同时也能不断明确大家对软件目标的认识,以至于开发不至于偏离轨道,从而大家得以集体攻克很多难关。同时我们也充分利用了每个寒暑假,去企业深入走访调研,每次都能带回一些新问题、新要求,为我们的后续工作确定目标、指明方向。
在这种坚持之下,我们的排产软件终于开发出来了。当得知企业应用后取得了比较好的效果时,我们终于体会到什么叫“欣慰”,就是为了这个结果,吃多少苦受多少累都不算什么了,都值了。
(3)成果总结之路
李老师告诉我们,每件事做完了都要总结。她建议我们把核心算法写成学术论文,并且申请专利。一开始我们都觉得不可能,专利和论文是那么低调奢华有内涵的东西,在我们的脑子里都是和国内外著名学者和技术人员联系在一起的,我们哪够得着呢?但李老师说,跨单元调度算法在应用中的一个重要瓶颈就是兼顾优化能力和计算效率,而我们的工作在这方面是有贡献的,应该写出来,对自己是一个总结,对国内外同行也有借鉴意义。于是我们就开始了成果总结之路。
在这个过程中,我们经历了令人印象深刻的关于“逻辑”和“严谨”的磨练,大到实验的设计,小到一个变量的表示,无不反复推敲。在这个阶段我们最大的收获就是知道了什么才是真正的科研,知道了我们的方法不是自己说好就是好,而是要放到更大的范围内,经得起跟国内外同类研究的比较,才能说我们的方法是真正的好。最终在两年的时间里,以我们的核心算法为基础,我们申请了3项国家发明专利,其中1项已获授权;发表了4篇学术论文,其中1篇发表在影响因子1.5以上的SCI期刊上,3篇发表在EI期刊及国际会议上。
回首望去,我们自己也无法想象能有这样的成果,起初也只是想如果能拿到一项国家发明专利就已经很了不起了。但在李老师的指导下,我们挖掘出了作品、也挖掘出了我们自己最大的潜能。所以,人有的时候真的要在压力之下,才知道自己究竟能达到什么程度。
如何备赛:做到极致
备战挑战杯这一路,对于我们这些平常不善言辞、习惯与代码为伍的工科生来说,面临的挑战也是巨大的。但到了这一阶段,明显感觉到身边的伙伴越来越多,倒不是因为我们小组人数的扩张,而是感觉到从其他小组,到学院、到学校,大家都在朝着同一个目标努力,从而让我们坚信一个信念,就是“既然做了,就做到极致”。
(1) 新颖的展示形式
团委老师根据多年的挑战杯经验,对讲稿中的每个字都细细斟酌。一个5分钟的稿子,我们从9月份一直改到10月份,就是为了确保能在最短时间内让专家评委们感受到作品的科学性、创新性和实用性。为了练好演讲,团委组织大家不下10次地模拟答辩。也正是这样的一个过程,让我从最初站在大家面前都会发抖的状态,逐渐的放松、自信起来,直到最后在赛场上面对众多院士的提问也不胆怯。
但我们的作品面临一个不利因素,就是展示度的问题。首先,我们的作品是一个软件,不像其他小组的作品可以摆在桌上、甚至可以让评委拿在手里,所以难以给人以清晰而直观的第一印象;第二,我们的作品有实际的应用背景,这本来是优势,但要把这些背景交代清楚要花很长时间,容易让人听得不耐烦;第三,我们作品的应用之后取得了较好的效果,但军工企业不允许现场录像,效果怎么展示?如果只用一两句话交代肯定是苍白无力的。
为了能在赛场上充分介绍我们的作品,必须在展示形式上有所突破,给人耳目一新的感觉。我们的办法是:用视频配合答辩!视频既有传统的PPT的作用,也有PPT所不具有的宣传片的作用,在语言不给力的时候,用镜头替我们说话。在软件应用的效果展示上,我们想到了Flexsim仿真软件,模拟真实场景建立厂房、车间、机器,并仿真出应用软件前后在制品库存的变化对比,这样一来,反倒比真实场景下拍摄效果更好。这个Flexsim软件还是一年前在校团委的支持下购买的,想不到还真派上了大用场。
在李老师的帮助下,我们联系到了央视的专业编辑陆老师,请他做了与讲稿相配合的答辩视频。视频经过反复磨合终于达到了满意的效果,直到我们12号奔赴苏州,陆老师还在为我们做视频的最后一轮修改。有了这样的后盾,我们的答辩整体效果上确实极具震撼力。
(2) 充分的赛前准备
对了准备答辩,我们把自己能想到的、评委可能会问到的问题分门别类进行整理,然后大家一起讨论怎样回答才是最佳方案,叫不准的就请教李老师。在每次校团委组织的模拟答辩中,我们都对老师们现场提的问题细心记录,补充到我们的问题清单中。结束后再认真回顾现场哪个环节答得好,哪个环节有遗憾,下次怎样答才能更好。
在比赛前夕,我们学院的赵满书记和李老师还专门提前赶到苏州,听我们做了现场模拟并进行了指导。记得赵书记当时问了一个关于ERP的问题,一下子就把我们给问住了。我们后来经过跟李老师的探讨才清晰了思路。当天晚上李老师跟我们讨论到12点多,教了我们许多回答问题的思路和技巧,记得那天我们直到凌晨1点多才有空吃晚饭。
正是经过如此细致的准备,让我们对现场答辩很有自信而且也不再紧张,因为我们相信,出色的发挥不来自现场的灵机一动,而是源自之前周密细致的准备。
后来我们发现,正式比赛的时候,这一切付出确实收到了成效。巧合的是,第一个专家问的问题就是前一天晚上赵书记问我们的关于ERP的问题!我们心里一下子有了底气,面对接下的几个问题,我们的回答都很有自信,并且整个讲解和回答的过程都没有被评委打断,说明评委认可我们的答辩。
(3) 队友的互相支持
回味这一次我们学校六个组的所有参赛队友,在这次旅程中的一幕幕,也感受到了我们作为北京理工大学的这个参赛团队所拥有的力量——思源在答辩前突然伸出手搭在我肩膀上,言语中透露出对答辩的些许期待、些许紧张,让我知道我们是一个共同为荣誉而战的团队;青超、俊飞的设备临时出了点问题,重新调试时的认真、细心、专注,让我知道我们是一个专心致志的团队;兴平四处寻找评委老师,极力用心地宣传,让我知道我们是一个积极寻求机会的团队;岳烨在准备答辩、现场布展时候的沉稳淡定,更让我知道这是一个已经准备了很充分的团队。正是在这样的大团队之中,给了我们巨大的动力和信心。
艰辛历程:闭幕式上最真诚的眼泪
写了这么多,但其实一直在犹豫要不要再单独回顾下所谓的艰辛。毕竟,如果仅仅是因为最后取得的结果再去单独提艰辛的话题,显得矫情。既已付出,再强加上各种感情词汇,企图把它们煽情到什么地步,上升到什么高度,实属多余。
但看到这个题目,还是有一段记忆涌上心头的。仍是2013年10月17日,挑战杯闭幕的那个晚上,但这次确是另外一段故事——在领完奖回到座位的过程中,我左边一个文静的女生,一个刚刚在领奖台和闪光灯前还笑的那么自信的一个女生,在走下领奖台的一刹那,眼泪就如泉水般涌出。其实我特别想感谢她,感谢她替我把我想流的眼泪都流了下来,帮我把这段历程画上了一个圆满的句号。我坚信那是彼刻最真诚的泪水。
那一刻,我突然明白,过去的种种艰辛,不过是我们不满足于现实而对于理想进行的打磨,不过是我们一直在坚持的最初的那个梦,不过是,我们选择了去尊重内心深处的那个自己。
致谢
在此感谢所有帮助过我们的老师:感谢李老师两年来的悉心指导;感谢赵书记的关心和那个关于ERP的问题;感谢团委的尚老师、张老师和吴老师,你们是最辛苦的;感谢我们作品的推荐人,东北大学的唐加福教授和我校的魏一鸣教授;感谢清华大学的吴澄院士,感谢您对我们的鼓励。
最后我们要感谢跟我们一起完成这个作品,但由于毕业而没能参赛的贾鹏程、高磊和肖广雪,我们是站在你们的肩膀上,这个奖是属于你们的。