高中算法教学研究性课题的开发
2015-09-10王敏
王敏
摘 要: 在高中數学教学中,为了培养学生使用数学解决实际问题的创新能力,本文提出了基于智能优化算法的研究性课题。在这一研究性课题的教学设计中,通过引入课题、介绍算法、建立模型、进行运算、讨论结果这五步,使学生解决了日常生活中的优化问题。教学设计的结果表明,基于智能优化算法的课题适用于高中数学研究性学习。
关键词: 高中数学 研究性学习 算法
1.高中数学的研究性学习
高中数学的研究性学习有着重要意义[1,2],它能使学生在思考和分析数学材料的过程中,培养理解和感悟数学的能力,进一步认识数学的本质。研究性学习可以启发学生的创新意识,使学生遇到生活中的一些问题时,能够自主使用数学知识解决这些问题。由此可见,研究性学习需要的问题,应该是与高中数学基础相近的问题。对于高中数学的研究性课题,学生可以进行学习、试验、思考、争辩,并在课题的研究中找到数学领域的新天地。
高中数学教材[3]指出,算法是计算机科学的基础,计算机已成为人们日常生活不可缺少的工具。对于高中生,从日常生活中选择引入研究性课题的材料,更容易被学生接受。人们在日常生活遇到的很多问题,都可以利用一些已有的算法和相应的计算机程序解决。因此,在算法教学中开展研究性学习,有着广阔的前景。下面提出一种基于智能优化算法的课题式教学设计。我们计划采用NSGA2作为教学实践中的智能优化算法。
2.基于智能优化算法的课题式教学设计
基于智能优化算法的课题式教学设计分为引入课题、介绍算法、建立模型、进行运算、讨论结果五个部分。
2.1引入课题
教师:如果在假期我们打算去旅游,有很多景区可以选择。我们对这些景区的兴趣不同,这些景区的门票和交通费用也不同,去更多的景区开阔眼界是每个人的愿望。因此,我们应该认真思考选择哪些景区。这是一个很难通过思考得到结果的问题,通过智能优化算法可以代替我们的大脑解决这个问题。
2.2介绍算法
教师:所谓人工智能,就是通过各种算法模拟大脑的工作,目的是代替我们的大脑进行思考,解决各种问题。智能优化算法是人工智能的一种算法,它可以代替我们的大脑解决优化问题。
学生:那上面的问题是优化问题吗?
教师:在上面选择哪些景区的问题中,我们有三个目的,一是选择的景区总的兴趣较高,二是选择的景区总的门票和交通费用较低,三是选择景区的数量尽量多。这三个目的往往是相互冲突的,我们需要选择一些景区最好地达到这三个目的。由此可见,这是一个优化问题,智能优化算法可以帮助我们解决这个问题。
学生:我们怎么使用智能优化算法呢?
教师:我们首先应该运用课本中所学的算法知识,初步了解智能优化算法的计算原理。我们已经选择的这些景区被称为决策变量;对于我们选择范围内的所有景区,称为决策空间。决策变量是在决策空间中随机选择的。如果我们可以最多同时选择5个景区,决策变量就是5维向量,即■=(x■,x■,…,x■),其中x■到x■这5个景区在所有景区中随机选择,这5个景区可以互相重复。
学生:景区怎么用数字代替呢?
教师:景区可以按照先后顺序依次用数字代替,比如第一个景区就是1。对于我们的三个目的,也需要把它们转化成数字才能进行计算。我们对每个景区都进行排名,排名靠前表明兴趣高。这样第一个目的就是中所有互不重复的景区名次的和。类似的,第二个目的就是中所有互不重复的景区门票和交通费用的和。第三个目的应该是中所有互不重复的景区数量。景区的名次和费用如表1所示。表中第一行和第四行是景区的编号,第二行和第五行是景区的排名,第三行和第六行是景区的费用,数字的单位是元。
表1 景区的名次和费用
学生:怎样计算呢?
教师:通过以上分析可知,不管是景区名次的和,景区门票和交通成本的和,还是景区数量,它们的大小都是由■决定的。它们是■的函数,因此我们称这些函数为目标函数。我们只要拥有用数字表示的决策空间和决策变量,以及用数字计算的目标函数,就可以使用智能优化算法选择到最适合我们的景区。
2.3建立模型
学生:怎样建立目标函数呢?
2.4进行运算
学生:怎样调用智能优化算法的程序呢?
教师:为了降低读写程序的难度,我们选择matlab语言。在调用智能优化算法程序的主文件中正确编程,就可以实现建立的数学模型,得到需要的结果。主文件中的matlab代码是:
X2=fix(X*20);
X3=X2+1;
C=zeros(20,1);
forn=1:5
C(X3(n,1),1)=1;
end
[a,b]=find(C);
C2=[a,b];
[a1,b1]=size(C2);
A=[6;3;16;11;7;17;14;8;5;19;15;1;2;4;18;13;9;20;10;12];
forn=1:a1
W1(n)=A(C2(n,1),1);
end
W2=sum(W1);
B=[1200;2000;200;1400;1500;1000;1300;1800;800;900;100;500;1700;1100;700;600;1600;300;400;1900];
forn=1:a1
W3(n)=B(C2(n,1),1);
end
W4=sum(W3);
F(1)=W2;
F(2)=W4;
F(3)=1/a1;
对于智能优化算法,代码中的X是m1维矩阵。通过设定m=5,这里X是5x1维矩阵,其中的5个元素均是从0.0000到0.9999中的随机数。fix()是matlab的取整函数,即实数的整数部分。因此,X2中的5个元素均是从0到19中的随机数。X3中的5个元素均是从1到20中的随机数。这样,代码中的X3是模型中的。zeros()是matlab的矩阵生成函数,生成的矩阵中元素都是0。因此C是201维0矩阵。通过for循环语句,我们使X3指定的元素全是1。find()是matlab的查找函数,查找矩阵中非0元素的位置,生成相应的矩阵。因此C2是C中非0元素的位置,也是X3中所有互不重复的数。size()函数得到矩阵的行数和列数,这样a1是C2的行数,是模型中的n。代码中的A和B是模型中的A和B。通过for循环语句,我们使W1和W3中的元素,是C2指定的A和B中的值,代码中的F(1)、F(2)、F(3)表示目标函数。对于智能优化算法,可以设定优化结果的个数,我们设定结果的个数是10,计算结果如表2所示。
表2 计算结果
2.5讨论结果
教师:从表2可以看出,这10个景区的选择方式都很好,分别偏向了我们的三个目的。把它们互相比较,难分高低。智能优化算法很好地解决了选择哪些景区的问题,我们的大脑也很难想出这样的结果。在生活中还有很多其他的优化问题,我们也可以通过建立数学模型、编写matlab程序、进入智能优化算法进行计算的办法,解决这些复杂的问题。
3.总结
基于智能优化算法的课题式教学设计,主要涉及随机数的产生和矩阵的基本定义这两个知识点,它们在高中数学教材中都有介绍。matlab语言简单易学,通过互联网就可以了解其编程技巧。因此,基于智能优化算法的课题适用于高中数学研究性学习。
参考文献:
[1]杜振义.关于高中数学研究性学习的思考[J].数学教学与研究,2014(10),54-55.
[2]张晓兵.例谈数学教学中的“微课题”研究[J].数学教育研究,2012(5),13-14.
[3]普通高中課程标准实验教科书数学必修3[M].人民教育出版社,2012.
[4]郑金华.多目标进化算法及其应用[M].科学出版社,2007.