王敏
摘 要: 在高中數(shù)學教學中,為了培養(yǎng)學生使用數(shù)學解決實際問題的創(chuàng)新能力,本文提出了基于智能優(yōu)化算法的研究性課題。在這一研究性課題的教學設計中,通過引入課題、介紹算法、建立模型、進行運算、討論結果這五步,使學生解決了日常生活中的優(yōu)化問題。教學設計的結果表明,基于智能優(yōu)化算法的課題適用于高中數(shù)學研究性學習。
關鍵詞: 高中數(shù)學 研究性學習 算法
1.高中數(shù)學的研究性學習
高中數(shù)學的研究性學習有著重要意義[1,2],它能使學生在思考和分析數(shù)學材料的過程中,培養(yǎng)理解和感悟數(shù)學的能力,進一步認識數(shù)學的本質。研究性學習可以啟發(fā)學生的創(chuàng)新意識,使學生遇到生活中的一些問題時,能夠自主使用數(shù)學知識解決這些問題。由此可見,研究性學習需要的問題,應該是與高中數(shù)學基礎相近的問題。對于高中數(shù)學的研究性課題,學生可以進行學習、試驗、思考、爭辯,并在課題的研究中找到數(shù)學領域的新天地。
高中數(shù)學教材[3]指出,算法是計算機科學的基礎,計算機已成為人們日常生活不可缺少的工具。對于高中生,從日常生活中選擇引入研究性課題的材料,更容易被學生接受。人們在日常生活遇到的很多問題,都可以利用一些已有的算法和相應的計算機程序解決。因此,在算法教學中開展研究性學習,有著廣闊的前景。下面提出一種基于智能優(yōu)化算法的課題式教學設計。我們計劃采用NSGA2作為教學實踐中的智能優(yōu)化算法。
2.基于智能優(yōu)化算法的課題式教學設計
基于智能優(yōu)化算法的課題式教學設計分為引入課題、介紹算法、建立模型、進行運算、討論結果五個部分。
2.1引入課題
教師:如果在假期我們打算去旅游,有很多景區(qū)可以選擇。我們對這些景區(qū)的興趣不同,這些景區(qū)的門票和交通費用也不同,去更多的景區(qū)開闊眼界是每個人的愿望。因此,我們應該認真思考選擇哪些景區(qū)。這是一個很難通過思考得到結果的問題,通過智能優(yōu)化算法可以代替我們的大腦解決這個問題。
2.2介紹算法
教師:所謂人工智能,就是通過各種算法模擬大腦的工作,目的是代替我們的大腦進行思考,解決各種問題。智能優(yōu)化算法是人工智能的一種算法,它可以代替我們的大腦解決優(yōu)化問題。
學生:那上面的問題是優(yōu)化問題嗎?
教師:在上面選擇哪些景區(qū)的問題中,我們有三個目的,一是選擇的景區(qū)總的興趣較高,二是選擇的景區(qū)總的門票和交通費用較低,三是選擇景區(qū)的數(shù)量盡量多。這三個目的往往是相互沖突的,我們需要選擇一些景區(qū)最好地達到這三個目的。由此可見,這是一個優(yōu)化問題,智能優(yōu)化算法可以幫助我們解決這個問題。
學生:我們怎么使用智能優(yōu)化算法呢?
教師:我們首先應該運用課本中所學的算法知識,初步了解智能優(yōu)化算法的計算原理。我們已經選擇的這些景區(qū)被稱為決策變量;對于我們選擇范圍內的所有景區(qū),稱為決策空間。決策變量是在決策空間中隨機選擇的。如果我們可以最多同時選擇5個景區(qū),決策變量就是5維向量,即■=(x■,x■,…,x■),其中x■到x■這5個景區(qū)在所有景區(qū)中隨機選擇,這5個景區(qū)可以互相重復。
學生:景區(qū)怎么用數(shù)字代替呢?
教師:景區(qū)可以按照先后順序依次用數(shù)字代替,比如第一個景區(qū)就是1。對于我們的三個目的,也需要把它們轉化成數(shù)字才能進行計算。我們對每個景區(qū)都進行排名,排名靠前表明興趣高。這樣第一個目的就是中所有互不重復的景區(qū)名次的和。類似的,第二個目的就是中所有互不重復的景區(qū)門票和交通費用的和。第三個目的應該是中所有互不重復的景區(qū)數(shù)量。景區(qū)的名次和費用如表1所示。表中第一行和第四行是景區(qū)的編號,第二行和第五行是景區(qū)的排名,第三行和第六行是景區(qū)的費用,數(shù)字的單位是元。
表1 景區(qū)的名次和費用
學生:怎樣計算呢?
教師:通過以上分析可知,不管是景區(qū)名次的和,景區(qū)門票和交通成本的和,還是景區(qū)數(shù)量,它們的大小都是由■決定的。它們是■的函數(shù),因此我們稱這些函數(shù)為目標函數(shù)。我們只要擁有用數(shù)字表示的決策空間和決策變量,以及用數(shù)字計算的目標函數(shù),就可以使用智能優(yōu)化算法選擇到最適合我們的景區(qū)。
2.3建立模型
學生:怎樣建立目標函數(shù)呢?
2.4進行運算
學生:怎樣調用智能優(yōu)化算法的程序呢?
教師:為了降低讀寫程序的難度,我們選擇matlab語言。在調用智能優(yōu)化算法程序的主文件中正確編程,就可以實現(xiàn)建立的數(shù)學模型,得到需要的結果。主文件中的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;
對于智能優(yōu)化算法,代碼中的X是m1維矩陣。通過設定m=5,這里X是5x1維矩陣,其中的5個元素均是從0.0000到0.9999中的隨機數(shù)。fix()是matlab的取整函數(shù),即實數(shù)的整數(shù)部分。因此,X2中的5個元素均是從0到19中的隨機數(shù)。X3中的5個元素均是從1到20中的隨機數(shù)。這樣,代碼中的X3是模型中的。zeros()是matlab的矩陣生成函數(shù),生成的矩陣中元素都是0。因此C是201維0矩陣。通過for循環(huán)語句,我們使X3指定的元素全是1。find()是matlab的查找函數(shù),查找矩陣中非0元素的位置,生成相應的矩陣。因此C2是C中非0元素的位置,也是X3中所有互不重復的數(shù)。size()函數(shù)得到矩陣的行數(shù)和列數(shù),這樣a1是C2的行數(shù),是模型中的n。代碼中的A和B是模型中的A和B。通過for循環(huán)語句,我們使W1和W3中的元素,是C2指定的A和B中的值,代碼中的F(1)、F(2)、F(3)表示目標函數(shù)。對于智能優(yōu)化算法,可以設定優(yōu)化結果的個數(shù),我們設定結果的個數(shù)是10,計算結果如表2所示。
表2 計算結果
2.5討論結果
教師:從表2可以看出,這10個景區(qū)的選擇方式都很好,分別偏向了我們的三個目的。把它們互相比較,難分高低。智能優(yōu)化算法很好地解決了選擇哪些景區(qū)的問題,我們的大腦也很難想出這樣的結果。在生活中還有很多其他的優(yōu)化問題,我們也可以通過建立數(shù)學模型、編寫matlab程序、進入智能優(yōu)化算法進行計算的辦法,解決這些復雜的問題。
3.總結
基于智能優(yōu)化算法的課題式教學設計,主要涉及隨機數(shù)的產生和矩陣的基本定義這兩個知識點,它們在高中數(shù)學教材中都有介紹。matlab語言簡單易學,通過互聯(lián)網(wǎng)就可以了解其編程技巧。因此,基于智能優(yōu)化算法的課題適用于高中數(shù)學研究性學習。
參考文獻:
[1]杜振義.關于高中數(shù)學研究性學習的思考[J].數(shù)學教學與研究,2014(10),54-55.
[2]張曉兵.例談數(shù)學教學中的“微課題”研究[J].數(shù)學教育研究,2012(5),13-14.
[3]普通高中課程標準實驗教科書數(shù)學必修3[M].人民教育出版社,2012.
[4]鄭金華.多目標進化算法及其應用[M].科學出版社,2007.