——记第11届“挑战杯”全国大学生课外学术科技作品竞赛特等奖项目《计算机代数系统》的研发历程
■
他们是这样一个团队:由数学系、物理系、计算机系、电子系和自动化系等数十名本科生同学组成,其目标是 Mathematica等国外商业巨头的科学计算软件,做出一套中国自己的计算机代数系统。
他们是这样一个团队:2007年申请SRT立项,2008年1月注册顶级域名、建立论坛,2月完成基本文档系统,10月完成理论文档初稿,11月创建项目网站,12月完成系统设计,初步开发软件,2009年5月网络计算平台测试版正式上线。
他们是这样一个团队:通过系统研究,整理撰写了约30 万字、包含约200 篇参考文献的计算机代数理论,并出版专著《计算机代数系统数学原理》,为该项研究的持续性提供了翔实可靠的资料。在此基础上自主开发出的软件Mathematica,不依赖任何第三方系统,具有多项创新性,接近目前国际最为先进的计算机代数计算软件,填补了国内计算机代数系统相关领域的空白。
Mathematica计算机代数系统具有多项创新性:内容丰富,功能齐全;独有的符号处理功能,国内领先;语法简练,算法效率高;模块化程度高,可移植性强;开放平台,二次开发灵活;操作简单,使用方便。目前,Mathematica的创新点已经获得教育部科技查新工作站的认证,并且获得了国家版权局授予的计算机软件著作权登记证书。清华大学Mathematica项目团队已经发展为依靠自主研发的创业团队,吸收更多有志向有才华的青年,致力与将Mathematica转化为真正的软件产品,为我国计算机代数系统领域做出自己的贡献。
Mathematica的主要作者是清华大学数学系的学生李超与张翔。张翔说,他和李超创建这个项目最初的想法源于对科学计算软件的兴趣,然而现状却是——对科学计算软件巨大的需求量与国外商业巨头垄断大部分的国际市场。这些国外商业巨头的产品价格昂贵、核心代码私有封闭,其垄断现状严重威胁着我国的国家信息安全。与此同时,国内大型科学计算软件的研发几乎是一片空白:企业不愿做,软件工程师不能做,科研人员不敢做……他和李超在大一暑假的一次彻夜长谈之后做出了一个重大决定:开发出一套我国自己的计算机代数系统!
SRT立项后,三个人对符号计算领域进行了大量的文献搜集工作,并自学相关理论。他们买来了一块黑板放在寝室中厅,每晚9点到11点是他们的三人“讨论班”开课时间,每个人都把自己读到的内容讲给其他两人,并回答他们的问题。张翔说,当时这种共同学习、讨论的氛围特别好,至今都记忆犹新。
然而,符号计算作为一个新兴的数学领域,英文文献专著很少,而单靠阅读会议论文得到的信息不够系统化,对不同论文内容上的冲突常会有如坠云雾之感。
张翔说,项目的指导老师是饶辉老师,饶辉老师虽然并不从事这方面的研究,但给他们提供了非常大的帮助,包括联系各种资源,资金支持等。饶辉老师还为他们请来了符号计算方面的专家——法国教授Jacques Peyriere,对这个项目给予指导,与法国教授6次集中的讨论使他们获益匪浅。
日复一日的研究、探讨、归纳、总结,他们把学到的内容整理成文章,汇集成书。完成理论文档之后,恰逢校内“挑战杯”项目征集,他们决定开发软件,从而获得学校更多的支持。
由于没有开发大型软件的经验,这个过程远非一帆风顺。很多人协同开发上百万乃至上千万行代码,软件设计十分重要,否则很难进行合作。
软件设计主要包括内核和图形界面两大方面,而这两个方面都没有现成的相关资料可查,只能靠自己摸索。前行的每一步都充满艰辛,每当遇到困难无法继续时,也曾想过放弃,但不久就会有人提出一个新的设计,在中厅的小黑板上展示,并接受其他人的提问。如果被问倒,提出设计的人会很不服气地回去继续思考,直到想出合适的解决方法。张翔说,为了找到合适的设计,他负责的那部分的内核重写了很多次。
两年过去,Mathematica从无到有,一路走来:从校内“挑战杯”,到首都“挑战杯”,再到全国“挑战杯”,这支队伍已经拿到了三次特等奖。在这个过程中,他们的软件系统也在不断地完善和改进。
张翔说:“最为欣慰的事莫过于看着我们曾经的“幻想”正一点点变为现实,感谢Mathematica项目指导老师饶辉和法国教授Jacques Peyriere对项目的精心指导,感谢清华大学数学科学系李建国,白峰杉,李津,扈志明等老师,感谢中科院数学机械化实验室李子明老师的有益讨论。项目未来的长期发展规划已经得到了学校的大力支持,项目团队感受到了来自各方的鼓励与期望,希望能踏实地继续努力进行我们的工作。” |