王敏
摘 要: 为了培养高中生在数学领域的科学研究能力,针对高中数学的研究性学习,本文提出了基于遗传算法的教学设计。该教学设计分为引入问题、介绍算法、熟悉源代码、编写程序、讨论结果,共五部分。研究性学习按这五部分的顺序依次进行,使学生能够了解遗传算法的原理,并掌握如何使用遗传算法解决实际问题。这一教学设计表明,学生可以在遗传算法的学习中提高科学研究能力。
关键词: 高中数学 研究性学习 遗传算法
1.引言
高中数学的研究性学习是教学研究的热点[1],[2]。高中数学包括很多基础数学知识,高中生可以利用这些基础数学知识开展一些科学研究工作。在进行科学研究工作的过程中,学生可以学习一些基本的研究方法,掌握一些现代的研究技术,并解决生活中的实际问题。研究性学习可以培养学生的创新意识和能力。学生通过研究性学习,利用所学知识解决了实际问题,对高中阶段的教学有着重要意义。
高中数学的教科书[3]介绍了算法的基本概念和知识。算法是计算机科学和技术的理论基础。目前,计算机已经进入了人们的日常生活,人们利用计算机解决了各种各样的实际问题。建立某个实际问题的数学模型,然后利用已有的算法和相应的计算机程序求解数学模型,就可以解决这个实际问题。因此,在高中阶段开展算法的研究性学习有着广阔的前景。下面我们讨论基于遗传算法的研究性学习,并提出相应的教学设计。
2.对遗传算法的认识
人们日常生活中的很多问题本质上都是优化问题。比如,在大量商品里选择质量最好的商品,或者选择最适合自己的商品。一般来说,优化问题可以转化为优化模型。在求解优化模型的众多算法中,遗传算法具有突出的计算效率。因此,遗传算法已经成为一个热门的科学研究方向[4]。
遗传算法模拟生物种群的进化过程,通过种群中个体的交叉、变异和选择,实现了种群的进化和最优解的寻找。它的寻优能力很强。此外,如果优化模型的目标函数值是离散的数值,遗传算法适用于求解这类数学模型。对于实际优化问题的数学模型,目标函数值一般都是离散的数值。因此利用遗传算法可以解决很多实际问题。
在遗传算法中,交叉、变异和选择的计算方法较容易理解,高中生可以学习和掌握。一般优化问题的数学模型也较容易建立,高中生可以进行研究。因此,针对高中数学的研究性学习,我们提出一种基于遗传算法的研究性教学设计。
3.基于遗传算法的研究性教学设计
基于遗传算法的研究性教学设计分为引入问题、介绍算法、熟悉源代码、编写程序、讨论结果,共五个部分依次展开。
3.1引入问题
教师:如果我们打算去购买衣服或者鞋,那么有很多同类的商品可以选择。这些商品的质量不同,适合我们的程度也不同。我们根据质量或者适合程度选择商品,就是选择最好的商品,它本质上是一个优化问题。把所有同类的商品依次编号为1、2、3…,选择的商品号码就是决策变量。对所有同类的商品依次打分,选择的商品得分就是目标函数。如果同类商品的数量很少,我们就可以用大脑进行选择。如果同类商品的数量有几百个,甚至几千个,我们就很难用大脑进行选择了。遗传算法可以帮助我们解决这个问题。
3.2介绍算法
学生:什么是遗传算法?
教师:遗传算法是寻找优化问题最优解的一种方法。它通过模拟生物种群的进化过程,产生生物的最优个体,即找到最优的决策变量。多个决策变量组成一个种群,一个决策变量就是一个个体。通过两个个体的交叉计算,一个个体的变异计算,以及选择较好的个体,使种群越来越好。最后,得到了一些很好的决策变量,并在其中得到一个最优的决策变量。
学生:遗传算法是怎样计算的?
教师:第一步,随机选择一定数量的决策变量组成一个种群。第二步,选择种群中两个较好的个体进行交叉计算,得到两个新个体。按此方法产生一些新个体。选择种群中一个较好的个体进行变异计算,得到一个新个体。按此方法产生另一些新个体。其中,通过交叉得到的新个体较多,通过变异得到的新个体较少。所有的新个体组成了一个临时种群。临时种群中的个体数量与原种群中的个体数量相同。第三步,在临时种群和原种群中,选择一些较好的个体组成一个新种群。新种群中的个体数量与原种群相同。第四步,新种群重新进入第二步的计算,直到循环计算的次数达到给定的最大值。
3.3熟悉源代码
学生:如何使用遗传算法进行计算?
教师:调用遗传算法的程序,就可以计算数学模型了。由于matlab程序语言较容易学习和理解,我们选用遗传算法的matlab程序进行学习和实验。在进行遗传算法的计算时,需调用表1中的m文件。
文件1调用了数学模型,输出结果是目标函数值。文件2随机产生了初始种群,输出结果是初始种群,文件3在种群中选择了一些较好的个体,输出结果是一些较好的个体。文件4通过交叉和变异得到了临时种群,输出结果是临时种群。文件5在临时种群和原种群中选择得到了新种群,输出结果是新种群。文件6通过调用文件1,对种群中所有个体按照优劣排序,输出结果是所有个体的次序。
学生:遗传算法的主文件是什么?
其中,chromosome表示一个种群,pop是种群中决策变量的数量,gen是循环计算的最大次数。显然,pop和gen越大,计算的效果越好,计算的复杂度也越高,计算所需时间也越长。因此,我们对pop和gen选取合适的值就可以了。
3.4编写程序
学生:怎样建立数学模型呢?
其中,x是决策变量,Y(x)是其目标函数值,文件dataY.mat包含了一个数列Y,这个数列就是我们建立的数学模型。在选购商品的实际问题中,数列中的数值是任一商品的得分,该数值的顺序号是商品的代号。这样,我们就建立了选购商品的数学模型。通过编写数列Y,我们可以建立很多实际问题的数学模型。
3.5讨论结果
教师:从以上学习内容可以看出,遗传算法的理论和计算机程序都较容易理解。生活中的很多实际问题都可以转化为优化问题,进而建立数学优化模型。这样,我们就可以采用遗传算法解决这些问题,初步开展科学研究工作。
4.结语
基于遗传算法的研究性教学设计,理论内容较适合高中教学。遗传算法的matlab程序简单易学,高中生可以较快掌握。解决的实际问题和建立的数学模型,都适用于高中数学的研究性学习。因此,学生可以在遗传算法的学习中提高科学研究能力。
参考文献:
[1]倪红升.新课程高中数学研究性学习的若干选题[J].数学通报,2007,46(06):31-33.
[2]邱福强.探求有效途径形成科学模式——关于实施高中数学研究性学习的思考及途径[J].数学学习与研究,2011(5):21-22.
[3]普通高中课程标准实验教科书数学必修3[M].人民教育出版社,2012.
[4]郑金华.多目标进化算法及其应用[M].科学出版社,2007.