算法课程教学的实践与思考
2016-05-30平艳艳
平艳艳
摘要:算法课程是生物信息专业的基础课程,是生物信息学研究分析生物医学问题最为常用的方法技术。然而,优化算法是一门具有严密的逻辑性和高度的抽象性的课程,对缺乏相关知识背景的学生来说有一定的困难。如何调整优化算法教学过程中的教与学,激励学生克服困难并热爱学习优化算法,是本文要阐述的问题。
关键词:课程重要性,有用性,生动性,模块化,科学性
中图分类号: G642 文献标识码:A 文章编号:1674-098X(2016)05(c)-0000-00
优化算法分为传统优化算法和智能优化算法。传统优化算法主要针对于结构化的问题,有着较为明确的问题模式和约束条件描述。它对于有唯一明确的全局最优解问题来说具有很好的性能。传统优化算法主要有三个步骤:随机初始化一个有效解;向改进方向移动判断停止准则是否满足,若满足则停止,否则跳转下一步;向改进方向移动,得到新解,转回上一步。算法流程整体简单利于理解,但面对现实复杂的问题,传统优化算法的局限性就显而易见。单点运算方式限制了计算效率的提高,只向改进方向移动对于多峰优化问题来说很难跳出局部最优解,同时对于目标函数和约束条件的要求限制了传统优化算法的推广应用。对于复杂实践问题尤其是NP难问题或NP完全问题,传统算法将面临着计算复杂性高,计算时间很长等问题。而智能优化算法是科学家们通过平衡求解时间与求解精度设计出的形形色色的具有启发式特征的计算方法,包括遗传算法,蚁群优化算法,粒子群优化算法,模拟退火和禁忌搜索算法等。这些算法模拟大自然和人类的智慧实现了在可接受的时间内获得问题的最优解。如遗传算法是模仿了自然界的进化过程,蚁群优化模仿了蚂蚁群体觅食过程,模拟退火算法模仿了物理退货过程,积极搜多算法模仿了人类的记忆功能。随着科学技术的进步,新一代测序的发展带领着我们走进了生物医学的大数据时代,使得生物医学研究中的问题变得越来越复杂,而智能优化算法在这些问题中有着出色的表现。然而,智能优化算法是一门具有严密的逻辑性和高度的抽象性的课程,对缺乏相关知识背景的学生来说有一定的困难。这会直接导致了学生学习兴趣的减弱和对课程学习的厌倦情绪。为了克服上述问题,更好地实现教学目标,本文作者从教学方法、教学内容等方面出发对智能优化算法及其应用课程的教学进行了探索,改善了课堂教学和课外实践的效果,激励学生克服困难并热爱学习优化算法是值得探讨的问题。
1提高学生对算法重要性的认识
很多时候,学生学习积极性的降低不是因为内容太难听不懂,而是学生认为所学的知识在未来的工作生活中没有用,于是把时间和精力放在他们所认为的有意义或有意思的事情上。当自己意识到这方面知识重要性的时候,他们的学习动力也会自然增强。那么,如何让学生意识到多学课程的重要性呢?对于生物信息学的学生来说,我们首先应该让他们认识到自己未来生物信息学研究所要面临的问题。随着科学技术的进步,新一代测序的飞速发展带领着我们走进了生物医学的大数据时代。癌症基因组图谱和国际癌症基因组协会检测了体多种癌症(包括胶质母细胞瘤、肺腺癌、乳腺癌、卵巢癌、结肠癌、直肠癌、膀胱癌、头颈癌、前列腺癌、肺鳞癌、慢性白细胞淋巴白血病等、子宫内膜癌和肾透明细胞癌等)成千上万个病例-对照样本的多维组学数据(包括基因组上的拷贝数图谱,突变图谱,转录层面上的基因表达谱,lncRNA表达谱和miRNA表达谱,蛋白质谱,表观层面上的DNA甲基化谱等),每一维组数据都包含了成千上万个基因。面对着如此庞大的生物数据,试问学生有什么样的想法?如何从海量的数据中筛选与癌症相关的生物学标记?给予学生充分思考时间,并与学生交流,告诉他们优化算法在他们未来生物信息学研究中的应用,增强他们对优化算法重要性的认识,来激发学生对优化算法的兴趣,让他们带着问题来学习优化算法。
2准确刻画优化对象
优化算法应用的对象是最优化问题。对于不同的最优化问题,我们可以设计不同的优化算法。最优化问题的一般形式包括三个要素:目标函数、决策变量与约束条件。目标函数用来衡量所得到解的质量優劣;决策变量决定了一个有效解的具体形式;约束条件则规定了有效解的范围。无论是对于传统优化算法还是智能优化算法,在应用它们的时候,我们应该明确所要解决的问题是什么,即具体目标函数是什么,解的形式是什么以及约束条件是什么?因为只有准确刻画我们所要解决的问题,我们才能够在正确的目标指导下在有效的解空间中向最优解迭代靠近。错误的目标函数、错误的解的形式或是错误的约束条件都会导致我们找不到问题的最优解或是可接受解。例如,n个城市的旅行商问题:对于设有n个城市,任意两个城市之间的距离为dij(i,j=1,2,….,n).旅行商问题就是需要寻找这样的周游方案:周游路线从某个城市,经过每一个城市一次且仅一次,最终回到出发城市,使得周游路线总长度最短。旅行商问题的决策变量有n个,它们组成的有效解的形式为1-n个城市的一个排列,长度为n;约束条件为排列中不允许出现重复的城市;它的目标函数是min∑dπ(i)π(i+1),其中dπ(i)π(i+1)表示有效解中第i个城市π(i)与第i+1个城市π(i+1)之间的距离。∑dπ(i)π(i+1)得到的数值越小表明所选的旅游方案越接近最优解。
3生动形象地描述算法
我们知道数学课程和算法课程是最为枯燥的课程,如果我们循规蹈矩地传授课本上仅有的知识,只能使得课堂教学枯燥无味,学生也会听的昏昏欲睡。对于算法课程,课本上只是一些基本的概念、算法流程图和伪代码,是特定算法的骨架。需要结合学生已有的知识和一些常识现象,把这个骨架丰满起来,栩栩如生地讲给学生听。例如,遗传算法涉及到染色体编码、群体初始化、适应值评价、选择算子、交叉算子和突变算子。在遗传算法运算过程中,是一组初始解不断地经过选择算子、交叉算子和突变算子循环迭代过程逐步向最优解解集合进化。如果我们单纯地讲这个算法骨架会出现以下现象:由于学生现有知识与新知识的断层,教师没有办法找到突破口,没有办法与学生进行有效沟通;同时学生会有疑问,例如为什么进行染色体编码。能够引起教师和学生共鸣的是达尔文的进化轮和孟德尔的遗传学,遗传算法的思想来源于生物进化过程。即它模拟基于生物进化过程中的“物竞天择,适者生存”的大智慧。生物进化过程是对群体的一个进化过程,根据群体中个体的适应值进行淘汰个体,产生一个种群,种群中的个体间进行交配以及个体染色体上发生的遗传变异,产生成一个新的群体,如此循环,周而复始,使得群体向着更适应自然环境的方向进化和发展,提高群体整体的适应能力。生物学中,个体的适应值是由自身携带染色体上的基因决定的。生物进化过程也是优化染色体的过程。如果我们能够将最优化问题的解空间和生物进化过程的遗传空间进行一一对应,那么遗传算法就很容易理解了。比如,在问题空间的所有有效解对应于生物进化过程中遗传空间的一个群体,那么任何一个有效解就对应于生物进化过成群体中的一个个体,也就是一个染色体,也就完成了染色体的编码。从解空间中选择一个初始子集映射到进化空间中的形成一个群体,根据每个个体的适应值,可以利用进化过程中的遗传操作,形成新的群体,周而复始,使得解的质量向最优发展。
4实现算法提升学生应用能力
常言道:知之非难,行之不易。对于一个算法的基本原理和流程,只要我们有记忆功能就可以倒背如流。然而,算法不是纸上谈兵,而是要进行实战的。能够激起学生学期兴趣的直接方式是让一个理论的算法运转起来,也就是说学生自己动手编程实现算法。一个关键的问题是每个算法整体函数程序相对庞大,直接将变成任务派给学生,无疑是派出了一座山。在编程过程中,会遇到这样那样的错误,无论怎么检查总是找不到源头,这样会挫伤学生的锐气和学习的积极性。带领学生实现算法,可以实行“总-分-总”的形式。首先,我们应该让学生对算法有一个整体的认识。熟悉基本思想、基本原理、基本流程是整体认识的第一步;在基本流程的基础上引导学生思考整个算法的流程框架,再进行讲解算法的正确流程图,让学生進行两者对比找出自己思考的误区在哪里,强化学生对算法的整体把握;其次,需要根据算法的整体框架,把算法进行划分成模块,即把算法编程的总任务有机地分成子模块。每一个子模块都能完成算法流程中的一个小任务。通过对每一个子模块编程进行测验验证其正确性,即便时出错也可以很快锁定到较小的区域进行检查。每一个小模块的程序编程规模较小,比较容易完成,这样可以增加学生的成就感,激发他们的学习热情;最后,回顾整体的流程框架,将实现的每一个小模块根据整体框架进行有机有逻辑的组装,实现整个算法的编程。通过简单例子对编好的算法程序进行验证,检查程序出现的错误。在这里,我们不需要对每一条程序进行检查,只检查每一个子模块运行结果是否是预期结果。如果不是,那么就可以锁定该模块出现了问题,便可对子模块检查修正。
5科研实例进课堂,强化算法有用性
早期诊断和治疗癌症是人类面对的重大医学问题。优化算法能够识别复杂疾病相关的风险标志物,有助于我们了解癌症的发病机制,提供有用的靶点,对癌症进行靶向治疗。在每一个算法讲解的起始,我们应该以一个科研问题作设问,以讲故事的形式贯穿算法讲解的始终。现有一个弥漫大B细胞淋巴瘤(DLBCL)基因表达谱,检测了B细胞淋巴瘤基因表达谱的两个亚型:42个DLBCL样本和21个正常样本,表达谱中共检测4026基因的表达,如何应用遗传算法识别特征基因集将DLBCL样本从正常样本中区分出来?带着这个问题来学习特定算法的具体流程。在遗传算法中讲解每一个知识点后,可以以互动的形式向学生进行提问所学知识点对该生物医学问题的应用。比如,该生物医学问题是哪一类优化问题,目标函数是什么,决策变量是什么,如何设置决策变量,该问题解如何表示,,如何进行染色体编码等等。当我们对算法基本知识讲解完毕时,也就将算法应用到了该医学问题上,最后给出遗传算法识别出来的特征基因集合以及该集合对癌症样本和正常样本的分类正确率,直观地证明算法在识别癌症风险标志物的有用性。同时,还可以将算法所应用到生物医学领域的前沿文献分发给学生,让学生自行结成小组进行科研文献阅读与研讨,共同讨论和分析算法所应用到的生物医学问题是什么以及如何应用的,激发学生主动学习的能力。
总之,提高学习兴趣和主动学习能力是提高教学质量的基本要求。在教学过程中,教师要对教学内容设计与教学形式进行不断改革,针对不同学生群体进行因材施教、多样化的课程考核方式以提高学生创新能力和创新意识的培养,提高教学质量,培养创新复合型人才。
参考文献
[1]王勇,蔡自兴.“智能优化算法及其应用”课程教学的实践与探索.课程与教]学.1672-5913(2009)11-0127-02
[2]丁丽,段红成.优化教学过程构建高效课堂.2013, 31(3), 1671—1246 (2013)03-0051-03
[3]拓守恒,雍龙泉,邓方安.“教与学”优化算法研究综述.计算机应用研究,2013,31(7),1001—3695(2013)07—1933-06